elements, which are empty\n // until the user clicks the hamburger icon\n const primaryDialog = document.getElementById(\"pst-primary-sidebar-modal\");\n const secondaryDialog = document.getElementById(\n \"pst-secondary-sidebar-modal\",\n );\n\n // These are the hamburger-style buttons in the header nav bar. They only\n // appear at narrow screen width.\n const primaryToggle = document.querySelector(\".primary-toggle\");\n const secondaryToggle = document.querySelector(\".secondary-toggle\");\n\n // Cut nodes and classes from `from`, paste into/onto `to`\n const cutAndPasteNodesAndClasses = (from, to) => {\n Array.from(from.childNodes).forEach((node) => to.appendChild(node));\n Array.from(from.classList).forEach((cls) => {\n from.classList.remove(cls);\n to.classList.add(cls);\n });\n };\n\n // Hook up the ways to open and close the dialog\n [\n [primaryToggle, primaryDialog, primarySidebar],\n [secondaryToggle, secondaryDialog, secondarySidebar],\n ].forEach(([toggleButton, dialog, sidebar]) => {\n if (!toggleButton || !dialog || !sidebar) {\n return;\n }\n\n // Clicking the button can only open the sidebar, not close it.\n // Clicking the button is also the *only* way to open the sidebar.\n toggleButton.addEventListener(\"click\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n // When we open the dialog, we cut and paste the nodes and classes from\n // the widescreen sidebar into the dialog\n cutAndPasteNodesAndClasses(sidebar, dialog);\n\n dialog.showModal();\n });\n\n // Listen for clicks on the backdrop in order to close the dialog\n dialog.addEventListener(\"click\", closeDialogOnBackdropClick);\n\n // We have to manually attach the escape key because there's some code in\n // Sphinx's Sphinx_highlight.js that prevents the default behavior of the\n // escape key\n dialog.addEventListener(\"keydown\", (event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.stopPropagation();\n dialog.close();\n }\n });\n\n // When the dialog is closed, move the nodes (and classes) back to their\n // original place\n dialog.addEventListener(\"close\", () => {\n cutAndPasteNodesAndClasses(dialog, sidebar);\n });\n });\n}\n\n/**\n * When the page loads, or the window resizes, or descendant nodes are added or\n * removed from the main element, check all code blocks and Jupyter notebook\n * outputs, and for each one that has scrollable overflow, set tabIndex = 0.\n */\nfunction addTabStopsToScrollableElements() {\n const updateTabStops = () => {\n document\n .querySelectorAll(\n [\n // code blocks\n \"pre\",\n // NBSphinx notebook output\n \".nboutput > .output_area\",\n // Myst-NB\n \".cell_output > .output\",\n // ipywidgets\n \".jp-RenderedHTMLCommon\",\n // [rST table nodes](https://www.docutils.org/docs/ref/doctree.html#table)\n \".pst-scrollable-table-container\",\n ].join(\", \"),\n )\n .forEach((el) => {\n el.tabIndex =\n el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight\n ? 0\n : -1;\n });\n };\n const debouncedUpdateTabStops = debounce(updateTabStops, 300);\n\n // On window resize\n window.addEventListener(\"resize\", debouncedUpdateTabStops);\n\n // The following MutationObserver is for ipywidgets, which take some time to\n // finish loading and rendering on the page (so even after the \"load\" event is\n // fired, they still have not finished rendering). Would be nice to replace\n // the MutationObserver if there is a way to hook into the ipywidgets code to\n // know when it is done.\n const mainObserver = new MutationObserver(debouncedUpdateTabStops);\n\n // On descendant nodes added/removed from main element\n mainObserver.observe(document.getElementById(\"main-content\"), {\n subtree: true,\n childList: true,\n });\n\n // On page load (when this function gets called)\n updateTabStops();\n}\nfunction debounce(callback, wait) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n}\n\n/*******************************************************************************\n * Announcement banner - fetch and load remote HTML\n */\nasync function setupAnnouncementBanner() {\n const banner = document.querySelector(\".bd-header-announcement\");\n const { pstAnnouncementUrl } = banner ? banner.dataset : null;\n\n if (!pstAnnouncementUrl) {\n return;\n }\n\n try {\n const response = await fetch(pstAnnouncementUrl);\n if (!response.ok) {\n throw new Error(\n `[PST]: HTTP response status not ok: ${response.status} ${response.statusText}`,\n );\n }\n const data = await response.text();\n if (data.length === 0) {\n console.log(`[PST]: Empty announcement at: ${pstAnnouncementUrl}`);\n return;\n }\n banner.innerHTML = ``;\n banner.classList.remove(\"d-none\");\n } catch (_error) {\n console.log(`[PST]: Failed to load announcement at: ${pstAnnouncementUrl}`);\n console.error(_error);\n }\n}\n\n/*******************************************************************************\n * Reveal (and animate) the banners (version warning, announcement) together\n */\nasync function fetchRevealBannersTogether() {\n // Wait until finished fetching and loading banners\n await Promise.allSettled([fetchAndUseVersions(), setupAnnouncementBanner()]);\n\n // The revealer element should have CSS rules that set height to 0, overflow\n // to hidden, and an animation transition on the height (unless the user has\n // turned off animations)\n const revealer = document.querySelector(\".pst-async-banner-revealer\");\n if (!revealer) {\n return;\n }\n\n // Remove the d-none (display-none) class to calculate the children heights.\n revealer.classList.remove(\"d-none\");\n\n // Add together the heights of the element's children\n const height = Array.from(revealer.children).reduce(\n (height, el) => height + el.offsetHeight,\n 0,\n );\n\n // Use the calculated height to give the revealer a non-zero height (if\n // animations allowed, the height change will animate)\n revealer.style.setProperty(\"height\", `${height}px`);\n\n // Wait for a bit more than 300ms (the transition duration), then set height\n // to auto so the banner can resize if the window is resized.\n setTimeout(() => {\n revealer.style.setProperty(\"height\", \"auto\");\n }, 320);\n}\n\n/*******************************************************************************\n * Call functions after document loading.\n */\n\n// This one first to kick off the network request for the version warning\n// and announcement banner data as early as possible.\ndocumentReady(fetchRevealBannersTogether);\n\ndocumentReady(addModeListener);\ndocumentReady(scrollToActive);\ndocumentReady(addTOCInteractivity);\ndocumentReady(setupSearchButtons);\ndocumentReady(setupMobileSidebarKeyboardHandlers);\n\n// Determining whether an element has scrollable content depends on stylesheets,\n// so we're checking for the \"load\" event rather than \"DOMContentLoaded\"\nif (document.readyState === \"complete\") {\n addTabStopsToScrollableElements();\n} else {\n window.addEventListener(\"load\", addTabStopsToScrollableElements);\n}\n"],"names":["documentReady","callback","document","readyState","addEventListener","validate","version","test","semver","compare","v1","v2","operator","assertValidOperator","res","n1","validateAndParse","n2","p1","pop","p2","r","compareSegments","split","compareVersions","operatorResMap","includes","TypeError","match","Error","shift","isWildcard","s","tryParse","v","n","parseInt","isNaN","compareStrings","a","b","ap","bp","String","forceType","i","Math","max","length","allowedOperators","Object","keys","op","indexOf","join","prefersDark","window","matchMedia","autoTheme","e","documentElement","dataset","theme","matches","setTheme","mode","console","error","colorScheme","querySelectorAll","forEach","el","classList","add","remove","localStorage","setItem","log","onchange","cycleMode","defaultMode","currentMode","getItem","arr","nextPosition","findSearchInput","forms","querySelector","toggleSearchField","input","searchDialog","getElementById","open","close","showModal","activeElement","blur","focus","select","scrollIntoView","block","useCommandKey","navigator","platform","closeDialogOnBackdropClick","currentTarget","dialog","clientX","clientY","left","right","top","bottom","getBoundingClientRect","getCurrentUrlPath","DOCUMENTATION_OPTIONS","BUILDER","pagename","endsWith","substring","async","DismissBannerAndStorePref","event","VERSION","now","Date","banner_pref","JSON","parse","debug","stringify","checkPageExistsAndRedirect","preventDefault","currentFilePath","tryUrl","getAttribute","otherDocsHomepage","replace","fetch","method","ok","location","href","err","fetchAndUseVersions","versionSwitcherBtns","hasSwitcherMenu","hasVersionsJSON","hasOwnProperty","wantsWarningBanner","show_version_warning_banner","data","url","currentPath","result","URL","protocol","info","cutoff","origin","response","json","fetchVersionSwitcherJSON","theme_switcher_json_url","btn","hasMatchingPreferredEntry","map","entry","theme_switcher_version_match","preferred","name","some","Boolean","foundMatch","anchor","createElement","setAttribute","span","textContent","appendChild","matchesAndIsPreferred","matchesAndIsFirst","innerText","menu","node","cloneNode","onclick","append","populateVersionSwitcher","preferredEntries","filter","howMany","preferredVersion","preferredURL","versionsAreComparable","dismiss_date_str","dismiss_date","days_passed","floor","banner","middle","inner","bold","button","close_btn","close_x","isDev","newerThanPreferred","createTextNode","showVersionWarningBanner","addTabStopsToScrollableElements","updateTabStops","tabIndex","scrollWidth","clientWidth","scrollHeight","clientHeight","debouncedUpdateTabStops","wait","timeoutId","args","clearTimeout","setTimeout","debounce","MutationObserver","observe","subtree","childList","setupAnnouncementBanner","pstAnnouncementUrl","status","statusText","text","innerHTML","_error","Promise","allSettled","revealer","height","Array","from","children","reduce","offsetHeight","style","setProperty","sidebar","storedScrollTop","sessionStorage","active_pages","latest_active","offset","y","innerHeight","buffer","scrollTop","navLink","parentElement","shortcuts","f","changeSearchShortcutKey","shiftKey","altKey","metaKey","ctrlKey","key","primarySidebar","secondarySidebar","primaryDialog","secondaryDialog","primaryToggle","secondaryToggle","cutAndPasteNodesAndClasses","to","childNodes","cls","toggleButton","stopPropagation"],"sourceRoot":""}
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/_static/searchtools.js b/pr-preview-academy/pr-1250/_static/searchtools.js
deleted file mode 100644
index 2c774d17af..0000000000
--- a/pr-preview-academy/pr-1250/_static/searchtools.js
+++ /dev/null
@@ -1,632 +0,0 @@
-/*
- * Sphinx JavaScript utilities for the full-text search.
- */
-"use strict";
-
-/**
- * Simple result scoring code.
- */
-if (typeof Scorer === "undefined") {
- var Scorer = {
- // Implement the following function to further tweak the score for each result
- // The function takes a result array [docname, title, anchor, descr, score, filename]
- // and returns the new score.
- /*
- score: result => {
- const [docname, title, anchor, descr, score, filename, kind] = result
- return score
- },
- */
-
- // query matches the full name of an object
- objNameMatch: 11,
- // or matches in the last dotted part of the object name
- objPartialMatch: 6,
- // Additive scores depending on the priority of the object
- objPrio: {
- 0: 15, // used to be importantResults
- 1: 5, // used to be objectResults
- 2: -5, // used to be unimportantResults
- },
- // Used when the priority is not in the mapping.
- objPrioDefault: 0,
-
- // query found in title
- title: 15,
- partialTitle: 7,
- // query found in terms
- term: 5,
- partialTerm: 2,
- };
-}
-
-// Global search result kind enum, used by themes to style search results.
-class SearchResultKind {
- static get index() { return "index"; }
- static get object() { return "object"; }
- static get text() { return "text"; }
- static get title() { return "title"; }
-}
-
-const _removeChildren = (element) => {
- while (element && element.lastChild) element.removeChild(element.lastChild);
-};
-
-/**
- * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
- */
-const _escapeRegExp = (string) =>
- string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
-
-const _displayItem = (item, searchTerms, highlightTerms) => {
- const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
- const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
- const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
- const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
- const contentRoot = document.documentElement.dataset.content_root;
-
- const [docName, title, anchor, descr, score, _filename, kind] = item;
-
- let listItem = document.createElement("li");
- // Add a class representing the item's type:
- // can be used by a theme's CSS selector for styling
- // See SearchResultKind for the class names.
- listItem.classList.add(`kind-${kind}`);
- let requestUrl;
- let linkUrl;
- if (docBuilder === "dirhtml") {
- // dirhtml builder
- let dirname = docName + "/";
- if (dirname.match(/\/index\/$/))
- dirname = dirname.substring(0, dirname.length - 6);
- else if (dirname === "index/") dirname = "";
- requestUrl = contentRoot + dirname;
- linkUrl = requestUrl;
- } else {
- // normal html builders
- requestUrl = contentRoot + docName + docFileSuffix;
- linkUrl = docName + docLinkSuffix;
- }
- let linkEl = listItem.appendChild(document.createElement("a"));
- linkEl.href = linkUrl + anchor;
- linkEl.dataset.score = score;
- linkEl.innerHTML = title;
- if (descr) {
- listItem.appendChild(document.createElement("span")).innerHTML =
- " (" + descr + ")";
- // highlight search terms in the description
- if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
- highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
- }
- else if (showSearchSummary)
- fetch(requestUrl)
- .then((responseData) => responseData.text())
- .then((data) => {
- if (data)
- listItem.appendChild(
- Search.makeSearchSummary(data, searchTerms, anchor)
- );
- // highlight search terms in the summary
- if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
- highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
- });
- Search.output.appendChild(listItem);
-};
-const _finishSearch = (resultCount) => {
- Search.stopPulse();
- Search.title.innerText = _("Search Results");
- if (!resultCount)
- Search.status.innerText = Documentation.gettext(
- "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
- );
- else
- Search.status.innerText = Documentation.ngettext(
- "Search finished, found one page matching the search query.",
- "Search finished, found ${resultCount} pages matching the search query.",
- resultCount,
- ).replace('${resultCount}', resultCount);
-};
-const _displayNextItem = (
- results,
- resultCount,
- searchTerms,
- highlightTerms,
-) => {
- // results left, load the summary and display it
- // this is intended to be dynamic (don't sub resultsCount)
- if (results.length) {
- _displayItem(results.pop(), searchTerms, highlightTerms);
- setTimeout(
- () => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
- 5
- );
- }
- // search finished, update title and status message
- else _finishSearch(resultCount);
-};
-// Helper function used by query() to order search results.
-// Each input is an array of [docname, title, anchor, descr, score, filename, kind].
-// Order the results by score (in opposite order of appearance, since the
-// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
-const _orderResultsByScoreThenName = (a, b) => {
- const leftScore = a[4];
- const rightScore = b[4];
- if (leftScore === rightScore) {
- // same score: sort alphabetically
- const leftTitle = a[1].toLowerCase();
- const rightTitle = b[1].toLowerCase();
- if (leftTitle === rightTitle) return 0;
- return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
- }
- return leftScore > rightScore ? 1 : -1;
-};
-
-/**
- * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
- * custom function per language.
- *
- * The regular expression works by splitting the string on consecutive characters
- * that are not Unicode letters, numbers, underscores, or emoji characters.
- * This is the same as ``\W+`` in Python, preserving the surrogate pair area.
- */
-if (typeof splitQuery === "undefined") {
- var splitQuery = (query) => query
- .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
- .filter(term => term) // remove remaining empty strings
-}
-
-/**
- * Search Module
- */
-const Search = {
- _index: null,
- _queued_query: null,
- _pulse_status: -1,
-
- htmlToText: (htmlString, anchor) => {
- const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
- for (const removalQuery of [".headerlink", "script", "style"]) {
- htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
- }
- if (anchor) {
- const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
- if (anchorContent) return anchorContent.textContent;
-
- console.warn(
- `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
- );
- }
-
- // if anchor not specified or not found, fall back to main content
- const docContent = htmlElement.querySelector('[role="main"]');
- if (docContent) return docContent.textContent;
-
- console.warn(
- "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
- );
- return "";
- },
-
- init: () => {
- const query = new URLSearchParams(window.location.search).get("q");
- document
- .querySelectorAll('input[name="q"]')
- .forEach((el) => (el.value = query));
- if (query) Search.performSearch(query);
- },
-
- loadIndex: (url) =>
- (document.body.appendChild(document.createElement("script")).src = url),
-
- setIndex: (index) => {
- Search._index = index;
- if (Search._queued_query !== null) {
- const query = Search._queued_query;
- Search._queued_query = null;
- Search.query(query);
- }
- },
-
- hasIndex: () => Search._index !== null,
-
- deferQuery: (query) => (Search._queued_query = query),
-
- stopPulse: () => (Search._pulse_status = -1),
-
- startPulse: () => {
- if (Search._pulse_status >= 0) return;
-
- const pulse = () => {
- Search._pulse_status = (Search._pulse_status + 1) % 4;
- Search.dots.innerText = ".".repeat(Search._pulse_status);
- if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
- };
- pulse();
- },
-
- /**
- * perform a search for something (or wait until index is loaded)
- */
- performSearch: (query) => {
- // create the required interface elements
- const searchText = document.createElement("h2");
- searchText.textContent = _("Searching");
- const searchSummary = document.createElement("p");
- searchSummary.classList.add("search-summary");
- searchSummary.innerText = "";
- const searchList = document.createElement("ul");
- searchList.setAttribute("role", "list");
- searchList.classList.add("search");
-
- const out = document.getElementById("search-results");
- Search.title = out.appendChild(searchText);
- Search.dots = Search.title.appendChild(document.createElement("span"));
- Search.status = out.appendChild(searchSummary);
- Search.output = out.appendChild(searchList);
-
- const searchProgress = document.getElementById("search-progress");
- // Some themes don't use the search progress node
- if (searchProgress) {
- searchProgress.innerText = _("Preparing search...");
- }
- Search.startPulse();
-
- // index already loaded, the browser was quick!
- if (Search.hasIndex()) Search.query(query);
- else Search.deferQuery(query);
- },
-
- _parseQuery: (query) => {
- // stem the search terms and add them to the correct list
- const stemmer = new Stemmer();
- const searchTerms = new Set();
- const excludedTerms = new Set();
- const highlightTerms = new Set();
- const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
- splitQuery(query.trim()).forEach((queryTerm) => {
- const queryTermLower = queryTerm.toLowerCase();
-
- // maybe skip this "word"
- // stopwords array is from language_data.js
- if (
- stopwords.indexOf(queryTermLower) !== -1 ||
- queryTerm.match(/^\d+$/)
- )
- return;
-
- // stem the word
- let word = stemmer.stemWord(queryTermLower);
- // select the correct list
- if (word[0] === "-") excludedTerms.add(word.substr(1));
- else {
- searchTerms.add(word);
- highlightTerms.add(queryTermLower);
- }
- });
-
- if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
- localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
- }
-
- // console.debug("SEARCH: searching for:");
- // console.info("required: ", [...searchTerms]);
- // console.info("excluded: ", [...excludedTerms]);
-
- return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
- },
-
- /**
- * execute search (requires search index to be loaded)
- */
- _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
- const filenames = Search._index.filenames;
- const docNames = Search._index.docnames;
- const titles = Search._index.titles;
- const allTitles = Search._index.alltitles;
- const indexEntries = Search._index.indexentries;
-
- // Collect multiple result groups to be sorted separately and then ordered.
- // Each is an array of [docname, title, anchor, descr, score, filename, kind].
- const normalResults = [];
- const nonMainIndexResults = [];
-
- _removeChildren(document.getElementById("search-progress"));
-
- const queryLower = query.toLowerCase().trim();
- for (const [title, foundTitles] of Object.entries(allTitles)) {
- if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
- for (const [file, id] of foundTitles) {
- const score = Math.round(Scorer.title * queryLower.length / title.length);
- const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
- normalResults.push([
- docNames[file],
- titles[file] !== title ? `${titles[file]} > ${title}` : title,
- id !== null ? "#" + id : "",
- null,
- score + boost,
- filenames[file],
- SearchResultKind.title,
- ]);
- }
- }
- }
-
- // search for explicit entries in index directives
- for (const [entry, foundEntries] of Object.entries(indexEntries)) {
- if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
- for (const [file, id, isMain] of foundEntries) {
- const score = Math.round(100 * queryLower.length / entry.length);
- const result = [
- docNames[file],
- titles[file],
- id ? "#" + id : "",
- null,
- score,
- filenames[file],
- SearchResultKind.index,
- ];
- if (isMain) {
- normalResults.push(result);
- } else {
- nonMainIndexResults.push(result);
- }
- }
- }
- }
-
- // lookup as object
- objectTerms.forEach((term) =>
- normalResults.push(...Search.performObjectSearch(term, objectTerms))
- );
-
- // lookup as search terms in fulltext
- normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
-
- // let the scorer override scores with a custom scoring function
- if (Scorer.score) {
- normalResults.forEach((item) => (item[4] = Scorer.score(item)));
- nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
- }
-
- // Sort each group of results by score and then alphabetically by name.
- normalResults.sort(_orderResultsByScoreThenName);
- nonMainIndexResults.sort(_orderResultsByScoreThenName);
-
- // Combine the result groups in (reverse) order.
- // Non-main index entries are typically arbitrary cross-references,
- // so display them after other results.
- let results = [...nonMainIndexResults, ...normalResults];
-
- // remove duplicate search results
- // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
- let seen = new Set();
- results = results.reverse().reduce((acc, result) => {
- let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
- if (!seen.has(resultStr)) {
- acc.push(result);
- seen.add(resultStr);
- }
- return acc;
- }, []);
-
- return results.reverse();
- },
-
- query: (query) => {
- const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
- const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
-
- // for debugging
- //Search.lastresults = results.slice(); // a copy
- // console.info("search results:", Search.lastresults);
-
- // print the results
- _displayNextItem(results, results.length, searchTerms, highlightTerms);
- },
-
- /**
- * search for object names
- */
- performObjectSearch: (object, objectTerms) => {
- const filenames = Search._index.filenames;
- const docNames = Search._index.docnames;
- const objects = Search._index.objects;
- const objNames = Search._index.objnames;
- const titles = Search._index.titles;
-
- const results = [];
-
- const objectSearchCallback = (prefix, match) => {
- const name = match[4]
- const fullname = (prefix ? prefix + "." : "") + name;
- const fullnameLower = fullname.toLowerCase();
- if (fullnameLower.indexOf(object) < 0) return;
-
- let score = 0;
- const parts = fullnameLower.split(".");
-
- // check for different match types: exact matches of full name or
- // "last name" (i.e. last dotted part)
- if (fullnameLower === object || parts.slice(-1)[0] === object)
- score += Scorer.objNameMatch;
- else if (parts.slice(-1)[0].indexOf(object) > -1)
- score += Scorer.objPartialMatch; // matches in last name
-
- const objName = objNames[match[1]][2];
- const title = titles[match[0]];
-
- // If more than one term searched for, we require other words to be
- // found in the name/title/description
- const otherTerms = new Set(objectTerms);
- otherTerms.delete(object);
- if (otherTerms.size > 0) {
- const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
- if (
- [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
- )
- return;
- }
-
- let anchor = match[3];
- if (anchor === "") anchor = fullname;
- else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
-
- const descr = objName + _(", in ") + title;
-
- // add custom score for some objects according to scorer
- if (Scorer.objPrio.hasOwnProperty(match[2]))
- score += Scorer.objPrio[match[2]];
- else score += Scorer.objPrioDefault;
-
- results.push([
- docNames[match[0]],
- fullname,
- "#" + anchor,
- descr,
- score,
- filenames[match[0]],
- SearchResultKind.object,
- ]);
- };
- Object.keys(objects).forEach((prefix) =>
- objects[prefix].forEach((array) =>
- objectSearchCallback(prefix, array)
- )
- );
- return results;
- },
-
- /**
- * search for full-text terms in the index
- */
- performTermsSearch: (searchTerms, excludedTerms) => {
- // prepare search
- const terms = Search._index.terms;
- const titleTerms = Search._index.titleterms;
- const filenames = Search._index.filenames;
- const docNames = Search._index.docnames;
- const titles = Search._index.titles;
-
- const scoreMap = new Map();
- const fileMap = new Map();
-
- // perform the search on the required terms
- searchTerms.forEach((word) => {
- const files = [];
- const arr = [
- { files: terms[word], score: Scorer.term },
- { files: titleTerms[word], score: Scorer.title },
- ];
- // add support for partial matches
- if (word.length > 2) {
- const escapedWord = _escapeRegExp(word);
- if (!terms.hasOwnProperty(word)) {
- Object.keys(terms).forEach((term) => {
- if (term.match(escapedWord))
- arr.push({ files: terms[term], score: Scorer.partialTerm });
- });
- }
- if (!titleTerms.hasOwnProperty(word)) {
- Object.keys(titleTerms).forEach((term) => {
- if (term.match(escapedWord))
- arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
- });
- }
- }
-
- // no match but word was a required one
- if (arr.every((record) => record.files === undefined)) return;
-
- // found search word in contents
- arr.forEach((record) => {
- if (record.files === undefined) return;
-
- let recordFiles = record.files;
- if (recordFiles.length === undefined) recordFiles = [recordFiles];
- files.push(...recordFiles);
-
- // set score for the word in each file
- recordFiles.forEach((file) => {
- if (!scoreMap.has(file)) scoreMap.set(file, {});
- scoreMap.get(file)[word] = record.score;
- });
- });
-
- // create the mapping
- files.forEach((file) => {
- if (!fileMap.has(file)) fileMap.set(file, [word]);
- else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
- });
- });
-
- // now check if the files don't contain excluded terms
- const results = [];
- for (const [file, wordList] of fileMap) {
- // check if all requirements are matched
-
- // as search terms with length < 3 are discarded
- const filteredTermCount = [...searchTerms].filter(
- (term) => term.length > 2
- ).length;
- if (
- wordList.length !== searchTerms.size &&
- wordList.length !== filteredTermCount
- )
- continue;
-
- // ensure that none of the excluded terms is in the search result
- if (
- [...excludedTerms].some(
- (term) =>
- terms[term] === file ||
- titleTerms[term] === file ||
- (terms[term] || []).includes(file) ||
- (titleTerms[term] || []).includes(file)
- )
- )
- break;
-
- // select one (max) score for the file.
- const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w]));
- // add result to the result list
- results.push([
- docNames[file],
- titles[file],
- "",
- null,
- score,
- filenames[file],
- SearchResultKind.text,
- ]);
- }
- return results;
- },
-
- /**
- * helper function to return a node containing the
- * search summary for a given text. keywords is a list
- * of stemmed words.
- */
- makeSearchSummary: (htmlText, keywords, anchor) => {
- const text = Search.htmlToText(htmlText, anchor);
- if (text === "") return null;
-
- const textLower = text.toLowerCase();
- const actualStartPosition = [...keywords]
- .map((k) => textLower.indexOf(k.toLowerCase()))
- .filter((i) => i > -1)
- .slice(-1)[0];
- const startWithContext = Math.max(actualStartPosition - 120, 0);
-
- const top = startWithContext === 0 ? "" : "...";
- const tail = startWithContext + 240 < text.length ? "..." : "";
-
- let summary = document.createElement("p");
- summary.classList.add("context");
- summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
-
- return summary;
- },
-};
-
-_ready(Search.init);
diff --git a/pr-preview-academy/pr-1250/_static/sphinx-design.min.css b/pr-preview-academy/pr-1250/_static/sphinx-design.min.css
deleted file mode 100644
index 860c36da0f..0000000000
--- a/pr-preview-academy/pr-1250/_static/sphinx-design.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative;font-size:var(--sd-fontsize-dropdown)}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary.sd-summary-title{padding:.5em .6em .5em 1em;font-size:var(--sd-fontsize-dropdown-title);font-weight:var(--sd-fontweight-dropdown-title);user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;list-style:none;display:inline-flex;justify-content:space-between}details.sd-dropdown summary.sd-summary-title::-webkit-details-marker{display:none}details.sd-dropdown summary.sd-summary-title:focus{outline:none}details.sd-dropdown summary.sd-summary-title .sd-summary-icon{margin-right:.6em;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary.sd-summary-title .sd-summary-text{flex-grow:1;line-height:1.5;padding-right:.5rem}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker{pointer-events:none;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker svg{opacity:.6}details.sd-dropdown summary.sd-summary-title:hover .sd-summary-state-marker svg{opacity:1;transform:scale(1.1)}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown .sd-summary-chevron-right{transition:.25s}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-right{transform:rotate(90deg)}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-down{transform:rotate(180deg)}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #0071bc;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0060a0;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-bg: rgba(0, 113, 188, 0.2);--sd-color-secondary-bg: rgba(108, 117, 125, 0.2);--sd-color-success-bg: rgba(40, 167, 69, 0.2);--sd-color-info-bg: rgba(23, 162, 184, 0.2);--sd-color-warning-bg: rgba(240, 179, 126, 0.2);--sd-color-danger-bg: rgba(220, 53, 69, 0.2);--sd-color-light-bg: rgba(248, 249, 250, 0.2);--sd-color-muted-bg: rgba(108, 117, 125, 0.2);--sd-color-dark-bg: rgba(33, 37, 41, 0.2);--sd-color-black-bg: rgba(0, 0, 0, 0.2);--sd-color-white-bg: rgba(255, 255, 255, 0.2);--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem;--sd-fontsize-dropdown: inherit;--sd-fontsize-dropdown-title: 1rem;--sd-fontweight-dropdown-title: 700}
diff --git a/pr-preview-academy/pr-1250/_static/sphinx_highlight.js b/pr-preview-academy/pr-1250/_static/sphinx_highlight.js
deleted file mode 100644
index 8a96c69a19..0000000000
--- a/pr-preview-academy/pr-1250/_static/sphinx_highlight.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Highlighting utilities for Sphinx HTML documentation. */
-"use strict";
-
-const SPHINX_HIGHLIGHT_ENABLED = true
-
-/**
- * highlight a given string on a node by wrapping it in
- * span elements with the given class name.
- */
-const _highlight = (node, addItems, text, className) => {
- if (node.nodeType === Node.TEXT_NODE) {
- const val = node.nodeValue;
- const parent = node.parentNode;
- const pos = val.toLowerCase().indexOf(text);
- if (
- pos >= 0 &&
- !parent.classList.contains(className) &&
- !parent.classList.contains("nohighlight")
- ) {
- let span;
-
- const closestNode = parent.closest("body, svg, foreignObject");
- const isInSVG = closestNode && closestNode.matches("svg");
- if (isInSVG) {
- span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
- } else {
- span = document.createElement("span");
- span.classList.add(className);
- }
-
- span.appendChild(document.createTextNode(val.substr(pos, text.length)));
- const rest = document.createTextNode(val.substr(pos + text.length));
- parent.insertBefore(
- span,
- parent.insertBefore(
- rest,
- node.nextSibling
- )
- );
- node.nodeValue = val.substr(0, pos);
- /* There may be more occurrences of search term in this node. So call this
- * function recursively on the remaining fragment.
- */
- _highlight(rest, addItems, text, className);
-
- if (isInSVG) {
- const rect = document.createElementNS(
- "http://www.w3.org/2000/svg",
- "rect"
- );
- const bbox = parent.getBBox();
- rect.x.baseVal.value = bbox.x;
- rect.y.baseVal.value = bbox.y;
- rect.width.baseVal.value = bbox.width;
- rect.height.baseVal.value = bbox.height;
- rect.setAttribute("class", className);
- addItems.push({ parent: parent, target: rect });
- }
- }
- } else if (node.matches && !node.matches("button, select, textarea")) {
- node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
- }
-};
-const _highlightText = (thisNode, text, className) => {
- let addItems = [];
- _highlight(thisNode, addItems, text, className);
- addItems.forEach((obj) =>
- obj.parent.insertAdjacentElement("beforebegin", obj.target)
- );
-};
-
-/**
- * Small JavaScript module for the documentation.
- */
-const SphinxHighlight = {
-
- /**
- * highlight the search words provided in localstorage in the text
- */
- highlightSearchWords: () => {
- if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
-
- // get and clear terms from localstorage
- const url = new URL(window.location);
- const highlight =
- localStorage.getItem("sphinx_highlight_terms")
- || url.searchParams.get("highlight")
- || "";
- localStorage.removeItem("sphinx_highlight_terms")
- url.searchParams.delete("highlight");
- window.history.replaceState({}, "", url);
-
- // get individual terms from highlight string
- const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
- if (terms.length === 0) return; // nothing to do
-
- // There should never be more than one element matching "div.body"
- const divBody = document.querySelectorAll("div.body");
- const body = divBody.length ? divBody[0] : document.querySelector("body");
- window.setTimeout(() => {
- terms.forEach((term) => _highlightText(body, term, "highlighted"));
- }, 10);
-
- const searchBox = document.getElementById("searchbox");
- if (searchBox === null) return;
- searchBox.appendChild(
- document
- .createRange()
- .createContextualFragment(
- '' +
- '' +
- _("Hide Search Matches") +
- "
"
- )
- );
- },
-
- /**
- * helper function to hide the search marks again
- */
- hideSearchWords: () => {
- document
- .querySelectorAll("#searchbox .highlight-link")
- .forEach((el) => el.remove());
- document
- .querySelectorAll("span.highlighted")
- .forEach((el) => el.classList.remove("highlighted"));
- localStorage.removeItem("sphinx_highlight_terms")
- },
-
- initEscapeListener: () => {
- // only install a listener if it is really needed
- if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return;
-
- document.addEventListener("keydown", (event) => {
- // bail for input elements
- if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
- // bail with special keys
- if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
- if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
- SphinxHighlight.hideSearchWords();
- event.preventDefault();
- }
- });
- },
-};
-
-_ready(() => {
- /* Do not call highlightSearchWords() when we are on the search page.
- * It will highlight words from the *previous* search query.
- */
- if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords();
- SphinxHighlight.initEscapeListener();
-});
diff --git a/pr-preview-academy/pr-1250/_static/styles/pydata-sphinx-theme.css b/pr-preview-academy/pr-1250/_static/styles/pydata-sphinx-theme.css
deleted file mode 100644
index d26dd09d8f..0000000000
--- a/pr-preview-academy/pr-1250/_static/styles/pydata-sphinx-theme.css
+++ /dev/null
@@ -1,32 +0,0 @@
-@charset "UTF-8";
-/*!
- * Bootstrap v5.3.3 (https://getbootstrap.com/)
- * Copyright 2011-2024 The Bootstrap Authors
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33,37,41,.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33,37,41,.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0,0,0,.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0,0,0,.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0,0,0,.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0,0,0,.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0,0,0,.075);--bs-focus-ring-width:0.1875rem;--bs-focus-ring-opacity:1;--bs-focus-ring-color:var(--pst-color-accent);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222,226,230,.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222,226,230,.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:hsla(0,0%,100%,.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f;color-scheme:dark}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--bs-body-bg);color:var(--bs-body-color);font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);margin:0;text-align:var(--bs-body-text-align)}hr{border-top:var(--bs-border-width) solid;color:inherit;margin:1rem 0;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:var(--bs-heading-color);font-weight:500;line-height:1.2;margin-bottom:.5rem;margin-top:0}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-bottom:1rem;margin-top:0}abbr[title]{cursor:help;text-decoration:underline dotted;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-left:2rem}dl,ol,ul{margin-bottom:1rem;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{background-color:var(--bs-highlight-bg);color:var(--bs-highlight-color);padding:.1875em}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1))}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;font-size:.875em;margin-bottom:1rem;margin-top:0;overflow:auto}pre code{color:inherit;font-size:inherit;word-break:normal}code{word-wrap:break-word;color:var(--bs-code-color);font-size:.875em}a>code{color:inherit}kbd{background-color:var(--bs-body-color);border-radius:.25rem;color:var(--bs-body-bg);font-size:.875em;padding:.1875rem .375rem}kbd kbd{font-size:1em;padding:0}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{border-collapse:collapse;caption-side:bottom}caption{color:var(--bs-secondary-color);padding-bottom:.5rem;padding-top:.5rem;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border:0 solid;border-color:inherit}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{border-style:none;padding:0}textarea{resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{float:left;font-size:calc(1.275rem + .3vw);line-height:inherit;margin-bottom:.5rem;padding:0;width:100%}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{-webkit-appearance:button;font:inherit}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-inline,.list-unstyled{list-style:none;padding-left:0}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{font-size:1.25rem;margin-bottom:1rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{color:#6c757d;font-size:.875em;margin-bottom:1rem;margin-top:-1rem}.blockquote-footer:before{content:"— "}.img-fluid,.img-thumbnail{height:auto;max-width:100%}.img-thumbnail{background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);padding:.25rem}.figure{display:inline-block}.figure-img{line-height:1;margin-bottom:.5rem}.figure-caption{color:var(--bs-secondary-color);font-size:.875em}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-left:auto;margin-right:auto;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}@media (min-width:540px){.container,.container-sm{max-width:540px}}@media (min-width:720px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:960px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1400px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:540px;--bs-breakpoint-md:720px;--bs-breakpoint-lg:960px;--bs-breakpoint-xl:1200px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--bs-gutter-x)*-.5);margin-right:calc(var(--bs-gutter-x)*-.5);margin-top:calc(var(--bs-gutter-y)*-1)}.row>*{flex-shrink:0;margin-top:var(--bs-gutter-y);max-width:100%;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:540px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:720px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:960px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb),0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb),0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb),0.075);border-color:var(--bs-table-border-color);margin-bottom:1rem;vertical-align:top;width:100%}.table>:not(caption)>*>*{background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)));color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));padding:.5rem}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width)*2) solid}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped-columns>:not(caption)>tr>:nth-child(2n),.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000}.table-primary,.table-secondary{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000}.table-info,.table-success{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000}.table-danger,.table-warning{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000}.table-dark,.table-light{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (max-width:539.98px){.table-responsive-sm{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:719.98px){.table-responsive-md{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:959.98px){.table-responsive-lg{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:1199.98px){.table-responsive-xl{-webkit-overflow-scrolling:touch;overflow-x:auto}}.form-label{margin-bottom:.5rem}.col-form-label{font-size:inherit;line-height:1.5;margin-bottom:0;padding-bottom:calc(.375rem + var(--bs-border-width));padding-top:calc(.375rem + var(--bs-border-width))}.col-form-label-lg{font-size:1.25rem;padding-bottom:calc(.5rem + var(--bs-border-width));padding-top:calc(.5rem + var(--bs-border-width))}.col-form-label-sm{font-size:.875rem;padding-bottom:calc(.25rem + var(--bs-border-width));padding-top:calc(.25rem + var(--bs-border-width))}.form-text{color:var(--bs-secondary-color);font-size:.875em;margin-top:.25rem}.form-control{appearance:none;background-clip:padding-box;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);color:var(--bs-body-color);display:block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{background-color:var(--bs-body-bg);border-color:#86b7fe;box-shadow:0 0 0 .1875rem var(--pst-color-accent);color:var(--bs-body-color);outline:0}.form-control::-webkit-date-and-time-value{height:1.5em;margin:0;min-width:85px}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{background-color:var(--bs-tertiary-bg);border:0 solid;border-color:inherit;border-inline-end-width:var(--bs-border-width);border-radius:0;color:var(--bs-body-color);margin:-.375rem -.75rem;margin-inline-end:.75rem;padding:.375rem .75rem;pointer-events:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0;color:var(--bs-body-color);display:block;line-height:1.5;margin-bottom:0;padding:.375rem 0;width:100%}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{border-radius:var(--bs-border-radius-sm);font-size:.875rem;min-height:calc(1.5em + .5rem + var(--bs-border-width)*2);padding:.25rem .5rem}.form-control-sm::file-selector-button{margin:-.25rem -.5rem;margin-inline-end:.5rem;padding:.25rem .5rem}.form-control-lg{border-radius:var(--bs-border-radius-lg);font-size:1.25rem;min-height:calc(1.5em + 1rem + var(--bs-border-width)*2);padding:.5rem 1rem}.form-control-lg::file-selector-button{margin:-.5rem -1rem;margin-inline-end:1rem;padding:.5rem 1rem}textarea.form-control{min-height:calc(1.5em + .75rem + var(--bs-border-width)*2)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + var(--bs-border-width)*2)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + var(--bs-border-width)*2)}.form-control-color{height:calc(1.5em + .75rem + var(--bs-border-width)*2);padding:.375rem;width:3rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + var(--bs-border-width)*2)}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + var(--bs-border-width)*2)}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);color:var(--bs-body-color);display:block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem 2.25rem .375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:0}.form-select[multiple],.form-select[size]:not([size="1"]){background-image:none;padding-right:.75rem}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{border-radius:var(--bs-border-radius-sm);font-size:.875rem;padding-bottom:.25rem;padding-left:.5rem;padding-top:.25rem}.form-select-lg{border-radius:var(--bs-border-radius-lg);font-size:1.25rem;padding-bottom:.5rem;padding-left:1rem;padding-top:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E")}.form-check{display:block;margin-bottom:.125rem;min-height:1.5rem;padding-left:1.5em}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-left:0;padding-right:1.5em;text-align:right}.form-check-reverse .form-check-input{float:right;margin-left:0;margin-right:-1.5em}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-position:50%;background-repeat:no-repeat;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);flex-shrink:0;height:1em;margin-top:.25em;print-color-adjust:exact;vertical-align:top;width:1em}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:0}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3E%3C/svg%3E")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23fff'/%3E%3C/svg%3E")}.form-check-input[type=checkbox]:indeterminate{--bs-form-check-bg-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3E%3C/svg%3E");background-color:#0d6efd;border-color:#0d6efd}.form-check-input:disabled{filter:none;opacity:.5;pointer-events:none}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(0, 0, 0, 0.25)'/%3E%3C/svg%3E");background-image:var(--bs-form-switch-bg);background-position:0;border-radius:2em;margin-left:-2.5em;transition:background-position .15s ease-in-out;width:2em}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386b7fe'/%3E%3C/svg%3E")}.form-switch .form-check-input:checked{--bs-form-switch-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");background-position:100%}.form-switch.form-check-reverse{padding-left:0;padding-right:2.5em}.form-switch.form-check-reverse .form-check-input{margin-left:0;margin-right:-2.5em}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{clip:rect(0,0,0,0);pointer-events:none;position:absolute}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{filter:none;opacity:.65;pointer-events:none}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(255, 255, 255, 0.25)'/%3E%3C/svg%3E")}.form-range{appearance:none;background-color:transparent;height:1.375rem;padding:0;width:100%}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .1875rem var(--pst-color-accent)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .1875rem var(--pst-color-accent)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;height:1rem;margin-top:-.25rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem;color:transparent;cursor:pointer;height:.5rem;width:100%}.form-range::-moz-range-thumb{appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;height:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem;color:transparent;cursor:pointer;height:.5rem;width:100%}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + var(--bs-border-width)*2);line-height:1.25;min-height:calc(3.5rem + var(--bs-border-width)*2)}.form-floating>label{border:var(--bs-border-width) solid transparent;height:100%;left:0;overflow:hidden;padding:1rem .75rem;pointer-events:none;position:absolute;text-align:start;text-overflow:ellipsis;top:0;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out;white-space:nowrap;z-index:2}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-select{padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label:after,.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-select~label:after{background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius);content:"";height:1.5em;inset:1rem .375rem;position:absolute;z-index:-1}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label:after,.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{flex:1 1 auto;min-width:0;position:relative;width:1%}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{align-items:center;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);color:var(--bs-body-color);display:flex;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem .75rem;text-align:center;white-space:nowrap}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{border-radius:var(--bs-border-radius-lg);font-size:1.25rem;padding:.5rem 1rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{border-radius:var(--bs-border-radius-sm);font-size:.875rem;padding:.25rem .5rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-bottom-right-radius:0;border-top-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:calc(var(--bs-border-width)*-1)}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-bottom-left-radius:0;border-top-left-radius:0}.valid-feedback{color:var(--bs-form-valid-color);display:none;font-size:.875em;margin-top:.25rem;width:100%}.valid-tooltip{background-color:var(--bs-success);border-radius:var(--bs-border-radius);color:#fff;display:none;font-size:.875rem;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .1875rem rgba(var(--bs-success-rgb),1)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem);padding-right:calc(1.5em + .75rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem);padding-right:4.125rem}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .1875rem rgba(var(--bs-success-rgb),1)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .1875rem rgba(var(--bs-success-rgb),1)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{color:var(--bs-form-invalid-color);display:none;font-size:.875em;margin-top:.25rem;width:100%}.invalid-tooltip{background-color:var(--bs-danger);border-radius:var(--bs-border-radius);color:#fff;display:none;font-size:.875rem;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .1875rem rgba(var(--bs-danger-rgb),1)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem);padding-right:calc(1.5em + .75rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem);padding-right:4.125rem}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .1875rem rgba(var(--bs-danger-rgb),1)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .1875rem rgba(var(--bs-danger-rgb),1)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.1875rem rgba(var(--bs-btn-focus-shadow-rgb),.5);background-color:var(--bs-btn-bg);border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);color:var(--bs-btn-color);cursor:pointer;display:inline-block;font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;user-select:none;vertical-align:middle}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);color:var(--bs-btn-hover-color)}.btn-check+.btn:hover{background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);color:var(--bs-btn-color)}.btn:focus-visible{background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);box-shadow:var(--bs-btn-focus-box-shadow);color:var(--bs-btn-hover-color);outline:0}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);box-shadow:var(--bs-btn-focus-box-shadow);outline:0}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color);color:var(--bs-btn-active-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);color:var(--bs-btn-disabled-color);opacity:var(--bs-btn-disabled-opacity);pointer-events:none}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{height:auto;transition:width .35s ease;width:0}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--pst-color-surface);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:var(--pst-color-surface);--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;background-clip:padding-box;background-color:var(--bs-dropdown-bg);border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius);color:var(--bs-dropdown-color);display:none;font-size:var(--bs-dropdown-font-size);list-style:none;margin:0;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);position:absolute;text-align:left;z-index:var(--bs-dropdown-zindex)}.dropdown-menu[data-bs-popper]{left:0;margin-top:var(--bs-dropdown-spacer);top:100%}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{left:auto;right:0}@media (min-width:540px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{left:auto;right:0}}@media (min-width:720px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{left:auto;right:0}}@media (min-width:960px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{left:auto;right:0}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{left:auto;right:0}}.dropup .dropdown-menu[data-bs-popper]{bottom:100%;margin-bottom:var(--bs-dropdown-spacer);margin-top:0;top:auto}.dropup .dropdown-toggle:after{border-bottom:.3em solid;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:0;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{left:100%;margin-left:var(--bs-dropdown-spacer);margin-top:0;right:auto;top:0}.dropend .dropdown-toggle:after{border-bottom:.3em solid transparent;border-left:.3em solid;border-right:0;border-top:.3em solid transparent;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{left:auto;margin-right:var(--bs-dropdown-spacer);margin-top:0;right:100%;top:0}.dropstart .dropdown-toggle:after{content:"";display:inline-block;display:none;margin-left:.255em;vertical-align:.255em}.dropstart .dropdown-toggle:before{border-bottom:.3em solid transparent;border-right:.3em solid;border-top:.3em solid transparent;content:"";display:inline-block;margin-right:.255em;vertical-align:.255em}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{border-top:1px solid var(--bs-dropdown-divider-bg);height:0;margin:var(--bs-dropdown-divider-margin-y) 0;opacity:1;overflow:hidden}.dropdown-item{background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0);clear:both;color:var(--bs-dropdown-link-color);display:block;font-weight:400;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);text-align:inherit;text-decoration:none;white-space:nowrap;width:100%}.dropdown-item:focus,.dropdown-item:hover{background-color:var(--bs-dropdown-link-hover-bg);color:var(--bs-dropdown-link-hover-color)}.dropdown-item.active,.dropdown-item:active{background-color:var(--bs-dropdown-link-active-bg);color:var(--bs-dropdown-link-active-color);text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{background-color:transparent;color:var(--bs-dropdown-link-disabled-color);pointer-events:none}.dropdown-menu.show{display:block}.dropdown-header{color:var(--bs-dropdown-header-color);display:block;font-size:.875rem;margin-bottom:0;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);white-space:nowrap}.dropdown-item-text{color:var(--bs-dropdown-link-color);display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:var(--pst-color-surface);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:var(--pst-color-surface);--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{display:inline-flex;position:relative;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{flex:1 1 auto;position:relative}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width)*-1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-bottom-left-radius:0;border-top-left-radius:0}.dropdown-toggle-split{padding-left:.5625rem;padding-right:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.375rem;padding-right:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.btn-group-vertical{align-items:flex-start;flex-direction:column;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width)*-1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-link{background:none;border:0;color:var(--bs-nav-link-color);display:block;font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:0}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);cursor:default;pointer-events:none}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius);margin-bottom:calc(var(--bs-nav-tabs-border-width)*-1)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:var(--bs-nav-tabs-link-hover-border-color);isolation:isolate}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color);color:var(--bs-nav-tabs-link-active-color)}.nav-tabs .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;margin-top:calc(var(--bs-nav-tabs-border-width)*-1)}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:var(--bs-nav-pills-link-active-bg);color:var(--bs-nav-pills-link-active-color)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{border-bottom:var(--bs-nav-underline-border-width) solid transparent;padding-left:0;padding-right:0}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{border-bottom-color:currentcolor;color:var(--bs-nav-underline-link-active-color);font-weight:700}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb),0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb),0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb),0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb),1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb),1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb),1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(33, 37, 41, 0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb),0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.1875rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);position:relative}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl{align-items:center;display:flex;flex-wrap:inherit;justify-content:space-between}.navbar-brand{color:var(--bs-navbar-brand-color);font-size:var(--bs-navbar-brand-font-size);margin-right:var(--bs-navbar-brand-margin-end);padding-bottom:var(--bs-navbar-brand-padding-y);padding-top:var(--bs-navbar-brand-padding-y);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;list-style:none;margin-bottom:0;padding-left:0}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{color:var(--bs-navbar-color);padding-bottom:.5rem;padding-top:.5rem}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);color:var(--bs-navbar-color);font-size:var(--bs-navbar-toggler-font-size);line-height:1;padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width);outline:0;text-decoration:none}.navbar-toggler-icon{background-image:var(--bs-navbar-toggler-icon-bg);background-position:50%;background-repeat:no-repeat;background-size:100%;display:inline-block;height:1.5em;vertical-align:middle;width:1.5em}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:540px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-left:var(--bs-navbar-nav-link-padding-x);padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{background-color:transparent!important;border:0!important;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:720px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-left:var(--bs-navbar-nav-link-padding-x);padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{background-color:transparent!important;border:0!important;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:960px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-left:var(--bs-navbar-nav-link-padding-x);padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{background-color:transparent!important;border:0!important;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-left:var(--bs-navbar-nav-link-padding-x);padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{background-color:transparent!important;border:0!important;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:var(--bs-navbar-nav-link-padding-x);padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{background-color:transparent!important;border:0!important;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:hsla(0,0%,100%,.55);--bs-navbar-hover-color:hsla(0,0%,100%,.75);--bs-navbar-disabled-color:hsla(0,0%,100%,.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:hsla(0,0%,100%,.1)}.navbar-dark,.navbar[data-bs-theme=dark],[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb),0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;word-wrap:break-word;background-clip:border-box;background-color:var(--bs-card-bg);border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius);color:var(--bs-body-color);display:flex;flex-direction:column;height:var(--bs-card-height);min-width:0;position:relative}.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-bottom:inherit;border-top:inherit}.card>.list-group:first-child{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius);border-top-width:0}.card>.list-group:last-child{border-bottom-left-radius:var(--bs-card-inner-border-radius);border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{color:var(--bs-card-color);flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x)}.card-title{color:var(--bs-card-title-color);margin-bottom:var(--bs-card-title-spacer-y)}.card-subtitle{color:var(--bs-card-subtitle-color);margin-top:calc(var(--bs-card-title-spacer-y)*-.5)}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color);color:var(--bs-card-cap-color);margin-bottom:0;padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color);color:var(--bs-card-cap-color);padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{border-bottom:0;margin-bottom:calc(var(--bs-card-cap-padding-y)*-1);margin-left:calc(var(--bs-card-cap-padding-x)*-.5);margin-right:calc(var(--bs-card-cap-padding-x)*-.5)}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-left:calc(var(--bs-card-cap-padding-x)*-.5);margin-right:calc(var(--bs-card-cap-padding-x)*-.5)}.card-img-overlay{border-radius:var(--bs-card-inner-border-radius);bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);position:absolute;right:0;top:0}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-left-radius:var(--bs-card-inner-border-radius);border-bottom-right-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:540px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{border-left:0;margin-left:0}.card-group>.card:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 5 6 6 6-6'/%3E%3C/svg%3E");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 5 6 6 6-6'/%3E%3C/svg%3E");--bs-accordion-btn-focus-box-shadow:0 0 0 0.1875rem var(--pst-color-accent);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{align-items:center;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;color:var(--bs-accordion-btn-color);display:flex;font-size:1rem;overflow-anchor:none;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);position:relative;text-align:left;transition:var(--bs-accordion-transition);width:100%}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(var(--bs-accordion-border-width)*-1) 0 var(--bs-accordion-border-color);color:var(--bs-accordion-active-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);content:"";flex-shrink:0;height:var(--bs-accordion-btn-icon-width);margin-left:auto;transition:var(--bs-accordion-btn-icon-transition);width:var(--bs-accordion-btn-icon-width)}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow);outline:0;z-index:3}.accordion-header{margin-bottom:0}.accordion-item{background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);color:var(--bs-accordion-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-left-radius:var(--bs-accordion-border-radius);border-bottom-right-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-left-radius:var(--bs-accordion-inner-border-radius);border-bottom-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-left-radius:var(--bs-accordion-border-radius);border-bottom-right-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-left:0;border-radius:0;border-right:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-collapse,.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");--bs-accordion-btn-active-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius);display:flex;flex-wrap:wrap;font-size:var(--bs-breadcrumb-font-size);list-style:none;margin-bottom:var(--bs-breadcrumb-margin-bottom);padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider,"/");float:left;padding-right:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.1875rem var(--pst-color-accent);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;list-style:none;padding-left:0}.page-link{background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);color:var(--bs-pagination-color);display:block;font-size:var(--bs-pagination-font-size);padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);position:relative;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color);color:var(--bs-pagination-hover-color);z-index:2}.page-link:focus{background-color:var(--bs-pagination-focus-bg);box-shadow:var(--bs-pagination-focus-box-shadow);color:var(--bs-pagination-focus-color);outline:0;z-index:3}.active>.page-link,.page-link.active{background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color);color:var(--bs-pagination-active-color);z-index:3}.disabled>.page-link,.page-link.disabled{background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color);color:var(--bs-pagination-disabled-color);pointer-events:none}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width)*-1)}.page-item:first-child .page-link{border-bottom-left-radius:var(--bs-pagination-border-radius);border-top-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-bottom-right-radius:var(--bs-pagination-border-radius);border-top-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);border-radius:var(--bs-badge-border-radius);color:var(--bs-badge-color);display:inline-block;font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);text-align:center;vertical-align:baseline;white-space:nowrap}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius);color:var(--bs-alert-color);margin-bottom:var(--bs-alert-margin-bottom);padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);position:relative}.alert-heading{color:inherit}.alert-link{color:var(--bs-alert-link-color);font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{padding:1.25rem 1rem;position:absolute;right:0;top:0;z-index:2}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius);display:flex;font-size:var(--bs-progress-font-size);height:var(--bs-progress-height);overflow:hidden}.progress-bar{background-color:var(--bs-progress-bar-bg);color:var(--bs-progress-bar-color);display:flex;flex-direction:column;justify-content:center;overflow:hidden;text-align:center;transition:var(--bs-progress-bar-transition);white-space:nowrap}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;border-radius:var(--bs-list-group-border-radius);display:flex;flex-direction:column;margin-bottom:0;padding-left:0}.list-group-numbered{counter-reset:section;list-style-type:none}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{color:var(--bs-list-group-action-color);text-align:inherit;width:100%}.list-group-item-action:focus,.list-group-item-action:hover{background-color:var(--bs-list-group-action-hover-bg);color:var(--bs-list-group-action-hover-color);text-decoration:none;z-index:1}.list-group-item-action:active{background-color:var(--bs-list-group-action-active-bg);color:var(--bs-list-group-action-active-color)}.list-group-item{background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);color:var(--bs-list-group-color);display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);position:relative;text-decoration:none}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{background-color:var(--bs-list-group-disabled-bg);color:var(--bs-list-group-disabled-color);pointer-events:none}.list-group-item.active{background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color);color:var(--bs-list-group-active-color);z-index:2}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{border-top-width:var(--bs-list-group-border-width);margin-top:calc(var(--bs-list-group-border-width)*-1)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:var(--bs-list-group-border-radius)}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal>.list-group-item+.list-group-item.active{border-left-width:var(--bs-list-group-border-width);margin-left:calc(var(--bs-list-group-border-width)*-1)}@media (min-width:540px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:var(--bs-list-group-border-radius)}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{border-left-width:var(--bs-list-group-border-width);margin-left:calc(var(--bs-list-group-border-width)*-1)}}@media (min-width:720px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:var(--bs-list-group-border-radius)}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal-md>.list-group-item+.list-group-item.active{border-left-width:var(--bs-list-group-border-width);margin-left:calc(var(--bs-list-group-border-width)*-1)}}@media (min-width:960px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:var(--bs-list-group-border-radius)}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{border-left-width:var(--bs-list-group-border-width);margin-left:calc(var(--bs-list-group-border-width)*-1)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:var(--bs-list-group-border-radius)}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{border-left-width:var(--bs-list-group-border-width);margin-left:calc(var(--bs-list-group-border-width)*-1)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3E%3C/svg%3E");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.1875rem var(--pst-color-accent);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;box-sizing:content-box;height:1em;opacity:var(--bs-btn-close-opacity);padding:.25em;width:1em}.btn-close,.btn-close:hover{color:var(--bs-btn-close-color)}.btn-close:hover{opacity:var(--bs-btn-close-hover-opacity);text-decoration:none}.btn-close:focus{box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity);outline:0}.btn-close.disabled,.btn-close:disabled{opacity:var(--bs-btn-close-disabled-opacity);pointer-events:none;user-select:none}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb),0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb),0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);background-clip:padding-box;background-color:var(--bs-toast-bg);border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);border-radius:var(--bs-toast-border-radius);box-shadow:var(--bs-toast-box-shadow);color:var(--bs-toast-color);font-size:var(--bs-toast-font-size);max-width:100%;pointer-events:auto;width:var(--bs-toast-max-width)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;max-width:100%;pointer-events:none;position:absolute;width:max-content;z-index:var(--bs-toast-zindex)}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{align-items:center;background-clip:padding-box;background-color:var(--bs-toast-header-bg);border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));color:var(--bs-toast-header-color);display:flex;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x)}.toast-header .btn-close{margin-left:var(--bs-toast-padding-x);margin-right:calc(var(--bs-toast-padding-x)*-.5)}.toast-body{word-wrap:break-word;padding:var(--bs-toast-padding-x)}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);display:none;height:100%;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100%;z-index:var(--bs-modal-zindex)}.modal-dialog{margin:var(--bs-modal-margin);pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{background-clip:padding-box;background-color:var(--bs-modal-bg);border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);color:var(--bs-modal-color);display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;background-color:var(--bs-backdrop-bg);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:var(--bs-backdrop-zindex)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{align-items:center;border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius);display:flex;flex-shrink:0;padding:var(--bs-modal-header-padding)}.modal-header .btn-close{margin:calc(var(--bs-modal-header-padding-y)*-.5) calc(var(--bs-modal-header-padding-x)*-.5) calc(var(--bs-modal-header-padding-y)*-.5) auto;padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5)}.modal-title{line-height:var(--bs-modal-title-line-height);margin-bottom:0}.modal-body{flex:1 1 auto;padding:var(--bs-modal-padding);position:relative}.modal-footer{align-items:center;background-color:var(--bs-modal-footer-bg);border-bottom-left-radius:var(--bs-modal-inner-border-radius);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media (min-width:540px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{margin-left:auto;margin-right:auto;max-width:var(--bs-modal-width)}.modal-sm{--bs-modal-width:300px}}@media (min-width:960px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:539.98px){.modal-fullscreen-sm-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-sm-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:719.98px){.modal-fullscreen-md-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-md-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:959.98px){.modal-fullscreen-lg-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-lg-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-xl-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;word-wrap:break-word;display:block;font-family:var(--bs-font-sans-serif);font-size:var(--bs-tooltip-font-size);font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;margin:var(--bs-tooltip-margin);opacity:0;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:var(--bs-tooltip-zindex)}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;height:var(--bs-tooltip-arrow-height);width:var(--bs-tooltip-arrow-width)}.tooltip .tooltip-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(var(--bs-tooltip-arrow-height)*-1)}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{border-top-color:var(--bs-tooltip-bg);border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;top:-1px}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{height:var(--bs-tooltip-arrow-width);left:calc(var(--bs-tooltip-arrow-height)*-1);width:var(--bs-tooltip-arrow-height)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{border-right-color:var(--bs-tooltip-bg);border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;right:-1px}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(var(--bs-tooltip-arrow-height)*-1)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{border-bottom-color:var(--bs-tooltip-bg);border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);bottom:-1px}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{height:var(--bs-tooltip-arrow-width);right:calc(var(--bs-tooltip-arrow-height)*-1);width:var(--bs-tooltip-arrow-height)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{border-left-color:var(--bs-tooltip-bg);border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);left:-1px}.tooltip-inner{background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius);color:var(--bs-tooltip-color);max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);text-align:center}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);word-wrap:break-word;background-clip:padding-box;background-color:var(--bs-popover-bg);border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius);display:block;font-family:var(--bs-font-sans-serif);font-size:var(--bs-popover-font-size);font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;max-width:var(--bs-popover-max-width);text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:var(--bs-popover-zindex)}.popover .popover-arrow{display:block;height:var(--bs-popover-arrow-height);width:var(--bs-popover-arrow-width)}.popover .popover-arrow:after,.popover .popover-arrow:before{border:0 solid transparent;content:"";display:block;position:absolute}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc((var(--bs-popover-arrow-height))*-1 - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{border-top-color:var(--bs-popover-arrow-border);bottom:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{border-top-color:var(--bs-popover-bg);bottom:var(--bs-popover-border-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{height:var(--bs-popover-arrow-width);left:calc((var(--bs-popover-arrow-height))*-1 - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{border-right-color:var(--bs-popover-arrow-border);left:0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{border-right-color:var(--bs-popover-bg);left:var(--bs-popover-border-width)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc((var(--bs-popover-arrow-height))*-1 - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{border-bottom-color:var(--bs-popover-arrow-border);top:0}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{border-bottom-color:var(--bs-popover-bg);top:var(--bs-popover-border-width)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg);content:"";display:block;left:50%;margin-left:calc(var(--bs-popover-arrow-width)*-.5);position:absolute;top:0;width:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{height:var(--bs-popover-arrow-width);right:calc((var(--bs-popover-arrow-height))*-1 - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{border-left-color:var(--bs-popover-arrow-border);right:0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{border-left-color:var(--bs-popover-bg);right:var(--bs-popover-border-width)}.popover-header{background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius);color:var(--bs-popover-header-color);font-size:var(--bs-popover-header-font-size);margin-bottom:0;padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x)}.popover-header:empty{display:none}.popover-body{color:var(--bs-popover-body-color);padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{overflow:hidden;position:relative;width:100%}.carousel-inner:after{clear:both;content:"";display:block}.carousel-item{backface-visibility:hidden;display:none;float:left;margin-right:-100%;position:relative;transition:transform .6s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transform:none;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{opacity:1;z-index:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{opacity:0;transition:opacity 0s .6s;z-index:0}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{align-items:center;background:none;border:0;bottom:0;color:#fff;display:flex;justify-content:center;opacity:.5;padding:0;position:absolute;text-align:center;top:0;transition:opacity .15s ease;width:15%;z-index:1}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;opacity:.9;outline:0;text-decoration:none}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{background-position:50%;background-repeat:no-repeat;background-size:100% 100%;display:inline-block;height:2rem;width:2rem}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E")}.carousel-indicators{bottom:0;display:flex;justify-content:center;left:0;margin-bottom:1rem;margin-left:15%;margin-right:15%;padding:0;position:absolute;right:0;z-index:2}.carousel-indicators [data-bs-target]{background-clip:padding-box;background-color:#fff;border:0;border-bottom:10px solid transparent;border-top:10px solid transparent;box-sizing:content-box;cursor:pointer;flex:0 1 auto;height:3px;margin-left:3px;margin-right:3px;opacity:.5;padding:0;text-indent:-999px;transition:opacity .6s ease;width:30px}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{bottom:1.25rem;color:#fff;left:15%;padding-bottom:1.25rem;padding-top:1.25rem;position:absolute;right:15%;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);border-radius:50%;display:inline-block;height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);width:var(--bs-spinner-width)}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border-right-color:currentcolor;border:var(--bs-spinner-border-width) solid;border-right:var(--bs-spinner-border-width) solid transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:539.98px){.offcanvas-sm{background-clip:padding-box;background-color:var(--bs-offcanvas-bg);bottom:0;color:var(--bs-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--bs-offcanvas-transition);visibility:hidden;z-index:var(--bs-offcanvas-zindex)}}@media (max-width:539.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:539.98px){.offcanvas-sm.offcanvas-start{border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--bs-offcanvas-width)}.offcanvas-sm.offcanvas-end{border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--bs-offcanvas-width)}.offcanvas-sm.offcanvas-top{border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom,.offcanvas-sm.offcanvas-top{height:var(--bs-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-sm.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:540px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (max-width:719.98px){.offcanvas-md{background-clip:padding-box;background-color:var(--bs-offcanvas-bg);bottom:0;color:var(--bs-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--bs-offcanvas-transition);visibility:hidden;z-index:var(--bs-offcanvas-zindex)}}@media (max-width:719.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:719.98px){.offcanvas-md.offcanvas-start{border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--bs-offcanvas-width)}.offcanvas-md.offcanvas-end{border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--bs-offcanvas-width)}.offcanvas-md.offcanvas-top{border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom,.offcanvas-md.offcanvas-top{height:var(--bs-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-md.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:720px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (max-width:959.98px){.offcanvas-lg{background-clip:padding-box;background-color:var(--bs-offcanvas-bg);bottom:0;color:var(--bs-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--bs-offcanvas-transition);visibility:hidden;z-index:var(--bs-offcanvas-zindex)}}@media (max-width:959.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:959.98px){.offcanvas-lg.offcanvas-start{border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--bs-offcanvas-width)}.offcanvas-lg.offcanvas-end{border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--bs-offcanvas-width)}.offcanvas-lg.offcanvas-top{border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom,.offcanvas-lg.offcanvas-top{height:var(--bs-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-lg.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:960px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (max-width:1199.98px){.offcanvas-xl{background-clip:padding-box;background-color:var(--bs-offcanvas-bg);bottom:0;color:var(--bs-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--bs-offcanvas-transition);visibility:hidden;z-index:var(--bs-offcanvas-zindex)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--bs-offcanvas-width)}.offcanvas-xl.offcanvas-end{border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--bs-offcanvas-width)}.offcanvas-xl.offcanvas-top{border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom,.offcanvas-xl.offcanvas-top{height:var(--bs-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-xl.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}.offcanvas{background-clip:padding-box;background-color:var(--bs-offcanvas-bg);bottom:0;color:var(--bs-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--bs-offcanvas-transition);visibility:hidden;z-index:var(--bs-offcanvas-zindex)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--bs-offcanvas-width)}.offcanvas.offcanvas-end{border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--bs-offcanvas-width)}.offcanvas.offcanvas-top{border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas.offcanvas-bottom,.offcanvas.offcanvas-top{height:var(--bs-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{background-color:#000;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1040}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{align-items:center;display:flex;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{margin:calc(var(--bs-offcanvas-padding-y)*-.5) calc(var(--bs-offcanvas-padding-x)*-.5) calc(var(--bs-offcanvas-padding-y)*-.5) auto;padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5)}.offcanvas-title{line-height:var(--bs-offcanvas-title-line-height);margin-bottom:0}.offcanvas-body{flex-grow:1;overflow-y:auto;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.placeholder{background-color:currentcolor;cursor:wait;display:inline-block;min-height:1em;opacity:.5;vertical-align:middle}.placeholder.btn:before{content:"";display:inline-block}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{animation:placeholder-wave 2s linear infinite;mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-size:200% 100%}@keyframes placeholder-wave{to{mask-position:-200% 0}}.clearfix:after{clear:both;content:"";display:block}.text-bg-primary{background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-secondary{background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-success{background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-info{background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-warning{background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-danger{background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-light{background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-dark{background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important;color:#fff!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);outline:0}.icon-link{align-items:center;backface-visibility:hidden;display:inline-flex;gap:.375rem;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em}.icon-link>.bi{fill:currentcolor;flex-shrink:0;height:1em;transition:transform .2s ease-in-out;width:1em}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{content:"";display:block;padding-top:var(--bs-aspect-ratio)}.ratio>*{height:100%;left:0;position:absolute;top:0;width:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{top:0}.fixed-bottom,.fixed-top{left:0;position:fixed;right:0;z-index:1030}.fixed-bottom{bottom:0}.sticky-top{top:0}.sticky-bottom,.sticky-top{position:sticky;z-index:1020}.sticky-bottom{bottom:0}@media (min-width:540px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{bottom:0;position:sticky;z-index:1020}}@media (min-width:720px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{bottom:0;position:sticky;z-index:1020}}@media (min-width:960px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{bottom:0;position:sticky;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{bottom:0;position:sticky;z-index:1020}}.hstack{align-items:center;flex-direction:row}.hstack,.vstack{align-self:stretch;display:flex}.vstack{flex:1 1 auto;flex-direction:column}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;white-space:nowrap!important;width:1px!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{align-self:stretch;background-color:currentcolor;display:inline-block;min-height:1em;opacity:.25;width:var(--bs-border-width)}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb),var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb),var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb),var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb),var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb),var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb),var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb),var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb),var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-bottom:0!important;margin-top:0!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.py-0{padding-bottom:0!important;padding-top:0!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:hsla(0,0%,100%,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-bottom-right-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.rounded-end-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-bottom-right-radius:50%!important;border-top-right-radius:50%!important}.rounded-end-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-left-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.rounded-bottom-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-left-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-bottom-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:540px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-bottom:0!important;margin-top:0!important}.my-sm-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-sm-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-sm-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-sm-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-sm-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-sm-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right:3rem!important}.py-sm-0{padding-bottom:0!important;padding-top:0!important}.py-sm-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-sm-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-sm-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-sm-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-sm-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:720px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-bottom:0!important;margin-top:0!important}.my-md-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-md-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-md-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-md-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-md-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-md-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right:3rem!important}.py-md-0{padding-bottom:0!important;padding-top:0!important}.py-md-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-md-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-md-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-md-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-md-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:960px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-bottom:0!important;margin-top:0!important}.my-lg-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-lg-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-lg-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-lg-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-lg-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-lg-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right:3rem!important}.py-lg-0{padding-bottom:0!important;padding-top:0!important}.py-lg-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-lg-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-lg-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-lg-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-lg-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-bottom:0!important;margin-top:0!important}.my-xl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xl-0{padding-bottom:0!important;padding-top:0!important}.py-xl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:Font Awesome\ 6 Free}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);line-height:inherit;position:absolute;text-align:center;width:var(--fa-li-width,2em)}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-beat;animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-bounce;animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-fade;animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-beat-fade;animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-flip;animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-shake;animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-spin;animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-spin;animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}24%,8%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30 "}.fa-1:before{content:"\31 "}.fa-2:before{content:"\32 "}.fa-3:before{content:"\33 "}.fa-4:before{content:"\34 "}.fa-5:before{content:"\35 "}.fa-6:before{content:"\36 "}.fa-7:before{content:"\37 "}.fa-8:before{content:"\38 "}.fa-9:before{content:"\39 "}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\@"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"K"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"W"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\*"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"I"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"V"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"Q"}.fa-g:before{content:"G"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"E"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"C"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"L"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"Z"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"A"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"P"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\?"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"F"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"H"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"R"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"J"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"O"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"U"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"S"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"N"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"B"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\<"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\>"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"Y"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\+"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\="}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\%"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\#"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"T"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"M"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\!"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\$"}.fa-x:before{content:"X"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"D"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}
-
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:900;src:url(../vendor/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(../vendor/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
-
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:400;src:url(../vendor/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"),url(../vendor/fontawesome/webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}
-
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-display:block;font-family:Font Awesome\ 6 Brands;font-style:normal;font-weight:400;src:url(../vendor/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(../vendor/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-jxl:before{content:"\e67b"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before,.fa-square-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-web-awesome:before{content:"\e682"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-square-web-awesome-stroke:before{content:"\e684"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-square-upwork:before{content:"\e67c"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-square-web-awesome:before{content:"\e683"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-bluesky:before{content:"\e671"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}html{--pst-header-height:4rem;--pst-header-article-height:calc(var(--pst-header-height)*2/3);--pst-sidebar-secondary:17rem;--pst-font-size-base:1rem;--pst-font-size-h1:2.625rem;--pst-font-size-h2:2.125rem;--pst-font-size-h3:1.75rem;--pst-font-size-h4:1.5rem;--pst-font-size-h5:1.25rem;--pst-font-size-h6:1rem;--pst-font-size-milli:0.9rem;--pst-sidebar-font-size:0.9rem;--pst-sidebar-font-size-mobile:1.1rem;--pst-sidebar-header-font-size:1.2rem;--pst-sidebar-header-font-weight:600;--pst-admonition-font-weight-heading:600;--pst-font-weight-caption:300;--pst-font-weight-heading:600;--pst-font-family-base-system:-apple-system,"BlinkMacSystemFont","Segoe UI","Helvetica Neue","Arial",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--pst-font-family-monospace-system:"SFMono-Regular","Menlo","Consolas","Monaco","Liberation Mono","Lucida Console",monospace;--pst-font-family-base:var(--pst-font-family-base-system);--pst-font-family-heading:var(--pst-font-family-base-system);--pst-font-family-monospace:var(--pst-font-family-monospace-system);--pst-font-size-icon:1.5rem;--pst-icon-check-circle:"";--pst-icon-info-circle:"";--pst-icon-exclamation-triangle:"";--pst-icon-exclamation-circle:"";--pst-icon-times-circle:"";--pst-icon-lightbulb:"";--pst-icon-download:"";--pst-icon-angle-left:"";--pst-icon-angle-right:"";--pst-icon-external-link:"";--pst-icon-search-minus:"";--pst-icon-github:"";--pst-icon-gitlab:"";--pst-icon-share:"";--pst-icon-bell:"";--pst-icon-pencil:"";--pst-breadcrumb-divider:"";--pst-icon-admonition-default:var(--pst-icon-bell);--pst-icon-admonition-note:var(--pst-icon-info-circle);--pst-icon-admonition-attention:var(--pst-icon-exclamation-circle);--pst-icon-admonition-caution:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-warning:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-danger:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-error:var(--pst-icon-times-circle);--pst-icon-admonition-hint:var(--pst-icon-lightbulb);--pst-icon-admonition-tip:var(--pst-icon-lightbulb);--pst-icon-admonition-important:var(--pst-icon-exclamation-circle);--pst-icon-admonition-seealso:var(--pst-icon-share);--pst-icon-admonition-todo:var(--pst-icon-pencil);--pst-icon-versionmodified-default:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-added:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-changed:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-deprecated:var(--pst-icon-exclamation-circle);font-size:var(--pst-font-size-base);scroll-padding-top:calc(var(--pst-header-height) + 1rem)}body{background-color:var(--pst-color-background);color:var(--pst-color-text-base);display:flex;flex-direction:column;font-family:var(--pst-font-family-base);font-weight:400;line-height:1.65;min-height:100vh}body::-webkit-scrollbar-track{background-color:var(--pst-color-background)}p{font-size:1em;margin-bottom:1.15rem}p.rubric{border-bottom:1px solid var(--pst-color-border)}p.centered{text-align:center}a{word-wrap:break-word;color:var(--pst-color-link);text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}a:hover{color:var(--pst-color-link-hover);text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}a:active,a:visited{color:var(--pst-color-link)}a:visited:hover{color:var(--pst-color-link-hover)}a.headerlink{color:var(--pst-color-secondary);font-size:.8em;margin-left:.2em;padding:0 4px;text-decoration:none;user-select:none}a.github:before,a.gitlab:before{color:var(--pst-color-text-muted);font:var(--fa-font-brands);margin-right:.25rem}a.github:before{content:var(--pst-icon-github)}a.gitlab:before{content:var(--pst-icon-gitlab)}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:var(--pst-font-family-heading);font-weight:var(--pst-font-weight-heading);line-height:1.15;margin:2.75rem 0 1.05rem}.h1,h1{font-size:var(--pst-font-size-h1);margin-top:0}.h1,.h2,h1,h2{color:var(--pst-color-heading)}.h2,h2{font-size:var(--pst-font-size-h2)}.h3,h3{font-size:var(--pst-font-size-h3)}.h3,.h4,h3,h4{color:var(--pst-color-heading)}.h4,h4{font-size:var(--pst-font-size-h4)}.h5,h5{font-size:var(--pst-font-size-h5)}.h5,.h6,h5,h6{color:var(--pst-color-text-base)}.h6,h6{font-size:var(--pst-font-size-h6)}.small,.text_small,small{font-size:var(--pst-font-size-milli)}hr{border:0;border-top:1px solid var(--pst-color-border)}code,kbd,pre,samp{font-family:var(--pst-font-family-monospace)}kbd{background-color:var(--pst-color-on-background);color:var(--pst-color-text-muted)}kbd:not(.compound){border:1px solid var(--pst-color-border);box-shadow:1px 1px 1px var(--pst-color-shadow);margin:0 .1rem;padding:.1rem .4rem}code{color:var(--pst-color-inline-code)}pre{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;color:var(--pst-color-text-base);line-height:1.2em;margin:1.5em 0;padding:1rem}pre .linenos{opacity:.8;padding-right:10px}#pst-back-to-top{background-color:var(--pst-color-secondary);border:none;color:var(--pst-color-secondary-text);display:none;left:50vw;position:fixed;top:90vh;transform:translate(-50%);z-index:1080}#pst-back-to-top .fa-arrow-up{margin-inline-end:.5em}#pst-back-to-top:hover{background-color:var(--pst-color-secondary-highlight);color:var(--pst-color-link-hover);color:var(--pst-color-secondary-highlight-text);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}#pst-back-to-top:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem;outline-color:var(--pst-color-secondary);outline-offset:.1875rem}:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem}.skip-link{background-color:var(--pst-color-warning);border-bottom:1px solid var(--pst-color-border);left:0;padding:.5rem;position:fixed;right:0;text-align:center;top:0;transform:translateY(-100%);transition:transform .15s ease-in-out;z-index:1055}.skip-link:focus-within{transform:translateY(0)}.skip-link a{color:var(--pst-color-warning-text)!important}.skip-link a:focus-visible{outline-color:#14181e}.bd-container{display:flex;flex-grow:1;justify-content:center}.bd-container .bd-container__inner{display:flex}.bd-page-width{width:100%}@media (min-width:960px){.bd-page-width{max-width:88rem}}.pst-async-banner-revealer{height:0;overflow:hidden;transition:height .3s ease-in-out}@media (prefers-reduced-motion){.pst-async-banner-revealer{transition:none}}#bd-header-version-warning,.bd-header-announcement{align-items:center;display:flex;justify-content:center;min-height:3rem;padding:.5rem 12.5%;position:relative;text-align:center;width:100%}@media (max-width:959.98px){#bd-header-version-warning,.bd-header-announcement{padding:.5rem 2%}}#bd-header-version-warning p,.bd-header-announcement p{font-weight:700;margin:0}#bd-header-version-warning a,.bd-header-announcement a{color:var(--pst-color-inline-code-links)}#bd-header-version-warning .pst-button-link-to-stable-version,.bd-header-announcement .pst-button-link-to-stable-version{background-color:var(--pst-color-danger);border-color:var(--pst-color-danger);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;color:var(--pst-color-danger-text)}#bd-header-version-warning .pst-button-link-to-stable-version:hover,.bd-header-announcement .pst-button-link-to-stable-version:hover{background-color:var(--pst-color-danger-highlight);border-color:var(--pst-color-danger-highlight);color:var(--pst-color-link-hover);color:var(--pst-color-danger-highlight-text);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}#bd-header-version-warning .pst-button-link-to-stable-version:focus-visible,.bd-header-announcement .pst-button-link-to-stable-version:focus-visible{outline:.1875rem solid var(--pst-color-danger);outline-offset:.1875rem}.bd-header-announcement{background-color:var(--pst-color-secondary-bg)}#bd-header-version-warning{background-color:var(--pst-color-danger-bg)}.bd-main{display:flex;flex-direction:column;flex-grow:1;min-width:0}.bd-main .bd-content{display:flex;height:100%;justify-content:center}.bd-main .bd-content .bd-article-container{display:flex;flex-direction:column;justify-content:start;max-width:60em;overflow-x:auto;padding:1rem;width:100%}@media (min-width:1200px){.bd-main .bd-content .bd-article-container .bd-article{padding-left:2rem;padding-top:1.5rem}}.bd-footer{border-top:1px solid var(--pst-color-border);width:100%}.bd-footer .bd-footer__inner{display:flex;flex-grow:1;margin:auto;padding:1rem}.bd-footer .footer-items__center,.bd-footer .footer-items__end,.bd-footer .footer-items__start{display:flex;flex-direction:column;flex-grow:1;gap:.5rem;justify-content:center}.bd-footer .footer-items__center{text-align:center}.bd-footer .footer-items__end{text-align:end}.bd-footer .footer-item p{margin-bottom:0}.bd-footer-article{margin-top:auto}.bd-footer-article .footer-article-items{display:flex;flex-direction:column}.bd-footer-content .footer-content-items{display:flex;flex-direction:column;margin-top:auto}.bd-header{background-color:var(--pst-color-on-background)!important;box-shadow:0 .125rem .25rem 0 var(--pst-color-shadow);justify-content:center;max-width:100vw;padding:0;position:sticky;top:0;width:100%;z-index:1030}.bd-header .bd-header__inner{align-items:center;display:flex;height:fit-content;padding-left:1rem;padding-right:1rem}.bd-header :focus-visible{border-radius:.125rem}.bd-header .navbar-item{align-items:center;display:flex;height:var(--pst-header-height);max-height:var(--pst-header-height)}.bd-header .navbar-header-items{display:none;flex-shrink:1}@media (min-width:960px){.bd-header .navbar-header-items{display:inherit;flex-grow:1;padding:0 0 0 .5rem}}.bd-header .navbar-header-items__center,.bd-header .navbar-header-items__end,.bd-header .navbar-header-items__start{align-items:center;display:flex;flex-flow:wrap;row-gap:0}.bd-header .navbar-header-items__center,.bd-header .navbar-header-items__end{column-gap:1.12rem}.bd-header .navbar-header-items__start{flex-shrink:0;gap:.5rem;margin-right:auto}.bd-header .navbar-header-items__end{justify-content:end}.bd-header ul.navbar-nav{display:flex}@media (min-width:960px){.bd-header ul.navbar-nav{align-items:baseline}}.bd-header ul.navbar-nav>li.nav-item{margin-inline:2px}.bd-header ul.navbar-nav>li.nav-item>.nav-link{color:var(--pst-color-text-muted);padding-inline:6px;position:relative}.bd-header ul.navbar-nav>li.nav-item>.nav-link:before{background-color:transparent;content:"";display:block;inset:0;bottom:calc(max(3px, .1875rem, .12em)*-1);margin:max(3px,.1875rem,.12em) 0;position:absolute}.bd-header ul.navbar-nav>li.nav-item>.nav-link:hover{color:var(--pst-color-secondary);text-decoration:none}.bd-header ul.navbar-nav>li.nav-item>.nav-link:hover:before{border-bottom:max(3px,.1875rem,.12em) solid var(--pst-color-secondary)}.bd-header ul.navbar-nav>li.nav-item>.nav-link:focus-visible{box-shadow:none;outline:3px solid var(--pst-color-accent);outline-offset:.1875rem}.bd-header ul.navbar-nav>li.nav-item.current>.nav-link{color:var(--pst-color-primary)}.bd-header ul.navbar-nav>li.nav-item.current>.nav-link:before{border-bottom:3px solid var(--pst-color-primary)}.bd-header ul.navbar-nav>li.nav-item.dropdown{margin-inline:4px}.bd-header ul.navbar-nav>li.nav-item.dropdown button{padding-inline:8px}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle{border-radius:.125rem;color:var(--pst-color-text-muted)}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent)}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle:hover{box-shadow:0 0 0 .1875rem var(--pst-color-link-hover);color:var(--pst-color-text-base);text-decoration:none}.bd-header ul.navbar-nav li a.nav-link.dropdown-item{color:var(--pst-color-text-muted);text-decoration:none}.bd-header ul.navbar-nav li a.nav-link.dropdown-item:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.bd-header ul.navbar-nav .dropdown button{border:none;display:unset}.bd-header ul.navbar-nav .dropdown button:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.bd-header ul.navbar-nav .dropdown .dropdown-menu{background-color:var(--pst-color-on-background);border:1px solid var(--pst-color-border);box-shadow:0 0 .3rem .1rem var(--pst-color-shadow);margin:.5rem 0;min-width:20rem;padding:.5rem 0;z-index:1070}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item{padding:.25rem 1.5rem}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus:not(:hover,:active){background-color:inherit}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus-visible{z-index:10}.bd-header ul.navbar-nav .dropdown .dropdown-menu:not(.show){display:none}.bd-header button.sidebar-toggle{background-color:inherit;color:var(--pst-color-muted);font-size:var(--pst-font-size-icon);margin-bottom:0;padding:.5rem}.bd-header button.primary-toggle{margin-right:1rem}@media (min-width:960px){.bd-header button.primary-toggle{display:none}}.bd-header button.secondary-toggle{margin-left:1rem}@media (min-width:1200px){.bd-header button.secondary-toggle{display:none}}@media (min-width:960px){.navbar-center-items .navbar-item{display:inline-block}}.nav-link{transition:none}.nav-link:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.nav-link.nav-external:after{content:var(--pst-icon-external-link);font:var(--fa-font-solid);font-size:.75em;margin-left:.3em}.bd-navbar-elements li.nav-item i{font-size:.7rem;padding-left:2px;vertical-align:middle}.navbar-persistent--mobile{margin-left:auto}@media (min-width:960px){.navbar-persistent--mobile{display:none}}.navbar-persistent--container{display:none}@media (min-width:960px){.navbar-persistent--container{display:flex}}.header-article__inner{padding:0 .5rem}.header-article__inner .header-article-item{min-height:var(--pst-header-article-height)}.header-article__inner .header-article-items__end{margin-left:auto}.bd-sidebar-primary{background-color:var(--pst-color-background);border-right:1px solid var(--pst-color-border);display:flex;flex:0 0 auto;flex-direction:column;font-size:var(--pst-sidebar-font-size-mobile);gap:1rem;max-height:calc(100vh - var(--pst-header-height));overflow-y:auto;padding:2rem 1rem 1rem;position:sticky;top:var(--pst-header-height);width:25%}@media (min-width:960px){.bd-sidebar-primary{font-size:var(--pst-sidebar-font-size)}}.bd-sidebar-primary :focus-visible{border-radius:.125rem}.bd-sidebar-primary .nav-link{font-size:var(--pst-sidebar-font-size-mobile)}.bd-sidebar-primary.no-sidebar{border-right:0}@media (min-width:960px){.bd-sidebar-primary.hide-on-wide{display:none}}.bd-sidebar-primary .h1,.bd-sidebar-primary .h2,.bd-sidebar-primary .h3,.bd-sidebar-primary .h4,.bd-sidebar-primary h1,.bd-sidebar-primary h2,.bd-sidebar-primary h3,.bd-sidebar-primary h4{color:var(--pst-color-text-base)}.bd-sidebar-primary .sidebar-primary-items__end .sidebar-primary-item,.bd-sidebar-primary .sidebar-primary-items__start .sidebar-primary-item{padding:.5rem 0}.bd-sidebar-primary .sidebar-header-items{display:flex;flex-direction:column}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__title{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-header-font-size);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.bd-sidebar-primary .sidebar-header-items .bd-navbar-elements .nav-link:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.1875rem}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__center{display:flex;flex-direction:column}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__end{align-items:center;display:flex;gap:1rem}@media (min-width:960px){.bd-sidebar-primary .sidebar-header-items{display:none}}.bd-sidebar-primary .sidebar-primary-items__start{border-top:1px solid var(--pst-color-border)}@media (min-width:960px){.bd-sidebar-primary .sidebar-primary-items__start{border-top:none}}.bd-sidebar-primary .sidebar-primary-items__end{margin-bottom:1em;margin-top:auto}.bd-sidebar-primary .list-caption{list-style:none;padding-left:0}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary{align-items:baseline;display:flex;height:auto;justify-content:space-between;position:relative;width:auto}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary .toctree-toggle{flex:0 0 auto}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary .toctree-toggle .fa-chevron-down{font-size:1rem}.bd-sidebar-primary li.has-children{position:relative}.bd-sidebar-primary li.has-children .caption,.bd-sidebar-primary li.has-children>.reference{margin-right:calc(30px + .1875rem);padding-top:.25rem}.bd-sidebar-primary li.has-children>details>summary{list-style:none}.bd-sidebar-primary li.has-children>details>summary::-webkit-details-marker{display:none}.bd-sidebar-primary li.has-children>details>summary:focus-visible{outline:none}.bd-sidebar-primary li.has-children>details>summary:focus-visible>.toctree-toggle{outline:var(--pst-color-accent) solid .1875rem;outline-offset:-.1875rem}.bd-sidebar-primary li.has-children>details>summary .toctree-toggle{align-items:center;cursor:pointer;display:inline-flex;height:30px;justify-content:center;position:absolute;right:0;top:0;width:30px}.bd-sidebar-primary li.has-children>details>summary .toctree-toggle .fa-chevron-down{font-size:.75rem}.bd-sidebar-primary li.has-children>details[open]>summary .fa-chevron-down{transform:rotate(180deg)}nav.bd-links{margin-right:-1rem}@media (min-width:960px){nav.bd-links{display:block}}nav.bd-links ul{display:block;list-style:none}nav.bd-links ul ul{padding:0 0 0 1rem}nav.bd-links li>a{box-shadow:none;color:var(--pst-color-text-muted);display:block;margin-right:.1875rem;padding:.25rem .65rem;text-decoration:none}nav.bd-links li>a:hover{background-color:transparent;text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}nav.bd-links li>a:active,nav.bd-links li>a:hover{color:var(--pst-color-link-hover)}nav.bd-links li>a:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:none;z-index:10}nav.bd-links li>a.reference.external:after{content:var(--pst-icon-external-link);font:var(--fa-font-solid);font-size:.75em;margin-left:.3em}nav.bd-links .current>a{background-color:transparent;box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600}nav.bd-links .current>a:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}nav.bd-links p.bd-links__title{font-size:var(--pst-sidebar-header-font-size)}nav.bd-links p.bd-links__title,nav.bd-links p.caption{font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}nav.bd-links p.caption{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-font-size-mobile);margin-top:1.25rem;position:relative}nav.bd-links p.caption:first-child{margin-top:0}@media (min-width:960px){nav.bd-links p.caption{font-size:var(--pst-sidebar-font-size)}}.bd-sidebar-secondary{background-color:var(--pst-color-background);display:flex;flex-direction:column;flex-shrink:0;font-size:var(--pst-sidebar-font-size-mobile);max-height:calc(100vh - var(--pst-header-height));order:2;overflow-y:auto;padding:2rem 1rem 1rem;position:sticky;top:var(--pst-header-height);width:var(--pst-sidebar-secondary)}@media (min-width:1200px){.bd-sidebar-secondary{font-size:var(--pst-sidebar-font-size)}}.sidebar-secondary-item{padding:.5rem}@media (min-width:1200px){.sidebar-secondary-item{border-left:1px solid var(--pst-color-border);padding-left:1rem}}.sidebar-secondary-item i{padding-right:.5rem}.bd-sidebar::backdrop{background-color:#000;opacity:.5}@media (max-width:959.98px){.bd-sidebar-primary{border:0;flex-grow:0.75;height:100vh;left:0;margin-left:-75%;max-height:100vh;max-width:350px;position:fixed;top:0;transition:visibility .2s ease-out,margin .2s ease-out;visibility:hidden;width:75%;z-index:1055}}.bd-sidebar-primary[open]{margin-left:0;visibility:visible}@media (max-width:1199.98px){.bd-sidebar-secondary{border:0;flex-grow:0.75;height:100vh;margin-right:-75%;max-height:100vh;max-width:350px;position:fixed;right:0;top:0;transition:visibility .2s ease-out,margin .2s ease-out;visibility:hidden;width:75%;z-index:1055}}.bd-sidebar-secondary[open]{margin-right:0;visibility:visible}ul.bd-breadcrumbs{display:flex;flex-wrap:wrap;font-size:.8rem;list-style:none;padding-left:0}ul.bd-breadcrumbs li.breadcrumb-item{align-items:center;display:flex;font-weight:700;overflow-x:hidden;white-space:nowrap}ul.bd-breadcrumbs li.breadcrumb-item .ellipsis,ul.bd-breadcrumbs li.breadcrumb-item a{margin:.1875rem;overflow-x:hidden;text-overflow:ellipsis}ul.bd-breadcrumbs li.breadcrumb-item a{color:var(--pst-color-text-muted);text-decoration:none}ul.bd-breadcrumbs li.breadcrumb-item a:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}ul.bd-breadcrumbs li.breadcrumb-item:not(.breadcrumb-home):before{color:var(--pst-color-text-muted);content:var(--pst-breadcrumb-divider);font:var(--fa-font-solid);font-size:.8rem;padding:0 .5rem}html .pst-navbar-icon{align-items:center;border:none;border-radius:0;box-sizing:border-box;color:var(--pst-color-text-muted);display:flex;font-size:1rem;height:2.15rem;justify-content:center;line-height:1.65;min-height:24px;min-width:24px;padding:.25rem 0;position:relative}html .pst-navbar-icon:before{background-color:transparent;content:"";display:block;inset:0;bottom:calc(max(3px, .1875rem, .12em)*-1);margin:max(3px,.1875rem,.12em) 0;position:absolute}html .pst-navbar-icon:hover{color:var(--pst-color-secondary);text-decoration:none}html .pst-navbar-icon:hover:before{border-bottom:max(3px,.1875rem,.12em) solid var(--pst-color-secondary)}html .pst-navbar-icon:focus-visible{box-shadow:none;outline:3px solid var(--pst-color-accent);outline-offset:.1875rem}ul.navbar-icon-links{align-items:center;column-gap:1.12rem;display:flex;flex-flow:row wrap;justify-content:space-evenly;list-style:none;margin-bottom:0;padding-left:0}ul.navbar-icon-links i.fa-brands,ul.navbar-icon-links i.fa-regular,ul.navbar-icon-links i.fa-solid{font-size:var(--pst-font-size-icon);font-style:normal;vertical-align:middle}ul.navbar-icon-links i.fa-square-twitter:before{color:#55acee}ul.navbar-icon-links i.fa-square-gitlab:before{color:#548}ul.navbar-icon-links i.fa-bitbucket:before{color:#0052cc}ul.navbar-icon-links img.icon-link-image{border-radius:.2rem;height:1.5em}ul.navbar-icon-links .fa-pydata{stroke:var(--pst-color-background);stroke-linejoin:round;stroke-width:.35}.navbar-brand{align-items:center;display:flex;flex-shrink:0;gap:.5rem;height:var(--pst-header-height);margin:0;max-height:var(--pst-header-height);padding:.5rem 0;position:relative;width:auto}.navbar-brand p{color:var(--pst-color-text-base);margin-bottom:0}.navbar-brand img{height:100%;max-width:100%;width:auto}.navbar-brand:hover,.navbar-brand:visited:hover{color:var(--pst-color-link-hover);color:var(--pst-color-text-base);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}ul.navbar-nav ul{padding:0 0 0 1rem}ul.navbar-nav li{display:flex;flex-direction:column}ul.navbar-nav li a{align-items:center;color:var(--pst-color-text-muted);display:flex;height:100%;padding-bottom:.25rem;padding-top:.25rem;text-decoration:none}ul.navbar-nav li a:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.page-toc .section-nav{border-bottom:none;padding-left:0}.page-toc .section-nav ul{padding-left:1rem}.page-toc .nav-link{font-size:var(--pst-sidebar-font-size-mobile)}@media (min-width:1200px){.page-toc .nav-link{font-size:var(--pst-sidebar-font-size)}}.page-toc .onthispage{color:var(--pst-color-text-base);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.prev-next-area{width:100%}.prev-next-area p{color:var(--pst-color-text-muted);line-height:1.3em;margin:0 .3em}.prev-next-area i{font-size:1.2em}.prev-next-area a{align-items:center;border:none;color:var(--pst-color-text-muted);display:flex;max-width:45%;overflow-x:hidden;padding:10px;text-decoration:none}.prev-next-area a p.prev-next-title{word-wrap:break-word;color:var(--pst-color-link);font-size:1.1em;font-weight:var(--pst-admonition-font-weight-heading);text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}.prev-next-area a p.prev-next-title:hover{color:var(--pst-color-link-hover);text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}.prev-next-area a p.prev-next-title:active,.prev-next-area a p.prev-next-title:visited{color:var(--pst-color-link)}.prev-next-area a p.prev-next-title:visited:hover{color:var(--pst-color-link-hover)}.prev-next-area a:hover p.prev-next-title,.prev-next-area a:visited:hover p.prev-next-title{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.prev-next-area a .prev-next-info{flex-direction:column;margin:0 .5em}.prev-next-area a .prev-next-info .prev-next-subtitle{text-transform:capitalize}.prev-next-area a.left-prev{float:left}.prev-next-area a.right-next{float:right}.prev-next-area a.right-next div.prev-next-info{text-align:right}.bd-search{border:1px solid var(--pst-color-border);border-radius:.25rem;color:var(--pst-color-text-base);gap:.5rem;padding-left:.5rem;position:relative}.bd-search,.bd-search:active{background-color:var(--pst-color-background)}.bd-search:active{color:var(--pst-color-text-muted)}.bd-search:focus-within{box-shadow:0 0 0 .1875rem var(--pst-color-accent)}.bd-search:focus-within input:focus{box-shadow:none}.bd-search .icon{color:var(--pst-color-border);left:25px;position:absolute}.bd-search .fa-solid.fa-magnifying-glass{color:var(--pst-color-text-muted);left:calc(1.25rem - .35em);position:absolute}.bd-search input.form-control{background-color:var(--pst-color-background);border:none;color:var(--pst-color-text-base)}.bd-search input.form-control::placeholder{color:var(--pst-color-text-muted)}.bd-search input.form-control::-webkit-search-cancel-button,.bd-search input.form-control::-webkit-search-decoration{appearance:none}.bd-search input.form-control:focus,.bd-search input.form-control:focus-visible{color:var(--pst-color-text-muted)}.bd-search .search-button__kbd-shortcut{color:var(--pst-color-border);display:none;margin-inline-end:.5rem}@media (min-width:720px){.bd-search .search-button__kbd-shortcut{display:flex}}.search-button i{font-size:1.3rem}#pst-search-dialog{display:none}#pst-search-dialog[open]{background-color:transparent;border:none;display:flex;left:50%;margin-top:.5rem;max-width:800px;padding:.1875rem;position:fixed;right:1rem;top:30%;transform:translate(-50%,-50%);width:90%;z-index:1055}#pst-search-dialog[open]::backdrop{background-color:#000;opacity:.5}#pst-search-dialog[open] form.bd-search{flex-grow:1}#pst-search-dialog[open] form.bd-search input,#pst-search-dialog[open] form.bd-search svg{font-size:var(--pst-font-size-icon)}.search-button-field{align-items:center;background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:1.5em;color:var(--pst-color-text-muted);display:inline-flex;padding:.5em}.search-button-field:hover{box-shadow:0 0 0 .1875rem var(--pst-color-link-hover)}.search-button-field:focus-visible{border-radius:1.5em}.search-button-field .search-button__default-text{font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);margin-left:.5em;margin-right:.5em}.search-button-field .kbd-shortcut__modifier{font-size:.75em}.search-button-field>*{align-items:center}.search-button-field>:not(svg){display:none}@media (min-width:960px){.search-button-field>:not(svg){display:flex}}div#searchbox p.highlight-link{box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;margin:1rem 0;width:fit-content}@media (min-width:1200px){div#searchbox p.highlight-link{margin-left:2rem}}div#searchbox p.highlight-link a{background-color:var(--pst-color-primary);border-radius:.25rem;color:var(--pst-color-primary-text);font-size:1.25rem;padding:.75rem;text-decoration:none;transition:box-shadow .25s ease-out}div#searchbox p.highlight-link a:hover{box-shadow:inset 0 0 50px 50px rgba(0,0,0,.25)}div#searchbox p.highlight-link a:before{color:unset;content:var(--pst-icon-search-minus);font:var(--fa-font-solid);margin-right:.5rem}.theme-switch-button .theme-switch{display:none}.theme-switch-button .theme-switch:active{color:var(--pst-color-link-hover);text-decoration:none}.theme-switch-button .theme-switch .fa-lg{aspect-ratio:1/1}html[data-mode=auto] .theme-switch-button .theme-switch[data-mode=auto],html[data-mode=dark] .theme-switch-button .theme-switch[data-mode=dark],html[data-mode=light] .theme-switch-button .theme-switch[data-mode=light]{display:inline}button.btn.version-switcher__button{border-color:var(--pst-color-border);color:var(--pst-color-text-base);margin-bottom:1em}@media (min-width:960px){button.btn.version-switcher__button{margin-bottom:unset}}button.btn.version-switcher__button:hover{border-color:transparent;box-shadow:0 0 0 .1875rem var(--pst-color-secondary)}button.btn.version-switcher__button:active{border-color:var(--pst-color-border);color:var(--pst-color-text-base)}button.btn.version-switcher__button:focus-visible{border-color:transparent}.version-switcher__menu{border-color:var(--pst-color-border);border-radius:var(--bs-dropdown-border-radius)}.version-switcher__menu a.list-group-item{background-color:var(--pst-color-on-background);color:var(--pst-color-text-base);padding:.75rem 1.25rem}.version-switcher__menu a.list-group-item:not(:last-child){border-bottom:1px solid var(--pst-color-border)}.version-switcher__menu a.list-group-item:hover{background-color:var(--pst-color-surface);color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.version-switcher__menu a.list-group-item.active{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600;position:relative;z-index:1}.version-switcher__menu a.list-group-item.active:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}.version-switcher__menu a.list-group-item.active span:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.version-switcher__menu a.list-group-item:focus-visible{z-index:10}.version-switcher__menu,button.version-switcher__button{box-sizing:border-box;font-size:1.1em;min-height:24px;min-width:24px;z-index:1055}@media (min-width:960px){.version-switcher__menu,button.version-switcher__button{font-size:unset}}nav.page-toc{margin-bottom:1rem}.bd-toc .nav .nav{display:none}.bd-toc .nav .nav.visible,.bd-toc .nav>.active>ul,.toc-entry{display:block}.toc-entry a.nav-link,.toc-entry a>code{color:var(--pst-color-text-muted)}.toc-entry a.nav-link{display:block;margin-left:-1rem;padding:.25rem 0 .25rem 1rem;text-decoration:none}.toc-entry a.nav-link:hover{background-color:transparent;text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}.toc-entry a.nav-link:active,.toc-entry a.nav-link:hover{color:var(--pst-color-link-hover)}.toc-entry a.nav-link:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:none;z-index:10}.toc-entry a.nav-link.active{background-color:transparent;box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600}.toc-entry a.nav-link.active:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}.toc-entry a.nav-link.active:hover{color:var(--pst-color-link-hover)}.toc-entry a.nav-link:focus-visible{border-radius:.125rem}div.deprecated,div.versionadded,div.versionchanged{background-color:var(--pst-color-on-background);border-left:.2rem solid;border-color:var(--pst-color-info);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;break-inside:avoid;margin:1.5625em auto;overflow:hidden;padding:0 .6rem;page-break-inside:avoid;position:relative;vertical-align:middle}div.deprecated>p,div.versionadded>p,div.versionchanged>p{margin-bottom:.6rem;margin-top:.6rem}div.versionadded{background-color:var(--pst-color-success-bg);border-color:var(--pst-color-success)}div.versionchanged{background-color:var(--pst-color-warning-bg);border-color:var(--pst-color-warning)}div.deprecated{background-color:var(--pst-color-danger-bg);border-color:var(--pst-color-danger)}span.versionmodified{font-weight:600}span.versionmodified:before{color:var(--pst-color-info);content:var(--pst-icon-versionmodified-default);font:var(--fa-font-solid);margin-right:.6rem}span.versionmodified.added:before{color:var(--pst-color-success);content:var(--pst-icon-versionmodified-added)}span.versionmodified.changed:before{color:var(--pst-color-warning);content:var(--pst-icon-versionmodified-changed)}span.versionmodified.deprecated:before{color:var(--pst-color-danger);content:var(--pst-icon-versionmodified-deprecated)}.sidebar-indices-items{border-top:1px solid var(--pst-color-border);display:flex;flex-direction:column}@media (min-width:960px){.sidebar-indices-items{border-top:none}}.sidebar-indices-items .sidebar-indices-items__title{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-header-font-size);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.sidebar-indices-items ul.indices-link{list-style:none;margin-right:-1rem;padding:0}.sidebar-indices-items ul.indices-link li>a{color:var(--pst-color-text-muted);display:block;padding:.25rem 0}.sidebar-indices-items ul.indices-link li>a:hover{background-color:transparent;color:var(--pst-color-primary);text-decoration:none}.admonition,div.admonition{background-color:var(--pst-color-on-background);border-left:.2rem solid;border-color:var(--pst-color-info);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;break-inside:avoid;margin:1.5625em auto;overflow:hidden;padding:0 .6rem .8rem;page-break-inside:avoid}.admonition :last-child,div.admonition :last-child{margin-bottom:0}.admonition p.admonition-title~*,div.admonition p.admonition-title~*{margin-left:1.4rem;margin-right:1.4rem}.admonition>ol,.admonition>ul,div.admonition>ol,div.admonition>ul{margin-left:1em}.admonition>.admonition-title,div.admonition>.admonition-title{background-color:var(--pst-color-info-bg);font-weight:var(--pst-admonition-font-weight-heading);margin:0 -.6rem;padding:.4rem .6rem .4rem 2rem;position:relative;z-index:1}.admonition>.admonition-title:before,div.admonition>.admonition-title:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.admonition>.admonition-title:after,div.admonition>.admonition-title:after{color:var(--pst-color-info);content:var(--pst-icon-admonition-default);font:var(--fa-font-solid);height:1rem;left:.5rem;line-height:inherit;opacity:1;position:absolute;width:1rem}.admonition>.admonition-title+*,div.admonition>.admonition-title+*{margin-top:.4em}.admonition.attention,div.admonition.attention{border-color:var(--pst-color-attention)}.admonition.attention>.admonition-title,div.admonition.attention>.admonition-title{background-color:var(--pst-color-attention-bg)}.admonition.attention>.admonition-title:after,div.admonition.attention>.admonition-title:after{color:var(--pst-color-attention);content:var(--pst-icon-admonition-attention)}.admonition.caution,div.admonition.caution{border-color:var(--pst-color-warning)}.admonition.caution>.admonition-title,div.admonition.caution>.admonition-title{background-color:var(--pst-color-warning-bg)}.admonition.caution>.admonition-title:after,div.admonition.caution>.admonition-title:after{color:var(--pst-color-warning);content:var(--pst-icon-admonition-caution)}.admonition.warning,div.admonition.warning{border-color:var(--pst-color-warning)}.admonition.warning>.admonition-title,div.admonition.warning>.admonition-title{background-color:var(--pst-color-warning-bg)}.admonition.warning>.admonition-title:after,div.admonition.warning>.admonition-title:after{color:var(--pst-color-warning);content:var(--pst-icon-admonition-warning)}.admonition.danger,div.admonition.danger{border-color:var(--pst-color-danger)}.admonition.danger>.admonition-title,div.admonition.danger>.admonition-title{background-color:var(--pst-color-danger-bg)}.admonition.danger>.admonition-title:after,div.admonition.danger>.admonition-title:after{color:var(--pst-color-danger);content:var(--pst-icon-admonition-danger)}.admonition.error,div.admonition.error{border-color:var(--pst-color-danger)}.admonition.error>.admonition-title,div.admonition.error>.admonition-title{background-color:var(--pst-color-danger-bg)}.admonition.error>.admonition-title:after,div.admonition.error>.admonition-title:after{color:var(--pst-color-danger);content:var(--pst-icon-admonition-error)}.admonition.hint,div.admonition.hint{border-color:var(--pst-color-success)}.admonition.hint>.admonition-title,div.admonition.hint>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.hint>.admonition-title:after,div.admonition.hint>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-hint)}.admonition.tip,div.admonition.tip{border-color:var(--pst-color-success)}.admonition.tip>.admonition-title,div.admonition.tip>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.tip>.admonition-title:after,div.admonition.tip>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-tip)}.admonition.important,div.admonition.important{border-color:var(--pst-color-attention)}.admonition.important>.admonition-title,div.admonition.important>.admonition-title{background-color:var(--pst-color-attention-bg)}.admonition.important>.admonition-title:after,div.admonition.important>.admonition-title:after{color:var(--pst-color-attention);content:var(--pst-icon-admonition-important)}.admonition.note,div.admonition.note{border-color:var(--pst-color-info)}.admonition.note>.admonition-title,div.admonition.note>.admonition-title{background-color:var(--pst-color-info-bg)}.admonition.note>.admonition-title:after,div.admonition.note>.admonition-title:after{color:var(--pst-color-info);content:var(--pst-icon-admonition-note)}.admonition.seealso,div.admonition.seealso{border-color:var(--pst-color-success)}.admonition.seealso>.admonition-title,div.admonition.seealso>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.seealso>.admonition-title:after,div.admonition.seealso>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-seealso)}.admonition.admonition-todo,div.admonition.admonition-todo{border-color:var(--pst-color-secondary)}.admonition.admonition-todo>.admonition-title,div.admonition.admonition-todo>.admonition-title{background-color:var(--pst-color-secondary-bg)}.admonition.admonition-todo>.admonition-title:after,div.admonition.admonition-todo>.admonition-title:after{color:var(--pst-color-secondary);content:var(--pst-icon-admonition-todo)}.admonition.sidebar,div.admonition.sidebar{border-width:0 0 0 .2rem;clear:both;float:right;margin-left:.5rem;margin-top:0;max-width:40%}.admonition.sidebar.attention,.admonition.sidebar.important,div.admonition.sidebar.attention,div.admonition.sidebar.important{border-color:var(--pst-color-attention)}.admonition.sidebar.caution,.admonition.sidebar.warning,div.admonition.sidebar.caution,div.admonition.sidebar.warning{border-color:var(--pst-color-warning)}.admonition.sidebar.danger,.admonition.sidebar.error,div.admonition.sidebar.danger,div.admonition.sidebar.error{border-color:var(--pst-color-danger)}.admonition.sidebar.hint,.admonition.sidebar.seealso,.admonition.sidebar.tip,div.admonition.sidebar.hint,div.admonition.sidebar.seealso,div.admonition.sidebar.tip{border-color:var(--pst-color-success)}.admonition.sidebar.note,.admonition.sidebar.todo,div.admonition.sidebar.note,div.admonition.sidebar.todo{border-color:var(--pst-color-info)}.admonition.sidebar p.admonition-title~*,div.admonition.sidebar p.admonition-title~*{margin-left:0;margin-right:0}aside.topic,div.topic,div.topic.contents,nav.contents{background-color:var(--pst-color-surface);border-color:var(--pst-color-border);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;display:flex;flex-direction:column;padding:1rem 1.25rem}aside.topic .topic-title,div.topic .topic-title,div.topic.contents .topic-title,nav.contents .topic-title{margin:0 0 .5rem}aside.topic p,div.topic p,div.topic.contents p,nav.contents p{color:var(--pst-color-on-surface)!important}aside.topic ul.simple,div.topic ul.simple,div.topic.contents ul.simple,nav.contents ul.simple{padding-left:1rem}aside.topic ul.simple ul,div.topic ul.simple ul,div.topic.contents ul.simple ul,nav.contents ul.simple ul{padding-left:2em}aside.sidebar{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;margin-left:.5rem;padding:0}aside.sidebar>:last-child{padding-bottom:1rem}aside.sidebar p.sidebar-title{border-bottom:1px solid var(--pst-color-border);font-family:var(--pst-font-family-heading);font-weight:var(--pst-admonition-font-weight-heading);margin-bottom:0;padding-bottom:.5rem;padding-top:.5rem;position:relative}aside.sidebar>:not(.sidebar-title):first-child,aside.sidebar>p.sidebar-title+*{margin-top:1rem}aside.sidebar>*{padding-left:1rem;padding-right:1rem}p.rubric{display:flex;flex-direction:column}.seealso dd{margin-bottom:0;margin-top:0}table.field-list{border-collapse:separate;border-spacing:10px;margin-left:1px}table.field-list th.field-name{background-color:var(--pst-color-surface);padding:1px 8px 1px 5px;white-space:nowrap}table.field-list td.field-body p{font-style:italic}table.field-list td.field-body p>strong{font-style:normal}table.field-list td.field-body blockquote{border-left:none;margin:0 0 .3em;padding-left:30px}.table.autosummary td:first-child{white-space:nowrap}.sig{font-family:var(--pst-font-family-monospace)}.sig-inline.c-texpr,.sig-inline.cpp-texpr{font-family:unset}.sig.c .k,.sig.c .kt,.sig.c .m,.sig.c .s,.sig.c .sc,.sig.cpp .k,.sig.cpp .kt,.sig.cpp .m,.sig.cpp .s,.sig.cpp .sc{color:var(--pst-color-text-base)}.sig-name{color:var(--pst-color-inline-code)}.sig-param .default_value,.sig-param .o{color:var(--pst-color-text-muted);font-weight:400}dt:target,span.highlighted{background-color:var(--pst-color-target)}.viewcode-back{font-family:var(--pst-font-family-base)}.viewcode-block:target{background-color:var(--pst-color-target);border-bottom:1px solid var(--pst-color-border);border-top:1px solid var(--pst-color-border);position:relative}dl>dt>a:has(.viewcode-link){float:right}dl>dt>a:has(.viewcode-link) .viewcode-link{float:none}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple){margin-bottom:3rem}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dd{margin-left:2rem}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dd>dl.simple>dt{display:flex}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dl.field-list{display:grid;grid-template-columns:unset}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dt.field-even,dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dt.field-odd{background-color:var(--pst-color-surface);margin-bottom:.1rem;margin-top:.2rem}div.highlight,div.literal-block-wrapper,div[class*=highlight-]{border-radius:.25rem;break-inside:avoid;display:flex;flex-direction:column;width:unset}div.literal-block-wrapper{border:1px solid var(--pst-color-border);border-radius:.25rem}div.literal-block-wrapper div.code-block-caption{border-bottom:1px solid var(--pst-color-border);font-size:1rem;font-weight:var(--pst-font-weight-caption);margin:0;padding:.5rem}div.literal-block-wrapper div.code-block-caption a.headerlink{font-size:inherit}div.literal-block-wrapper div[class*=highlight-]{border-radius:0;margin:0}div.literal-block-wrapper div[class*=highlight-] pre{border:none;box-shadow:none}code.literal{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;padding:.1rem .25rem}a>code{color:var(--pst-color-inline-code-links)}a>code:hover{color:var(--pst-color-link-hover)}span.linenos{opacity:.8!important}figure>a,figure>a>img,figure>img,figure>video{display:block;margin-left:auto;margin-right:auto}figure a.headerlink{font-size:inherit;position:absolute}figure:hover a.headerlink{visibility:visible}figure figcaption{color:var(--pst-color-text-muted);font-family:var(--pst-font-family-heading);font-weight:var(--pst-font-weight-caption);margin-left:auto;margin-right:auto;margin-top:.3rem;text-align:center}figure figcaption>p:last-child{margin-bottom:0}figure figcaption p{display:inline-block;text-align:start}figure figcaption table.table{margin-left:auto;margin-right:auto;width:fit-content}dt.label>span.brackets:not(:only-child):before{content:"["}dt.label>span.brackets:not(:only-child):after{content:"]"}a.footnote-reference{font-size:small;vertical-align:super}aside.footnote{margin-bottom:.5rem}aside.footnote:last-child{margin-bottom:1rem}aside.footnote span.backrefs,aside.footnote span.label{font-weight:700}aside.footnote:target{background-color:var(--pst-color-target)}div.doctest>div.highlight span.gp,span.linenos,table.highlighttable td.linenos{user-select:none}dd{margin-bottom:10px;margin-left:30px;margin-top:3px}ol,ul{padding-inline-start:2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}blockquote{background-color:var(--pst-color-surface);border-left:.25em solid var(--pst-color-blockquote-notch);border-radius:.25rem;color:var(--pst-color-text-muted);padding:1em;position:relative}blockquote p{color:var(--pst-color-text-base)}blockquote .line-block{margin:0}blockquote p:last-child{margin-bottom:0}blockquote:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}blockquote a{color:var(--pst-color-inline-code-links)}blockquote:before{z-index:-1}span.guilabel{background-color:var(--pst-color-info-bg);border:1px solid var(--pst-color-info);border-radius:4px;font-size:80%;font-weight:700;margin:auto 2px;padding:2.4px 6px;position:relative}span.guilabel:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}a.reference.download:before{color:var(--pst-color-text-muted);content:var(--pst-icon-download);font:var(--fa-font-solid);font-size:.8em;padding:0 .25em}table{margin-left:auto;margin-right:auto}table.table-right{margin-right:0}table.table-left{margin-left:0}table caption{caption-side:top;color:var(--pst-color-text-muted);text-align:center}td.text-left,th.text-left{text-align:left}td.text-right,th.text-right{text-align:right}td.text-center,th.text-center{text-align:center}.table{--bs-table-bg:transparent;--bs-table-color:var(
- --pst-color-text-base
- );border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table)}.table td~td,.table td~th,.table th~td,.table th~th{border-left:1px solid var(--pst-color-table-inner-border)}.table thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.table tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.table tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.pst-scrollable-table-container{overflow-x:auto}.toctree-wrapper p.caption{font-size:1.5em;margin-bottom:0}.toctree-wrapper>ul{padding-left:0}.toctree-wrapper li[class^=toctree-l]{list-style:none;margin-bottom:.2em}.toctree-wrapper li[class^=toctree-l]>a{font-size:1.1em;list-style:none}.toctree-wrapper li[class^=toctree-l]>ul{list-style:none;padding-inline-start:1.5em}.toctree-wrapper .toctree-l1>a{font-size:1.3em}div.topic.contents ul.simple,nav.contents ul.simple{list-style:none;padding-left:0}div.math,span.math{align-items:center;display:flex;max-width:100%;overflow:hidden}span.math{display:inline-flex}div.math{flex-direction:row-reverse;gap:.5em}div.math span.eqno a.headerlink{font-size:1em;position:relative}div.math mjx-container{flex-grow:1;overflow:auto;padding-bottom:.2rem}div.math mjx-container mjx-assistive-mml{height:0}.ablog-sidebar-item .h2,.ablog-sidebar-item .h3,.ablog-sidebar-item h2,.ablog-sidebar-item h3{font-size:var(--pst-sidebar-header-font-size);margin-top:.5rem}.ablog-sidebar-item .h2 a,.ablog-sidebar-item .h3 a,.ablog-sidebar-item h2 a,.ablog-sidebar-item h3 a{color:var(--pst-color-text-base)}.ablog-sidebar-item ul{display:flex;flex-direction:column;gap:.5em;list-style:none;margin-bottom:0;overflow-y:hidden;padding-left:0}.ablog-sidebar-item ul.ablog-cloud{flex-flow:row wrap;gap:.5rem}.ablog-sidebar-item ul.ablog-cloud li{align-items:center;display:flex}.ablog__prev-next{display:flex;font-size:1.2em;padding:1rem 0}.ablog__prev-next>span{display:flex;max-width:45%}.ablog__prev-next>span a{align-items:center;display:flex;gap:1rem;line-height:1.5rem;margin-left:auto}.ablog__prev-next>span a i:before{color:var(--pst-color-text-base)}.ablog__prev-next span.ablog__prev i.fa-arrow-circle-left:before{content:var(--pst-icon-angle-left)}.ablog__prev-next span.ablog__spacer{display:none}.ablog__prev-next span.ablog__next{margin-left:auto;text-align:right}.ablog__prev-next span.ablog__next i.fa-arrow-circle-right:before{content:var(--pst-icon-angle-right)}.ablog__collection,.postlist{padding-left:0}.ablog__collection .ablog-post,.postlist .ablog-post{list-style:none}.ablog__collection .ablog-post .ablog-archive,.postlist .ablog-post .ablog-archive{display:flex;flex-flow:row wrap;font-size:.75rem;gap:1rem;list-style:none;padding-left:0}.ablog__collection .ablog-post .ablog-post-title,.postlist .ablog-post .ablog-post-title{font-size:1.25rem;margin-top:0}.ablog__collection .ablog-post .ablog-post-title a,.postlist .ablog-post .ablog-post-title a{font-weight:700}.ablog__collection .ablog-post .ablog-post-expand,.postlist .ablog-post .ablog-post-expand{margin-bottom:.5rem}.docutils.container{margin-left:unset;margin-right:unset;max-width:unset;padding-left:unset;padding-right:unset;width:unset}.btn{--bs-btn-focus-box-shadow:0 0 0 0.1875rem var(--pst-color-accent)}div.highlight button.copybtn{align-items:center;background-color:var(--pst-color-surface);border:none;display:flex;justify-content:center}div.highlight button.copybtn:not(.success){color:var(--pst-color-muted)}div.highlight button.copybtn:hover:not(.success){background-color:var(--pst-color-shadow);color:var(--pst-color-text)}div.highlight button.copybtn.o-tooltip--left:after{background-color:var(--pst-color-surface);color:var(--pst-color-text)}div.highlight button.copybtn:focus{opacity:1}div.highlight button.copybtn:focus-visible{outline:var(--pst-color-accent) solid .1875rem}div.highlight:has(button.copybtn){min-height:2em}#ethical-ad-placement .ethical-footer a,#ethical-ad-placement .ethical-footer a:active,#ethical-ad-placement .ethical-footer a:hover,#ethical-ad-placement .ethical-footer a:visited,#ethical-ad-placement .ethical-sidebar a,#ethical-ad-placement .ethical-sidebar a:active,#ethical-ad-placement .ethical-sidebar a:hover,#ethical-ad-placement .ethical-sidebar a:visited{color:var(--pst-color-text-base)}#ethical-ad-placement .ethical-footer,#ethical-ad-placement .ethical-sidebar{background-color:var(--pst-color-background);border:1px solid var(--pst-color-border);border-radius:5px;color:var(--pst-color-text-base);font-size:14px;line-height:20px}.bd-content div.jupyter_container{background-color:unset;border:none;box-shadow:none}.bd-content div.jupyter_container div.highlight,.bd-content div.jupyter_container div.output{border-radius:.25rem}.bd-content div.jupyter_container div.highlight{background-color:var(--pst-color-surface)}.bd-content div.jupyter_container .cell_input,.bd-content div.jupyter_container .cell_output{border-radius:.25rem}.bd-content div.jupyter_container .cell_input pre,.bd-content div.jupyter_container .cell_output pre{padding:1rem}html[data-theme=dark] div.graphviz>object.inheritance{color-scheme:normal;filter:brightness(.8) invert(.82) contrast(1.2)}.xr-wrap[hidden]{display:block!important}.jp-OutputArea-output.lm-Widget{overflow:auto}:root{--pst-teal-50:#f4fbfc;--pst-teal-100:#e9f6f8;--pst-teal-200:#d0ecf1;--pst-teal-300:#abdde6;--pst-teal-400:#3fb1c5;--pst-teal-500:#0a7d91;--pst-teal-600:#085d6c;--pst-teal-700:#064752;--pst-teal-800:#042c33;--pst-teal-900:#021b1f;--pst-violet-50:#f4eefb;--pst-violet-100:#e0c7ff;--pst-violet-200:#d5b4fd;--pst-violet-300:#b780ff;--pst-violet-400:#9c5ffd;--pst-violet-500:#8045e5;--pst-violet-600:#6432bd;--pst-violet-700:#4b258f;--pst-violet-800:#341a61;--pst-violet-900:#1e0e39;--pst-gray-50:#f9f9fa;--pst-gray-100:#f3f4f5;--pst-gray-200:#e5e7ea;--pst-gray-300:#d1d5da;--pst-gray-400:#9ca4af;--pst-gray-500:#677384;--pst-gray-600:#48566b;--pst-gray-700:#29313d;--pst-gray-800:#222832;--pst-gray-900:#14181e;--pst-pink-50:#fcf8fd;--pst-pink-100:#fcf0fa;--pst-pink-200:#f8dff5;--pst-pink-300:#f3c7ee;--pst-pink-400:#e47fd7;--pst-pink-500:#c132af;--pst-pink-600:#912583;--pst-pink-700:#6e1c64;--pst-pink-800:#46123f;--pst-pink-900:#2b0b27;--pst-foundation-white:#fff;--pst-foundation-black:#14181e}html:not([data-theme]){--pst-color-primary:#0a7d91;--pst-color-primary-bg:#d0ecf1;--pst-color-secondary:#8045e5;--pst-color-secondary-bg:#e0c7ff;--pst-color-accent:#c132af;--pst-color-accent-bg:#f8dff5;--pst-color-info:#276be9;--pst-color-info-bg:#dce7fc;--pst-color-warning:#f66a0a;--pst-color-warning-bg:#f8e3d0;--pst-color-success:#00843f;--pst-color-success-bg:#d6ece1;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger:#d72d47;--pst-color-danger-bg:#f9e1e4;--pst-color-text-base:#222832;--pst-color-text-muted:#48566b;--pst-color-shadow:rgba(0,0,0,.1);--pst-color-border:#d1d5da;--pst-color-border-muted:rgba(23,23,26,.2);--pst-color-blockquote-notch:#677384;--pst-color-inline-code:#912583;--pst-color-inline-code-links:#085d6c;--pst-color-target:#f3cf95;--pst-color-table:#14181e;--pst-color-table-row-hover-bg:#d5b4fd;--pst-color-table-inner-border:#e5e7ea;--pst-color-background:#fff;--pst-color-on-background:#fff;--pst-color-surface:#f3f4f5;--pst-color-on-surface:#222832;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface)}html:not([data-theme]) .only-dark,html:not([data-theme]) .only-dark~figcaption{display:none!important}html[data-theme=light]{--pst-color-primary-bg:#d0ecf1;--pst-color-secondary-bg:#e0c7ff;--pst-color-accent:#c132af;--pst-color-accent-bg:#f8dff5;--pst-color-info-bg:#dce7fc;--pst-color-warning-bg:#f8e3d0;--pst-color-success-bg:#d6ece1;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger-bg:#f9e1e4;--pst-color-text-base:#222832;--pst-color-text-muted:#48566b;--pst-color-shadow:rgba(0,0,0,.1);--pst-color-border:#d1d5da;--pst-color-border-muted:rgba(23,23,26,.2);--pst-color-blockquote-notch:#677384;--pst-color-inline-code:#912583;--pst-color-inline-code-links:#085d6c;--pst-color-target:#f3cf95;--pst-color-table:#14181e;--pst-color-table-row-hover-bg:#d5b4fd;--pst-color-table-inner-border:#e5e7ea;--pst-color-background:#fff;--pst-color-on-background:#fff;--pst-color-surface:#f3f4f5;--pst-color-on-surface:#222832;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface);color-scheme:light}html[data-theme=light] .only-dark,html[data-theme=light] .only-dark~figcaption{display:none!important}html[data-theme=dark]{--pst-color-primary-bg:#042c33;--pst-color-secondary-bg:#341a61;--pst-color-accent:#e47fd7;--pst-color-accent-bg:#46123f;--pst-color-info-bg:#06245d;--pst-color-warning-bg:#652a02;--pst-color-success-bg:#002f17;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger-bg:#4e111b;--pst-color-text-base:#ced6dd;--pst-color-text-muted:#9ca4af;--pst-color-shadow:rgba(0,0,0,.2);--pst-color-border:#48566b;--pst-color-border-muted:#29313d;--pst-color-blockquote-notch:#9ca4af;--pst-color-inline-code:#f3c7ee;--pst-color-inline-code-links:#3fb1c5;--pst-color-target:#675c04;--pst-color-table:#fff;--pst-color-table-row-hover-bg:#4b258f;--pst-color-table-inner-border:#364150;--pst-color-background:#14181e;--pst-color-on-background:#222832;--pst-color-surface:#29313d;--pst-color-on-surface:#f3f4f5;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface);color-scheme:dark}html[data-theme=dark] .only-light,html[data-theme=dark] .only-light~figcaption{display:none!important}html[data-theme=dark] img:not(.only-dark,.dark-light){filter:brightness(.8) contrast(1.2)}html[data-theme=dark] .bd-content img:not(.only-dark,.dark-light){background-color:#fff;border-radius:.25rem}html[data-theme=dark] .MathJax_SVG *{fill:var(--pst-color-text-base)}.pst-color-primary{color:var(--pst-color-primary)}.pst-color-secondary{color:var(--pst-color-secondary)}.pst-color-accent{color:var(--pst-color-accent)}.pst-color-info{color:var(--pst-color-info)}.pst-color-warning{color:var(--pst-color-warning)}.pst-color-success{color:var(--pst-color-success)}.pst-color-attention{color:var(--pst-color-attention)}.pst-color-danger{color:var(--pst-color-danger)}.pst-color-text-base{color:var(--pst-color-text-base)}.pst-color-text-muted{color:var(--pst-color-text-muted)}.pst-color-shadow{color:var(--pst-color-shadow)}.pst-color-border{color:var(--pst-color-border)}.pst-color-border-muted{color:var(--pst-color-border-muted)}.pst-color-blockquote-notch{color:var(--pst-color-blockquote-notch)}.pst-color-inline-code{color:var(--pst-color-inline-code)}.pst-color-inline-code-links{color:var(--pst-color-inline-code-links)}.pst-color-target{color:var(--pst-color-target)}.pst-color-table{color:var(--pst-color-table)}.pst-color-table-row-hover{color:var(--pst-color-table-row-hover)}.pst-color-table-inner-border{color:var(--pst-color-table-inner-border)}.pst-color-background{color:var(--pst-color-background)}.pst-color-on-background{color:var(--pst-color-on-background)}.pst-color-surface{color:var(--pst-color-surface)}.pst-color-on-surface{color:var(--pst-color-on-surface)}html[data-theme=light]{--pst-color-primary:#0a7d91;--pst-color-primary-text:#fff;--pst-color-primary-highlight:#086b7c;--sd-color-primary:var(--pst-color-primary);--sd-color-primary-text:var(--pst-color-primary-text);--sd-color-primary-highlight:var(--pst-color-primary-highlight);--pst-color-primary-highlight-text:#fff;--sd-color-primary-bg:#d0ecf1;--sd-color-primary-bg-text:#14181e;--pst-color-secondary:#8045e5;--pst-color-secondary-text:#fff;--pst-color-secondary-highlight:#651ee0;--sd-color-secondary:var(--pst-color-secondary);--sd-color-secondary-text:var(--pst-color-secondary-text);--sd-color-secondary-highlight:var(--pst-color-secondary-highlight);--pst-color-secondary-highlight-text:#fff;--sd-color-secondary-bg:#e0c7ff;--sd-color-secondary-bg-text:#14181e;--pst-color-success:#00843f;--pst-color-success-text:#fff;--pst-color-success-highlight:#007036;--sd-color-success:var(--pst-color-success);--sd-color-success-text:var(--pst-color-success-text);--sd-color-success-highlight:var(--pst-color-success-highlight);--pst-color-success-highlight-text:#fff;--sd-color-success-bg:#d6ece1;--sd-color-success-bg-text:#14181e;--pst-color-info:#276be9;--pst-color-info-text:#fff;--pst-color-info-highlight:#1457d3;--sd-color-info:var(--pst-color-info);--sd-color-info-text:var(--pst-color-info-text);--sd-color-info-highlight:var(--pst-color-info-highlight);--pst-color-info-highlight-text:#fff;--sd-color-info-bg:#dce7fc;--sd-color-info-bg-text:#14181e;--pst-color-warning:#f66a0a;--pst-color-warning-text:#14181e;--pst-color-warning-highlight:#d25a07;--sd-color-warning:var(--pst-color-warning);--sd-color-warning-text:var(--pst-color-warning-text);--sd-color-warning-highlight:var(--pst-color-warning-highlight);--pst-color-warning-highlight-text:#14181e;--sd-color-warning-bg:#f8e3d0;--sd-color-warning-bg-text:#14181e;--pst-color-danger:#d72d47;--pst-color-danger-text:#fff;--pst-color-danger-highlight:#bb2239;--sd-color-danger:var(--pst-color-danger);--sd-color-danger-text:var(--pst-color-danger-text);--sd-color-danger-highlight:var(--pst-color-danger-highlight);--pst-color-danger-highlight-text:#fff;--sd-color-danger-bg:#f9e1e4;--sd-color-danger-bg-text:#14181e;--pst-color-light:#f3f4f5;--pst-color-light-text:#14181e;--pst-color-light-highlight:#c9cfd6;--sd-color-light:var(--pst-color-light);--sd-color-light-text:var(--pst-color-light-text);--sd-color-light-highlight:var(--pst-color-light-highlight);--pst-color-light-highlight-text:#14181e;--sd-color-light-bg:#f7f7f8;--sd-color-light-bg-text:#14181e;--pst-color-muted:#29313d;--pst-color-muted-text:#fff;--pst-color-muted-highlight:#212936;--sd-color-muted:var(--pst-color-muted);--sd-color-muted-text:var(--pst-color-muted-text);--sd-color-muted-highlight:var(--pst-color-muted-highlight);--pst-color-muted-highlight-text:#fff;--sd-color-muted-bg:#5a6c86;--sd-color-muted-bg-text:#fff;--pst-color-dark:#222832;--pst-color-dark-text:#fff;--pst-color-dark-highlight:#1b222c;--sd-color-dark:var(--pst-color-dark);--sd-color-dark-text:var(--pst-color-dark-text);--sd-color-dark-highlight:var(--pst-color-dark-highlight);--pst-color-dark-highlight-text:#fff;--pst-color-black:#14181e;--pst-color-black-text:#fff;--pst-color-black-highlight:#10141a;--sd-color-black:var(--pst-color-black);--sd-color-black-text:var(--pst-color-black-text);--sd-color-black-highlight:var(--pst-color-black-highlight);--pst-color-black-highlight-text:#fff;--pst-color-white:#fff;--pst-color-white-text:#14181e;--pst-color-white-highlight:#dbd7d7;--sd-color-white:var(--pst-color-white);--sd-color-white-text:var(--pst-color-white-text);--sd-color-white-highlight:var(--pst-color-white-highlight);--pst-color-white-highlight-text:#14181e}html[data-theme=dark]{--pst-color-primary:#3fb1c5;--pst-color-primary-text:#14181e;--pst-color-primary-highlight:#319aac;--sd-color-primary:var(--pst-color-primary);--sd-color-primary-text:var(--pst-color-primary-text);--sd-color-primary-highlight:var(--pst-color-primary-highlight);--pst-color-primary-highlight-text:#14181e;--sd-color-primary-bg:#042c33;--sd-color-primary-bg-text:#fff;--pst-color-secondary:#9c5ffd;--pst-color-secondary-text:#14181e;--pst-color-secondary-highlight:#7c2bfc;--sd-color-secondary:var(--pst-color-secondary);--sd-color-secondary-text:var(--pst-color-secondary-text);--sd-color-secondary-highlight:var(--pst-color-secondary-highlight);--pst-color-secondary-highlight-text:#fff;--sd-color-secondary-bg:#341a61;--sd-color-secondary-bg-text:#fff;--pst-color-success:#5fb488;--pst-color-success-text:#14181e;--pst-color-success-highlight:#47a373;--sd-color-success:var(--pst-color-success);--sd-color-success-text:var(--pst-color-success-text);--sd-color-success-highlight:var(--pst-color-success-highlight);--pst-color-success-highlight-text:#14181e;--sd-color-success-bg:#002f17;--sd-color-success-bg-text:#fff;--pst-color-info:#79a3f2;--pst-color-info-text:#14181e;--pst-color-info-highlight:#4681ee;--sd-color-info:var(--pst-color-info);--sd-color-info-text:var(--pst-color-info-text);--sd-color-info-highlight:var(--pst-color-info-highlight);--pst-color-info-highlight-text:#14181e;--sd-color-info-bg:#06245d;--sd-color-info-bg-text:#fff;--pst-color-warning:#ff9245;--pst-color-warning-text:#14181e;--pst-color-warning-highlight:#ff7614;--sd-color-warning:var(--pst-color-warning);--sd-color-warning-text:var(--pst-color-warning-text);--sd-color-warning-highlight:var(--pst-color-warning-highlight);--pst-color-warning-highlight-text:#14181e;--sd-color-warning-bg:#652a02;--sd-color-warning-bg-text:#fff;--pst-color-danger:#e78894;--pst-color-danger-text:#14181e;--pst-color-danger-highlight:#df596a;--sd-color-danger:var(--pst-color-danger);--sd-color-danger-text:var(--pst-color-danger-text);--sd-color-danger-highlight:var(--pst-color-danger-highlight);--pst-color-danger-highlight-text:#14181e;--sd-color-danger-bg:#4e111b;--sd-color-danger-bg-text:#fff;--pst-color-light:#f3f4f5;--pst-color-light-text:#14181e;--pst-color-light-highlight:#c9cfd6;--sd-color-light:var(--pst-color-light);--sd-color-light-text:var(--pst-color-light-text);--sd-color-light-highlight:var(--pst-color-light-highlight);--pst-color-light-highlight-text:#14181e;--sd-color-light-bg:#a3abb2;--sd-color-light-bg-text:#14181e;--pst-color-muted:#f3f4f5;--pst-color-muted-text:#14181e;--pst-color-muted-highlight:#c9cfd6;--sd-color-muted:var(--pst-color-muted);--sd-color-muted-text:var(--pst-color-muted-text);--sd-color-muted-highlight:var(--pst-color-muted-highlight);--pst-color-muted-highlight-text:#14181e;--sd-color-muted-bg:#1d222b;--sd-color-muted-bg-text:#fff;--pst-color-dark:#222832;--pst-color-dark-text:#fff;--pst-color-dark-highlight:#1b222c;--sd-color-dark:var(--pst-color-dark);--sd-color-dark-text:var(--pst-color-dark-text);--sd-color-dark-highlight:var(--pst-color-dark-highlight);--pst-color-dark-highlight-text:#fff;--pst-color-black:#14181e;--pst-color-black-text:#fff;--pst-color-black-highlight:#10141a;--sd-color-black:var(--pst-color-black);--sd-color-black-text:var(--pst-color-black-text);--sd-color-black-highlight:var(--pst-color-black-highlight);--pst-color-black-highlight-text:#fff;--pst-color-white:#fff;--pst-color-white-text:#14181e;--pst-color-white-highlight:#dbd7d7;--sd-color-white:var(--pst-color-white);--sd-color-white-text:var(--pst-color-white-text);--sd-color-white-highlight:var(--pst-color-white-highlight);--pst-color-white-highlight-text:#14181e}html[data-theme=dark],html[data-theme=light]{--sd-color-card-border:var(--pst-color-border)}html[data-theme=light] .sd-shadow-lg,html[data-theme=light] .sd-shadow-md,html[data-theme=light] .sd-shadow-sm,html[data-theme=light] .sd-shadow-xs{box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important}.bd-content .sd-card{border:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-header{background-color:var(--pst-color-on-background);border-bottom:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-footer{border-top:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-body,.bd-content .sd-card .sd-card-footer{background-color:var(--pst-color-on-background)}.bd-content .sd-card .sd-stretched-link:focus-visible{outline:none}.bd-content .sd-card .sd-stretched-link:focus-visible:after{border-radius:.25rem;outline:var(--pst-color-accent) solid .1875rem}.bd-content .sd-card.sd-card-hover:hover{border-color:var(--pst-color-link-hover)}.bd-content .sd-tab-set>input:checked+label{background-color:var(--pst-color-on-background);border-color:var(--pst-color-primary) var(--pst-color-primary) transparent;border-radius:.125rem .125rem 0 0;border-style:solid solid none;border-width:.125rem .125rem 0;color:var(--pst-color-primary);transform:translateY(.125rem)}.bd-content .sd-tab-set>input:focus-visible+label{background-color:var(--pst-color-accent-bg);border:.125rem solid var(--pst-color-accent);border-radius:.125rem;color:var(--pst-color-on-surface)}.bd-content .sd-tab-set>input:not(:checked,:focus-visible)+label:hover{border-color:transparent;color:var(--pst-color-secondary);text-decoration-line:underline;text-decoration-thickness:max(3px,.1875rem,.12em)}.bd-content .sd-tab-set>label{background-color:var(--pst-color-surface);border:.125rem solid transparent;border-radius:.125rem .125rem 0 0;color:var(--pst-color-on-surface);line-height:1.95;margin-inline-end:.25rem;padding:0 .75em}.bd-content .sd-tab-set .sd-tab-content,html[data-theme=dark] .bd-content .sd-tab-set>label{background-color:var(--pst-color-on-background)}.bd-content .sd-tab-set .sd-tab-content{border:.125rem solid var(--pst-color-primary);border-radius:.1875rem;box-shadow:unset;padding:.625rem}details.sd-dropdown{border:0!important;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important}details.sd-dropdown summary.sd-card-header{--pst-sd-dropdown-color:var(--pst-gray-500);--pst-sd-dropdown-bg-color:var(--pst-color-surface);align-items:center;background-color:var(--pst-sd-dropdown-bg-color)!important;border:0!important;border-left:.2rem solid var(--pst-sd-dropdown-color)!important;display:flex;font-weight:600;padding-bottom:.5rem;padding-top:.5rem;position:relative}details.sd-dropdown summary.sd-card-header+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-card-border);border:0}details.sd-dropdown summary.sd-card-header.sd-bg-primary,details.sd-dropdown summary.sd-card-header.sd-bg-primary+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-primary);--pst-sd-dropdown-bg-color:var(--sd-color-primary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-primary{color:var(--sd-color-primary-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-secondary,details.sd-dropdown summary.sd-card-header.sd-bg-secondary+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-secondary);--pst-sd-dropdown-bg-color:var(--sd-color-secondary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-secondary{color:var(--sd-color-secondary-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-success,details.sd-dropdown summary.sd-card-header.sd-bg-success+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-success);--pst-sd-dropdown-bg-color:var(--sd-color-success-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-success{color:var(--sd-color-success-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-info,details.sd-dropdown summary.sd-card-header.sd-bg-info+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-info);--pst-sd-dropdown-bg-color:var(--sd-color-info-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-info{color:var(--sd-color-info-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-warning,details.sd-dropdown summary.sd-card-header.sd-bg-warning+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-warning);--pst-sd-dropdown-bg-color:var(--sd-color-warning-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-warning{color:var(--sd-color-warning-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-danger,details.sd-dropdown summary.sd-card-header.sd-bg-danger+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-danger);--pst-sd-dropdown-bg-color:var(--sd-color-danger-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-danger{color:var(--sd-color-danger-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-light,details.sd-dropdown summary.sd-card-header.sd-bg-light+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-light);--pst-sd-dropdown-bg-color:var(--sd-color-light-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-light{color:var(--sd-color-light-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-muted,details.sd-dropdown summary.sd-card-header.sd-bg-muted+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-muted);--pst-sd-dropdown-bg-color:var(--sd-color-muted-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-muted{color:var(--sd-color-muted-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-dark,details.sd-dropdown summary.sd-card-header.sd-bg-dark+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-dark);--pst-sd-dropdown-bg-color:var(--sd-color-dark-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-dark{color:var(--sd-color-dark-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-black,details.sd-dropdown summary.sd-card-header.sd-bg-black+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-black);--pst-sd-dropdown-bg-color:var(--sd-color-black-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-black{color:var(--sd-color-black-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-white,details.sd-dropdown summary.sd-card-header.sd-bg-white+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-white);--pst-sd-dropdown-bg-color:var(--sd-color-white-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-white{color:var(--sd-color-white-bg-text)!important}details.sd-dropdown summary.sd-card-header:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}details.sd-dropdown summary.sd-card-header+div.sd-summary-content{background-color:var(--pst-color-on-background);border-bottom-left-radius:calc(.25rem - 1px);border-left:.2rem solid var(--pst-sd-dropdown-color)!important}details.sd-dropdown summary.sd-card-header span.sd-summary-icon{align-items:center;color:var(--pst-sd-dropdown-color)!important;display:inline-flex}details.sd-dropdown summary.sd-card-header span.sd-summary-icon svg{opacity:1}details.sd-dropdown summary.sd-card-header .sd-summary-down,details.sd-dropdown summary.sd-card-header .sd-summary-up{top:.7rem}details.sd-dropdown summary.sd-card-header:hover{filter:brightness(.9)}html[data-theme=dark] details.sd-dropdown summary.sd-card-header:hover{filter:brightness(1.1)}details.sd-dropdown summary.sd-card-header:focus:focus-visible{border-radius:.1875rem;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.125rem}details.sd-dropdown[open] summary.sd-card-header:focus:focus-visible{border-bottom-left-radius:0;border-bottom-right-radius:0}html .sd-btn{min-width:2.25rem;padding:.3125rem .75rem .4375rem}html .sd-btn:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}html .sd-btn-primary:hover{color:var(--pst-color-primary-highlight-text)!important}html .sd-btn-secondary:hover{color:var(--pst-color-secondary-highlight-text)!important}html .sd-btn-success:hover{color:var(--pst-color-success-highlight-text)!important}html .sd-btn-info:hover{color:var(--pst-color-info-highlight-text)!important}html .sd-btn-warning:hover{color:var(--pst-color-warning-highlight-text)!important}html .sd-btn-danger:hover{color:var(--pst-color-danger-highlight-text)!important}html .sd-btn-light:hover{color:var(--pst-color-light-highlight-text)!important}html .sd-btn-muted:hover{color:var(--pst-color-muted-highlight-text)!important}html .sd-btn-dark:hover{color:var(--pst-color-dark-highlight-text)!important}html .sd-btn-black:hover{color:var(--pst-color-black-highlight-text)!important}html .sd-btn-white:hover{color:var(--pst-color-white-highlight-text)!important}html .sd-btn-outline-primary:focus-visible,html .sd-btn-primary:focus-visible{background-color:var(--sd-color-primary)!important;border-color:var(--sd-color-primary)!important;border-radius:.1875rem;outline:var(--sd-color-primary) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-secondary:focus-visible,html .sd-btn-secondary:focus-visible{background-color:var(--sd-color-secondary)!important;border-color:var(--sd-color-secondary)!important;border-radius:.1875rem;outline:var(--sd-color-secondary) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-success:focus-visible,html .sd-btn-success:focus-visible{background-color:var(--sd-color-success)!important;border-color:var(--sd-color-success)!important;border-radius:.1875rem;outline:var(--sd-color-success) solid .1875rem;outline-offset:.125rem}html .sd-btn-info:focus-visible,html .sd-btn-outline-info:focus-visible{background-color:var(--sd-color-info)!important;border-color:var(--sd-color-info)!important;border-radius:.1875rem;outline:var(--sd-color-info) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-warning:focus-visible,html .sd-btn-warning:focus-visible{background-color:var(--sd-color-warning)!important;border-color:var(--sd-color-warning)!important;border-radius:.1875rem;outline:var(--sd-color-warning) solid .1875rem;outline-offset:.125rem}html .sd-btn-danger:focus-visible,html .sd-btn-outline-danger:focus-visible{background-color:var(--sd-color-danger)!important;border-color:var(--sd-color-danger)!important;border-radius:.1875rem;outline:var(--sd-color-danger) solid .1875rem;outline-offset:.125rem}html .sd-btn-light:focus-visible,html .sd-btn-outline-light:focus-visible{background-color:var(--sd-color-light)!important;border-color:var(--sd-color-light)!important;border-radius:.1875rem;outline:var(--sd-color-light) solid .1875rem;outline-offset:.125rem}html .sd-btn-muted:focus-visible,html .sd-btn-outline-muted:focus-visible{background-color:var(--sd-color-muted)!important;border-color:var(--sd-color-muted)!important;border-radius:.1875rem;outline:var(--sd-color-muted) solid .1875rem;outline-offset:.125rem}html .sd-btn-dark:focus-visible,html .sd-btn-outline-dark:focus-visible{background-color:var(--sd-color-dark)!important;border-color:var(--sd-color-dark)!important;border-radius:.1875rem;outline:var(--sd-color-dark) solid .1875rem;outline-offset:.125rem}html .sd-btn-black:focus-visible,html .sd-btn-outline-black:focus-visible{background-color:var(--sd-color-black)!important;border-color:var(--sd-color-black)!important;border-radius:.1875rem;outline:var(--sd-color-black) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-white:focus-visible,html .sd-btn-white:focus-visible{background-color:var(--sd-color-white)!important;border-color:var(--sd-color-white)!important;border-radius:.1875rem;outline:var(--sd-color-white) solid .1875rem;outline-offset:.125rem}.bd-content .dropdown.admonition.toggle .admonition-title:hover .tb-icon{opacity:1;scale:1.1}.bd-content .dropdown.admonition.toggle .admonition-title .tb-icon{opacity:.6}.bd-content .dropdown.admonition.toggle .admonition-title:hover{filter:brightness(.9)}html[data-theme=dark] .bd-content .dropdown.admonition.toggle .admonition-title:hover{filter:brightness(1.1)}.bd-content .dropdown.admonition.toggle .admonition-title:hover{box-shadow:none}.bd-content .dropdown.admonition.toggle button.toggle-button{color:inherit}.bd-content .dropdown.admonition.toggle button.toggle-button.toggle-button-hidden .toggle-chevron-right{transform:rotate(90deg);transition:none}.bd-content .dropdown.admonition.toggle button.toggle-button .toggle-chevron-right{transform:rotate(-90deg);transition:none}.bd-content .dropdown.admonition.toggle:has(:focus-visible){overflow:visible}.bd-content .dropdown.admonition.toggle:has(:focus-visible) .admonition-title:before{border-radius:.1875rem;content:"";height:100%;left:-.2rem;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.125rem;width:calc(100% + .2rem)}.bd-content .dropdown.admonition.toggle:has(:focus-visible):not(.toggle-hidden) .admonition-title:before{border-bottom-left-radius:0;border-bottom-right-radius:0}.bd-content details.toggle-details summary{border-left:3px solid var(--pst-color-primary)}.bd-content details.toggle-details summary .toggle-chevron-right{transform:rotate(90deg);transition:none}.bd-content details.toggle-details summary:hover .tb-icon{opacity:1;scale:1.1}.bd-content details.toggle-details summary .tb-icon{opacity:.6}.bd-content details.toggle-details summary:hover{filter:brightness(.9)}html[data-theme=dark] .bd-content details.toggle-details summary:hover{filter:brightness(1.1)}.bd-content details.toggle-details summary:hover{box-shadow:none}.bd-content details.toggle-details summary:focus-visible{outline-offset:.125rem}.bd-content details.toggle-details[open] .toggle-chevron-right{transform:rotate(-90deg);transition:none}.bd-content details.toggle-details[open] :focus-visible{border-bottom-left-radius:0;border-bottom-right-radius:0}html .jp-RenderedHTMLCommon,html div.rendered_html{margin:.1875rem}html .jp-RenderedHTMLCommon table,html div.rendered_html table{table-layout:auto}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe,.bd-content .nboutput .output_area.rendered_html table.dataframe{border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td~td,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td~th,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th~td,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th~th,.bd-content .nboutput .output_area.rendered_html table.dataframe td~td,.bd-content .nboutput .output_area.rendered_html table.dataframe td~th,.bd-content .nboutput .output_area.rendered_html table.dataframe th~td,.bd-content .nboutput .output_area.rendered_html table.dataframe th~th{border-left:1px solid var(--pst-color-table-inner-border)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe thead tr,.bd-content .nboutput .output_area.rendered_html table.dataframe thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(odd),.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(2n),.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:hover,.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}html[data-theme=dark] .bd-content .nboutput .output_area .widget-subarea,html[data-theme=dark] .bd-content .nboutput .output_area.rendered_html:not(:has(table.dataframe)){background-color:var(--pst-color-text-base);border-radius:.25rem;color:var(--pst-color-on-background);padding:.5rem}html[data-theme=dark] .bd-content .nboutput .output_area.stderr{background-color:var(--pst-color-danger)}div.nblast.container{margin-bottom:1rem}html[data-theme=light] .nbinput.container .prompt pre{color:#005b82}html[data-theme=dark] .nbinput.container .prompt pre{color:#00e0e0}html[data-theme=light] .nboutput.container .prompt pre{color:#a12236}html[data-theme=dark] .nboutput.container .prompt pre{color:#ffa07a}div.cell_output .output{max-width:100%;overflow-x:auto}.bd-content div.cell_output table.dataframe{border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table)}.bd-content div.cell_output table.dataframe td~td,.bd-content div.cell_output table.dataframe td~th,.bd-content div.cell_output table.dataframe th~td,.bd-content div.cell_output table.dataframe th~th{border-left:1px solid var(--pst-color-table-inner-border)}.bd-content div.cell_output table.dataframe thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.bd-content div.cell_output table.dataframe tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.bd-content div.cell_output table.dataframe tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.bd-content div.cell_output table.dataframe tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}html[data-theme=dark] .bd-content div.cell_output .text_html:not(:has(table.dataframe)),html[data-theme=dark] .bd-content div.cell_output .widget-subarea,html[data-theme=dark] .bd-content div.cell_output img{background-color:var(--pst-color-text-base);border-radius:.25rem;color:var(--pst-color-on-background);padding:.5rem}.bd-content div.cell_input{display:flex;flex-direction:column;justify-content:stretch}.bd-content div.cell_input,.bd-content div.output{border-radius:.25rem}.bd-content div.output table{table-layout:auto}html[data-theme=dark] .bd-content img.leaflet-tile.leaflet-tile-loaded{border-radius:0;padding:0}.bd-search-container div#search-results>.h2,.bd-search-container div#search-results>h2{font-size:var(--pst-font-size-icon);margin-top:1rem}.bd-search-container div#search-results p.search-summary{color:var(--pst-color-text-muted)}.bd-search-container ul.search{list-style:none;margin:0}.bd-search-container ul.search li{background-image:none;border-top:1px solid var(--pst-color-text-muted);margin:1rem 0;padding:1rem 0}.bd-search-container ul.search li>a{font-size:1.2em}.bd-search-container ul.search li div.context,.bd-search-container ul.search li p.context{color:var(--pst-color-text-base);margin:.5em 0 0}.bd-search-container ul.search li div.context a:before,.bd-search-container ul.search li p.context a:before{color:var(--pst-color-text-muted);content:"#";padding-right:.2em}
-/*# sourceMappingURL=pydata-sphinx-theme.css.map*/
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/_static/styles/pydata-sphinx-theme.css.map b/pr-preview-academy/pr-1250/_static/styles/pydata-sphinx-theme.css.map
deleted file mode 100644
index 1142bcdf16..0000000000
--- a/pr-preview-academy/pr-1250/_static/styles/pydata-sphinx-theme.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"styles/pydata-sphinx-theme.css","mappings":"AAsGE,gBCqlBF;AC1rBE;;;;EAAA,CCDF,4BASI,qQAIA,sMAIA,iKAIA,sNAIA,iRAIA,iPAIA,iRAGF,2BACA,qBAMA,yMACA,mGACA,4EAOA,gDC2OI,wBALI,CDpOR,0BACA,0BAKA,wBACA,6BACA,kBACA,6BAEA,yBACA,8BAEA,wCACA,kCACA,0BACA,kCAEA,sCACA,iCACA,yBACA,iCAGA,2BAEA,wBACA,+BACA,+BAEA,8BACA,oCAMA,wBACA,6BACA,0BAGA,sBACA,wBACA,0BACA,+CAEA,4BACA,8BACA,6BACA,2BACA,4BACA,mDACA,8BAGA,8CACA,uDACA,gDACA,uDAIA,gCACA,0BACA,8CAIA,8BACA,qCACA,gCACA,sCFFF,CI9GI,qBFyHA,wBACA,gCACA,qBACA,0BAEA,yBACA,oCAEA,2CACA,qCACA,0BACA,+BAEA,yCACA,oCACA,yBACA,8BAGE,iRAIA,iPAIA,iRAGF,2BAEA,wBACA,8BACA,gCACA,sCAEA,wBACA,6BACA,0BAEA,0BACA,kDAEA,8BACA,qCACA,gCACA,uCAlDA,iBFgDJ,CKtKA,iBAGE,qBLyKF,CK1JI,8CANJ,MAOM,sBL8JJ,CACF,CKjJA,KASE,6BAA8B,CAC9B,0CAFA,mCAFA,2BAJA,uCF6OI,kCALI,CEtOR,uCACA,uCAJA,QAAS,CAMT,oCLuJF,CK3IA,GAIE,wCAFA,aCmnB4B,CDpnB5B,cAIA,WL8IF,CKpIA,0CAOE,8BAFA,eCwjB4B,CDvjB5B,eCwjB4B,CD5jB5B,mBCwjB4B,CDzjB5B,YL2IF,CKlIA,OFuMQ,gCHjER,CG3FI,0BE3CJ,OF8MQ,gBHpEN,CACF,CKtIA,OFkMQ,+BHxDR,CGpGI,0BEtCJ,OFyMQ,cH3DN,CACF,CK1IA,OF6LQ,6BH/CR,CG7GI,0BEjCJ,OFoMQ,iBHlDN,CACF,CK9IA,OFwLQ,+BHtCR,CGtHI,0BE5BJ,OF+LQ,gBHzCN,CACF,CKlJA,OF+KM,iBHzBN,CKjJA,OF0KM,cHrBN,CK1IA,EAEE,kBCwV0B,CDzV1B,YL8IF,CKnIA,YAEE,WAAY,CADZ,gCAAiC,CAEjC,6BLsIF,CKhIA,QAEE,iBAAkB,CAClB,mBAAoB,CAFpB,kBLqIF,CK7HA,MAEE,iBLgIF,CK7HA,SAIE,kBAAmB,CADnB,YLiIF,CK7HA,wBAIE,eLgIF,CK7HA,GACE,eLgIF,CK3HA,GACE,oBACA,aL8HF,CKxHA,WACE,eL2HF,CKnHA,SAEE,kBLsHF,CK9GA,aF6EM,gBHqCN,CK3GA,WAGE,wCADA,gCADA,eLgHF,CKrGA,QF0DM,eALI,CEjDR,aAAc,CAFd,iBAAkB,CAGlB,uBLwGF,CKrGA,IAAM,aLyGN,CKxGA,IAAM,SL4GN,CKvGA,EACE,6DL2GF,CKxGE,QACE,kDL0GJ,CK/FE,4DAEE,aAAc,CACd,oBLiGJ,CK1FA,kBAIE,oCCgV4B,CHlUxB,aHgFN,CKtFA,IACE,aAAc,CFKV,gBALI,CEER,kBAAmB,CADnB,YAAa,CAEb,aL0FF,CKrFE,SAEE,aAAc,CFLZ,iBALI,CEWN,iBLuFJ,CKnFA,KAGE,oBAAqB,CADrB,2BFZI,gBHmGN,CKnFE,OACE,aLqFJ,CKjFA,IAIE,qCCy5CkC,CC9rDhC,qBFoSF,uBCy5CkC,CHj7C9B,gBALI,CE2BR,wBLwFF,CKlFE,QF5BI,aALI,CEkCN,SLqFJ,CK1EA,OACE,eL6EF,CKvEA,QAEE,qBL0EF,CKlEA,MAEE,wBAAyB,CADzB,mBLsEF,CKlEA,QAGE,+BC4Z4B,CD7Z5B,oBC2X4B,CD5X5B,iBC4X4B,CDzX5B,eLqEF,CK9DA,GAEE,kBAAmB,CACnB,+BLgEF,CK7DA,2BAQE,cAAe,CAFf,oBLkEF,CKxDA,MACE,oBL2DF,CKrDA,OAEE,eLuDF,CK/CA,iCACE,SLkDF,CK7CA,sCAME,mBAAoB,CF5HhB,iBALI,CEmIR,mBAAoB,CAHpB,QLmDF,CK5CA,cAEE,mBL+CF,CK1CA,cACE,cL6CF,CK1CA,OAGE,gBL2CF,CKxCE,gBACE,SL0CJ,CKnCA,0IACE,sBLsCF,CK9BA,gDAIE,yBLiCF,CK9BI,4GACE,cLmCN,CK5BA,mBAEE,iBAAkB,CADlB,SLgCF,CK1BA,SACE,eL6BF,CKnBA,SAIE,QAAS,CADT,QAAS,CAFT,WAAY,CACZ,SLwBF,CKdA,OACE,UAAW,CF9ML,gCEoNN,mBAAoB,CAHpB,mBCmN4B,CDpN5B,SAAU,CADV,ULqBF,CGhYI,0BEyWJ,OFtMQ,gBHiON,CACF,CKnBE,SACE,ULqBJ,CKdA,+OAOE,SLiBF,CKdA,4BACE,WLiBF,CKRA,cACE,4BAA6B,CAC7B,mBLWF,CKQA,4BACE,uBLGF,CKEA,+BACE,SLCF,CKMA,uBAEE,yBAA0B,CAD1B,YLFF,CKQA,OACE,oBLLF,CKUA,OACE,QLPF,CKcA,QAEE,cAAe,CADf,iBLVF,CKmBA,SACE,uBLhBF,CKwBA,SACE,sBLrBF,CDhjBA,MImQM,iBALI,CJ5PR,eCmjBF,CD9iBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eC+iBJ,CGhdI,0BJpGF,WIuQM,cHiTN,CACF,CDzjBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eC0jBJ,CG3dI,0BJpGF,WIuQM,gBH4TN,CACF,CDpkBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eCqkBJ,CGteI,0BJpGF,WIuQM,cHuUN,CACF,CD/kBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eCglBJ,CGjfI,0BJpGF,WIuQM,gBHkVN,CACF,CD1lBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eC2lBJ,CG5fI,0BJpGF,WIuQM,cH6VN,CACF,CDrmBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eCsmBJ,CGvgBI,0BJpGF,WIuQM,gBHwWN,CACF,CDnlBA,4BS3DE,eAAgB,CADhB,cRypBF,CD1lBA,kBACE,oBC6lBF,CD3lBE,mCACE,kBC6lBJ,CDnlBA,YI8MM,gBALI,CJvMR,wBCslBF,CDllBA,YIwMM,iBALI,CJlMR,kBCslBF,CDnlBE,wBACE,eCqlBJ,CDjlBA,mBAIE,aOtFS,CHiRL,gBALI,CJxLR,kBUjGO,CVgGP,gBCulBF,CDllBE,0BACE,YColBJ,CU9qBA,0BCCE,WAAY,CAHZ,cX8rBF,CU5rBA,eAEE,kCJ+jDkC,CI9jDlC,2DHGE,sCGLF,cV2rBF,CU7qBA,QAEE,oBV+qBF,CU5qBA,YAEE,aAAc,CADd,mBVgrBF,CU5qBA,gBAEE,+BJkjDkC,CH3zC9B,gBHwbN,CYjtBE,oFCHA,qBACA,gBAKA,gBAAiB,CADjB,iBAAkB,CADlB,yCADA,0CADA,UbiuBF,CcvqBI,yBF5CE,yBACE,eZutBN,CACF,Cc7qBI,yBF5CE,uCACE,eZ4tBN,CACF,CclrBI,yBF5CE,qDACE,eZiuBN,CACF,CcvrBI,0BF5CE,mEACE,gBZsuBN,CACF,CevvBA,MAEI,yHf4vBJ,CevvBE,KCNA,qBACA,gBACA,YAAa,CACb,cAAe,CAIf,yCADA,0CADA,sChBkwBF,Ce9vBI,OCOF,aAAc,CAKd,8BAHA,cAAe,CAEf,yCADA,0CAFA,UhB8vBF,CgB3sBM,KACE,WhB8sBR,CgB3sBM,iBApCJ,aAAc,CACd,UhBmvBF,CgBruBE,cACE,aAAc,CACd,UhBwuBJ,CgB1uBE,cACE,aAAc,CACd,ShB6uBJ,CgB/uBE,cACE,aAAc,CACd,kBhBkvBJ,CgBpvBE,cACE,aAAc,CACd,ShBuvBJ,CgBzvBE,cACE,aAAc,CACd,ShB4vBJ,CgB9vBE,cACE,aAAc,CACd,kBhBiwBJ,CgBluBM,UAhDJ,aAAc,CACd,UhBsxBF,CgBjuBU,OAhEN,aAAc,CACd,iBhBqyBJ,CgBtuBU,OAhEN,aAAc,CACd,kBhB0yBJ,CgB3uBU,OAhEN,aAAc,CACd,ShB+yBJ,CgBhvBU,OAhEN,aAAc,CACd,kBhBozBJ,CgBrvBU,OAhEN,aAAc,CACd,kBhByzBJ,CgB1vBU,OAhEN,aAAc,CACd,ShB8zBJ,CgB/vBU,OAhEN,aAAc,CACd,kBhBm0BJ,CgBpwBU,OAhEN,aAAc,CACd,kBhBw0BJ,CgBzwBU,OAhEN,aAAc,CACd,ShB60BJ,CgB9wBU,QAhEN,aAAc,CACd,kBhBk1BJ,CgBnxBU,QAhEN,aAAc,CACd,kBhBu1BJ,CgBxxBU,QAhEN,aAAc,CACd,UhB41BJ,CgBrxBY,UAxDV,uBhBi1BF,CgBzxBY,UAxDV,wBhBq1BF,CgB7xBY,UAxDV,ehBy1BF,CgBjyBY,UAxDV,wBhB61BF,CgBryBY,UAxDV,wBhBi2BF,CgBzyBY,UAxDV,ehBq2BF,CgB7yBY,UAxDV,wBhBy2BF,CgBjzBY,UAxDV,wBhB62BF,CgBrzBY,UAxDV,ehBi3BF,CgBzzBY,WAxDV,wBhBq3BF,CgB7zBY,WAxDV,wBhBy3BF,CgBtzBQ,WAEE,ehByzBV,CgBtzBQ,WAEE,ehByzBV,CgBh0BQ,WAEE,qBhBm0BV,CgBh0BQ,WAEE,qBhBm0BV,CgB10BQ,WAEE,oBhB60BV,CgB10BQ,WAEE,oBhB60BV,CgBp1BQ,WAEE,kBhBu1BV,CgBp1BQ,WAEE,kBhBu1BV,CgB91BQ,WAEE,oBhBi2BV,CgB91BQ,WAEE,oBhBi2BV,CgBx2BQ,WAEE,kBhB22BV,CgBx2BQ,WAEE,kBhB22BV,Ccr6BI,yBEUE,QACE,WhB+5BN,CgB55BI,oBApCJ,aAAc,CACd,UhBm8BA,CgBr7BA,iBACE,aAAc,CACd,UhBu7BF,CgBz7BA,iBACE,aAAc,CACd,ShB27BF,CgB77BA,iBACE,aAAc,CACd,kBhB+7BF,CgBj8BA,iBACE,aAAc,CACd,ShBm8BF,CgBr8BA,iBACE,aAAc,CACd,ShBu8BF,CgBz8BA,iBACE,aAAc,CACd,kBhB28BF,CgB56BI,aAhDJ,aAAc,CACd,UhB+9BA,CgB16BQ,UAhEN,aAAc,CACd,iBhB6+BF,CgB96BQ,UAhEN,aAAc,CACd,kBhBi/BF,CgBl7BQ,UAhEN,aAAc,CACd,ShBq/BF,CgBt7BQ,UAhEN,aAAc,CACd,kBhBy/BF,CgB17BQ,UAhEN,aAAc,CACd,kBhB6/BF,CgB97BQ,UAhEN,aAAc,CACd,ShBigCF,CgBl8BQ,UAhEN,aAAc,CACd,kBhBqgCF,CgBt8BQ,UAhEN,aAAc,CACd,kBhBygCF,CgB18BQ,UAhEN,aAAc,CACd,ShB6gCF,CgB98BQ,WAhEN,aAAc,CACd,kBhBihCF,CgBl9BQ,WAhEN,aAAc,CACd,kBhBqhCF,CgBt9BQ,WAhEN,aAAc,CACd,UhByhCF,CgBl9BU,aAxDV,ahB6gCA,CgBr9BU,aAxDV,uBhBghCA,CgBx9BU,aAxDV,wBhBmhCA,CgB39BU,aAxDV,ehBshCA,CgB99BU,aAxDV,wBhByhCA,CgBj+BU,aAxDV,wBhB4hCA,CgBp+BU,aAxDV,ehB+hCA,CgBv+BU,aAxDV,wBhBkiCA,CgB1+BU,aAxDV,wBhBqiCA,CgB7+BU,aAxDV,ehBwiCA,CgBh/BU,cAxDV,wBhB2iCA,CgBn/BU,cAxDV,wBhB8iCA,CgB3+BM,iBAEE,ehB6+BR,CgB1+BM,iBAEE,ehB4+BR,CgBn/BM,iBAEE,qBhBq/BR,CgBl/BM,iBAEE,qBhBo/BR,CgB3/BM,iBAEE,oBhB6/BR,CgB1/BM,iBAEE,oBhB4/BR,CgBngCM,iBAEE,kBhBqgCR,CgBlgCM,iBAEE,kBhBogCR,CgB3gCM,iBAEE,oBhB6gCR,CgB1gCM,iBAEE,oBhB4gCR,CgBnhCM,iBAEE,kBhBqhCR,CgBlhCM,iBAEE,kBhBohCR,CACF,Cc/kCI,yBEUE,QACE,WhBwkCN,CgBrkCI,oBApCJ,aAAc,CACd,UhB4mCA,CgB9lCA,iBACE,aAAc,CACd,UhBgmCF,CgBlmCA,iBACE,aAAc,CACd,ShBomCF,CgBtmCA,iBACE,aAAc,CACd,kBhBwmCF,CgB1mCA,iBACE,aAAc,CACd,ShB4mCF,CgB9mCA,iBACE,aAAc,CACd,ShBgnCF,CgBlnCA,iBACE,aAAc,CACd,kBhBonCF,CgBrlCI,aAhDJ,aAAc,CACd,UhBwoCA,CgBnlCQ,UAhEN,aAAc,CACd,iBhBspCF,CgBvlCQ,UAhEN,aAAc,CACd,kBhB0pCF,CgB3lCQ,UAhEN,aAAc,CACd,ShB8pCF,CgB/lCQ,UAhEN,aAAc,CACd,kBhBkqCF,CgBnmCQ,UAhEN,aAAc,CACd,kBhBsqCF,CgBvmCQ,UAhEN,aAAc,CACd,ShB0qCF,CgB3mCQ,UAhEN,aAAc,CACd,kBhB8qCF,CgB/mCQ,UAhEN,aAAc,CACd,kBhBkrCF,CgBnnCQ,UAhEN,aAAc,CACd,ShBsrCF,CgBvnCQ,WAhEN,aAAc,CACd,kBhB0rCF,CgB3nCQ,WAhEN,aAAc,CACd,kBhB8rCF,CgB/nCQ,WAhEN,aAAc,CACd,UhBksCF,CgB3nCU,aAxDV,ahBsrCA,CgB9nCU,aAxDV,uBhByrCA,CgBjoCU,aAxDV,wBhB4rCA,CgBpoCU,aAxDV,ehB+rCA,CgBvoCU,aAxDV,wBhBksCA,CgB1oCU,aAxDV,wBhBqsCA,CgB7oCU,aAxDV,ehBwsCA,CgBhpCU,aAxDV,wBhB2sCA,CgBnpCU,aAxDV,wBhB8sCA,CgBtpCU,aAxDV,ehBitCA,CgBzpCU,cAxDV,wBhBotCA,CgB5pCU,cAxDV,wBhButCA,CgBppCM,iBAEE,ehBspCR,CgBnpCM,iBAEE,ehBqpCR,CgB5pCM,iBAEE,qBhB8pCR,CgB3pCM,iBAEE,qBhB6pCR,CgBpqCM,iBAEE,oBhBsqCR,CgBnqCM,iBAEE,oBhBqqCR,CgB5qCM,iBAEE,kBhB8qCR,CgB3qCM,iBAEE,kBhB6qCR,CgBprCM,iBAEE,oBhBsrCR,CgBnrCM,iBAEE,oBhBqrCR,CgB5rCM,iBAEE,kBhB8rCR,CgB3rCM,iBAEE,kBhB6rCR,CACF,CcxvCI,yBEUE,QACE,WhBivCN,CgB9uCI,oBApCJ,aAAc,CACd,UhBqxCA,CgBvwCA,iBACE,aAAc,CACd,UhBywCF,CgB3wCA,iBACE,aAAc,CACd,ShB6wCF,CgB/wCA,iBACE,aAAc,CACd,kBhBixCF,CgBnxCA,iBACE,aAAc,CACd,ShBqxCF,CgBvxCA,iBACE,aAAc,CACd,ShByxCF,CgB3xCA,iBACE,aAAc,CACd,kBhB6xCF,CgB9vCI,aAhDJ,aAAc,CACd,UhBizCA,CgB5vCQ,UAhEN,aAAc,CACd,iBhB+zCF,CgBhwCQ,UAhEN,aAAc,CACd,kBhBm0CF,CgBpwCQ,UAhEN,aAAc,CACd,ShBu0CF,CgBxwCQ,UAhEN,aAAc,CACd,kBhB20CF,CgB5wCQ,UAhEN,aAAc,CACd,kBhB+0CF,CgBhxCQ,UAhEN,aAAc,CACd,ShBm1CF,CgBpxCQ,UAhEN,aAAc,CACd,kBhBu1CF,CgBxxCQ,UAhEN,aAAc,CACd,kBhB21CF,CgB5xCQ,UAhEN,aAAc,CACd,ShB+1CF,CgBhyCQ,WAhEN,aAAc,CACd,kBhBm2CF,CgBpyCQ,WAhEN,aAAc,CACd,kBhBu2CF,CgBxyCQ,WAhEN,aAAc,CACd,UhB22CF,CgBpyCU,aAxDV,ahB+1CA,CgBvyCU,aAxDV,uBhBk2CA,CgB1yCU,aAxDV,wBhBq2CA,CgB7yCU,aAxDV,ehBw2CA,CgBhzCU,aAxDV,wBhB22CA,CgBnzCU,aAxDV,wBhB82CA,CgBtzCU,aAxDV,ehBi3CA,CgBzzCU,aAxDV,wBhBo3CA,CgB5zCU,aAxDV,wBhBu3CA,CgB/zCU,aAxDV,ehB03CA,CgBl0CU,cAxDV,wBhB63CA,CgBr0CU,cAxDV,wBhBg4CA,CgB7zCM,iBAEE,ehB+zCR,CgB5zCM,iBAEE,ehB8zCR,CgBr0CM,iBAEE,qBhBu0CR,CgBp0CM,iBAEE,qBhBs0CR,CgB70CM,iBAEE,oBhB+0CR,CgB50CM,iBAEE,oBhB80CR,CgBr1CM,iBAEE,kBhBu1CR,CgBp1CM,iBAEE,kBhBs1CR,CgB71CM,iBAEE,oBhB+1CR,CgB51CM,iBAEE,oBhB81CR,CgBr2CM,iBAEE,kBhBu2CR,CgBp2CM,iBAEE,kBhBs2CR,CACF,Ccj6CI,0BEUE,QACE,WhB05CN,CgBv5CI,oBApCJ,aAAc,CACd,UhB87CA,CgBh7CA,iBACE,aAAc,CACd,UhBk7CF,CgBp7CA,iBACE,aAAc,CACd,ShBs7CF,CgBx7CA,iBACE,aAAc,CACd,kBhB07CF,CgB57CA,iBACE,aAAc,CACd,ShB87CF,CgBh8CA,iBACE,aAAc,CACd,ShBk8CF,CgBp8CA,iBACE,aAAc,CACd,kBhBs8CF,CgBv6CI,aAhDJ,aAAc,CACd,UhB09CA,CgBr6CQ,UAhEN,aAAc,CACd,iBhBw+CF,CgBz6CQ,UAhEN,aAAc,CACd,kBhB4+CF,CgB76CQ,UAhEN,aAAc,CACd,ShBg/CF,CgBj7CQ,UAhEN,aAAc,CACd,kBhBo/CF,CgBr7CQ,UAhEN,aAAc,CACd,kBhBw/CF,CgBz7CQ,UAhEN,aAAc,CACd,ShB4/CF,CgB77CQ,UAhEN,aAAc,CACd,kBhBggDF,CgBj8CQ,UAhEN,aAAc,CACd,kBhBogDF,CgBr8CQ,UAhEN,aAAc,CACd,ShBwgDF,CgBz8CQ,WAhEN,aAAc,CACd,kBhB4gDF,CgB78CQ,WAhEN,aAAc,CACd,kBhBghDF,CgBj9CQ,WAhEN,aAAc,CACd,UhBohDF,CgB78CU,aAxDV,ahBwgDA,CgBh9CU,aAxDV,uBhB2gDA,CgBn9CU,aAxDV,wBhB8gDA,CgBt9CU,aAxDV,ehBihDA,CgBz9CU,aAxDV,wBhBohDA,CgB59CU,aAxDV,wBhBuhDA,CgB/9CU,aAxDV,ehB0hDA,CgBl+CU,aAxDV,wBhB6hDA,CgBr+CU,aAxDV,wBhBgiDA,CgBx+CU,aAxDV,ehBmiDA,CgB3+CU,cAxDV,wBhBsiDA,CgB9+CU,cAxDV,wBhByiDA,CgBt+CM,iBAEE,ehBw+CR,CgBr+CM,iBAEE,ehBu+CR,CgB9+CM,iBAEE,qBhBg/CR,CgB7+CM,iBAEE,qBhB++CR,CgBt/CM,iBAEE,oBhBw/CR,CgBr/CM,iBAEE,oBhBu/CR,CgB9/CM,iBAEE,kBhBggDR,CgB7/CM,iBAEE,kBhB+/CR,CgBtgDM,iBAEE,oBhBwgDR,CgBrgDM,iBAEE,oBhBugDR,CgB9gDM,iBAEE,kBhBghDR,CgB7gDM,iBAEE,kBhB+gDR,CACF,CiBroDA,OAEE,8BACA,2BACA,+BACA,4BAEA,0CACA,gCACA,+CACA,iCACA,kDACA,8DACA,iDACA,4DACA,gDACA,6DAKA,0CAFA,kBRtBO,CQuBP,kBXusB4B,CWzsB5B,UjBuoDF,CiB7nDE,yBAIE,oCACA,0CX+sB0B,CW9sB1B,yGAHA,mFAFA,ajBmoDJ,CiB3nDE,aACE,sBjB6nDJ,CiB1nDE,aACE,qBjB4nDJ,CiBxnDA,qBACE,+CjB2nDF,CiBpnDA,aACE,gBjBunDF,CiB7mDE,4BACE,cjBgnDJ,CiBjmDE,gCACE,qCjBomDJ,CiBjmDI,kCACE,qCjBmmDN,CiB5lDE,oCACE,qBjB+lDJ,CiB5lDE,qCACE,kBjB8lDJ,CiB5kDE,kGACE,oDACA,6CjBolDJ,CiB5kDA,cACE,oDACA,6CjB+kDF,CiBvkDE,8BACE,mDACA,4CjB0kDJ,CkBttDE,eAOE,sBACA,sBACA,gCACA,8BACA,8BACA,6BACA,6BACA,4BACA,2BlBqtDJ,CkBpuDE,gCAkBE,0CADA,2BlBiuDJ,CkBlvDE,iBAOE,sBACA,sBACA,gCACA,8BACA,8BACA,6BACA,6BACA,4BACA,2BlBmuDJ,CkBlvDE,eAOE,sBACA,sBACA,gCACA,8BACA,8BACA,6BACA,6BACA,4BACA,2BlBivDJ,CkBhwDE,2BAkBE,0CADA,2BlB6vDJ,CkB9wDE,YAOE,sBACA,sBACA,gCACA,8BACA,8BACA,6BACA,6BACA,4BACA,2BlB+vDJ,CkB9wDE,eAOE,sBACA,sBACA,gCACA,8BACA,8BACA,6BACA,6BACA,4BACA,2BlB6wDJ,CkB5xDE,6BAkBE,0CADA,2BlByxDJ,CkB1yDE,cAOE,sBACA,sBACA,gCACA,8BACA,8BACA,6BACA,6BACA,4BACA,2BlB2xDJ,CkB1yDE,aAOE,sBACA,sBACA,gCACA,8BACA,8BACA,6BACA,6BACA,4BACA,2BlByyDJ,CkBxzDE,yBAkBE,0CADA,2BlBqzDJ,CkBt0DE,YAOE,sBACA,sBACA,gCACA,8BACA,8BACA,6BACA,6BACA,4BACA,2BlBuzDJ,CiBnqDI,kBAEE,gCAAiC,CADjC,ejBuqDN,CcjwDI,4BGyFA,qBAEE,gCAAiC,CADjC,ejB6qDJ,CACF,CcxwDI,4BGyFA,qBAEE,gCAAiC,CADjC,ejBmrDJ,CACF,Cc9wDI,4BGyFA,qBAEE,gCAAiC,CADjC,ejByrDJ,CACF,CcpxDI,6BGyFA,qBAEE,gCAAiC,CADjC,ejB+rDJ,CACF,CmBl2DA,YACE,mBnBo2DF,CmB31DA,gBhBiRM,iBALI,CgBrQR,eb+lB4B,CanmB5B,eAAgB,CADhB,sDADA,kDnBk2DF,CmBx1DA,mBhBsQM,iBALI,CgB/PR,oDADA,gDnB61DF,CmBx1DA,mBhBgQM,iBALI,CgBzPR,qDADA,iDnB61DF,CoBz3DA,WAKE,+Bd+1BsC,CHzkBlC,gBALI,CiBrRR,iBpB83DF,CqB/3DA,cASE,eAAgB,CAEhB,2BAA4B,CAD5B,kCfq3BsC,Cen3BtC,2DdGE,sCcPF,0Bf43BsC,Cen4BtC,aAAc,ClB0RV,cALI,CkBhRR,efkmB4B,CejmB5B,efymB4B,Ce7mB5B,uBCSI,oEDMJ,CAhBA,UrB64DF,CsB/3DM,uCDhBN,cCiBQ,etBk4DN,CACF,CqBh4DE,yBACE,erBk4DJ,CqBh4DI,wDACE,crBk4DN,CqB73DE,oBAEE,kCfg2BoC,Ce/1BpC,oBf82BoC,Cex2BlC,iDZhBkB,CYQpB,0Bfs2BoC,Cen2BpC,SrBg4DJ,CqBv3DE,2CAYE,aAKA,QAAS,CAXT,crBs3DJ,CqBt2DE,qCACE,aAAc,CACd,SrBw2DJ,CqBp2DE,2BACE,+Bf40BoC,Ce10BpC,SrBq2DJ,CqB71DE,uBAEE,uCf8yBoC,Ce3yBpC,SrB41DJ,CqBx1DE,oCE1FA,sCjBqiCgC,Cel8B9B,cAAe,CAFf,oBAAqB,CAGrB,8CfgsB0B,Ce/rB1B,eAAgB,CAPhB,0BfsyBoC,CexyBpC,wBACA,wBforB0B,CetrB1B,uBAKA,mBAAoB,CCpFlB,6HtBo7DN,CsBh7DM,uCD0EJ,oCCzEM,etBm7DN,CACF,CqB51DE,yEACE,uCrB81DJ,CqBr1DA,wBAOE,4BAA6B,CAC7B,wBAAyB,CACzB,sCAHA,0Bf2xBsC,CehyBtC,aAAc,CAId,efwf4B,Cezf5B,eAAgB,CADhB,kBADA,UrB+1DF,CqBt1DE,8BACE,SrBw1DJ,CqBr1DE,gFAGE,cAAe,CADf,erBu1DJ,CqB30DA,iBdjII,yCJ4QE,iBALI,CkBrIR,yDf4wBsC,Ce3wBtC,oBrBg1DF,CqB50DE,uCAEE,sBACA,uBfooB0B,CetoB1B,oBrBg1DJ,CqB10DA,iBd9II,yCJ4QE,iBALI,CkBxHR,wDfgwBsC,Ce/vBtC,kBrB+0DF,CqB30DE,uCAEE,oBACA,sBf2nB0B,Ce7nB1B,kBrB+0DJ,CqBr0DE,sBACE,0DrBw0DJ,CqBr0DE,yBACE,yDrBu0DJ,CqBp0DE,yBACE,wDrBs0DJ,CqBj0DA,oBAEE,sDf8tBsC,Ce7tBtC,efilB4B,CenlB5B,UrBs0DF,CqBl0DE,mDACE,crBo0DJ,CqBj0DE,uCACE,kBAAoB,CdvLpB,qCP2/DJ,CqBh0DE,0CACE,kBAAoB,Cd5LpB,qCP+/DJ,CqB/zDE,oCAAoB,qDrBk0DtB,CqBj0DE,oCAAoB,oDrBo0DtB,CwBnhEA,aACE,sQAUA,eAAgB,CAChB,kClBk3BsC,CkBj3BtC,iFAEA,uClB+9BkC,CkBh+BlC,2BAA4B,CAE5B,yBlB+9BkC,CkB99BlC,2DjBHE,sCiBJF,0BlBy3BsC,CkBh4BtC,aAAc,CrBuRV,cALI,CqB7QR,elB+lB4B,CkB9lB5B,elBsmB4B,CkB1mB5B,uCFMI,oEESJ,CAhBA,UxBmiEF,CsBxhEM,uCEfN,aFgBQ,etB2hEN,CACF,CwBthEE,mBACE,oBlBs3BoC,CkBh3BlC,iDlBi+B4B,CkBt+B9B,SxByhEJ,CwBhhEE,0DAGE,qBAAsB,CADtB,oBxBkhEJ,CwB9gEE,sBAEE,uCxB+gEJ,CwB1gEE,4BACE,iBAAkB,CAClB,sCxB4gEJ,CwBxgEA,gBjBtCI,yCJ4QE,iBALI,CqB/NR,qBlBquB4B,CkBpuB5B,kBlBquB4B,CkBvuB5B,kBxB+gEF,CwBxgEA,gBjB9CI,yCJ4QE,iBALI,CqBvNR,oBlBiuB4B,CkBhuB5B,iBlBiuB4B,CkBnuB5B,iBxB+gEF,CwBtgEI,kCACE,qQxBygEN,CyBjlEA,YACE,aAAc,CAGd,qBnBq6BwC,CmBv6BxC,iBnBq6BwC,CmBp6BxC,kBzBqlEF,CyBllEE,8BACE,UAAW,CACX,kBzBolEJ,CyBhlEA,oBAEE,cAAe,CADf,mBnB25BwC,CmBz5BxC,gBzBmlEF,CyBjlEE,sCACE,WAAY,CAEZ,aAAc,CADd,mBzBolEJ,CyB/kEA,kBACE,qCAOA,eAAgB,CAChB,yCACA,+CAEA,uBAA2B,CAD3B,2BAA4B,CAE5B,uBAAwB,CACxB,0DnB24BwC,CmBt5BxC,aAAc,CAEd,UnBy4BwC,CmBx4BxC,iBASA,wBAAyB,CARzB,kBAAmB,CAHnB,SzB4lEF,CyB9kEE,iClB3BE,mBP4mEJ,CyB7kEE,8BAEE,iBzB8kEJ,CyB3kEE,yBACE,sBzB6kEJ,CyB1kEE,wBACE,oBnBs1BoC,CmBp1BpC,iDhBpCoB,CgBmCpB,SzB6kEJ,CyBzkEE,0BACE,wBnB5BM,CmB6BN,oBzB2kEJ,CyBzkEI,yCAII,oQzBwkER,CyBpkEI,sCAII,4KzBmkER,CyB9jEE,+CAOI,+PANF,wBnBjDM,CmBkDN,oBzBikEJ,CyBxjEE,2BAEE,WAAY,CACZ,UnBk2BuC,CmBp2BvC,mBzB4jEJ,CyBnjEI,2FACE,cAAe,CACf,UzBqjEN,CyBviEA,aACE,kBzB0iEF,CyBxiEE,+BACE,qLAIA,0CACA,qBAAgC,ClBjHhC,kBkB+GA,mBHlHE,+CGsHF,CALA,SzB8iEJ,CsB3pEM,uCG0GJ,+BHzGM,etB8pEN,CACF,CyB5iEI,qCACE,0KzB8iEN,CyB3iEI,uCAMI,wKALF,wBzB8iEN,CyBpiEE,gCAEE,cAAe,CADf,mBzBuiEJ,CyBpiEI,kDAEE,aAAc,CADd,mBzBuiEN,CyBjiEA,mBACE,oBAAqB,CACrB,iBzBoiEF,CyBjiEA,WAEE,kBAAsB,CACtB,mBAAoB,CAFpB,iBzBsiEF,CyBhiEI,mDAEE,WAAY,CACZ,WnBspBwB,CmBxpBxB,mBzBoiEN,CyB3hEI,8EACE,0LzB8hEN,C0BjtEA,YAIE,eAAgB,CAChB,4BAA6B,CAH7B,gBACA,SAAU,CAFV,U1BwtEF,C0BltEE,kBACE,S1BotEJ,C0BhtEI,wCAA0B,gE1BmtE9B,C0BltEI,oCAA0B,gE1BqtE9B,C0BltEE,8BACE,Q1BotEJ,C0BjtEE,kCAIE,eAAgB,CH1BlB,wBjBkCQ,CoBNN,QpB6/BuC,CC1gCvC,mBmBSA,WpB8/BuC,CoB7/BvC,mBJbE,sGImBF,CARA,U1B0tEJ,CsBjuEM,uCIMJ,kCJLM,etBouEN,CACF,C0BrtEI,yCHjCF,wBvByvEF,C0BntEE,2CAKE,uCpBu+B8B,CoBt+B9B,wBAAyB,CnB7BzB,mBmB0BA,iBAAkB,CAClB,cpBu+B8B,CoBz+B9B,YpBw+B8B,CoBz+B9B,U1B2tEJ,C0BjtEE,8BAGE,eAAgB,CHpDlB,wBjBkCQ,CoBoBN,QpBm+BuC,CC1gCvC,mBmBoCA,WpBm+BuC,CgB1gCrC,sGI6CF,CAPA,U1BytEJ,CsB3vEM,uCIiCJ,8BJhCM,etB8vEN,CACF,C0BrtEI,qCH3DF,wBvBmxEF,C0BntEE,8BAKE,uCpB68B8B,CoB58B9B,wBAAyB,CnBvDzB,mBmBoDA,iBAAkB,CAClB,cpB68B8B,CoB/8B9B,YpB88B8B,CoB/8B9B,U1B2tEJ,C0BjtEE,qBACE,mB1BmtEJ,C0BjtEI,2CACE,0C1BmtEN,C0BhtEI,uCACE,0C1BktEN,C2BzyEA,eACE,iB3B4yEF,C2B1yEE,gGAGE,8CrBwiCoC,CqBtiCpC,gBrBuiCoC,CqBxiCpC,kD3B6yEJ,C2BzyEE,qBAYE,gDAPA,WAAY,CAFZ,MAAO,CAIP,eAAgB,CADhB,oBAKA,mBAAoB,CAVpB,iBAAkB,CAOlB,gBAAiB,CACjB,sBAAuB,CAPvB,KAAM,CAWN,oBAAqB,CLRnB,4DKSF,CAJA,kBAAmB,CANnB,S3BqzEJ,CsBhzEM,uCKTJ,qBLUM,etBmzEN,CACF,C2B7yEE,oEAEE,mB3B+yEJ,C2B7yEI,8FACE,iB3BgzEN,C2B7yEI,oMAGE,sBrB4gCkC,CqB7gClC,oB3BizEN,C2B7yEI,sGAEE,sBrBugCkC,CqBxgClC,oB3BizEN,C2B5yEE,4BAEE,sBrBigCoC,CqBlgCpC,oB3B+yEJ,C2BvyEI,mLACE,yCACA,0D3B4yEN,C2B1yEM,2MAME,kCrBg0BgC,CCh3BpC,sCoB+CI,UAAW,CADX,YrBm/BgC,CqBr/BhC,mBADA,iBAAkB,CAElB,U3BmzER,C2BzyEI,oDACE,yCACA,0D3B2yEN,C2BtyEI,6CACE,qC3BwyEN,C2BpyEE,2EAEE,a3BsyEJ,C2BpyEI,uFACE,uC3BuyEN,C4B93EA,aAIE,mBAAoB,CAFpB,YAAa,CACb,cAAe,CAFf,iBAAkB,CAIlB,U5Bi4EF,C4B/3EE,iFAIE,aAAc,CAEd,WAAY,CAHZ,iBAAkB,CAElB,Q5Bk4EJ,C4B73EE,0GAGE,S5B+3EJ,C4Bz3EE,kBACE,iBAAkB,CAClB,S5B23EJ,C4Bz3EI,wBACE,S5B23EN,C4Bh3EA,kBAEE,kBAAmB,CAQnB,sCtB06BsC,CsBz6BtC,2DrBtCE,sCqBkCF,0BtBm1BsC,CsBz1BtC,YAAa,CzBgPT,cALI,CyBvOR,etByjB4B,CsBxjB5B,etBgkB4B,CsBnkB5B,uBAKA,iBAAkB,CAClB,kB5Bs3EF,C4B12EA,kHrBhDI,yCJ4QE,iBALI,CyBnNR,kB5B+2EF,C4B12EA,kHrBzDI,yCJ4QE,iBALI,CyB1MR,oB5B+2EF,C4B12EA,0DAEE,kB5B62EF,C4Bv1EI,iqBrBzEA,6BADA,yBPg7EJ,C4Bz1EE,0IrBxEE,4BADA,yBqB0EA,2C5B61EJ,C4Bz1EE,uHrB7EE,4BADA,wBP46EJ,C6Bn8EE,gBAME,gCvBkjCqB,CuBvjCrB,YAAa,C1BoQX,gBALI,C0B7PN,iBvBu0BoC,CuBx0BpC,U7By8EJ,C6Bl8EE,eAWE,kCvBoiCqB,CC/jCrB,sCsB0BA,UvBqiCqB,CuB3iCrB,YAAa,C1BwPX,iBALI,C0BhPN,iBAFA,cAAe,CACf,qBALA,iBAAkB,CAClB,QAAS,CACT,S7B68EJ,C6Bh8EI,8HAEE,a7Bq8EN,C6Bp/EI,0DAyDI,yQAEA,yDADA,2BAA4B,CAE5B,4DAPF,8CvBuhCmB,CuBphCjB,kC7Bq8ER,C6B97EM,sEACE,8CvB4gCiB,CuBvgCf,uD7B47EV,C6BjgFI,0EAgFI,8EADA,kC7Bu7ER,C6BtgFI,wDAuFE,8C7Bm7EN,C6Bh7EQ,4NAEE,iRAEA,6DACA,sEAFA,sB7Bm7EV,C6B76EM,oEACE,8CvBw+BiB,CuBn+Bf,uD7B26EV,C6BphFI,sEAkHI,2B7Bs6ER,C6BxhFI,kEAyHE,8C7Bm6EN,C6Bj6EM,kFACE,2C7Bm6ER,C6Bh6EM,8EACE,uD7Bk6ER,C6B/5EM,sGACE,gC7Bi6ER,C6B55EI,qDACE,gB7B+5EN,C6BziFI,kVAoJM,S7B65EV,C6B7hFE,kBAME,kCvBkjCqB,CuBvjCrB,YAAa,C1BoQX,gBALI,C0B7PN,iBvBu0BoC,CuBx0BpC,U7BmiFJ,C6B5hFE,iBAWE,iCvBoiCqB,CC/jCrB,sCsB0BA,UvBqiCqB,CuB3iCrB,YAAa,C1BwPX,iBALI,C0BhPN,iBAFA,cAAe,CACf,qBALA,iBAAkB,CAClB,QAAS,CACT,S7BuiFJ,C6B1hFI,8IAEE,a7B+hFN,C6B9kFI,8DAyDI,sUAEA,yDADA,2BAA4B,CAE5B,4DAPF,gDvBuhCmB,CuBphCjB,kC7B+hFR,C6BxhFM,0EACE,gDvB4gCiB,CuBvgCf,sD7BshFV,C6B3lFI,8EAgFI,8EADA,kC7BihFR,C6BhmFI,4DAuFE,gD7B6gFN,C6B1gFQ,oOAEE,8UAEA,6DACA,sEAFA,sB7B6gFV,C6BvgFM,wEACE,gDvBw+BiB,CuBn+Bf,sD7BqgFV,C6B9mFI,0EAkHI,2B7BggFR,C6BlnFI,sEAyHE,gD7B6/EN,C6B3/EM,sFACE,6C7B6/ER,C6B1/EM,kFACE,sD7B4/ER,C6Bz/EM,0GACE,kC7B2/ER,C6Bt/EI,uDACE,gB7By/EN,C6BnoFI,8VAsJM,S7Bq/EV,C8B7oFA,KAEE,2BACA,4BACA,uB3BuRI,uBALI,C2BhRR,yBACA,yBACA,oCACA,wBACA,6CACA,kCACA,+CACA,wCACA,iFACA,+BACA,kFPhBA,iCOkCqB,CAFrB,mEvBjBE,0CuBUF,0BAKA,eAXA,oBAAqB,CAErB,sC3BsQI,iCALI,C2B/PR,sCACA,sCAJA,wDAMA,iBAAkB,CAClB,qBRfI,6HQwBJ,CALA,gBAAiB,CAFjB,qB9BkpFF,CsB/pFM,uCQhBN,KRiBQ,etBkqFN,CACF,C8B9oFE,WAGE,wCACA,8CAHA,+B9BkpFJ,C8B5oFE,sBAGE,kCACA,wCAFA,yB9B+oFJ,C8B1oFE,mBPpDA,uCOsDuB,CACrB,8CAME,0CARF,gCAGA,S9B6oFJ,C8BpoFE,8BACE,8CAME,0CALF,S9BuoFJ,C8B9nFE,mGAME,yCAGA,+CAJA,gC9B8nFJ,C8BvnFI,yKAKI,yC9BqnFR,C8BhnFE,sCAKI,yC9B8mFN,C8B1mFE,mDAKE,2CAEA,iDAJA,mCAKA,uCAJA,mB9B6mFJ,C8B7lFE,aC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/BgtFF,C8B9mFE,eC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,sCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/BiuFF,C8B/nFE,aC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/BkvFF,C8BhpFE,UC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/BmwFF,C8BjqFE,aC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/BoxFF,C8BlrFE,YC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/BqyFF,C8BnsFE,WC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,sCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/BszFF,C8BptFE,UC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,mCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/Bu0FF,C8B3sFE,qBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/B+zFF,C8B5tFE,uBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,sCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/Bg1FF,C8B7uFE,qBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/Bi2FF,C8B9vFE,kBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/Bk3FF,C8B/wFE,qBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/Bm4FF,C8BhyFE,oBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/Bo5FF,C8BjzFE,mBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,sCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/Bq6FF,C8Bl0FE,kBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,mCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/Bs7FF,C8Bv0FA,UACE,yBACA,oCACA,wBACA,kCACA,gDACA,wCACA,iDACA,yCACA,gCACA,2CACA,+BACA,qCAEA,yB9By0FF,C8B/zFE,wBACE,yB9Bi0FJ,C8B9zFE,gBACE,+B9Bg0FJ,C8BrzFA,2BCjJE,0BACA,wB5B8NI,0BALI,C4BvNR,iD/B08FF,C8BxzFA,2BCrJE,2BACA,0B5B8NI,2BALI,C4BvNR,iD/Bi9FF,CgCphGA,MVgBM,8BtBwgGN,CsBpgGM,uCUpBN,MVqBQ,etBugGN,CACF,CgC1hGE,iBACE,ShC4hGJ,CgCthGE,qBACE,YhCyhGJ,CgCrhGA,YACE,QAAS,CACT,eAAgB,CVDZ,2BtB0hGN,CsBthGM,uCULN,YVMQ,etByhGN,CACF,CgC3hGE,gCAEE,WAAY,CVNV,0BUOF,CAFA,OhC+hGJ,CsBhiGM,uCUAJ,gCVCM,etBmiGN,CACF,CiCxjGA,sEAME,iBjC2jGF,CiCxjGA,iBACE,kBjC2jGF,CkCniGI,uBA/BF,eAAgB,CAChB,mCAFA,oCADA,sBAqCI,UAAW,CAHX,oBAAqB,CACrB,kB5B6hBwB,C4B5hBxB,qBlC0iGN,CkCjhGI,6BACE,alCmhGN,CiCjkGA,eAEE,0BACA,8BACA,0BACA,+BACA,8B9BuQI,4BALI,C8BhQR,yCACA,mCACA,8DACA,oDACA,kDACA,yFACA,4DACA,sCACA,8CACA,8CACA,oDACA,qDACA,qCACA,sDACA,2DACA,kCACA,qCACA,mCACA,oCACA,sCAcA,2BAA4B,CAD5B,uCAEA,6E1BzCE,+C0BoCF,+BALA,YAAa,C9B6OT,sCALI,C8BjOR,eAAgB,CAJhB,QAAS,CAFT,uCACA,kEAJA,iBAAkB,CAQlB,eAAgB,CAPhB,iCjC6kGF,CiC9jGE,+BAEE,MAAO,CACP,qCAFA,QjCkkGJ,CiCxiGI,qBACE,mBjC2iGN,CiCziGM,qCAEE,MAAO,CADP,UjC4iGR,CiCviGI,mBACE,iBjC0iGN,CiCxiGM,mCAEE,SAAU,CADV,OjC2iGR,CcplGI,yBmB4BA,wBACE,mBjC4jGJ,CiC1jGI,wCAEE,MAAO,CADP,UjC6jGN,CiCxjGE,sBACE,iBjC0jGJ,CiCxjGI,sCAEE,SAAU,CADV,OjC2jGN,CACF,CcrmGI,yBmB4BA,wBACE,mBjC4kGJ,CiC1kGI,wCAEE,MAAO,CADP,UjC6kGN,CiCxkGE,sBACE,iBjC0kGJ,CiCxkGI,sCAEE,SAAU,CADV,OjC2kGN,CACF,CcrnGI,yBmB4BA,wBACE,mBjC4lGJ,CiC1lGI,wCAEE,MAAO,CADP,UjC6lGN,CiCxlGE,sBACE,iBjC0lGJ,CiCxlGI,sCAEE,SAAU,CADV,OjC2lGN,CACF,CcroGI,0BmB4BA,wBACE,mBjC4mGJ,CiC1mGI,wCAEE,MAAO,CADP,UjC6mGN,CiCxmGE,sBACE,iBjC0mGJ,CiCxmGI,sCAEE,SAAU,CADV,OjC2mGN,CACF,CiCjmGE,uCAEE,WAAY,CAEZ,wCADA,YAAa,CAFb,QjCsmGJ,CkCvrGI,+BAxBF,yBACA,mCAFA,oCADA,YAAa,CA8BT,UAAW,CAHX,oBAAqB,CACrB,kB5B6hBwB,C4B5hBxB,qBlC8rGN,CkCrqGI,qCACE,alCuqGN,CiCvmGE,wCAGE,SAAU,CAEV,sCADA,YAAa,CAFb,UAAW,CADX,KjC8mGJ,CkC5sGI,gCAjBF,qCACA,uBAFA,cAAe,CADf,kCAuBI,UAAW,CAHX,oBAAqB,CACrB,kB5B6hBwB,C4B5hBxB,qBlCmtGN,CkC1rGI,sCACE,alC4rGN,CiClnGI,gCACE,gBjConGN,CiC9mGE,0CAGE,SAAU,CAEV,uCADA,YAAa,CAFb,UAAW,CADX,KjCqnGJ,CkCpuGI,kCAIE,UAAW,CAHX,oBAAqB,CAenB,YAAa,CAdf,kB5B6hBwB,C4B5hBxB,qBlCuuGN,CkCvtGM,mCA7BJ,qCADA,wBADA,kCAmCM,UAAW,CAHX,oBAAqB,CACrB,mB5B0gBsB,C4BzgBtB,qBlCguGR,CkC1tGI,wCACE,alC4tGN,CiCjoGI,mCACE,gBjCmoGN,CiC5nGA,kBAIE,mDAHA,QAAS,CACT,6CAGA,SAAU,CAFV,ejCioGF,CiCznGA,eAUE,4BAA6B,CAC7B,QAAS,C1BtKP,sD0B+JF,UAAW,CAEX,oCALA,aAAc,CAId,e3Byb4B,C2B3b5B,4EAIA,kBAAmB,CACnB,qBACA,kBAAmB,CAPnB,UjCsoGF,CiC1nGE,0CVxLA,iDU4LuB,CAFrB,yCjC4nGJ,CiCvnGE,4CV/LA,kDUmMuB,CAFrB,2CACA,oBjCynGJ,CiCrnGE,gDAIE,4BAA6B,CAF7B,6CACA,mBjCunGJ,CiChnGA,oBACE,ajCmnGF,CiC/mGA,iBAKE,sCAJA,aAAc,C9BqEV,iBALI,C8B9DR,eAAgB,CADhB,gFAIA,kBjCknGF,CiC9mGA,oBAGE,oCAFA,aAAc,CACd,2EjCknGF,CiC7mGA,oBAEE,4BACA,yBACA,8DACA,2BACA,iCACA,oCACA,4DACA,qDACA,qCACA,sDACA,0CACA,kCjC+mGF,CmCr2GA,+BAGE,mBAAoB,CADpB,iBAAkB,CAElB,qBnCw2GF,CmCt2GE,yCAEE,aAAc,CADd,iBnC02GJ,CmCp2GE,kXAME,SnC42GJ,CmCv2GA,aACE,YAAa,CACb,cAAe,CACf,0BnC02GF,CmCx2GE,0BACE,UnC02GJ,CmCt2GA,W5BhBI,qCP03GJ,CmCt2GE,qFAEE,2CnCw2GJ,CmCp2GE,qJ5BTE,6BADA,yBPo3GJ,CmCh2GE,6G5BLE,4BADA,wBP42GJ,CmCn1GA,uBAEE,sBADA,sBnCu1GF,CmCp1GE,wGAGE,anCo1GJ,CmCj1GE,yCACE,cnCm1GJ,CmC/0GA,yEAEE,qBADA,qBnCm1GF,CmC/0GA,yEAEE,oBADA,oBnCm1GF,CmC9zGA,oBAEE,sBAAuB,CADvB,qBAAsB,CAEtB,sBnCi0GF,CmC/zGE,wDAEE,UnCi0GJ,CmC9zGE,4FAEE,0CnCg0GJ,CmC5zGE,qH5BzFE,4BADA,4BP25GJ,CmC5zGE,oF5B7GE,yBACA,yBP66GJ,CoCr8GA,KAEE,6BACA,+BAEA,4BACA,yCACA,qDACA,uDAGA,YAAa,CACb,cAAe,CAGf,eAAgB,CADhB,eAAgB,CADhB,cpCs8GF,CoCj8GA,UAOE,eAAgB,CAChB,QAAS,CAHT,+BAJA,aAAc,CjCuQV,sCALI,CiC/PR,2CAFA,kEAIA,qBdbI,iGtBo9GN,CsBh9GM,uCcGN,UdFQ,etBm9GN,CACF,CoCv8GE,gCAEE,oCpCw8GJ,CoCp8GE,wBAEE,iD3BhBoB,C2BepB,SpCu8GJ,CoCl8GE,sCAEE,wCAEA,cAAe,CADf,mBpCo8GJ,CoC37GA,UAEE,kDACA,kDACA,oDACA,2GACA,yDACA,+CACA,uGAGA,mFpC27GF,CoCz7GE,oBAEE,yD7B7CA,wDACA,yD6B2CA,sDpC87GJ,CoC17GI,oDAIE,wDADA,iBpC27GN,CoCt7GE,8DAGE,mDACA,yDAFA,0CpC07GJ,CoCr7GE,yB7B/DE,yBACA,0B6BgEA,mDpCw7GJ,CoC76GA,WAEE,qDACA,sCACA,qCpC+6GF,CoC56GE,qB7B5FE,+CP2gHJ,CoC36GE,uDb/GA,mDakHuB,CADrB,2CpC86GJ,CoCp6GA,eAEE,4BACA,yCACA,8DAGA,+BpCo6GF,CoCl6GE,yBAGE,qEADA,cAAe,CADf,epCs6GJ,CoCl6GI,8DAEE,gCpCm6GN,CoC/5GE,+DAIE,gCAAiC,CADjC,gDADA,epCm6GJ,CoCv5GE,wCAEE,aAAc,CACd,iBpC05GJ,CoCr5GE,kDAEE,YAAa,CACb,WAAY,CACZ,iBpCw5GJ,CoCl5GE,iEACE,UpCs5GJ,CoC54GE,uBACE,YpC+4GJ,CoC74GE,qBACE,apC+4GJ,CqC5kHA,QAEE,wBACA,6BACA,0DACA,+DACA,kEACA,8DACA,sCACA,kCACA,oCACA,6DACA,mEACA,sCACA,sCACA,sCACA,sCACA,qRACA,yEACA,0DACA,0CACA,4DAMA,kBAAmB,CAFnB,YAAa,CACb,cAAe,CAEf,6BAA8B,CAC9B,8DALA,iBrCilHF,CqCtkHE,oIAGE,kBAAmB,CAFnB,YAAa,CACb,iBAAkB,CAElB,6BrC6kHJ,CqCzjHA,cAKE,mClC0NI,0CALI,CkCvNR,+CADA,gDADA,6CAKA,qBACA,kBrC2jHF,CqCzjHE,wCAEE,wCrC0jHJ,CqChjHA,YAEE,0BACA,+BAEA,4BACA,2CACA,uDACA,6DAGA,YAAa,CACb,qBAAsB,CAGtB,eAAgB,CADhB,eAAgB,CADhB,crCijHF,CqC5iHI,wDAEE,mCrC6iHN,CqCziHE,2BACE,erC2iHJ,CqCliHA,aAGE,6BADA,oB/B6gCkC,C+B9gClC,iBrCuiHF,CqCniHE,yDAGE,mCrCqiHJ,CqCxhHA,iBAKE,kBAAmB,CAJnB,eAAgB,CAChB,WrC4hHF,CqCrhHA,gBAKE,4BAA6B,CAC7B,0E9BxIE,qD8BsIF,6BlCsII,4CALI,CkClIR,aAAc,CAFd,8EftII,8CtBqqHN,CsBjqHM,uCeiIN,gBfhIQ,etBoqHN,CACF,CqC3hHE,sBACE,oBrC6hHJ,CqC1hHE,sBAGE,sDADA,SAAU,CADV,oBrC8hHJ,CqCthHA,qBAKE,kDAEA,uBAA2B,CAD3B,2BAA4B,CAE5B,oBAAqB,CAPrB,oBAAqB,CAErB,YAAa,CACb,qBAAsB,CAFtB,WrC+hHF,CqCthHA,mBACE,wCACA,erCyhHF,CcnpHI,yBuBsIA,kBAEI,gBAAiB,CACjB,0BrCghHN,CqC9gHM,8BACE,kBrCghHR,CqC9gHQ,6CACE,iBrCghHV,CqC7gHQ,wCAEE,iDADA,iDrCghHV,CqC3gHM,qCACE,gBrC6gHR,CqC1gHM,mCACE,sBAAwB,CACxB,erC4gHR,CqCzgHM,kCACE,YrC2gHR,CqCxgHM,6BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrCihHR,CqCrgHQ,+CACE,YrCugHV,CqCpgHQ,6CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrCugHV,CACF,CcnsHI,yBuBsIA,kBAEI,gBAAiB,CACjB,0BrC+jHN,CqC7jHM,8BACE,kBrC+jHR,CqC7jHQ,6CACE,iBrC+jHV,CqC5jHQ,wCAEE,iDADA,iDrC+jHV,CqC1jHM,qCACE,gBrC4jHR,CqCzjHM,mCACE,sBAAwB,CACxB,erC2jHR,CqCxjHM,kCACE,YrC0jHR,CqCvjHM,6BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrCgkHR,CqCpjHQ,+CACE,YrCsjHV,CqCnjHQ,6CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrCsjHV,CACF,CclvHI,yBuBsIA,kBAEI,gBAAiB,CACjB,0BrC8mHN,CqC5mHM,8BACE,kBrC8mHR,CqC5mHQ,6CACE,iBrC8mHV,CqC3mHQ,wCAEE,iDADA,iDrC8mHV,CqCzmHM,qCACE,gBrC2mHR,CqCxmHM,mCACE,sBAAwB,CACxB,erC0mHR,CqCvmHM,kCACE,YrCymHR,CqCtmHM,6BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrC+mHR,CqCnmHQ,+CACE,YrCqmHV,CqClmHQ,6CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrCqmHV,CACF,CcjyHI,0BuBsIA,kBAEI,gBAAiB,CACjB,0BrC6pHN,CqC3pHM,8BACE,kBrC6pHR,CqC3pHQ,6CACE,iBrC6pHV,CqC1pHQ,wCAEE,iDADA,iDrC6pHV,CqCxpHM,qCACE,gBrC0pHR,CqCvpHM,mCACE,sBAAwB,CACxB,erCypHR,CqCtpHM,kCACE,YrCwpHR,CqCrpHM,6BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrC8pHR,CqClpHQ,+CACE,YrCopHV,CqCjpHQ,6CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrCopHV,CACF,CqC1sHI,eAEI,gBAAiB,CACjB,0BrC2sHR,CqCzsHQ,2BACE,kBrC2sHV,CqCzsHU,0CACE,iBrC2sHZ,CqCxsHU,qCAEE,iDADA,iDrC2sHZ,CqCtsHQ,kCACE,gBrCwsHV,CqCrsHQ,gCACE,sBAAwB,CACxB,erCusHV,CqCpsHQ,+BACE,YrCssHV,CqCnsHQ,0BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrC4sHV,CqChsHU,4CACE,YrCksHZ,CqC/rHU,0CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrCksHZ,CqChrHA,yCAGE,sCACA,4CACA,+CACA,8BACA,6BACA,mCACA,mDrCmrHF,CqC5qHI,mFANF,uRrCsrHF,CsCx8HA,MAEE,wBACA,wBACA,gCACA,wBACA,2BACA,8CACA,0DACA,gDACA,uBACA,qFACA,+BACA,6BACA,qDACA,sBACA,mBACA,kBACA,+BACA,mCACA,+BASA,oBAAqB,CAErB,0BAA2B,CAD3B,mCAEA,qE/BjBE,2C+BaF,2BAJA,YAAa,CACb,qBAAsB,CAEtB,6BADA,WAAY,CAHZ,iBtCk9HF,CsCr8HE,SAEE,aAAc,CADd,ctCw8HJ,CsCp8HE,kBAEE,qBAAsB,CADtB,kBtCu8HJ,CsCp8HI,8B/BrBA,0DACA,2D+BqBE,kBtCw8HN,CsCp8HI,6B/BXA,6DADA,8D+BaE,qBtCw8HN,CsCj8HE,8DAEE,YtCm8HJ,CsC/7HA,WAKE,2BAFA,aAAc,CACd,uDtCi8HF,CsC77HA,YAEE,iCADA,2CtCi8HF,CsC77HA,eAGE,oCAFA,kDtCk8HF,CsC77HA,qCAJE,etCq8HF,CsCx7HE,sBACE,mCtC27HJ,CsCn7HA,aAIE,uCACA,4EAFA,+BADA,eAAgB,CADhB,iEtC07HF,CsCp7HE,yB/B7FE,uFPohIJ,CsCl7HA,aAGE,uCACA,yEAFA,+BADA,iEtCw7HF,CsCn7HE,wB/BxGE,uFP8hIJ,CsC56HA,kBAIE,eAAgB,CAFhB,oDACA,mDAFA,mDtCk7HF,CsC76HE,mCACE,mCACA,qCtC+6HJ,CsC36HA,mBAEE,mDADA,mDtC+6HF,CsC16HA,kB/BpII,iD+BwIF,QAAS,CACT,MAAO,CACP,2CALA,iBAAkB,CAElB,OAAQ,CADR,KtCk7HF,CsC16HA,yCAGE,UtC66HF,CsC16HA,wB/B3II,0DACA,0DP0jIJ,CsC36HA,2B/BjII,6DADA,6DPmjIJ,CsCp6HE,kBACE,yCtCu6HJ,CcliII,yBwBuHJ,YAQI,YAAa,CACb,kBtCu6HF,CsCp6HE,kBAEE,WAAY,CACZ,etCq6HJ,CsCn6HI,wBAEE,aAAc,CADd,atCs6HN,CsCh6HM,mC/B1KJ,6BADA,yBP+kIF,CsCj6HQ,iGAGE,yBtCk6HV,CsCh6HQ,oGAGE,4BtCi6HV,CsC75HM,oC/B3KJ,4BADA,wBP6kIF,CsC95HQ,mGAGE,wBtC+5HV,CsC75HQ,sGAGE,2BtC85HV,CACF,CuCnoIA,WAEE,0CACA,oCACA,0KACA,mDACA,mDACA,qDACA,0FACA,qCACA,kCACA,8CACA,6CACA,qPACA,sCACA,kDACA,8DACA,4PACA,4EACA,sCACA,mCACA,4DACA,oDvCqoIF,CuCjoIA,kBAGE,kBAAmB,CAMnB,4CACA,QAAS,ChCrBP,gBgCkBF,oCALA,YAAa,CpC+PT,cALI,CoChPR,oBAAqB,CAPrB,4EAJA,iBAAkB,CAOlB,eAAgB,CjBtBZ,yCiB2BJ,CATA,UvC6oIF,CsB3pIM,uCiBUN,kBjBTQ,etB8pIN,CACF,CuCvoIE,kCAEE,+CACA,gGAFA,sCvC2oIJ,CuCvoII,wCACE,qDACA,gDvCyoIN,CuCpoIE,wBAME,8CACA,2BAA4B,CAC5B,mDAHA,UAAW,CAJX,aAAc,CAEd,0CACA,gBAAiB,CjB7Cf,kDiBkDF,CAPA,wCvC6oIJ,CsBprIM,uCiBqCJ,wBjBpCM,etBurIN,CACF,CuCxoIE,wBACE,SvC0oIJ,CuCvoIE,wBAGE,oDADA,SAAU,CADV,SvC2oIJ,CuCroIA,kBACE,evCwoIF,CuCroIA,gBAEE,wCACA,+EAFA,+BvC0oIF,CuCtoIE,8BhC7DE,yDACA,yDPssIJ,CuCvoII,kEhChEA,+DACA,+DP0sIJ,CuCtoIE,oCACE,YvCwoIJ,CuCpoIE,6BhC3DE,4DADA,4DPosIJ,CuCpoIM,2EhC/DF,kEADA,kEPwsIJ,CuCnoII,iDhCpEA,4DADA,4DP4sIJ,CuCjoIA,gBACE,6EvCooIF,CuC3nIE,iCAEE,aAAc,ChC9Gd,gBgC6GA,cvCgoIJ,CuC5nII,6CAAgB,YvC+nIpB,CuC9nII,4CAAe,evCioInB,CuCtnII,yMhC7HA,ePyvIJ,CuCpnII,6CACE,sTACA,4TvCunIN,CwCjxIA,YAEE,4BACA,4BACA,mCAEA,qBACA,gCACA,wDACA,sCACA,4DASA,yCjCAE,iDiCNF,YAAa,CACb,cAAe,CrCiRX,wCALI,CqCxQR,eAAgB,CAFhB,iDADA,qExCqxIF,CwC3wIE,kCACE,gDxC8wIJ,CwC5wII,yCAGE,yCACA,yCAHA,UAAW,CACX,iDxCgxIN,CwC1wIE,wBACE,4CxC4wIJ,CyCjzIA,YAEE,kCACA,mCtC4RI,8BALI,CsCrRR,2CACA,qCACA,oDACA,oDACA,sDACA,uDACA,+CACA,0DACA,uDACA,gDACA,yEACA,kCACA,kCACA,4CACA,yDACA,mDACA,6DAGA,YAAa,CjCnBb,eAAgB,CADhB,cRu0IF,CyC/yIA,WAOE,yCACA,iFAHA,iCAHA,aAAc,CtCiQV,wCALI,CsC3PR,sEAFA,iBAAkB,CAKlB,qBnBlBI,6HtBu0IN,CsBn0IM,uCmBQN,WnBPQ,etBs0IN,CACF,CyCrzIE,iBAIE,+CACA,qDAHA,uCADA,SzC0zIJ,CyCnzIE,iBAGE,+CAEA,iDAHA,uCAEA,SnC2uCgC,CmC9uChC,SzCyzIJ,CyClzIE,qClBnDA,+CkBuDuB,CACrB,sDAFA,wCADA,SzCszIJ,CyChzIE,yCAIE,kDACA,wDAHA,0CACA,mBzCmzIJ,CyC5yIE,wCACE,2CzC+yIJ,CyC1yIM,kClC7BF,6DADA,yDP40IJ,CyCxyIM,iClCjDF,8DADA,0DP81IJ,CyC3xIA,eClGE,iCACA,kCvC0RI,iCALI,CuCnRR,wD1Ci4IF,CyC9xIA,eCtGE,iCACA,kCvC0RI,kCALI,CuCnRR,wD1Cw4IF,C2C14IA,OAEE,4BACA,4BxCuRI,2BALI,CwChRR,2BACA,sBACA,iDpCOE,4CoCCF,4BALA,oBAAqB,CxCgRjB,mCALI,CwCxQR,wCACA,aAAc,CAHd,4DAKA,iBAAkB,CAElB,uBAAwB,CADxB,kB3C44IF,C2Ct4IE,aACE,Y3Cw4IJ,C2Cn4IA,YACE,iBAAkB,CAClB,Q3Cs4IF,C4Ct6IA,OAEE,0BACA,0BACA,0BACA,8BACA,yBACA,oCACA,4EACA,iDACA,8BAOA,oCACA,8BrCHE,4CqCCF,4BADA,4CADA,4DADA,iB5C46IF,C4Cl6IA,eAEE,a5Co6IF,C4Ch6IA,YAEE,iCADA,e5Co6IF,C4C35IA,mBACE,kB5C85IF,C4C35IE,8BAKE,qBAJA,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAEN,S5C85IJ,C4Cr5IE,eACE,iDACA,0CACA,wDACA,qD5Cw5IJ,C4C55IE,iBACE,mDACA,4CACA,0DACA,uD5C+5IJ,C4Cn6IE,eACE,iDACA,0CACA,wDACA,qD5Cs6IJ,C4C16IE,YACE,8CACA,uCACA,qDACA,kD5C66IJ,C4Cj7IE,eACE,iDACA,0CACA,wDACA,qD5Co7IJ,C4Cx7IE,cACE,gDACA,yCACA,uDACA,oD5C27IJ,C4C/7IE,aACE,+CACA,wCACA,sDACA,mD5Ck8IJ,C4Ct8IE,YACE,8CACA,uCACA,qDACA,kD5Cy8IJ,C6CrgJE,gCACE,GAAK,0B7CygJP,CACF,C6CrgJA,4BAGE,0B1CkRI,+BALI,C0C3QR,wCACA,oDACA,oDACA,6BACA,6BACA,6CAOA,uCtCRE,+CsCIF,YAAa,C1CwQT,sCALI,C0ClQR,iCACA,e7CugJF,C6ChgJA,cAQE,2CAHA,mCAJA,YAAa,CACb,qBAAsB,CACtB,sBAAuB,CACvB,eAAgB,CAEhB,iBAAkB,CvBtBd,4CuByBJ,CAFA,kB7CqgJF,CsBxhJM,uCuBYN,cvBXQ,etB2hJN,CACF,C6CrgJA,sBtBAE,sKsBEA,mE7CwgJF,C6CrgJA,4BACE,gB7CwgJF,C6CrgJA,0CACE,U7CwgJF,C6CpgJE,uBACE,iD7CugJJ,C6CpgJM,uCAJJ,uBAKM,c7CugJN,CACF,C8CnkJA,YAEE,2CACA,qCACA,oDACA,oDACA,sDACA,oCACA,sCACA,uDACA,4DACA,sDACA,yDACA,wDACA,yDACA,8CACA,kCACA,kCACA,4CvCHE,iDuCMF,YAAa,CACb,qBAAsB,CAItB,eAAgB,CADhB,c9CmkJF,C8C9jJA,qBAEE,qBAAsB,CADtB,oB9CkkJF,C8C/jJE,6CAEE,kCAAoC,CACpC,yB9CgkJJ,C8CvjJA,wBAEE,wCACA,kBAAmB,CAFnB,U9C4jJF,C8CvjJE,4DAKE,sDAFA,8CACA,oBAAqB,CAFrB,S9C2jJJ,C8CrjJE,+BAEE,uDADA,8C9CwjJJ,C8C/iJA,iBAME,yCACA,iFAHA,iCAFA,aAAc,CACd,gFAFA,iBAAkB,CAIlB,oB9CojJF,C8ChjJE,6BvCvDE,+BACA,+BP0mJJ,C8ChjJE,4BvC5CE,kCADA,kCPimJJ,C8ChjJE,oDAIE,kDAFA,0CACA,mB9CkjJJ,C8C7iJE,wBAGE,gDACA,sDAFA,wCADA,S9CkjJJ,C8C3iJE,kCACE,kB9C6iJJ,C8C3iJI,yCAEE,mDADA,qD9C8iJN,C8ChiJI,uBACE,kB9CmiJN,C8ChiJQ,qEvCvDJ,6DAZA,yBPumJJ,C8C/hJQ,qEvC5DJ,4BAZA,0DP2mJJ,C8C9hJQ,+CACE,Y9CgiJV,C8C7hJQ,yDAEE,mBAAoB,CADpB,kD9CgiJV,C8C7hJU,gEAEE,oDADA,sD9CgiJZ,CcrnJI,yBgC8DA,0BACE,kB9C2jJJ,C8CxjJM,wEvCvDJ,6DAZA,yBP+nJF,C8CvjJM,wEvC5DJ,4BAZA,0DPmoJF,C8CtjJM,kDACE,Y9CwjJR,C8CrjJM,4DAEE,mBAAoB,CADpB,kD9CwjJR,C8CrjJQ,mEAEE,oDADA,sD9CwjJV,CACF,Cc9oJI,yBgC8DA,0BACE,kB9CmlJJ,C8ChlJM,wEvCvDJ,6DAZA,yBPupJF,C8C/kJM,wEvC5DJ,4BAZA,0DP2pJF,C8C9kJM,kDACE,Y9CglJR,C8C7kJM,4DAEE,mBAAoB,CADpB,kD9CglJR,C8C7kJQ,mEAEE,oDADA,sD9CglJV,CACF,CctqJI,yBgC8DA,0BACE,kB9C2mJJ,C8CxmJM,wEvCvDJ,6DAZA,yBP+qJF,C8CvmJM,wEvC5DJ,4BAZA,0DPmrJF,C8CtmJM,kDACE,Y9CwmJR,C8CrmJM,4DAEE,mBAAoB,CADpB,kD9CwmJR,C8CrmJQ,mEAEE,oDADA,sD9CwmJV,CACF,Cc9rJI,0BgC8DA,0BACE,kB9CmoJJ,C8ChoJM,wEvCvDJ,6DAZA,yBPusJF,C8C/nJM,wEvC5DJ,4BAZA,0DP2sJF,C8C9nJM,kDACE,Y9CgoJR,C8C7nJM,4DAEE,mBAAoB,CADpB,kD9CgoJR,C8C7nJQ,mEAEE,oDADA,sD9CgoJV,CACF,C8ClnJA,kBvChJI,ePqwJJ,C8ClnJE,mCACE,kD9ConJJ,C8ClnJI,8CACE,qB9ConJN,C8CvmJE,yBACE,sDACA,+CACA,6DACA,4DACA,gEACA,6DACA,iEACA,yDACA,0DACA,mE9C0mJJ,C8CpnJE,2BACE,wDACA,iDACA,+DACA,4DACA,kEACA,6DACA,mEACA,2DACA,4DACA,qE9CunJJ,C8CjoJE,yBACE,sDACA,+CACA,6DACA,4DACA,gEACA,6DACA,iEACA,yDACA,0DACA,mE9CooJJ,C8C9oJE,sBACE,mDACA,4CACA,0DACA,4DACA,6DACA,6DACA,8DACA,sDACA,uDACA,gE9CipJJ,C8C3pJE,yBACE,sDACA,+CACA,6DACA,4DACA,gEACA,6DACA,iEACA,yDACA,0DACA,mE9C8pJJ,C8CxqJE,wBACE,qDACA,8CACA,4DACA,4DACA,+DACA,6DACA,gEACA,wDACA,yDACA,kE9C2qJJ,C8CrrJE,uBACE,oDACA,6CACA,2DACA,4DACA,8DACA,6DACA,+DACA,uDACA,wDACA,iE9CwrJJ,C8ClsJE,sBACE,mDACA,4CACA,0DACA,4DACA,6DACA,6DACA,8DACA,sDACA,uDACA,gE9CqsJJ,C+Cj4JA,WAEE,0BACA,oVACA,2BACA,kCACA,oEACA,+BACA,qCACA,uEAQA,wEACA,QAAS,CxCJP,sBwCFF,sBAAuB,CAEvB,UzCopD2B,CyC9oD3B,oCALA,cAFA,S/Cw4JF,C+C93JE,4BAPA,+B/C04JF,C+Cn4JE,iBAGE,0CADA,oB/Ci4JJ,C+C73JE,iBAEE,4CACA,0CAFA,S/Ci4JJ,C+C53JE,wCAIE,6CAFA,mBAAoB,CACpB,gB/C83JJ,C+C/2JI,iDATF,uC/Cg4JF,CgDj7JA,OAEE,uBACA,6BACA,4BACA,0BACA,2B7CyRI,6BALI,C6ClRR,mBACA,+CACA,+CACA,2DACA,iDACA,2CACA,kDACA,sDACA,kEASA,2BAA4B,CAD5B,oCAEA,uEzCPE,4CyCQF,sCALA,4B7CyQI,mCALI,C6CtQR,cAAe,CAGf,mBAAoB,CAJpB,+BhD07JF,CgD/6JE,eACE,ShDi7JJ,CgD96JE,kBACE,YhDg7JJ,CgD56JA,iBACE,uBAKA,cAAe,CACf,mBAAoB,CAJpB,iBAAkB,CAElB,iBAAkB,CADlB,8BhDi7JF,CgD56JE,mCACE,qChD86JJ,CgD16JA,cAEE,kBAAmB,CAInB,2BAA4B,CAD5B,2CAEA,qFzChCE,0FACA,2FyC4BF,mCAHA,YAAa,CAEb,2DhDm7JF,CgD56JE,yBAEE,sCADA,gDhD+6JJ,CgD16JA,YAEE,oBAAqB,CADrB,iChD86JF,CiD3+JA,OAEE,uBACA,uBACA,wBACA,yBACA,mBACA,gCACA,2DACA,+CACA,oDACA,8CACA,yFACA,iCACA,iCACA,oCACA,sDACA,sDACA,iCACA,6BACA,uBACA,sDACA,sDAOA,YAAa,CAEb,WAAY,CAJZ,MAAO,CASP,SAAU,CAJV,iBAAkB,CAClB,eAAgB,CARhB,cAAe,CACf,KAAM,CAIN,UAAW,CAFX,8BjDi/JF,CiDl+JA,cAGE,8BAEA,mBAAoB,CAJpB,iBAAkB,CAClB,UjDu+JF,CiDj+JE,0BAEE,2B3Ck8CgC,CgBh/C9B,iCtBihKN,CsB7gKM,uC2BwCJ,0B3BvCM,etBghKN,CACF,CiDt+JE,0BACE,cjDw+JJ,CiDp+JE,kCACE,qBjDs+JJ,CiDl+JA,yBACE,4CjDq+JF,CiDn+JE,wCACE,eAAgB,CAChB,ejDq+JJ,CiDl+JE,qCACE,ejDo+JJ,CiDh+JA,uBAEE,kBAAmB,CADnB,YAAa,CAEb,gDjDm+JF,CiD/9JA,eASE,2BAA4B,CAD5B,oCAEA,uE1CrFE,4C0CiFF,4BAJA,YAAa,CACb,qBAAsB,CAWtB,SAAU,CAPV,mBAAoB,CANpB,iBAAkB,CAGlB,UjDy+JF,CiD39JA,gBAEE,0BACA,sBACA,0BC5GA,sCD+G4D,CChH5D,YAAa,CAHb,MAAO,CAFP,cAAe,CACf,KAAM,CAGN,WAAY,CADZ,iClDmlKF,CkD7kKE,qBAAS,SlDglKX,CkD/kKE,qBAAS,kClDklKX,CiDl+JA,cAGE,kBAAmB,CAEnB,4F1CrGE,2DACA,4D0CgGF,YAAa,CACb,aAAc,CAEd,sCjDw+JF,CiDp+JE,yBAEE,6IADA,2FjDu+JJ,CiDj+JA,aAEE,8CADA,ejDq+JF,CiD/9JA,YAIE,aAAc,CACd,gCAJA,iBjDo+JF,CiD59JA,cAIE,kBAAmB,CAGnB,2C1CvHE,8DADA,+D0CyHF,yFAPA,YAAa,CACb,aAAc,CACd,cAAe,CAEf,wBAAyB,CACzB,qEjDm+JF,CiD39JE,gBACE,0CjD69JJ,CcxkKI,yBmCiHF,OACE,0BACA,0CjD29JF,CiDv9JA,cAGE,gBAAiB,CADjB,iBAAkB,CADlB,+BjD29JF,CiDt9JA,UACE,sBjDw9JF,CACF,CcvlKI,yBmCmIF,oBAEE,sBjDu9JF,CACF,Cc7lKI,0BmC0IF,UACE,uBjDs9JF,CACF,CiD78JI,kBAGE,WAAY,CACZ,QAAS,CAFT,cAAe,CADf,WjDk9JN,CiD78JM,iCAEE,QAAS,C1CzMb,gB0CwMI,WjDi9JR,CiD58JM,gE1C7MF,eP6pKJ,CiD38JM,8BACE,ejD68JR,CcvmKI,4BmCwIA,0BAGE,WAAY,CACZ,QAAS,CAFT,cAAe,CADf,WjDs+JJ,CiDj+JI,yCAEE,QAAS,C1CzMb,gB0CwMI,WjDq+JN,CiDh+JI,gF1C7MF,ePirKF,CiD/9JI,sCACE,ejDi+JN,CACF,Cc5nKI,4BmCwIA,0BAGE,WAAY,CACZ,QAAS,CAFT,cAAe,CADf,WjD0/JJ,CiDr/JI,yCAEE,QAAS,C1CzMb,gB0CwMI,WjDy/JN,CiDp/JI,gF1C7MF,ePqsKF,CiDn/JI,sCACE,ejDq/JN,CACF,CchpKI,4BmCwIA,0BAGE,WAAY,CACZ,QAAS,CAFT,cAAe,CADf,WjD8gKJ,CiDzgKI,yCAEE,QAAS,C1CzMb,gB0CwMI,WjD6gKN,CiDxgKI,gF1C7MF,ePytKF,CiDvgKI,sCACE,ejDygKN,CACF,CcpqKI,6BmCwIA,0BAGE,WAAY,CACZ,QAAS,CAFT,cAAe,CADf,WjDkiKJ,CiD7hKI,yCAEE,QAAS,C1CzMb,gB0CwMI,WjDiiKN,CiD5hKI,gF1C7MF,eP6uKF,CiD3hKI,sCACE,ejD6hKN,CACF,CmDnwKA,SAEE,yBACA,6BACA,8BACA,+BACA,sBhDwRI,+BALI,CgDjRR,qCACA,yCACA,mDACA,yBACA,gCACA,iCAYA,oBAAqB,CARrB,aAAc,CCjBd,qC9C+lB4B,CHjUxB,qCALI,CiDvRR,iBAAkB,CAClB,e9CwmB4B,C8CjmB5B,qBAAsB,CAItB,eAAgB,CAVhB,e9C+mB4B,C6CjmB5B,gCAQA,SAAU,CCrBV,eAAgB,CAChB,gBAAiB,CACjB,oBAAqB,CACrB,gBAAiB,CACjB,mBAAoB,CAGpB,kBAAmB,CADnB,iBAAkB,CAElB,mBAAoB,CDGpB,gCnDqxKF,CmDzwKE,cAAS,iCnD4wKX,CmD1wKE,wBACE,aAAc,CAEd,sCADA,mCnD6wKJ,CmD1wKI,+BAGE,wBAAyB,CACzB,kBAAmB,CAFnB,UAAW,CADX,iBnD+wKN,CmDvwKA,2FACE,8CnD0wKF,CmDxwKE,yGAGE,sCADA,qFADA,QnD4wKJ,CmDrwKA,6FAGE,qCAFA,6CACA,oCnD0wKF,CmDvwKE,2GAGE,wCADA,4HADA,UnD2wKJ,CmDnwKA,iGACE,2CnDuwKF,CmDrwKE,+GAGE,yCADA,qFADA,WnDywKJ,CmDlwKA,8FAGE,qCAFA,8CACA,oCnDuwKF,CmDpwKE,4GAGE,uCADA,4HADA,SnDwwKJ,CmDhvKA,eAKE,sC5CjGE,8C4C+FF,8BAFA,sCACA,gEAEA,iBnDsvKF,CqDz2KA,SAEE,yBACA,6BlD4RI,+BALI,CkDrRR,kCACA,iDACA,6DACA,sDACA,2FACA,6CACA,mCACA,qClDmRI,kCALI,CkD5QR,kCACA,8CACA,iCACA,iCACA,6CACA,8BACA,iCACA,yDAWA,oBAAqB,CAErB,2BAA4B,CAD5B,sCAEA,2E9ChBE,8C8CMF,aAAc,CDxBd,qC9C+lB4B,CHjUxB,qCALI,CiDvRR,iBAAkB,CAClB,e9CwmB4B,C8CjmB5B,qBAAsB,CAItB,eAAgB,CAVhB,e9C+mB4B,C+C1lB5B,sCDpBA,eAAgB,CAChB,gBAAiB,CACjB,oBAAqB,CACrB,gBAAiB,CACjB,mBAAoB,CAGpB,kBAAmB,CADnB,iBAAkB,CAElB,mBAAoB,CCUpB,gCrD+3KF,CqDh3KE,wBACE,aAAc,CAEd,sCADA,mCrDm3KJ,CqDh3KI,6DAOE,0BAAe,CAHf,UAAW,CADX,aAAc,CADd,iBrDs3KN,CqD32KE,2FACE,iFrD82KJ,CqD52KI,gNAEE,oFrD62KN,CqD12KI,yGAEE,gDADA,QrD62KN,CqDz2KI,uGAEE,sCADA,qCrD42KN,CqDp2KE,6FAGE,qCAFA,gFACA,oCrDy2KJ,CqDt2KI,oNAEE,2HrDu2KN,CqDp2KI,2GAEE,kDADA,MrDu2KN,CqDn2KI,yGAEE,wCADA,mCrDs2KN,CqD71KE,iGACE,8ErDi2KJ,CqD/1KI,4NAEE,oFrDg2KN,CqD71KI,+GAEE,mDADA,KrDg2KN,CqD51KI,6GAEE,yCADA,kCrD+1KN,CqDz1KE,iHAQE,+EADA,UAAW,CAHX,aAAc,CADd,QAAS,CAGT,oDALA,iBAAkB,CAClB,KAAM,CAGN,mCrD81KJ,CqDr1KE,8FAGE,qCAFA,iFACA,oCrD01KJ,CqDv1KI,sNAEE,2HrDw1KN,CqDr1KI,4GAEE,iDADA,OrDw1KN,CqDp1KI,0GAEE,uCADA,oCrDu1KN,CqD/zKA,gBAKE,6CACA,kF9C5JE,6DACA,8D8CyJF,qClDyGI,4CALI,CkDtGR,eAAgB,CADhB,6ErD00KF,CqDl0KE,sBACE,YrDo0KJ,CqDh0KA,cAEE,mCADA,yErDo0KF,CsDx/KA,UACE,iBtD2/KF,CsDx/KA,wBACE,kBtD2/KF,CsDx/KA,gBAGE,eAAgB,CAFhB,iBAAkB,CAClB,UtD4/KF,CuDjhLE,sBAEE,UAAW,CACX,UAAW,CAFX,avDqhLJ,CsD5/KA,eAME,0BAA2B,CAJ3B,YAAa,CACb,UAAW,CAEX,kBAAmB,CAJnB,iBAAkB,ChCbd,oCgCmBJ,CAHA,UtDkgLF,CsB9gLM,uCgCQN,ehCPQ,etBihLN,CACF,CsDjgLA,8DAGE,atDogLF,CsDjgLA,wEAEE,0BtDogLF,CsDjgLA,wEAEE,2BtDogLF,CsD3/KE,8BACE,SAAU,CAEV,cAAe,CADf,2BtD+/KJ,CsD3/KE,iJAIE,SAAU,CADV,StD8/KJ,CsD1/KE,oFAGE,SAAU,ChC5DR,yBgC6DF,CAFA,StD8/KJ,CsBrjLM,uCgCqDJ,oFhCpDM,etByjLN,CACF,CsDz/KA,8CAQE,kBAAmB,CAMnB,eAAgB,CAChB,QAAS,CAXT,QAAS,CAQT,UhD1FS,CgDqFT,YAAa,CAEb,sBAAuB,CAOvB,UhD6gDmC,CgDlhDnC,SAAU,CATV,iBAAkB,CAWlB,iBAAkB,CAVlB,KAAM,ChCzEF,4BgCuFJ,CAPA,ShDkhDmC,CgDvhDnC,StDugLF,CsB9kLM,uCgCkEN,8ChCjEQ,etBklLN,CACF,CsD9/KE,oHAEE,UhDpGO,CgDuGP,UhDqgDiC,CgDtgDjC,SAAU,CADV,oBtDmgLJ,CsD9/KA,uBACE,MtDigLF,CsD9/KA,uBACE,OtDigLF,CsD5/KA,wDAME,uBAAwB,CADxB,2BAA4B,CAE5B,yBAA0B,CAL1B,oBAAqB,CAErB,WhDqgDmC,CgDtgDnC,UtDmgLF,CsD5/KA,4BACE,sRtD+/KF,CsD7/KA,4BACE,uRtDggLF,CsDx/KA,qBAGE,QAAS,CAGT,YAAa,CACb,sBAAuB,CAHvB,MAAO,CAOP,kBAAmB,CACnB,ehDo9CmC,CgDt9CnC,gBhDs9CmC,CgDx9CnC,SAAU,CAPV,iBAAkB,CAClB,OAAQ,CAGR,StDigLF,CsDx/KE,sCAWE,2BAA4B,CAD5B,qBhDlKO,CgDoKP,QAAS,CAGT,qCADA,kCAbA,sBAAuB,CAQvB,cAAe,CAPf,aAAc,CAEd,UhDo9CiC,CgDj9CjC,ehDm9CiC,CgDp9CjC,gBhDo9CiC,CgD18CjC,UhD28CiC,CgDt9CjC,SAAU,CAGV,kBAAmB,ChCxJjB,2BgCiKF,CAdA,UtDugLJ,CsBtpLM,uCgC4IJ,sChC3IM,etBypLN,CACF,CsD3/KE,6BACE,StD6/KJ,CsDp/KA,kBAGE,chDk8CmC,CgD97CnC,UhD7LS,CgD0LT,SAEA,sBhD87CmC,CgD/7CnC,mBhD+7CmC,CgDn8CnC,iBAAkB,CAClB,UAMA,iBtDu/KF,CsDj/KE,sFAEE,+BtDo/KJ,CsDj/KE,qDACE,qBtDm/KJ,CsDh/KE,iCACE,UtDk/KJ,CsD5/KE,0OAEE,+BtDggLJ,CsD7/KE,yIACE,qBtD+/KJ,CsD5/KE,iGACE,UtD8/KJ,CwDhtLA,8BAQE,6FADA,iBAAkB,CALlB,oBAAqB,CAErB,gCACA,gDAFA,6BxDutLF,CwD9sLA,0BACE,GAAK,uBxDktLL,CACF,CwD/sLA,gBAEE,wBACA,yBACA,qCACA,iCACA,mCACA,2CAGA,gCACA,2CAA+B,CAA/B,6DxD8sLF,CwD3sLA,mBAEE,wBACA,yBACA,+BxD6sLF,CwDpsLA,wBACE,GACE,kBxDusLF,CwDrsLA,IACE,SAAU,CACV,cxDusLF,CACF,CwDnsLA,cAEE,wBACA,yBACA,qCACA,mCACA,yCAGA,6BAA8B,CAC9B,SxDksLF,CwD/rLA,iBACE,wBACA,wBxDksLF,CwD9rLE,uCACE,8BAEE,iCxDisLJ,CACF,CyDjxLA,mEAEE,2BACA,2BACA,2BACA,8BACA,8BACA,0CACA,oCACA,mDACA,+DACA,kDACA,qDACA,oCzDkxLF,CcrtLI,4B2C5CF,cAWI,2BAA4B,CAD5B,wCAPA,QAAS,CAKT,gCAHA,YAAa,CACb,qBAAsB,CACtB,cAAe,CAKf,SAAU,CAVV,cAAe,CnClBf,yCmC8BA,CALA,iBAAkB,CALlB,kCzD6wLJ,CACF,CsB9xLM,gEmCYJ,cnCXM,etBiyLN,CACF,Cc3uLI,4B2C5BE,8BAIE,qFAFA,MAAO,CADP,KAAM,CAIN,2BAA4B,CAF5B,+BzD4wLN,CyDvwLI,4BAIE,oFAFA,OAAQ,CADR,KAAM,CAIN,0BAA2B,CAF3B,+BzD2wLN,CyDtwLI,4BAME,sFALA,KAAM,CAMN,2BzDwwLN,CyDrwLI,2DANE,kCADA,MAAO,CAEP,eAAgB,CAHhB,OzDqxLN,CyD7wLI,+BAKE,mFACA,0BzDuwLN,CyDpwLI,sDAEE,czDqwLN,CyDlwLI,8DAGE,kBzDkwLN,CACF,Cc/xLI,yB2C/BF,cAiEM,2BACA,8BACA,sCzDiwLN,CyD/vLM,gCACE,YzDiwLR,CyD9vLM,8BAME,sCAAwC,CALxC,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SzDkwLR,CACF,CcnyLI,4B2C5CF,cAWI,2BAA4B,CAD5B,wCAPA,QAAS,CAKT,gCAHA,YAAa,CACb,qBAAsB,CACtB,cAAe,CAKf,SAAU,CAVV,cAAe,CnClBf,yCmC8BA,CALA,iBAAkB,CALlB,kCzD21LJ,CACF,CsB52LM,gEmCYJ,cnCXM,etB+2LN,CACF,CczzLI,4B2C5BE,8BAIE,qFAFA,MAAO,CADP,KAAM,CAIN,2BAA4B,CAF5B,+BzD01LN,CyDr1LI,4BAIE,oFAFA,OAAQ,CADR,KAAM,CAIN,0BAA2B,CAF3B,+BzDy1LN,CyDp1LI,4BAME,sFALA,KAAM,CAMN,2BzDs1LN,CyDn1LI,2DANE,kCADA,MAAO,CAEP,eAAgB,CAHhB,OzDm2LN,CyD31LI,+BAKE,mFACA,0BzDq1LN,CyDl1LI,sDAEE,czDm1LN,CyDh1LI,8DAGE,kBzDg1LN,CACF,Cc72LI,yB2C/BF,cAiEM,2BACA,8BACA,sCzD+0LN,CyD70LM,gCACE,YzD+0LR,CyD50LM,8BAME,sCAAwC,CALxC,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SzDg1LR,CACF,Ccj3LI,4B2C5CF,cAWI,2BAA4B,CAD5B,wCAPA,QAAS,CAKT,gCAHA,YAAa,CACb,qBAAsB,CACtB,cAAe,CAKf,SAAU,CAVV,cAAe,CnClBf,yCmC8BA,CALA,iBAAkB,CALlB,kCzDy6LJ,CACF,CsB17LM,gEmCYJ,cnCXM,etB67LN,CACF,Ccv4LI,4B2C5BE,8BAIE,qFAFA,MAAO,CADP,KAAM,CAIN,2BAA4B,CAF5B,+BzDw6LN,CyDn6LI,4BAIE,oFAFA,OAAQ,CADR,KAAM,CAIN,0BAA2B,CAF3B,+BzDu6LN,CyDl6LI,4BAME,sFALA,KAAM,CAMN,2BzDo6LN,CyDj6LI,2DANE,kCADA,MAAO,CAEP,eAAgB,CAHhB,OzDi7LN,CyDz6LI,+BAKE,mFACA,0BzDm6LN,CyDh6LI,sDAEE,czDi6LN,CyD95LI,8DAGE,kBzD85LN,CACF,Cc37LI,yB2C/BF,cAiEM,2BACA,8BACA,sCzD65LN,CyD35LM,gCACE,YzD65LR,CyD15LM,8BAME,sCAAwC,CALxC,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SzD85LR,CACF,Cc/7LI,6B2C5CF,cAWI,2BAA4B,CAD5B,wCAPA,QAAS,CAKT,gCAHA,YAAa,CACb,qBAAsB,CACtB,cAAe,CAKf,SAAU,CAVV,cAAe,CnClBf,yCmC8BA,CALA,iBAAkB,CALlB,kCzDu/LJ,CACF,CsBxgMM,iEmCYJ,cnCXM,etB2gMN,CACF,Ccr9LI,6B2C5BE,8BAIE,qFAFA,MAAO,CADP,KAAM,CAIN,2BAA4B,CAF5B,+BzDs/LN,CyDj/LI,4BAIE,oFAFA,OAAQ,CADR,KAAM,CAIN,0BAA2B,CAF3B,+BzDq/LN,CyDh/LI,4BAME,sFALA,KAAM,CAMN,2BzDk/LN,CyD/+LI,2DANE,kCADA,MAAO,CAEP,eAAgB,CAHhB,OzD+/LN,CyDv/LI,+BAKE,mFACA,0BzDi/LN,CyD9+LI,sDAEE,czD++LN,CyD5+LI,8DAGE,kBzD4+LN,CACF,CczgMI,0B2C/BF,cAiEM,2BACA,8BACA,sCzD2+LN,CyDz+LM,gCACE,YzD2+LR,CyDx+LM,8BAME,sCAAwC,CALxC,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SzD4+LR,CACF,CyDzjME,WAWI,2BAA4B,CAD5B,wCAPA,QAAS,CAKT,gCAHA,YAAa,CACb,qBAAsB,CACtB,cAAe,CAKf,SAAU,CAVV,cAAe,CnClBf,yCmC8BA,CALA,iBAAkB,CALlB,kCzDokMN,CsBplMM,uCmCYJ,WnCXM,etBulMN,CACF,CyD7jMM,2BAIE,qFAFA,MAAO,CADP,KAAM,CAIN,2BAA4B,CAF5B,+BzDikMR,CyD5jMM,yBAIE,oFAFA,OAAQ,CADR,KAAM,CAIN,0BAA2B,CAF3B,+BzDgkMR,CyD3jMM,yBAME,sFALA,KAAM,CAMN,2BzD6jMR,CyD1jMM,qDANE,kCADA,MAAO,CAEP,eAAgB,CAHhB,OzD0kMR,CyDlkMM,4BAKE,mFACA,0BzD4jMR,CyDzjMM,gDAEE,czD0jMR,CyDvjMM,qDAGE,kBzDujMR,CyD5hMA,oBP9GE,qB5CUS,C4CXT,YAAa,CAHb,MAAO,CAFP,cAAe,CACf,KAAM,CAGN,WAAY,CADZ,YlDupMF,CkDjpME,yBAAS,SlDopMX,CkDnpME,yBAAS,UlDspMX,CyDxiMA,kBAEE,kBAAmB,CADnB,YAAa,CAEb,mEzD2iMF,CyDziME,6BAEE,oIADA,qFzD4iMJ,CyDviMA,iBAEE,kDADA,ezD2iMF,CyDviMA,gBACE,WAAY,CAEZ,eAAgB,CADhB,mEzD2iMF,C0DvrMA,aAKE,6BAA8B,CAD9B,WAAY,CAHZ,oBAAqB,CACrB,cAAe,CAIf,UpDgzCkC,CoDnzClC,qB1D6rMF,C0DxrME,wBAEE,UAAW,CADX,oB1D2rMJ,C0DrrMA,gBACE,e1DwrMF,C0DrrMA,gBACE,e1DwrMF,C0DrrMA,gBACE,gB1DwrMF,C0DnrME,+BACE,kD1DsrMJ,C0DlrMA,4BACE,IACE,U1DqrMF,CACF,C0DlrMA,kBAGE,6CAA8C,CAF9C,wEACA,mB1DqrMF,C0DjrMA,4BACE,GACE,qB1DorMF,CACF,CuDnuME,gBAEE,UAAW,CACX,UAAW,CAFX,avDuuMJ,C2DxuME,iBAEE,8EADA,oB3D4uMJ,C2D7uME,mBAEE,gFADA,oB3DivMJ,C2DlvME,iBAEE,8EADA,oB3DsvMJ,C2DvvME,cAEE,2EADA,oB3D2vMJ,C2D5vME,iBAEE,8EADA,oB3DgwMJ,C2DjwME,gBAEE,6EADA,oB3DqwMJ,C2DtwME,eAEE,4EADA,oB3D0wMJ,C2D3wME,cAEE,2EADA,oB3D+wMJ,C4DhxME,cACE,qEACA,8F5DmxMJ,C4DhxMM,wCAGE,yDACA,kF5DgxMR,C4DzxME,gBACE,uEACA,gG5D4xMJ,C4DzxMM,4CAGE,yDACA,kF5DyxMR,C4DlyME,cACE,qEACA,8F5DqyMJ,C4DlyMM,wCAGE,yDACA,kF5DkyMR,C4D3yME,WACE,kEACA,2F5D8yMJ,C4D3yMM,kCAGE,0DACA,mF5D2yMR,C4DpzME,cACE,qEACA,8F5DuzMJ,C4DpzMM,wCAGE,0DACA,mF5DozMR,C4D7zME,aACE,oEACA,6F5Dg0MJ,C4D7zMM,sCAGE,yDACA,kF5D6zMR,C4Dt0ME,YACE,mEACA,4F5Dy0MJ,C4Dt0MM,oCAGE,2DACA,oF5Ds0MR,C4D/0ME,WACE,kEACA,2F5Dk1MJ,C4D/0MM,kCAGE,wDACA,iF5D+0MR,C4Dx0MA,oBACE,4EACA,qG5D20MF,C4Dx0MI,oDAEE,8EACA,uG5Dy0MN,C6Dn2MA,kBAGE,+IAFA,S7Du2MF,C8Dx2MA,WAGE,kBAAmB,CAGnB,0BAA2B,CAL3B,mBAAoB,CACpB,WxD6c4B,CwD3c5B,+EACA,2B9D42MF,C8Dz2ME,eAIE,iBAAkB,CAHlB,aAAc,CAEd,UxDsc0B,CgBjcxB,oCwCHF,CAHA,S9D82MJ,CsBp2MM,uCwCZJ,exCaM,etBu2MN,CACF,C8Dz2MI,8DACE,8D9D42MN,C+D/3MA,OACE,iBAAkB,CAClB,U/Dk4MF,C+Dh4ME,cAGE,UAAW,CAFX,aAAc,CACd,kC/Dm4MJ,C+D/3ME,SAKE,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,U/Dk4MJ,C+D53ME,WACE,sB/D+3MJ,C+Dh4ME,WACE,qB/Dm4MJ,C+Dp4ME,YACE,wB/Du4MJ,C+Dx4ME,YACE,gC/D24MJ,CgEh6MA,WAEE,KhEs6MF,CgEh6MA,yBAJE,MAAO,CAHP,cAAe,CAEf,OAAQ,CAER,YhE26MF,CgEx6MA,cAGE,QhEq6MF,CgE35MI,YAEE,KhE+5MN,CgE35MI,2BALE,eAAgB,CAEhB,YhEo6MN,CgEj6MI,eAEE,QhE+5MN,Cc/3MI,yBkDxCA,eACE,eAAgB,CAChB,KAAM,CACN,YhE26MJ,CgEx6ME,kBAEE,QAAS,CADT,eAAgB,CAEhB,YhE06MJ,CACF,Cc54MI,yBkDxCA,eACE,eAAgB,CAChB,KAAM,CACN,YhEu7MJ,CgEp7ME,kBAEE,QAAS,CADT,eAAgB,CAEhB,YhEs7MJ,CACF,Ccx5MI,yBkDxCA,eACE,eAAgB,CAChB,KAAM,CACN,YhEm8MJ,CgEh8ME,kBAEE,QAAS,CADT,eAAgB,CAEhB,YhEk8MJ,CACF,Ccp6MI,0BkDxCA,eACE,eAAgB,CAChB,KAAM,CACN,YhE+8MJ,CgE58ME,kBAEE,QAAS,CADT,eAAgB,CAEhB,YhE88MJ,CACF,CiE9+MA,QAGE,kBAAmB,CADnB,kBjEk/MF,CiE7+MA,gBAHE,kBAAmB,CAHnB,YjE0/MF,CiEp/MA,QAEE,aAAc,CACd,qBjEi/MF,CkEx/MA,2ECSE,4BAAiC,CAEjC,kBAAoB,CANpB,oBAAsB,CAEtB,qBAAuB,CACvB,yBAA2B,CAF3B,mBAAqB,CAIrB,4BAA8B,CAN9B,mBnEggNF,CmEt/ME,qGACE,2BnEy/MJ,CoEvgNE,sBAIE,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,SpE2gNJ,CqElhNA,eCAE,eAAgB,CAChB,sBAAuB,CACvB,kBtEshNF,CuE5hNA,IAEE,kBAAmB,CAGnB,6BAA8B,CAJ9B,oBAAqB,CAGrB,cAAe,CAEf,WjE2rB4B,CiE9rB5B,4BvEkiNF,CwEn+MQ,gBAOI,iCxEg+MZ,CwEv+MQ,WAOI,4BxEo+MZ,CwE3+MQ,cAOI,+BxEw+MZ,CwE/+MQ,cAOI,+BxE4+MZ,CwEn/MQ,mBAOI,oCxEg/MZ,CwEv/MQ,gBAOI,iCxEo/MZ,CwE3/MQ,aAOI,oBxEw/MZ,CwE//MQ,WAOI,qBxE4/MZ,CwEngNQ,YAOI,oBxEggNZ,CwEvgNQ,oBAOI,4BxEogNZ,CwE3gNQ,kBAOI,0BxEwgNZ,CwE/gNQ,iBAOI,yBxE4gNZ,CwEnhNQ,kBAOI,+BxEghNZ,CwEvhNQ,iBAOI,yBxEohNZ,CwE3hNQ,WAOI,mBxEwhNZ,CwE/hNQ,YAOI,qBxE4hNZ,CwEniNQ,YAOI,oBxEgiNZ,CwEviNQ,YAOI,qBxEoiNZ,CwE3iNQ,aAOI,mBxEwiNZ,CwE/iNQ,eAOI,uBxE4iNZ,CwEnjNQ,iBAOI,yBxEgjNZ,CwEvjNQ,kBAOI,0BxEojNZ,CwE3jNQ,iBAOI,yBxEwjNZ,CwE/jNQ,iBAOI,yBxE4jNZ,CwEnkNQ,mBAOI,2BxEgkNZ,CwEvkNQ,oBAOI,4BxEokNZ,CwE3kNQ,mBAOI,2BxEwkNZ,CwE/kNQ,iBAOI,yBxE4kNZ,CwEnlNQ,mBAOI,2BxEglNZ,CwEvlNQ,oBAOI,4BxEolNZ,CwE3lNQ,mBAOI,2BxEwlNZ,CwE/lNQ,UAOI,wBxE4lNZ,CwEnmNQ,gBAOI,8BxEgmNZ,CwEvmNQ,SAOI,uBxEomNZ,CwE3mNQ,QAOI,sBxEwmNZ,CwE/mNQ,eAOI,6BxE4mNZ,CwEnnNQ,SAOI,uBxEgnNZ,CwEvnNQ,aAOI,2BxEonNZ,CwE3nNQ,cAOI,4BxEwnNZ,CwE/nNQ,QAOI,sBxE4nNZ,CwEnoNQ,eAOI,6BxEgoNZ,CwEvoNQ,QAOI,sBxEooNZ,CwE3oNQ,QAOI,yCxEwoNZ,CwE/oNQ,WAOI,4CxE4oNZ,CwEnpNQ,WAOI,4CxEgpNZ,CwEvpNQ,aAOI,yBxEopNZ,CwErqNQ,oBACE,8ExEwqNV,CwEzqNQ,sBACE,gFxE4qNV,CwE7qNQ,oBACE,8ExEgrNV,CwEjrNQ,iBACE,2ExEorNV,CwErrNQ,oBACE,8ExEwrNV,CwEzrNQ,mBACE,6ExE4rNV,CwE7rNQ,kBACE,4ExEgsNV,CwEjsNQ,iBACE,2ExEosNV,CwE3rNQ,iBAOI,yBxEwrNZ,CwE/rNQ,mBAOI,2BxE4rNZ,CwEnsNQ,mBAOI,2BxEgsNZ,CwEvsNQ,gBAOI,wBxEosNZ,CwE3sNQ,iBAOI,yBxEwsNZ,CwE/sNQ,OAOI,exE4sNZ,CwEntNQ,QAOI,iBxEgtNZ,CwEvtNQ,SAOI,kBxEotNZ,CwE3tNQ,UAOI,kBxEwtNZ,CwE/tNQ,WAOI,oBxE4tNZ,CwEnuNQ,YAOI,qBxEguNZ,CwEvuNQ,SAOI,gBxEouNZ,CwE3uNQ,UAOI,kBxEwuNZ,CwE/uNQ,WAOI,mBxE4uNZ,CwEnvNQ,OAOI,iBxEgvNZ,CwEvvNQ,QAOI,mBxEovNZ,CwE3vNQ,SAOI,oBxEwvNZ,CwE/vNQ,kBAOI,wCxE4vNZ,CwEnwNQ,oBAOI,oCxEgwNZ,CwEvwNQ,oBAOI,oCxEowNZ,CwE3wNQ,QAOI,qFxEwwNZ,CwE/wNQ,UAOI,kBxE4wNZ,CwEnxNQ,YAOI,yFxEgxNZ,CwEvxNQ,cAOI,sBxEoxNZ,CwE3xNQ,YAOI,2FxEwxNZ,CwE/xNQ,cAOI,wBxE4xNZ,CwEnyNQ,eAOI,4FxEgyNZ,CwEvyNQ,iBAOI,yBxEoyNZ,CwE3yNQ,cAOI,0FxEwyNZ,CwE/yNQ,gBAOI,uBxE4yNZ,CwEnzNQ,gBAIQ,sBAGJ,2ExEizNZ,CwExzNQ,kBAIQ,sBAGJ,6ExEszNZ,CwE7zNQ,gBAIQ,sBAGJ,2ExE2zNZ,CwEl0NQ,aAIQ,sBAGJ,wExEg0NZ,CwEv0NQ,gBAIQ,sBAGJ,2ExEq0NZ,CwE50NQ,eAIQ,sBAGJ,0ExE00NZ,CwEj1NQ,cAIQ,sBAGJ,yExE+0NZ,CwEt1NQ,aAIQ,sBAGJ,wExEo1NZ,CwE31NQ,cAIQ,sBAGJ,yExEy1NZ,CwEh2NQ,cAIQ,sBAGJ,yExE81NZ,CwEr2NQ,uBAOI,sDxEk2NZ,CwEz2NQ,yBAOI,wDxEs2NZ,CwE72NQ,uBAOI,sDxE02NZ,CwEj3NQ,oBAOI,mDxE82NZ,CwEr3NQ,uBAOI,sDxEk3NZ,CwEz3NQ,sBAOI,qDxEs3NZ,CwE73NQ,qBAOI,oDxE03NZ,CwEj4NQ,oBAOI,mDxE83NZ,CwEr4NQ,UAOI,0BxEk4NZ,CwEz4NQ,UAOI,0BxEs4NZ,CwE74NQ,UAOI,0BxE04NZ,CwEj5NQ,UAOI,0BxE84NZ,CwEr5NQ,UAOI,0BxEk5NZ,CwEn6NQ,mBACE,uBxEs6NV,CwEv6NQ,mBACE,wBxE06NV,CwE36NQ,mBACE,uBxE86NV,CwE/6NQ,mBACE,wBxEk7NV,CwEn7NQ,oBACE,qBxEs7NV,CwE76NQ,MAOI,mBxE06NZ,CwEj7NQ,MAOI,mBxE86NZ,CwEr7NQ,MAOI,mBxEk7NZ,CwEz7NQ,OAOI,oBxEs7NZ,CwE77NQ,QAOI,oBxE07NZ,CwEj8NQ,QAOI,wBxE87NZ,CwEr8NQ,QAOI,qBxEk8NZ,CwEz8NQ,YAOI,yBxEs8NZ,CwE78NQ,MAOI,oBxE08NZ,CwEj9NQ,MAOI,oBxE88NZ,CwEr9NQ,MAOI,oBxEk9NZ,CwEz9NQ,OAOI,qBxEs9NZ,CwE79NQ,QAOI,qBxE09NZ,CwEj+NQ,QAOI,yBxE89NZ,CwEr+NQ,QAOI,sBxEk+NZ,CwEz+NQ,YAOI,0BxEs+NZ,CwE7+NQ,WAOI,uBxE0+NZ,CwEj/NQ,UAOI,4BxE8+NZ,CwEr/NQ,aAOI,+BxEk/NZ,CwEz/NQ,kBAOI,oCxEs/NZ,CwE7/NQ,qBAOI,uCxE0/NZ,CwEjgOQ,aAOI,qBxE8/NZ,CwErgOQ,aAOI,qBxEkgOZ,CwEzgOQ,eAOI,uBxEsgOZ,CwE7gOQ,eAOI,uBxE0gOZ,CwEjhOQ,WAOI,wBxE8gOZ,CwErhOQ,aAOI,0BxEkhOZ,CwEzhOQ,mBAOI,gCxEshOZ,CwE7hOQ,uBAOI,oCxE0hOZ,CwEjiOQ,qBAOI,kCxE8hOZ,CwEriOQ,wBAOI,gCxEkiOZ,CwEziOQ,yBAOI,uCxEsiOZ,CwE7iOQ,wBAOI,sCxE0iOZ,CwEjjOQ,wBAOI,sCxE8iOZ,CwErjOQ,mBAOI,gCxEkjOZ,CwEzjOQ,iBAOI,8BxEsjOZ,CwE7jOQ,oBAOI,4BxE0jOZ,CwEjkOQ,sBAOI,8BxE8jOZ,CwErkOQ,qBAOI,6BxEkkOZ,CwEzkOQ,qBAOI,kCxEskOZ,CwE7kOQ,mBAOI,gCxE0kOZ,CwEjlOQ,sBAOI,8BxE8kOZ,CwErlOQ,uBAOI,qCxEklOZ,CwEzlOQ,sBAOI,oCxEslOZ,CwE7lOQ,uBAOI,+BxE0lOZ,CwEjmOQ,iBAOI,yBxE8lOZ,CwErmOQ,kBAOI,+BxEkmOZ,CwEzmOQ,gBAOI,6BxEsmOZ,CwE7mOQ,mBAOI,2BxE0mOZ,CwEjnOQ,qBAOI,6BxE8mOZ,CwErnOQ,oBAOI,4BxEknOZ,CwEznOQ,aAOI,kBxEsnOZ,CwE7nOQ,SAOI,iBxE0nOZ,CwEjoOQ,SAOI,iBxE8nOZ,CwEroOQ,SAOI,iBxEkoOZ,CwEzoOQ,SAOI,iBxEsoOZ,CwE7oOQ,SAOI,iBxE0oOZ,CwEjpOQ,SAOI,iBxE8oOZ,CwErpOQ,YAOI,iBxEkpOZ,CwEzpOQ,KAOI,kBxEspOZ,CwE7pOQ,KAOI,uBxE0pOZ,CwEjqOQ,KAOI,sBxE8pOZ,CwErqOQ,KAOI,qBxEkqOZ,CwEzqOQ,KAOI,uBxEsqOZ,CwE7qOQ,KAOI,qBxE0qOZ,CwEjrOQ,QAOI,qBxE8qOZ,CwErrOQ,MAOI,gDxEmrOZ,CwE1rOQ,MAOI,0DxEwrOZ,CwE/rOQ,MAOI,wDxE6rOZ,CwEpsOQ,MAOI,sDxEksOZ,CwEzsOQ,MAOI,0DxEusOZ,CwE9sOQ,MAOI,sDxE4sOZ,CwEntOQ,SAOI,sDxEitOZ,CwExtOQ,MAOI,gDxEstOZ,CwE7tOQ,MAOI,0DxE2tOZ,CwEluOQ,MAOI,wDxEguOZ,CwEvuOQ,MAOI,sDxEquOZ,CwE5uOQ,MAOI,0DxE0uOZ,CwEjvOQ,MAOI,sDxE+uOZ,CwEtvOQ,SAOI,sDxEovOZ,CwE3vOQ,MAOI,sBxEwvOZ,CwE/vOQ,MAOI,2BxE4vOZ,CwEnwOQ,MAOI,0BxEgwOZ,CwEvwOQ,MAOI,yBxEowOZ,CwE3wOQ,MAOI,2BxEwwOZ,CwE/wOQ,MAOI,yBxE4wOZ,CwEnxOQ,SAOI,yBxEgxOZ,CwEvxOQ,MAOI,wBxEoxOZ,CwE3xOQ,MAOI,6BxEwxOZ,CwE/xOQ,MAOI,4BxE4xOZ,CwEnyOQ,MAOI,2BxEgyOZ,CwEvyOQ,MAOI,6BxEoyOZ,CwE3yOQ,MAOI,2BxEwyOZ,CwE/yOQ,SAOI,2BxE4yOZ,CwEnzOQ,MAOI,yBxEgzOZ,CwEvzOQ,MAOI,8BxEozOZ,CwE3zOQ,MAOI,6BxEwzOZ,CwE/zOQ,MAOI,4BxE4zOZ,CwEn0OQ,MAOI,8BxEg0OZ,CwEv0OQ,MAOI,4BxEo0OZ,CwE30OQ,SAOI,4BxEw0OZ,CwE/0OQ,MAOI,uBxE40OZ,CwEn1OQ,MAOI,4BxEg1OZ,CwEv1OQ,MAOI,2BxEo1OZ,CwE31OQ,MAOI,0BxEw1OZ,CwE/1OQ,MAOI,4BxE41OZ,CwEn2OQ,MAOI,0BxEg2OZ,CwEv2OQ,SAOI,0BxEo2OZ,CwE32OQ,KAOI,mBxEw2OZ,CwE/2OQ,KAOI,wBxE42OZ,CwEn3OQ,KAOI,uBxEg3OZ,CwEv3OQ,KAOI,sBxEo3OZ,CwE33OQ,KAOI,wBxEw3OZ,CwE/3OQ,KAOI,sBxE43OZ,CwEn4OQ,MAOI,kDxEi4OZ,CwEx4OQ,MAOI,4DxEs4OZ,CwE74OQ,MAOI,0DxE24OZ,CwEl5OQ,MAOI,wDxEg5OZ,CwEv5OQ,MAOI,4DxEq5OZ,CwE55OQ,MAOI,wDxE05OZ,CwEj6OQ,MAOI,kDxE+5OZ,CwEt6OQ,MAOI,4DxEo6OZ,CwE36OQ,MAOI,0DxEy6OZ,CwEh7OQ,MAOI,wDxE86OZ,CwEr7OQ,MAOI,4DxEm7OZ,CwE17OQ,MAOI,wDxEw7OZ,CwE/7OQ,MAOI,uBxE47OZ,CwEn8OQ,MAOI,4BxEg8OZ,CwEv8OQ,MAOI,2BxEo8OZ,CwE38OQ,MAOI,0BxEw8OZ,CwE/8OQ,MAOI,4BxE48OZ,CwEn9OQ,MAOI,0BxEg9OZ,CwEv9OQ,MAOI,yBxEo9OZ,CwE39OQ,MAOI,8BxEw9OZ,CwE/9OQ,MAOI,6BxE49OZ,CwEn+OQ,MAOI,4BxEg+OZ,CwEv+OQ,MAOI,8BxEo+OZ,CwE3+OQ,MAOI,4BxEw+OZ,CwE/+OQ,MAOI,0BxE4+OZ,CwEn/OQ,MAOI,+BxEg/OZ,CwEv/OQ,MAOI,8BxEo/OZ,CwE3/OQ,MAOI,6BxEw/OZ,CwE//OQ,MAOI,+BxE4/OZ,CwEngPQ,MAOI,6BxEggPZ,CwEvgPQ,MAOI,wBxEogPZ,CwE3gPQ,MAOI,6BxEwgPZ,CwE/gPQ,MAOI,4BxE4gPZ,CwEnhPQ,MAOI,2BxEghPZ,CwEvhPQ,MAOI,6BxEohPZ,CwE3hPQ,MAOI,2BxEwhPZ,CwE/hPQ,OAOI,exE4hPZ,CwEniPQ,OAOI,oBxEgiPZ,CwEviPQ,OAOI,mBxEoiPZ,CwE3iPQ,OAOI,kBxEwiPZ,CwE/iPQ,OAOI,oBxE4iPZ,CwEnjPQ,OAOI,kBxEgjPZ,CwEvjPQ,WAOI,mBxEojPZ,CwE3jPQ,WAOI,wBxEwjPZ,CwE/jPQ,WAOI,uBxE4jPZ,CwEnkPQ,WAOI,sBxEgkPZ,CwEvkPQ,WAOI,wBxEokPZ,CwE3kPQ,WAOI,sBxEwkPZ,CwE/kPQ,cAOI,sBxE4kPZ,CwEnlPQ,cAOI,2BxEglPZ,CwEvlPQ,cAOI,0BxEolPZ,CwE3lPQ,cAOI,yBxEwlPZ,CwE/lPQ,cAOI,2BxE4lPZ,CwEnmPQ,cAOI,yBxEgmPZ,CwEvmPQ,gBAOI,8CxEomPZ,CwE3mPQ,MAOI,0CxEwmPZ,CwE/mPQ,MAOI,yCxE4mPZ,CwEnnPQ,MAOI,uCxEgnPZ,CwEvnPQ,MAOI,yCxEonPZ,CwE3nPQ,MAOI,2BxEwnPZ,CwE/nPQ,MAOI,wBxE4nPZ,CwEnoPQ,YAOI,2BxEgoPZ,CwEvoPQ,YAOI,2BxEooPZ,CwE3oPQ,YAOI,6BxEwoPZ,CwE/oPQ,UAOI,yBxE4oPZ,CwEnpPQ,WAOI,yBxEgpPZ,CwEvpPQ,WAOI,yBxEopPZ,CwE3pPQ,aAOI,yBxEwpPZ,CwE/pPQ,SAOI,yBxE4pPZ,CwEnqPQ,WAOI,4BxEgqPZ,CwEvqPQ,MAOI,uBxEoqPZ,CwE3qPQ,OAOI,0BxEwqPZ,CwE/qPQ,SAOI,yBxE4qPZ,CwEnrPQ,OAOI,uBxEgrPZ,CwEvrPQ,YAOI,yBxEorPZ,CwE3rPQ,UAOI,0BxEwrPZ,CwE/rPQ,aAOI,2BxE4rPZ,CwEnsPQ,sBAOI,8BxEgsPZ,CwEvsPQ,2BAOI,mCxEosPZ,CwE3sPQ,8BAOI,sCxEwsPZ,CwE/sPQ,gBAOI,kCxE4sPZ,CwEntPQ,gBAOI,kCxEgtPZ,CwEvtPQ,iBAOI,mCxEotPZ,CwE3tPQ,WAOI,4BxEwtPZ,CwE/tPQ,aAOI,4BxE4tPZ,CwEnuPQ,YAOI,8DxEkuPZ,CwEzuPQ,cAIQ,oBAGJ,kExEwuPZ,CwE/uPQ,gBAIQ,oBAGJ,oExE6uPZ,CwEpvPQ,cAIQ,oBAGJ,kExEkvPZ,CwEzvPQ,WAIQ,oBAGJ,+DxEuvPZ,CwE9vPQ,cAIQ,oBAGJ,kExE4vPZ,CwEnwPQ,aAIQ,oBAGJ,iExEiwPZ,CwExwPQ,YAIQ,oBAGJ,gExEswPZ,CwE7wPQ,WAIQ,oBAGJ,+DxE2wPZ,CwElxPQ,YAIQ,oBAGJ,gExEgxPZ,CwEvxPQ,YAIQ,oBAGJ,gExEqxPZ,CwE5xPQ,WAIQ,oBAGJ,qExE0xPZ,CwEjyPQ,YAIQ,oBAGJ,yCxE+xPZ,CwEtyPQ,eAIQ,oBAGJ,8BxEoyPZ,CwE3yPQ,eAIQ,oBAGJ,kCxEyyPZ,CwEhzPQ,qBAIQ,oBAGJ,yCxE8yPZ,CwErzPQ,oBAIQ,oBAGJ,wCxEmzPZ,CwE1zPQ,oBAIQ,oBAGJ,wCxEwzPZ,CwE/zPQ,YAIQ,oBAGJ,uBxE6zPZ,CwE90PQ,iBACE,sBxEi1PV,CwEl1PQ,iBACE,qBxEq1PV,CwEt1PQ,iBACE,sBxEy1PV,CwE11PQ,kBACE,mBxE61PV,CwEp1PQ,uBAOI,+CxEi1PZ,CwEx1PQ,yBAOI,iDxEq1PZ,CwE51PQ,uBAOI,+CxEy1PZ,CwEh2PQ,oBAOI,4CxE61PZ,CwEp2PQ,uBAOI,+CxEi2PZ,CwEx2PQ,sBAOI,8CxEq2PZ,CwE52PQ,qBAOI,6CxEy2PZ,CwEh3PQ,oBAOI,4CxE62PZ,CwEz3PU,8CACE,qBxEg4PZ,CwEj4PU,8CACE,sBxEw4PZ,CwEz4PU,8CACE,qBxEg5PZ,CwEj5PU,8CACE,sBxEw5PZ,CwEz5PU,gDACE,mBxEg6PZ,CwEh5PU,0CAOI,sCxEi5Pd,CwEx5PU,0CAOI,qCxEy5Pd,CwEh6PU,0CAOI,sCxEi6Pd,CwEp7PQ,wBAIQ,8BAGJ,4FxEk7PZ,CwEz7PQ,0BAIQ,8BAGJ,8FxEu7PZ,CwE97PQ,wBAIQ,8BAGJ,4FxE47PZ,CwEn8PQ,qBAIQ,8BAGJ,yFxEi8PZ,CwEx8PQ,wBAIQ,8BAGJ,4FxEs8PZ,CwE78PQ,uBAIQ,8BAGJ,2FxE28PZ,CwEl9PQ,sBAIQ,8BAGJ,0FxEg9PZ,CwEv9PQ,qBAIQ,8BAGJ,yFxEq9PZ,CwE59PQ,gBAIQ,8BAGJ,iGxE09PZ,CwEt+PU,gEACE,6BxE6+PZ,CwE9+PU,kEACE,+BxEq/PZ,CwEt/PU,kEACE,gCxE6/PZ,CwE9/PU,kEACE,+BxEqgQZ,CwEtgQU,kEACE,gCxE6gQZ,CwE9gQU,oEACE,6BxEqhQZ,CwEjhQQ,YAIQ,kBAGJ,2ExE+gQZ,CwEthQQ,cAIQ,kBAGJ,6ExEohQZ,CwE3hQQ,YAIQ,kBAGJ,2ExEyhQZ,CwEhiQQ,SAIQ,kBAGJ,wExE8hQZ,CwEriQQ,YAIQ,kBAGJ,2ExEmiQZ,CwE1iQQ,WAIQ,kBAGJ,0ExEwiQZ,CwE/iQQ,UAIQ,kBAGJ,yExE6iQZ,CwEpjQQ,SAIQ,kBAGJ,wExEkjQZ,CwEzjQQ,UAIQ,kBAGJ,yExEujQZ,CwE9jQQ,UAIQ,kBAGJ,yExE4jQZ,CwEnkQQ,SAIQ,kBAGJ,2ExEikQZ,CwExkQQ,gBAIQ,kBAGJ,sCxEskQZ,CwE7kQQ,mBAIQ,kBAGJ,gFxE2kQZ,CwEllQQ,kBAIQ,kBAGJ,+ExEglQZ,CwEjmQQ,eACE,mBxEomQV,CwErmQQ,eACE,oBxEwmQV,CwEzmQQ,eACE,mBxE4mQV,CwE7mQQ,eACE,oBxEgnQV,CwEjnQQ,gBACE,iBxEonQV,CwE3mQQ,mBAOI,sDxEwmQZ,CwE/mQQ,qBAOI,wDxE4mQZ,CwEnnQQ,mBAOI,sDxEgnQZ,CwEvnQQ,gBAOI,mDxEonQZ,CwE3nQQ,mBAOI,sDxEwnQZ,CwE/nQQ,kBAOI,qDxE4nQZ,CwEnoQQ,iBAOI,oDxEgoQZ,CwEvoQQ,gBAOI,mDxEooQZ,CwE3oQQ,aAOI,6CxEwoQZ,CwE/oQQ,iBAOI,yBxE4oQZ,CwEnpQQ,kBAOI,0BxEgpQZ,CwEvpQQ,kBAOI,0BxEopQZ,CwE3pQQ,SAOI,6BxEwpQZ,CwE/pQQ,SAOI,6BxE4pQZ,CwEnqQQ,SAOI,+CxEgqQZ,CwEvqQQ,WAOI,yBxEoqQZ,CwE3qQQ,WAOI,kDxEwqQZ,CwE/qQQ,WAOI,+CxE4qQZ,CwEnrQQ,WAOI,kDxEgrQZ,CwEvrQQ,WAOI,kDxEorQZ,CwE3rQQ,WAOI,mDxEwrQZ,CwE/rQQ,gBAOI,2BxE4rQZ,CwEnsQQ,cAOI,oDxEgsQZ,CwEvsQQ,aAOI,kHxEqsQZ,CwE5sQQ,eAOI,sExE0sQZ,CwEjtQQ,eAOI,wHxE+sQZ,CwEttQQ,eAOI,kHxEotQZ,CwE3tQQ,eAOI,wHxEytQZ,CwEhuQQ,eAOI,wHxE8tQZ,CwEruQQ,eAOI,0HxEmuQZ,CwE1uQQ,oBAOI,0ExEwuQZ,CwE/uQQ,kBAOI,4HxE6uQZ,CwEpvQQ,aAOI,sHxEkvQZ,CwEzvQQ,eAOI,0ExEuvQZ,CwE9vQQ,eAOI,4HxE4vQZ,CwEnwQQ,eAOI,sHxEiwQZ,CwExwQQ,eAOI,4HxEswQZ,CwE7wQQ,eAOI,4HxE2wQZ,CwElxQQ,eAOI,8HxEgxQZ,CwEvxQQ,oBAOI,8ExEqxQZ,CwE5xQQ,kBAOI,gIxE0xQZ,CwEjyQQ,gBAOI,wHxE+xQZ,CwEtyQQ,kBAOI,4ExEoyQZ,CwE3yQQ,kBAOI,8HxEyyQZ,CwEhzQQ,kBAOI,wHxE8yQZ,CwErzQQ,kBAOI,8HxEmzQZ,CwE1zQQ,kBAOI,8HxEwzQZ,CwE/zQQ,kBAOI,gIxE6zQZ,CwEp0QQ,uBAOI,gFxEk0QZ,CwEz0QQ,qBAOI,kIxEu0QZ,CwE90QQ,eAOI,oHxE40QZ,CwEn1QQ,iBAOI,wExEi1QZ,CwEx1QQ,iBAOI,0HxEs1QZ,CwE71QQ,iBAOI,oHxE21QZ,CwEl2QQ,iBAOI,0HxEg2QZ,CwEv2QQ,iBAOI,0HxEq2QZ,CwE52QQ,iBAOI,4HxE02QZ,CwEj3QQ,sBAOI,4ExE+2QZ,CwEt3QQ,oBAOI,8HxEo3QZ,CwE33QQ,SAOI,4BxEw3QZ,CwE/3QQ,WAOI,2BxE43QZ,CwEn4QQ,MAOI,oBxEg4QZ,CwEv4QQ,KAOI,mBxEo4QZ,CwE34QQ,KAOI,mBxEw4QZ,CwE/4QQ,KAOI,mBxE44QZ,CwEn5QQ,KAOI,mBxEg5QZ,Cc15QI,yB0DGI,gBAOI,oBxEq5QV,CwE55QM,cAOI,qBxEw5QV,CwE/5QM,eAOI,oBxE25QV,CwEl6QM,uBAOI,4BxE85QV,CwEr6QM,qBAOI,0BxEi6QV,CwEx6QM,oBAOI,yBxEo6QV,CwE36QM,qBAOI,+BxEu6QV,CwE96QM,oBAOI,yBxE06QV,CwEj7QM,aAOI,wBxE66QV,CwEp7QM,mBAOI,8BxEg7QV,CwEv7QM,YAOI,uBxEm7QV,CwE17QM,WAOI,sBxEs7QV,CwE77QM,kBAOI,6BxEy7QV,CwEh8QM,YAOI,uBxE47QV,CwEn8QM,gBAOI,2BxE+7QV,CwEt8QM,iBAOI,4BxEk8QV,CwEz8QM,WAOI,sBxEq8QV,CwE58QM,kBAOI,6BxEw8QV,CwE/8QM,WAOI,sBxE28QV,CwEl9QM,cAOI,uBxE88QV,CwEr9QM,aAOI,4BxEi9QV,CwEx9QM,gBAOI,+BxEo9QV,CwE39QM,qBAOI,oCxEu9QV,CwE99QM,wBAOI,uCxE09QV,CwEj+QM,gBAOI,qBxE69QV,CwEp+QM,gBAOI,qBxEg+QV,CwEv+QM,kBAOI,uBxEm+QV,CwE1+QM,kBAOI,uBxEs+QV,CwE7+QM,cAOI,wBxEy+QV,CwEh/QM,gBAOI,0BxE4+QV,CwEn/QM,sBAOI,gCxE++QV,CwEt/QM,0BAOI,oCxEk/QV,CwEz/QM,wBAOI,kCxEq/QV,CwE5/QM,2BAOI,gCxEw/QV,CwE//QM,4BAOI,uCxE2/QV,CwElgRM,2BAOI,sCxE8/QV,CwErgRM,2BAOI,sCxEigRV,CwExgRM,sBAOI,gCxEogRV,CwE3gRM,oBAOI,8BxEugRV,CwE9gRM,uBAOI,4BxE0gRV,CwEjhRM,yBAOI,8BxE6gRV,CwEphRM,wBAOI,6BxEghRV,CwEvhRM,wBAOI,kCxEmhRV,CwE1hRM,sBAOI,gCxEshRV,CwE7hRM,yBAOI,8BxEyhRV,CwEhiRM,0BAOI,qCxE4hRV,CwEniRM,yBAOI,oCxE+hRV,CwEtiRM,0BAOI,+BxEkiRV,CwEziRM,oBAOI,yBxEqiRV,CwE5iRM,qBAOI,+BxEwiRV,CwE/iRM,mBAOI,6BxE2iRV,CwEljRM,sBAOI,2BxE8iRV,CwErjRM,wBAOI,6BxEijRV,CwExjRM,uBAOI,4BxEojRV,CwE3jRM,gBAOI,kBxEujRV,CwE9jRM,YAOI,iBxE0jRV,CwEjkRM,YAOI,iBxE6jRV,CwEpkRM,YAOI,iBxEgkRV,CwEvkRM,YAOI,iBxEmkRV,CwE1kRM,YAOI,iBxEskRV,CwE7kRM,YAOI,iBxEykRV,CwEhlRM,eAOI,iBxE4kRV,CwEnlRM,QAOI,kBxE+kRV,CwEtlRM,QAOI,uBxEklRV,CwEzlRM,QAOI,sBxEqlRV,CwE5lRM,QAOI,qBxEwlRV,CwE/lRM,QAOI,uBxE2lRV,CwElmRM,QAOI,qBxE8lRV,CwErmRM,WAOI,qBxEimRV,CwExmRM,SAOI,gDxEqmRV,CwE5mRM,SAOI,0DxEymRV,CwEhnRM,SAOI,wDxE6mRV,CwEpnRM,SAOI,sDxEinRV,CwExnRM,SAOI,0DxEqnRV,CwE5nRM,SAOI,sDxEynRV,CwEhoRM,YAOI,sDxE6nRV,CwEpoRM,SAOI,gDxEioRV,CwExoRM,SAOI,0DxEqoRV,CwE5oRM,SAOI,wDxEyoRV,CwEhpRM,SAOI,sDxE6oRV,CwEppRM,SAOI,0DxEipRV,CwExpRM,SAOI,sDxEqpRV,CwE5pRM,YAOI,sDxEypRV,CwEhqRM,SAOI,sBxE4pRV,CwEnqRM,SAOI,2BxE+pRV,CwEtqRM,SAOI,0BxEkqRV,CwEzqRM,SAOI,yBxEqqRV,CwE5qRM,SAOI,2BxEwqRV,CwE/qRM,SAOI,yBxE2qRV,CwElrRM,YAOI,yBxE8qRV,CwErrRM,SAOI,wBxEirRV,CwExrRM,SAOI,6BxEorRV,CwE3rRM,SAOI,4BxEurRV,CwE9rRM,SAOI,2BxE0rRV,CwEjsRM,SAOI,6BxE6rRV,CwEpsRM,SAOI,2BxEgsRV,CwEvsRM,YAOI,2BxEmsRV,CwE1sRM,SAOI,yBxEssRV,CwE7sRM,SAOI,8BxEysRV,CwEhtRM,SAOI,6BxE4sRV,CwEntRM,SAOI,4BxE+sRV,CwEttRM,SAOI,8BxEktRV,CwEztRM,SAOI,4BxEqtRV,CwE5tRM,YAOI,4BxEwtRV,CwE/tRM,SAOI,uBxE2tRV,CwEluRM,SAOI,4BxE8tRV,CwEruRM,SAOI,2BxEiuRV,CwExuRM,SAOI,0BxEouRV,CwE3uRM,SAOI,4BxEuuRV,CwE9uRM,SAOI,0BxE0uRV,CwEjvRM,YAOI,0BxE6uRV,CwEpvRM,QAOI,mBxEgvRV,CwEvvRM,QAOI,wBxEmvRV,CwE1vRM,QAOI,uBxEsvRV,CwE7vRM,QAOI,sBxEyvRV,CwEhwRM,QAOI,wBxE4vRV,CwEnwRM,QAOI,sBxE+vRV,CwEtwRM,SAOI,kDxEmwRV,CwE1wRM,SAOI,4DxEuwRV,CwE9wRM,SAOI,0DxE2wRV,CwElxRM,SAOI,wDxE+wRV,CwEtxRM,SAOI,4DxEmxRV,CwE1xRM,SAOI,wDxEuxRV,CwE9xRM,SAOI,kDxE2xRV,CwElyRM,SAOI,4DxE+xRV,CwEtyRM,SAOI,0DxEmyRV,CwE1yRM,SAOI,wDxEuyRV,CwE9yRM,SAOI,4DxE2yRV,CwElzRM,SAOI,wDxE+yRV,CwEtzRM,SAOI,uBxEkzRV,CwEzzRM,SAOI,4BxEqzRV,CwE5zRM,SAOI,2BxEwzRV,CwE/zRM,SAOI,0BxE2zRV,CwEl0RM,SAOI,4BxE8zRV,CwEr0RM,SAOI,0BxEi0RV,CwEx0RM,SAOI,yBxEo0RV,CwE30RM,SAOI,8BxEu0RV,CwE90RM,SAOI,6BxE00RV,CwEj1RM,SAOI,4BxE60RV,CwEp1RM,SAOI,8BxEg1RV,CwEv1RM,SAOI,4BxEm1RV,CwE11RM,SAOI,0BxEs1RV,CwE71RM,SAOI,+BxEy1RV,CwEh2RM,SAOI,8BxE41RV,CwEn2RM,SAOI,6BxE+1RV,CwEt2RM,SAOI,+BxEk2RV,CwEz2RM,SAOI,6BxEq2RV,CwE52RM,SAOI,wBxEw2RV,CwE/2RM,SAOI,6BxE22RV,CwEl3RM,SAOI,4BxE82RV,CwEr3RM,SAOI,2BxEi3RV,CwEx3RM,SAOI,6BxEo3RV,CwE33RM,SAOI,2BxEu3RV,CwE93RM,UAOI,exE03RV,CwEj4RM,UAOI,oBxE63RV,CwEp4RM,UAOI,mBxEg4RV,CwEv4RM,UAOI,kBxEm4RV,CwE14RM,UAOI,oBxEs4RV,CwE74RM,UAOI,kBxEy4RV,CwEh5RM,cAOI,mBxE44RV,CwEn5RM,cAOI,wBxE+4RV,CwEt5RM,cAOI,uBxEk5RV,CwEz5RM,cAOI,sBxEq5RV,CwE55RM,cAOI,wBxEw5RV,CwE/5RM,cAOI,sBxE25RV,CwEl6RM,iBAOI,sBxE85RV,CwEr6RM,iBAOI,2BxEi6RV,CwEx6RM,iBAOI,0BxEo6RV,CwE36RM,iBAOI,yBxEu6RV,CwE96RM,iBAOI,2BxE06RV,CwEj7RM,iBAOI,yBxE66RV,CwEp7RM,eAOI,yBxEg7RV,CwEv7RM,aAOI,0BxEm7RV,CwE17RM,gBAOI,2BxEs7RV,CACF,Ccj8RI,yB0DGI,gBAOI,oBxE27RV,CwEl8RM,cAOI,qBxE87RV,CwEr8RM,eAOI,oBxEi8RV,CwEx8RM,uBAOI,4BxEo8RV,CwE38RM,qBAOI,0BxEu8RV,CwE98RM,oBAOI,yBxE08RV,CwEj9RM,qBAOI,+BxE68RV,CwEp9RM,oBAOI,yBxEg9RV,CwEv9RM,aAOI,wBxEm9RV,CwE19RM,mBAOI,8BxEs9RV,CwE79RM,YAOI,uBxEy9RV,CwEh+RM,WAOI,sBxE49RV,CwEn+RM,kBAOI,6BxE+9RV,CwEt+RM,YAOI,uBxEk+RV,CwEz+RM,gBAOI,2BxEq+RV,CwE5+RM,iBAOI,4BxEw+RV,CwE/+RM,WAOI,sBxE2+RV,CwEl/RM,kBAOI,6BxE8+RV,CwEr/RM,WAOI,sBxEi/RV,CwEx/RM,cAOI,uBxEo/RV,CwE3/RM,aAOI,4BxEu/RV,CwE9/RM,gBAOI,+BxE0/RV,CwEjgSM,qBAOI,oCxE6/RV,CwEpgSM,wBAOI,uCxEggSV,CwEvgSM,gBAOI,qBxEmgSV,CwE1gSM,gBAOI,qBxEsgSV,CwE7gSM,kBAOI,uBxEygSV,CwEhhSM,kBAOI,uBxE4gSV,CwEnhSM,cAOI,wBxE+gSV,CwEthSM,gBAOI,0BxEkhSV,CwEzhSM,sBAOI,gCxEqhSV,CwE5hSM,0BAOI,oCxEwhSV,CwE/hSM,wBAOI,kCxE2hSV,CwEliSM,2BAOI,gCxE8hSV,CwEriSM,4BAOI,uCxEiiSV,CwExiSM,2BAOI,sCxEoiSV,CwE3iSM,2BAOI,sCxEuiSV,CwE9iSM,sBAOI,gCxE0iSV,CwEjjSM,oBAOI,8BxE6iSV,CwEpjSM,uBAOI,4BxEgjSV,CwEvjSM,yBAOI,8BxEmjSV,CwE1jSM,wBAOI,6BxEsjSV,CwE7jSM,wBAOI,kCxEyjSV,CwEhkSM,sBAOI,gCxE4jSV,CwEnkSM,yBAOI,8BxE+jSV,CwEtkSM,0BAOI,qCxEkkSV,CwEzkSM,yBAOI,oCxEqkSV,CwE5kSM,0BAOI,+BxEwkSV,CwE/kSM,oBAOI,yBxE2kSV,CwEllSM,qBAOI,+BxE8kSV,CwErlSM,mBAOI,6BxEilSV,CwExlSM,sBAOI,2BxEolSV,CwE3lSM,wBAOI,6BxEulSV,CwE9lSM,uBAOI,4BxE0lSV,CwEjmSM,gBAOI,kBxE6lSV,CwEpmSM,YAOI,iBxEgmSV,CwEvmSM,YAOI,iBxEmmSV,CwE1mSM,YAOI,iBxEsmSV,CwE7mSM,YAOI,iBxEymSV,CwEhnSM,YAOI,iBxE4mSV,CwEnnSM,YAOI,iBxE+mSV,CwEtnSM,eAOI,iBxEknSV,CwEznSM,QAOI,kBxEqnSV,CwE5nSM,QAOI,uBxEwnSV,CwE/nSM,QAOI,sBxE2nSV,CwEloSM,QAOI,qBxE8nSV,CwEroSM,QAOI,uBxEioSV,CwExoSM,QAOI,qBxEooSV,CwE3oSM,WAOI,qBxEuoSV,CwE9oSM,SAOI,gDxE2oSV,CwElpSM,SAOI,0DxE+oSV,CwEtpSM,SAOI,wDxEmpSV,CwE1pSM,SAOI,sDxEupSV,CwE9pSM,SAOI,0DxE2pSV,CwElqSM,SAOI,sDxE+pSV,CwEtqSM,YAOI,sDxEmqSV,CwE1qSM,SAOI,gDxEuqSV,CwE9qSM,SAOI,0DxE2qSV,CwElrSM,SAOI,wDxE+qSV,CwEtrSM,SAOI,sDxEmrSV,CwE1rSM,SAOI,0DxEurSV,CwE9rSM,SAOI,sDxE2rSV,CwElsSM,YAOI,sDxE+rSV,CwEtsSM,SAOI,sBxEksSV,CwEzsSM,SAOI,2BxEqsSV,CwE5sSM,SAOI,0BxEwsSV,CwE/sSM,SAOI,yBxE2sSV,CwEltSM,SAOI,2BxE8sSV,CwErtSM,SAOI,yBxEitSV,CwExtSM,YAOI,yBxEotSV,CwE3tSM,SAOI,wBxEutSV,CwE9tSM,SAOI,6BxE0tSV,CwEjuSM,SAOI,4BxE6tSV,CwEpuSM,SAOI,2BxEguSV,CwEvuSM,SAOI,6BxEmuSV,CwE1uSM,SAOI,2BxEsuSV,CwE7uSM,YAOI,2BxEyuSV,CwEhvSM,SAOI,yBxE4uSV,CwEnvSM,SAOI,8BxE+uSV,CwEtvSM,SAOI,6BxEkvSV,CwEzvSM,SAOI,4BxEqvSV,CwE5vSM,SAOI,8BxEwvSV,CwE/vSM,SAOI,4BxE2vSV,CwElwSM,YAOI,4BxE8vSV,CwErwSM,SAOI,uBxEiwSV,CwExwSM,SAOI,4BxEowSV,CwE3wSM,SAOI,2BxEuwSV,CwE9wSM,SAOI,0BxE0wSV,CwEjxSM,SAOI,4BxE6wSV,CwEpxSM,SAOI,0BxEgxSV,CwEvxSM,YAOI,0BxEmxSV,CwE1xSM,QAOI,mBxEsxSV,CwE7xSM,QAOI,wBxEyxSV,CwEhySM,QAOI,uBxE4xSV,CwEnySM,QAOI,sBxE+xSV,CwEtySM,QAOI,wBxEkySV,CwEzySM,QAOI,sBxEqySV,CwE5ySM,SAOI,kDxEyySV,CwEhzSM,SAOI,4DxE6ySV,CwEpzSM,SAOI,0DxEizSV,CwExzSM,SAOI,wDxEqzSV,CwE5zSM,SAOI,4DxEyzSV,CwEh0SM,SAOI,wDxE6zSV,CwEp0SM,SAOI,kDxEi0SV,CwEx0SM,SAOI,4DxEq0SV,CwE50SM,SAOI,0DxEy0SV,CwEh1SM,SAOI,wDxE60SV,CwEp1SM,SAOI,4DxEi1SV,CwEx1SM,SAOI,wDxEq1SV,CwE51SM,SAOI,uBxEw1SV,CwE/1SM,SAOI,4BxE21SV,CwEl2SM,SAOI,2BxE81SV,CwEr2SM,SAOI,0BxEi2SV,CwEx2SM,SAOI,4BxEo2SV,CwE32SM,SAOI,0BxEu2SV,CwE92SM,SAOI,yBxE02SV,CwEj3SM,SAOI,8BxE62SV,CwEp3SM,SAOI,6BxEg3SV,CwEv3SM,SAOI,4BxEm3SV,CwE13SM,SAOI,8BxEs3SV,CwE73SM,SAOI,4BxEy3SV,CwEh4SM,SAOI,0BxE43SV,CwEn4SM,SAOI,+BxE+3SV,CwEt4SM,SAOI,8BxEk4SV,CwEz4SM,SAOI,6BxEq4SV,CwE54SM,SAOI,+BxEw4SV,CwE/4SM,SAOI,6BxE24SV,CwEl5SM,SAOI,wBxE84SV,CwEr5SM,SAOI,6BxEi5SV,CwEx5SM,SAOI,4BxEo5SV,CwE35SM,SAOI,2BxEu5SV,CwE95SM,SAOI,6BxE05SV,CwEj6SM,SAOI,2BxE65SV,CwEp6SM,UAOI,exEg6SV,CwEv6SM,UAOI,oBxEm6SV,CwE16SM,UAOI,mBxEs6SV,CwE76SM,UAOI,kBxEy6SV,CwEh7SM,UAOI,oBxE46SV,CwEn7SM,UAOI,kBxE+6SV,CwEt7SM,cAOI,mBxEk7SV,CwEz7SM,cAOI,wBxEq7SV,CwE57SM,cAOI,uBxEw7SV,CwE/7SM,cAOI,sBxE27SV,CwEl8SM,cAOI,wBxE87SV,CwEr8SM,cAOI,sBxEi8SV,CwEx8SM,iBAOI,sBxEo8SV,CwE38SM,iBAOI,2BxEu8SV,CwE98SM,iBAOI,0BxE08SV,CwEj9SM,iBAOI,yBxE68SV,CwEp9SM,iBAOI,2BxEg9SV,CwEv9SM,iBAOI,yBxEm9SV,CwE19SM,eAOI,yBxEs9SV,CwE79SM,aAOI,0BxEy9SV,CwEh+SM,gBAOI,2BxE49SV,CACF,Ccv+SI,yB0DGI,gBAOI,oBxEi+SV,CwEx+SM,cAOI,qBxEo+SV,CwE3+SM,eAOI,oBxEu+SV,CwE9+SM,uBAOI,4BxE0+SV,CwEj/SM,qBAOI,0BxE6+SV,CwEp/SM,oBAOI,yBxEg/SV,CwEv/SM,qBAOI,+BxEm/SV,CwE1/SM,oBAOI,yBxEs/SV,CwE7/SM,aAOI,wBxEy/SV,CwEhgTM,mBAOI,8BxE4/SV,CwEngTM,YAOI,uBxE+/SV,CwEtgTM,WAOI,sBxEkgTV,CwEzgTM,kBAOI,6BxEqgTV,CwE5gTM,YAOI,uBxEwgTV,CwE/gTM,gBAOI,2BxE2gTV,CwElhTM,iBAOI,4BxE8gTV,CwErhTM,WAOI,sBxEihTV,CwExhTM,kBAOI,6BxEohTV,CwE3hTM,WAOI,sBxEuhTV,CwE9hTM,cAOI,uBxE0hTV,CwEjiTM,aAOI,4BxE6hTV,CwEpiTM,gBAOI,+BxEgiTV,CwEviTM,qBAOI,oCxEmiTV,CwE1iTM,wBAOI,uCxEsiTV,CwE7iTM,gBAOI,qBxEyiTV,CwEhjTM,gBAOI,qBxE4iTV,CwEnjTM,kBAOI,uBxE+iTV,CwEtjTM,kBAOI,uBxEkjTV,CwEzjTM,cAOI,wBxEqjTV,CwE5jTM,gBAOI,0BxEwjTV,CwE/jTM,sBAOI,gCxE2jTV,CwElkTM,0BAOI,oCxE8jTV,CwErkTM,wBAOI,kCxEikTV,CwExkTM,2BAOI,gCxEokTV,CwE3kTM,4BAOI,uCxEukTV,CwE9kTM,2BAOI,sCxE0kTV,CwEjlTM,2BAOI,sCxE6kTV,CwEplTM,sBAOI,gCxEglTV,CwEvlTM,oBAOI,8BxEmlTV,CwE1lTM,uBAOI,4BxEslTV,CwE7lTM,yBAOI,8BxEylTV,CwEhmTM,wBAOI,6BxE4lTV,CwEnmTM,wBAOI,kCxE+lTV,CwEtmTM,sBAOI,gCxEkmTV,CwEzmTM,yBAOI,8BxEqmTV,CwE5mTM,0BAOI,qCxEwmTV,CwE/mTM,yBAOI,oCxE2mTV,CwElnTM,0BAOI,+BxE8mTV,CwErnTM,oBAOI,yBxEinTV,CwExnTM,qBAOI,+BxEonTV,CwE3nTM,mBAOI,6BxEunTV,CwE9nTM,sBAOI,2BxE0nTV,CwEjoTM,wBAOI,6BxE6nTV,CwEpoTM,uBAOI,4BxEgoTV,CwEvoTM,gBAOI,kBxEmoTV,CwE1oTM,YAOI,iBxEsoTV,CwE7oTM,YAOI,iBxEyoTV,CwEhpTM,YAOI,iBxE4oTV,CwEnpTM,YAOI,iBxE+oTV,CwEtpTM,YAOI,iBxEkpTV,CwEzpTM,YAOI,iBxEqpTV,CwE5pTM,eAOI,iBxEwpTV,CwE/pTM,QAOI,kBxE2pTV,CwElqTM,QAOI,uBxE8pTV,CwErqTM,QAOI,sBxEiqTV,CwExqTM,QAOI,qBxEoqTV,CwE3qTM,QAOI,uBxEuqTV,CwE9qTM,QAOI,qBxE0qTV,CwEjrTM,WAOI,qBxE6qTV,CwEprTM,SAOI,gDxEirTV,CwExrTM,SAOI,0DxEqrTV,CwE5rTM,SAOI,wDxEyrTV,CwEhsTM,SAOI,sDxE6rTV,CwEpsTM,SAOI,0DxEisTV,CwExsTM,SAOI,sDxEqsTV,CwE5sTM,YAOI,sDxEysTV,CwEhtTM,SAOI,gDxE6sTV,CwEptTM,SAOI,0DxEitTV,CwExtTM,SAOI,wDxEqtTV,CwE5tTM,SAOI,sDxEytTV,CwEhuTM,SAOI,0DxE6tTV,CwEpuTM,SAOI,sDxEiuTV,CwExuTM,YAOI,sDxEquTV,CwE5uTM,SAOI,sBxEwuTV,CwE/uTM,SAOI,2BxE2uTV,CwElvTM,SAOI,0BxE8uTV,CwErvTM,SAOI,yBxEivTV,CwExvTM,SAOI,2BxEovTV,CwE3vTM,SAOI,yBxEuvTV,CwE9vTM,YAOI,yBxE0vTV,CwEjwTM,SAOI,wBxE6vTV,CwEpwTM,SAOI,6BxEgwTV,CwEvwTM,SAOI,4BxEmwTV,CwE1wTM,SAOI,2BxEswTV,CwE7wTM,SAOI,6BxEywTV,CwEhxTM,SAOI,2BxE4wTV,CwEnxTM,YAOI,2BxE+wTV,CwEtxTM,SAOI,yBxEkxTV,CwEzxTM,SAOI,8BxEqxTV,CwE5xTM,SAOI,6BxEwxTV,CwE/xTM,SAOI,4BxE2xTV,CwElyTM,SAOI,8BxE8xTV,CwEryTM,SAOI,4BxEiyTV,CwExyTM,YAOI,4BxEoyTV,CwE3yTM,SAOI,uBxEuyTV,CwE9yTM,SAOI,4BxE0yTV,CwEjzTM,SAOI,2BxE6yTV,CwEpzTM,SAOI,0BxEgzTV,CwEvzTM,SAOI,4BxEmzTV,CwE1zTM,SAOI,0BxEszTV,CwE7zTM,YAOI,0BxEyzTV,CwEh0TM,QAOI,mBxE4zTV,CwEn0TM,QAOI,wBxE+zTV,CwEt0TM,QAOI,uBxEk0TV,CwEz0TM,QAOI,sBxEq0TV,CwE50TM,QAOI,wBxEw0TV,CwE/0TM,QAOI,sBxE20TV,CwEl1TM,SAOI,kDxE+0TV,CwEt1TM,SAOI,4DxEm1TV,CwE11TM,SAOI,0DxEu1TV,CwE91TM,SAOI,wDxE21TV,CwEl2TM,SAOI,4DxE+1TV,CwEt2TM,SAOI,wDxEm2TV,CwE12TM,SAOI,kDxEu2TV,CwE92TM,SAOI,4DxE22TV,CwEl3TM,SAOI,0DxE+2TV,CwEt3TM,SAOI,wDxEm3TV,CwE13TM,SAOI,4DxEu3TV,CwE93TM,SAOI,wDxE23TV,CwEl4TM,SAOI,uBxE83TV,CwEr4TM,SAOI,4BxEi4TV,CwEx4TM,SAOI,2BxEo4TV,CwE34TM,SAOI,0BxEu4TV,CwE94TM,SAOI,4BxE04TV,CwEj5TM,SAOI,0BxE64TV,CwEp5TM,SAOI,yBxEg5TV,CwEv5TM,SAOI,8BxEm5TV,CwE15TM,SAOI,6BxEs5TV,CwE75TM,SAOI,4BxEy5TV,CwEh6TM,SAOI,8BxE45TV,CwEn6TM,SAOI,4BxE+5TV,CwEt6TM,SAOI,0BxEk6TV,CwEz6TM,SAOI,+BxEq6TV,CwE56TM,SAOI,8BxEw6TV,CwE/6TM,SAOI,6BxE26TV,CwEl7TM,SAOI,+BxE86TV,CwEr7TM,SAOI,6BxEi7TV,CwEx7TM,SAOI,wBxEo7TV,CwE37TM,SAOI,6BxEu7TV,CwE97TM,SAOI,4BxE07TV,CwEj8TM,SAOI,2BxE67TV,CwEp8TM,SAOI,6BxEg8TV,CwEv8TM,SAOI,2BxEm8TV,CwE18TM,UAOI,exEs8TV,CwE78TM,UAOI,oBxEy8TV,CwEh9TM,UAOI,mBxE48TV,CwEn9TM,UAOI,kBxE+8TV,CwEt9TM,UAOI,oBxEk9TV,CwEz9TM,UAOI,kBxEq9TV,CwE59TM,cAOI,mBxEw9TV,CwE/9TM,cAOI,wBxE29TV,CwEl+TM,cAOI,uBxE89TV,CwEr+TM,cAOI,sBxEi+TV,CwEx+TM,cAOI,wBxEo+TV,CwE3+TM,cAOI,sBxEu+TV,CwE9+TM,iBAOI,sBxE0+TV,CwEj/TM,iBAOI,2BxE6+TV,CwEp/TM,iBAOI,0BxEg/TV,CwEv/TM,iBAOI,yBxEm/TV,CwE1/TM,iBAOI,2BxEs/TV,CwE7/TM,iBAOI,yBxEy/TV,CwEhgUM,eAOI,yBxE4/TV,CwEngUM,aAOI,0BxE+/TV,CwEtgUM,gBAOI,2BxEkgUV,CACF,Cc7gUI,0B0DGI,gBAOI,oBxEugUV,CwE9gUM,cAOI,qBxE0gUV,CwEjhUM,eAOI,oBxE6gUV,CwEphUM,uBAOI,4BxEghUV,CwEvhUM,qBAOI,0BxEmhUV,CwE1hUM,oBAOI,yBxEshUV,CwE7hUM,qBAOI,+BxEyhUV,CwEhiUM,oBAOI,yBxE4hUV,CwEniUM,aAOI,wBxE+hUV,CwEtiUM,mBAOI,8BxEkiUV,CwEziUM,YAOI,uBxEqiUV,CwE5iUM,WAOI,sBxEwiUV,CwE/iUM,kBAOI,6BxE2iUV,CwEljUM,YAOI,uBxE8iUV,CwErjUM,gBAOI,2BxEijUV,CwExjUM,iBAOI,4BxEojUV,CwE3jUM,WAOI,sBxEujUV,CwE9jUM,kBAOI,6BxE0jUV,CwEjkUM,WAOI,sBxE6jUV,CwEpkUM,cAOI,uBxEgkUV,CwEvkUM,aAOI,4BxEmkUV,CwE1kUM,gBAOI,+BxEskUV,CwE7kUM,qBAOI,oCxEykUV,CwEhlUM,wBAOI,uCxE4kUV,CwEnlUM,gBAOI,qBxE+kUV,CwEtlUM,gBAOI,qBxEklUV,CwEzlUM,kBAOI,uBxEqlUV,CwE5lUM,kBAOI,uBxEwlUV,CwE/lUM,cAOI,wBxE2lUV,CwElmUM,gBAOI,0BxE8lUV,CwErmUM,sBAOI,gCxEimUV,CwExmUM,0BAOI,oCxEomUV,CwE3mUM,wBAOI,kCxEumUV,CwE9mUM,2BAOI,gCxE0mUV,CwEjnUM,4BAOI,uCxE6mUV,CwEpnUM,2BAOI,sCxEgnUV,CwEvnUM,2BAOI,sCxEmnUV,CwE1nUM,sBAOI,gCxEsnUV,CwE7nUM,oBAOI,8BxEynUV,CwEhoUM,uBAOI,4BxE4nUV,CwEnoUM,yBAOI,8BxE+nUV,CwEtoUM,wBAOI,6BxEkoUV,CwEzoUM,wBAOI,kCxEqoUV,CwE5oUM,sBAOI,gCxEwoUV,CwE/oUM,yBAOI,8BxE2oUV,CwElpUM,0BAOI,qCxE8oUV,CwErpUM,yBAOI,oCxEipUV,CwExpUM,0BAOI,+BxEopUV,CwE3pUM,oBAOI,yBxEupUV,CwE9pUM,qBAOI,+BxE0pUV,CwEjqUM,mBAOI,6BxE6pUV,CwEpqUM,sBAOI,2BxEgqUV,CwEvqUM,wBAOI,6BxEmqUV,CwE1qUM,uBAOI,4BxEsqUV,CwE7qUM,gBAOI,kBxEyqUV,CwEhrUM,YAOI,iBxE4qUV,CwEnrUM,YAOI,iBxE+qUV,CwEtrUM,YAOI,iBxEkrUV,CwEzrUM,YAOI,iBxEqrUV,CwE5rUM,YAOI,iBxEwrUV,CwE/rUM,YAOI,iBxE2rUV,CwElsUM,eAOI,iBxE8rUV,CwErsUM,QAOI,kBxEisUV,CwExsUM,QAOI,uBxEosUV,CwE3sUM,QAOI,sBxEusUV,CwE9sUM,QAOI,qBxE0sUV,CwEjtUM,QAOI,uBxE6sUV,CwEptUM,QAOI,qBxEgtUV,CwEvtUM,WAOI,qBxEmtUV,CwE1tUM,SAOI,gDxEutUV,CwE9tUM,SAOI,0DxE2tUV,CwEluUM,SAOI,wDxE+tUV,CwEtuUM,SAOI,sDxEmuUV,CwE1uUM,SAOI,0DxEuuUV,CwE9uUM,SAOI,sDxE2uUV,CwElvUM,YAOI,sDxE+uUV,CwEtvUM,SAOI,gDxEmvUV,CwE1vUM,SAOI,0DxEuvUV,CwE9vUM,SAOI,wDxE2vUV,CwElwUM,SAOI,sDxE+vUV,CwEtwUM,SAOI,0DxEmwUV,CwE1wUM,SAOI,sDxEuwUV,CwE9wUM,YAOI,sDxE2wUV,CwElxUM,SAOI,sBxE8wUV,CwErxUM,SAOI,2BxEixUV,CwExxUM,SAOI,0BxEoxUV,CwE3xUM,SAOI,yBxEuxUV,CwE9xUM,SAOI,2BxE0xUV,CwEjyUM,SAOI,yBxE6xUV,CwEpyUM,YAOI,yBxEgyUV,CwEvyUM,SAOI,wBxEmyUV,CwE1yUM,SAOI,6BxEsyUV,CwE7yUM,SAOI,4BxEyyUV,CwEhzUM,SAOI,2BxE4yUV,CwEnzUM,SAOI,6BxE+yUV,CwEtzUM,SAOI,2BxEkzUV,CwEzzUM,YAOI,2BxEqzUV,CwE5zUM,SAOI,yBxEwzUV,CwE/zUM,SAOI,8BxE2zUV,CwEl0UM,SAOI,6BxE8zUV,CwEr0UM,SAOI,4BxEi0UV,CwEx0UM,SAOI,8BxEo0UV,CwE30UM,SAOI,4BxEu0UV,CwE90UM,YAOI,4BxE00UV,CwEj1UM,SAOI,uBxE60UV,CwEp1UM,SAOI,4BxEg1UV,CwEv1UM,SAOI,2BxEm1UV,CwE11UM,SAOI,0BxEs1UV,CwE71UM,SAOI,4BxEy1UV,CwEh2UM,SAOI,0BxE41UV,CwEn2UM,YAOI,0BxE+1UV,CwEt2UM,QAOI,mBxEk2UV,CwEz2UM,QAOI,wBxEq2UV,CwE52UM,QAOI,uBxEw2UV,CwE/2UM,QAOI,sBxE22UV,CwEl3UM,QAOI,wBxE82UV,CwEr3UM,QAOI,sBxEi3UV,CwEx3UM,SAOI,kDxEq3UV,CwE53UM,SAOI,4DxEy3UV,CwEh4UM,SAOI,0DxE63UV,CwEp4UM,SAOI,wDxEi4UV,CwEx4UM,SAOI,4DxEq4UV,CwE54UM,SAOI,wDxEy4UV,CwEh5UM,SAOI,kDxE64UV,CwEp5UM,SAOI,4DxEi5UV,CwEx5UM,SAOI,0DxEq5UV,CwE55UM,SAOI,wDxEy5UV,CwEh6UM,SAOI,4DxE65UV,CwEp6UM,SAOI,wDxEi6UV,CwEx6UM,SAOI,uBxEo6UV,CwE36UM,SAOI,4BxEu6UV,CwE96UM,SAOI,2BxE06UV,CwEj7UM,SAOI,0BxE66UV,CwEp7UM,SAOI,4BxEg7UV,CwEv7UM,SAOI,0BxEm7UV,CwE17UM,SAOI,yBxEs7UV,CwE77UM,SAOI,8BxEy7UV,CwEh8UM,SAOI,6BxE47UV,CwEn8UM,SAOI,4BxE+7UV,CwEt8UM,SAOI,8BxEk8UV,CwEz8UM,SAOI,4BxEq8UV,CwE58UM,SAOI,0BxEw8UV,CwE/8UM,SAOI,+BxE28UV,CwEl9UM,SAOI,8BxE88UV,CwEr9UM,SAOI,6BxEi9UV,CwEx9UM,SAOI,+BxEo9UV,CwE39UM,SAOI,6BxEu9UV,CwE99UM,SAOI,wBxE09UV,CwEj+UM,SAOI,6BxE69UV,CwEp+UM,SAOI,4BxEg+UV,CwEv+UM,SAOI,2BxEm+UV,CwE1+UM,SAOI,6BxEs+UV,CwE7+UM,SAOI,2BxEy+UV,CwEh/UM,UAOI,exE4+UV,CwEn/UM,UAOI,oBxE++UV,CwEt/UM,UAOI,mBxEk/UV,CwEz/UM,UAOI,kBxEq/UV,CwE5/UM,UAOI,oBxEw/UV,CwE//UM,UAOI,kBxE2/UV,CwElgVM,cAOI,mBxE8/UV,CwErgVM,cAOI,wBxEigVV,CwExgVM,cAOI,uBxEogVV,CwE3gVM,cAOI,sBxEugVV,CwE9gVM,cAOI,wBxE0gVV,CwEjhVM,cAOI,sBxE6gVV,CwEphVM,iBAOI,sBxEghVV,CwEvhVM,iBAOI,2BxEmhVV,CwE1hVM,iBAOI,0BxEshVV,CwE7hVM,iBAOI,yBxEyhVV,CwEhiVM,iBAOI,2BxE4hVV,CwEniVM,iBAOI,yBxE+hVV,CwEtiVM,eAOI,yBxEkiVV,CwEziVM,aAOI,0BxEqiVV,CwE5iVM,gBAOI,2BxEwiVV,CwE/iVM,MAOI,0BxE6iVV,CwEpjVM,MAOI,wBxEgjVV,CwEvjVM,MAOI,2BxEmjVV,CwE1jVM,MAOI,0BxEsjVV,CAbF,CyE5kVA,aD4BQ,gBAOI,wBxE2jVV,CwElkVM,sBAOI,8BxE8jVV,CwErkVM,eAOI,uBxEikVV,CwExkVM,cAOI,sBxEokVV,CwE3kVM,qBAOI,6BxEukVV,CwE9kVM,eAOI,uBxE0kVV,CwEjlVM,mBAOI,2BxE6kVV,CwEplVM,oBAOI,4BxEglVV,CwEvlVM,cAOI,sBxEmlVV,CwE1lVM,qBAOI,6BxEslVV,CwE7lVM,cAOI,sBxEylVV,CACF;A0EnqVA;;;;EAAA,CCGA,IACE,yDACA,+B3EuqVF,C2EpqVA,0EASE,iCAAkC,CAClC,kCAAmC,CACnC,uCACA,iBAAkB,CAClB,mBAAoB,CACpB,aAAc,CACd,mB3EuqVF,C2EpqVA,4CAKE,gC3EuqVF,C2EpqVA,gBAEE,kC3EuqVF,C4EtsVE,OACE,a5EysVJ,C4E1sVE,OACE,a5E6sVJ,C4E9sVE,OACE,a5EitVJ,C4EltVE,OACE,a5EqtVJ,C4EttVE,OACE,a5EytVJ,C4E1tVE,OACE,a5E6tVJ,C4E9tVE,OACE,a5EiuVJ,C4EluVE,OACE,a5EquVJ,C4EtuVE,OACE,a5EyuVJ,C4E1uVE,QACE,c5E6uVJ,C4EvuVE,QCIA,iBACA,iBACA,qB7EuuVF,C4E7uVE,OCIA,gBACA,0BACA,qB7E6uVF,C4EnvVE,OCIA,iBACA,0BACA,4B7EmvVF,C4EzvVE,OCIA,iBACA,kBACA,sB7EyvVF,C4E/vVE,OCIA,gBACA,0BACA,sB7E+vVF,C4ErwVE,QCIA,cACA,qBACA,uB7EqwVF,C8EpxVA,OACE,iBAAkB,CAClB,Y9EuxVF,C+EzxVA,OACE,oBAAqB,CACrB,sCACA,c/E4xVF,C+E1xVE,UAAO,iB/E6xVT,C+E1xVA,OACE,sCAIA,mBAAoB,CAHpB,iBAAkB,CAClB,iBAAkB,CAClB,4B/E8xVF,CgF1yVA,WACE,yCACA,2CACA,0CACA,0CACA,iDhF6yVF,CgF1yVA,cACE,UAAW,CACX,uChF6yVF,CgF1yVA,eACE,WAAY,CACZ,sChF6yVF,CiF5zVA,SAEE,6CACA,yDACA,mDACA,uEAJA,uBAKA,gEjF+zVF,CiF5zVA,WAEE,6CACA,yDACA,mDACA,uEAJA,yBAKA,gFjF+zVF,CiF5zVA,SAKE,uEAJA,uBAKA,4EjF+zVF,CiF5zVA,uBAPE,6CACA,yDACA,kDjF00VF,CiFr0VA,cAKE,uEAJA,4BAKA,4EjF+zVF,CiF5zVA,SAEE,6CACA,yDACA,mDACA,uEAJA,uBAKA,gEjF+zVF,CiF5zVA,UAIE,mDACA,uEAJA,wBAKA,2DjF+zVF,CiF5zVA,mBAPE,6CACA,wDjF20VF,CiFr0VA,SAIE,mDACA,uEAJA,uBAKA,2DjF+zVF,CiF5zVA,iBACE,gCjF+zVF,CiF5zVA,yBAGE,yDACA,mDACA,uEAHA,uBAIA,6DjF+zVF,CiFzzVA,uCACE,gGASE,oBAAqB,CACrB,sBAAuB,CACvB,2BAA4B,CAC5B,mBAAoB,CACpB,sBjF4zVF,CACF,CiFzzVA,mBACE,OAAU,kBjF4zVV,CiF3zVA,IAAM,0CjF8zVN,CACF,CiF5zVA,qBACE,GAAO,gCjF+zVP,CiF9zVA,IAAO,mGjFi0VP,CiFh0VA,IAAO,6HjFm0VP,CiFl0VA,IAAO,mGjFq0VP,CiFp0VA,IAAO,+DjFu0VP,CiFt0VA,IAAO,gCjFy0VP,CiFx0VA,GAAO,gCjF20VP,CACF,CiFz0VA,mBACE,IAAM,iCjF40VN,CACF,CiF10VA,wBACE,MACE,uCACA,kBjF40VF,CiF10VA,IACE,SAAU,CACV,gDjF40VF,CACF,CiFz0VA,mBACE,IACE,yGjF20VF,CACF,CiFx0VA,oBACE,GAAK,wBjF20VL,CiF10VA,GAAK,uBjF60VL,CiF50VA,OAAU,wBjF+0VV,CiF90VA,QAAW,uBjFi1VX,CiFh1VA,IAAM,wBjFm1VN,CiFl1VA,IAAM,uBjFq1VN,CiFp1VA,IAAM,wBjFu1VN,CiFt1VA,IAAM,uBjFy1VN,CiFx1VA,OAAY,sBjF21VZ,CACF,CiFz1VA,mBACE,GAAK,sBjF41VL,CiF31VA,GAAO,uBjF81VP,CACF,CkFl/VA,cACE,uBlFo/VF,CkFj/VA,eACE,wBlFo/VF,CkFj/VA,eACE,wBlFo/VF,CkFj/VA,oBACE,oBlFo/VF,CkFj/VA,kBACE,oBlFo/VF,CkFj/VA,mDAEE,mBlFo/VF,CkFj/VA,cACE,0ClFo/VF,CmF9gWA,UACE,oBAAqB,CACrB,UAAW,CACX,eAAgB,CAChB,iBAAkB,CAClB,qBCmCwB,CDlCxB,WnFihWF,CmF9gWA,0BAEE,MAAO,CACP,iBAAkB,CAClB,iBAAkB,CAClB,UAAW,CACX,oCnFihWF,CmF9gWA,aACE,mBnFihWF,CmF9gWA,aACE,anFihWF,CmF9gWA,YACE,4BnFihWF,CqFxiWE,aAAsC,crF8iWxC,CqF9iWE,aAAsC,crFkjWxC,CqFljWE,aAAsC,crFsjWxC,CqFtjWE,aAAsC,crF0jWxC,CqF1jWE,aAAsC,crF8jWxC,CqF9jWE,aAAsC,crFkkWxC,CqFlkWE,aAAsC,crFskWxC,CqFtkWE,aAAsC,crF0kWxC,CqF1kWE,aAAsC,crF8kWxC,CqF9kWE,aAAsC,crFklWxC,CqFllWE,qBAAsC,erFslWxC,CqFtlWE,4BAAsC,erF0lWxC,CqF1lWE,gEAAsC,erFkmWxC,CqFlmWE,cAAsC,YrFsmWxC,CqFtmWE,0CAAsC,erF8mWxC,CqF9mWE,uBAAsC,erFknWxC,CqFlnWE,4CAAsC,erF0nWxC,CqF1nWE,uBAAsC,erF8nWxC,CqF9nWE,0CAAsC,erFsoWxC,CqFtoWE,gBAAsC,erF0oWxC,CqF1oWE,oEAAsC,erFkpWxC,CqFlpWE,qBAAsC,erFspWxC,CqFtpWE,+DAAsC,erFkqWxC,CqFlqWE,uBAAsC,erFsqWxC,CqFtqWE,gBAAsC,erF0qWxC,CqF1qWE,uBAAsC,erF8qWxC,CqF9qWE,sBAAsC,erFkrWxC,CqFlrWE,iDAAsC,erF0rWxC,CqF1rWE,+BAAsC,erF8rWxC,CqF9rWE,uCAAsC,erFksWxC,CqFlsWE,iDAAsC,erF0sWxC,CqF1sWE,6BAAsC,erF8sWxC,CqF9sWE,0CAAsC,erFstWxC,CqFttWE,gDAAsC,erF8tWxC,CqF9tWE,qBAAsC,erFkuWxC,CqFluWE,sDAAsC,erF0uWxC,CqF1uWE,gBAAsC,erF8uWxC,CqF9uWE,gBAAsC,erFkvWxC,CqFlvWE,oDAAsC,erF0vWxC,CqF1vWE,kEAAsC,erFkwWxC,CqFlwWE,+BAAsC,erFswWxC,CqFtwWE,wBAAsC,erF0wWxC,CqF1wWE,uBAAsC,erF8wWxC,CqF9wWE,4BAAsC,erFkxWxC,CqFlxWE,gEAAsC,erF0xWxC,CqF1xWE,gDAAsC,erFkyWxC,CqFlyWE,iDAAsC,erF0yWxC,CqF1yWE,0BAAsC,erF8yWxC,CqF9yWE,6CAAsC,erFszWxC,CqFtzWE,qCAAsC,erF0zWxC,CqF1zWE,gBAAsC,erF8zWxC,CqF9zWE,oDAAsC,erFs0WxC,CqFt0WE,2BAAsC,erF00WxC,CqF10WE,uBAAsC,erF80WxC,CqF90WE,uBAAsC,erFk1WxC,CqFl1WE,0CAAsC,erF01WxC,CqF11WE,+BAAsC,erF81WxC,CqF91WE,kDAAsC,erFs2WxC,CqFt2WE,6CAAsC,erF82WxC,CqF92WE,kCAAsC,erFs3WxC,CqFt3WE,kBAAsC,erF03WxC,CqF13WE,oBAAsC,erF83WxC,CqF93WE,mBAAsC,erFk4WxC,CqFl4WE,uBAAsC,erFs4WxC,CqFt4WE,wBAAsC,erF04WxC,CqF14WE,iDAAsC,erFk5WxC,CqFl5WE,gBAAsC,erFs5WxC,CqFt5WE,8DAAsC,erF85WxC,CqF95WE,qCAAsC,erFk6WxC,CqFl6WE,0CAAsC,erF06WxC,CqF16WE,qBAAsC,erF86WxC,CqF96WE,+CAAsC,erFs7WxC,CqFt7WE,mCAAsC,erF07WxC,CqF17WE,+CAAsC,erFk8WxC,CqFl8WE,iBAAsC,erFs8WxC,CqFt8WE,gDAAsC,erF88WxC,CqF98WE,yBAAsC,erFk9WxC,CqFl9WE,aAAsC,WrFs9WxC,CqFt9WE,yBAAsC,erF09WxC,CqF19WE,wCAAsC,erFk+WxC,CqFl+WE,oBAAsC,erFs+WxC,CqFt+WE,uBAAsC,erF0+WxC,CqF1+WE,oBAAsC,erF8+WxC,CqF9+WE,2CAAsC,erFs/WxC,CqFt/WE,6BAAsC,erF0/WxC,CqF1/WE,0BAAsC,erF8/WxC,CqF9/WE,mDAAsC,erFsgXxC,CqFtgXE,sBAAsC,erF0gXxC,CqF1gXE,sBAAsC,erF8gXxC,CqF9gXE,yBAAsC,erFkhXxC,CqFlhXE,gBAAsC,erFshXxC,CqFthXE,sBAAsC,erF0hXxC,CqF1hXE,qCAAsC,erF8hXxC,CqF9hXE,yCAAsC,erFsiXxC,CqFtiXE,2EAAsC,erFkjXxC,CqFljXE,sBAAsC,erFsjXxC,CqFtjXE,0CAAsC,erF8jXxC,CqF9jXE,2BAAsC,erFkkXxC,CqFlkXE,wFAAsC,erF8kXxC,CqF9kXE,iEAAsC,erFslXxC,CqFtlXE,qBAAsC,erF0lXxC,CqF1lXE,yBAAsC,erF8lXxC,CqF9lXE,aAAsC,WrFkmXxC,CqFlmXE,gDAAsC,erF0mXxC,CqF1mXE,mBAAsC,erF8mXxC,CqF9mXE,wBAAsC,erFknXxC,CqFlnXE,sDAAsC,erF0nXxC,CqF1nXE,eAAsC,erF8nXxC,CqF9nXE,iBAAsC,erFkoXxC,CqFloXE,yBAAsC,erFsoXxC,CqFtoXE,2CAAsC,erF8oXxC,CqF9oXE,yBAAsC,erFkpXxC,CqFlpXE,iCAAsC,erFspXxC,CqFtpXE,kCAAsC,erF8pXxC,CqF9pXE,sBAAsC,erFkqXxC,CqFlqXE,4BAAsC,erFsqXxC,CqFtqXE,sBAAsC,erF0qXxC,CqF1qXE,sBAAsC,erF8qXxC,CqF9qXE,oDAAsC,erFsrXxC,CqFtrXE,6CAAsC,erF8rXxC,CqF9rXE,6DAAsC,erFssXxC,CqFtsXE,gCAAsC,erF0sXxC,CqF1sXE,4DAAsC,erFktXxC,CqFltXE,mCAAsC,erF0tXxC,CqF1tXE,0BAAsC,erF8tXxC,CqF9tXE,4BAAsC,erFkuXxC,CqFluXE,uBAAsC,erFsuXxC,CqFtuXE,iBAAsC,erF0uXxC,CqF1uXE,wCAAsC,erF8uXxC,CqF9uXE,4DAAsC,erFsvXxC,CqFtvXE,uBAAsC,erF0vXxC,CqF1vXE,kBAAsC,erF8vXxC,CqF9vXE,uCAAsC,erFswXxC,CqFtwXE,6BAAsC,erF0wXxC,CqF1wXE,sBAAsC,erF8wXxC,CqF9wXE,gDAAsC,erFsxXxC,CqFtxXE,sBAAsC,erF0xXxC,CqF1xXE,mBAAsC,erF8xXxC,CqF9xXE,0DAAsC,erFsyXxC,CqFtyXE,gCAAsC,erF0yXxC,CqF1yXE,uBAAsC,erF8yXxC,CqF9yXE,sBAAsC,erFkzXxC,CqFlzXE,+BAAsC,erFszXxC,CqFtzXE,mCAAsC,erF8zXxC,CqF9zXE,wBAAsC,erFk0XxC,CqFl0XE,gDAAsC,erF00XxC,CqF10XE,+CAAsC,erFk1XxC,CqFl1XE,+DAAsC,erF01XxC,CqF11XE,+CAAsC,erFk2XxC,CqFl2XE,gBAAsC,erFs2XxC,CqFt2XE,4BAAsC,erF02XxC,CqF12XE,0BAAsC,erF82XxC,CqF92XE,qBAAsC,erFk3XxC,CqFl3XE,sBAAsC,erFs3XxC,CqFt3XE,4DAAsC,erF83XxC,CqF93XE,+BAAsC,erFk4XxC,CqFl4XE,wDAAsC,erF04XxC,CqF14XE,8DAAsC,erFk5XxC,CqFl5XE,gDAAsC,erF05XxC,CqF15XE,+BAAsC,erF85XxC,CqF95XE,uDAAsC,erFs6XxC,CqFt6XE,mBAAsC,erF06XxC,CqF16XE,mDAAsC,erFk7XxC,CqFl7XE,kBAAsC,erFs7XxC,CqFt7XE,uBAAsC,erF07XxC,CqF17XE,uBAAsC,erF87XxC,CqF97XE,gBAAsC,erFk8XxC,CqFl8XE,oBAAsC,erFs8XxC,CqFt8XE,mBAAsC,erF08XxC,CqF18XE,6CAAsC,erFk9XxC,CqFl9XE,yBAAsC,erFs9XxC,CqFt9XE,0BAAsC,erF09XxC,CqF19XE,oBAAsC,erF89XxC,CqF99XE,0CAAsC,erFs+XxC,CqFt+XE,gBAAsC,erF0+XxC,CqF1+XE,+BAAsC,erF8+XxC,CqF9+XE,oBAAsC,YrFk/XxC,CqFl/XE,gDAAsC,erF0/XxC,CqF1/XE,uBAAsC,erF8/XxC,CqF9/XE,qCAAsC,erFsgYxC,CqFtgYE,iBAAsC,erF0gYxC,CqF1gYE,wCAAsC,erFkhYxC,CqFlhYE,yDAAsC,erF0hYxC,CqF1hYE,qBAAsC,erF8hYxC,CqF9hYE,mBAAsC,erFkiYxC,CqFliYE,4CAAsC,erF0iYxC,CqF1iYE,uCAAsC,erFkjYxC,CqFljYE,eAAsC,erFsjYxC,CqFtjYE,sCAAsC,erF0jYxC,CqF1jYE,sBAAsC,erF8jYxC,CqF9jYE,uBAAsC,erFkkYxC,CqFlkYE,gEAAsC,erF8kYxC,CqF9kYE,6CAAsC,erFslYxC,CqFtlYE,gBAAsC,erF0lYxC,CqF1lYE,oBAAsC,erF8lYxC,CqF9lYE,6CAAsC,erFsmYxC,CqFtmYE,8CAAsC,erF8mYxC,CqF9mYE,6BAAsC,erFknYxC,CqFlnYE,gBAAsC,erFsnYxC,CqFtnYE,uBAAsC,erF0nYxC,CqF1nYE,uBAAsC,erF8nYxC,CqF9nYE,yCAAsC,erFsoYxC,CqFtoYE,oBAAsC,erF0oYxC,CqF1oYE,4CAAsC,erFkpYxC,CqFlpYE,8BAAsC,erFspYxC,CqFtpYE,iDAAsC,erF8pYxC,CqF9pYE,sBAAsC,erFkqYxC,CqFlqYE,gBAAsC,erFsqYxC,CqFtqYE,gDAAsC,erF8qYxC,CqF9qYE,oFAAsC,erF0rYxC,CqF1rYE,kBAAsC,erF8rYxC,CqF9rYE,uBAAsC,erFksYxC,CqFlsYE,iBAAsC,erFssYxC,CqFtsYE,qBAAsC,erF0sYxC,CqF1sYE,sBAAsC,erF8sYxC,CqF9sYE,sCAAsC,erFstYxC,CqFttYE,cAAsC,erF0tYxC,CqF1tYE,gBAAsC,erF8tYxC,CqF9tYE,8BAAsC,erFkuYxC,CqFluYE,gBAAsC,erFsuYxC,CqFtuYE,sBAAsC,erF0uYxC,CqF1uYE,sBAAsC,erF8uYxC,CqF9uYE,qBAAsC,erFkvYxC,CqFlvYE,qCAAsC,erF0vYxC,CqF1vYE,+BAAsC,erF8vYxC,CqF9vYE,mDAAsC,erFswYxC,CqFtwYE,wBAAsC,erF0wYxC,CqF1wYE,+CAAsC,erFkxYxC,CqFlxYE,mFAAsC,erFkyYxC,CqFlyYE,6BAAsC,erFsyYxC,CqFtyYE,qBAAsC,erF0yYxC,CqF1yYE,4CAAsC,erFkzYxC,CqFlzYE,wBAAsC,erFszYxC,CqFtzYE,oBAAsC,erF0zYxC,CqF1zYE,iBAAsC,erF8zYxC,CqF9zYE,kBAAsC,erFk0YxC,CqFl0YE,aAAsC,WrFs0YxC,CqFt0YE,2CAAsC,erF80YxC,CqF90YE,iBAAsC,erFk1YxC,CqFl1YE,8CAAsC,erF01YxC,CqF11YE,iBAAsC,erF81YxC,CqF91YE,aAAsC,WrFk2YxC,CqFl2YE,iCAAsC,erFs2YxC,CqFt2YE,mBAAsC,erF02YxC,CqF12YE,kGAAsC,erF03YxC,CqF13YE,iCAAsC,erF83YxC,CqF93YE,8CAAsC,erFs4YxC,CqFt4YE,wCAAsC,erF04YxC,CqF14YE,mBAAsC,erF84YxC,CqF94YE,yBAAsC,erFk5YxC,CqFl5YE,wBAAsC,erFs5YxC,CqFt5YE,kBAAsC,erF05YxC,CqF15YE,iBAAsC,erF85YxC,CqF95YE,iBAAsC,erFk6YxC,CqFl6YE,uBAAsC,erFs6YxC,CqFt6YE,iBAAsC,erF06YxC,CqF16YE,aAAsC,WrF86YxC,CqF96YE,aAAsC,WrFk7YxC,CqFl7YE,yBAAsC,erFs7YxC,CqFt7YE,0GAAsC,erFs8YxC,CqFt8YE,qBAAsC,erF08YxC,CqF18YE,oBAAsC,erF88YxC,CqF98YE,yCAAsC,erFs9YxC,CqFt9YE,iDAAsC,erF89YxC,CqF99YE,yBAAsC,erFk+YxC,CqFl+YE,sBAAsC,erFs+YxC,CqFt+YE,oBAAsC,erF0+YxC,CqF1+YE,yBAAsC,erF8+YxC,CqF9+YE,0BAAsC,erFk/YxC,CqFl/YE,qBAAsC,erFs/YxC,CqFt/YE,oBAAsC,erF0/YxC,CqF1/YE,iBAAsC,erF8/YxC,CqF9/YE,2BAAsC,erFkgZxC,CqFlgZE,iCAAsC,erFsgZxC,CqFtgZE,0CAAsC,erF8gZxC,CqF9gZE,qDAAsC,erFshZxC,CqFthZE,qBAAsC,erF0hZxC,CqF1hZE,wBAAsC,erF8hZxC,CqF9hZE,uBAAsC,erFkiZxC,CqFliZE,gBAAsC,erFsiZxC,CqFtiZE,6FAAsC,erFsjZxC,CqFtjZE,8DAAsC,erF8jZxC,CqF9jZE,aAAsC,WrFkkZxC,CqFlkZE,uCAAsC,erF0kZxC,CqF1kZE,qCAAsC,erF8kZxC,CqF9kZE,gBAAsC,erFklZxC,CqFllZE,+BAAsC,erFslZxC,CqFtlZE,oBAAsC,erF0lZxC,CqF1lZE,8CAAsC,erFkmZxC,CqFlmZE,yBAAsC,erFsmZxC,CqFtmZE,0DAAsC,erF8mZxC,CqF9mZE,uBAAsC,erFknZxC,CqFlnZE,eAAsC,erFsnZxC,CqFtnZE,oBAAsC,erF0nZxC,CqF1nZE,iBAAsC,erF8nZxC,CqF9nZE,qBAAsC,erFkoZxC,CqFloZE,6BAAsC,erFsoZxC,CqFtoZE,uBAAsC,erF0oZxC,CqF1oZE,0BAAsC,erF8oZxC,CqF9oZE,aAAsC,WrFkpZxC,CqFlpZE,yBAAsC,erFspZxC,CqFtpZE,yBAAsC,erF0pZxC,CqF1pZE,uBAAsC,erF8pZxC,CqF9pZE,2BAAsC,erFkqZxC,CqFlqZE,4CAAsC,erF0qZxC,CqF1qZE,sBAAsC,erF8qZxC,CqF9qZE,+BAAsC,erFkrZxC,CqFlrZE,iCAAsC,erF0rZxC,CqF1rZE,yBAAsC,erF8rZxC,CqF9rZE,uDAAsC,erFssZxC,CqFtsZE,gBAAsC,erF0sZxC,CqF1sZE,kBAAsC,erF8sZxC,CqF9sZE,iBAAsC,erFktZxC,CqFltZE,eAAsC,erFstZxC,CqFttZE,sBAAsC,erF0tZxC,CqF1tZE,kDAAsC,erFkuZxC,CqFluZE,iDAAsC,erF0uZxC,CqF1uZE,4BAAsC,erF8uZxC,CqF9uZE,oDAAsC,erFsvZxC,CqFtvZE,qCAAsC,erF8vZxC,CqF9vZE,6CAAsC,erFswZxC,CqFtwZE,wBAAsC,erF0wZxC,CqF1wZE,+BAAsC,erF8wZxC,CqF9wZE,kBAAsC,erFkxZxC,CqFlxZE,uBAAsC,erFsxZxC,CqFtxZE,+BAAsC,erF0xZxC,CqF1xZE,oCAAsC,erF8xZxC,CqF9xZE,iBAAsC,erFkyZxC,CqFlyZE,uBAAsC,erFsyZxC,CqFtyZE,iBAAsC,erF0yZxC,CqF1yZE,2CAAsC,erFkzZxC,CqFlzZE,qDAAsC,erF0zZxC,CqF1zZE,iDAAsC,erFk0ZxC,CqFl0ZE,kBAAsC,erFs0ZxC,CqFt0ZE,6BAAsC,erF00ZxC,CqF10ZE,qBAAsC,erF80ZxC,CqF90ZE,kDAAsC,erFs1ZxC,CqFt1ZE,yBAAsC,erF01ZxC,CqF11ZE,0BAAsC,erF81ZxC,CqF91ZE,gCAAsC,erFk2ZxC,CqFl2ZE,mDAAsC,erF02ZxC,CqF12ZE,iBAAsC,erF82ZxC,CqF92ZE,oBAAsC,erFk3ZxC,CqFl3ZE,4CAAsC,erF03ZxC,CqF13ZE,oDAAsC,erFk4ZxC,CqFl4ZE,4BAAsC,erFs4ZxC,CqFt4ZE,qBAAsC,erF04ZxC,CqF14ZE,iBAAsC,erF84ZxC,CqF94ZE,0BAAsC,erFk5ZxC,CqFl5ZE,wBAAsC,erFs5ZxC,CqFt5ZE,6BAAsC,erF05ZxC,CqF15ZE,0CAAsC,erFk6ZxC,CqFl6ZE,8CAAsC,erF06ZxC,CqF16ZE,iDAAsC,erFk7ZxC,CqFl7ZE,wBAAsC,erFs7ZxC,CqFt7ZE,qDAAsC,erF87ZxC,CqF97ZE,sBAAsC,erFk8ZxC,CqFl8ZE,sDAAsC,erF08ZxC,CqF18ZE,qBAAsC,erF88ZxC,CqF98ZE,6CAAsC,erFs9ZxC,CqFt9ZE,aAAsC,WrF09ZxC,CqF19ZE,gBAAsC,erF89ZxC,CqF99ZE,2CAAsC,erFs+ZxC,CqFt+ZE,kDAAsC,erF8+ZxC,CqF9+ZE,uCAAsC,erFs/ZxC,CqFt/ZE,uBAAsC,erF0/ZxC,CqF1/ZE,6BAAsC,erF8/ZxC,CqF9/ZE,qBAAsC,erFkgaxC,CqFlgaE,gBAAsC,erFsgaxC,CqFtgaE,sDAAsC,erF8gaxC,CqF9gaE,sBAAsC,erFkhaxC,CqFlhaE,kBAAsC,erFshaxC,CqFthaE,sBAAsC,erF0haxC,CqF1haE,mBAAsC,erF8haxC,CqF9haE,uBAAsC,erFkiaxC,CqFliaE,6BAAsC,erFsiaxC,CqFtiaE,sBAAsC,erF0iaxC,CqF1iaE,mDAAsC,erFkjaxC,CqFljaE,qDAAsC,erF0jaxC,CqF1jaE,qBAAsC,erF8jaxC,CqF9jaE,oCAAsC,erFkkaxC,CqFlkaE,gDAAsC,erF0kaxC,CqF1kaE,yDAAsC,erFslaxC,CqFtlaE,mCAAsC,erF8laxC,CqF9laE,qBAAsC,erFkmaxC,CqFlmaE,yCAAsC,erF0maxC,CqF1maE,qBAAsC,erF8maxC,CqF9maE,uBAAsC,erFknaxC,CqFlnaE,gBAAsC,erFsnaxC,CqFtnaE,uBAAsC,erF0naxC,CqF1naE,wBAAsC,erF8naxC,CqF9naE,sBAAsC,erFkoaxC,CqFloaE,qBAAsC,erFsoaxC,CqFtoaE,mDAAsC,erF8oaxC,CqF9oaE,sDAAsC,erFspaxC,CqFtpaE,gBAAsC,erF0paxC,CqF1paE,gDAAsC,erFkqaxC,CqFlqaE,mBAAsC,erFsqaxC,CqFtqaE,8CAAsC,erF8qaxC,CqF9qaE,gBAAsC,erFkraxC,CqFlraE,oBAAsC,erFsraxC,CqFtraE,uBAAsC,erF0raxC,CqF1raE,mBAAsC,erF8raxC,CqF9raE,uBAAsC,erFksaxC,CqFlsaE,iCAAsC,erFssaxC,CqFtsaE,6BAAsC,erF0saxC,CqF1saE,sDAAsC,erFktaxC,CqFltaE,+CAAsC,erF0taxC,CqF1taE,sDAAsC,erFkuaxC,CqFluaE,+BAAsC,erFsuaxC,CqFtuaE,0CAAsC,erF8uaxC,CqF9uaE,+CAAsC,erFsvaxC,CqFtvaE,2BAAsC,erF0vaxC,CqF1vaE,iBAAsC,erF8vaxC,CqF9vaE,gDAAsC,erFswaxC,CqFtwaE,gBAAsC,erF0waxC,CqF1waE,oBAAsC,erF8waxC,CqF9waE,0BAAsC,erFkxaxC,CqFlxaE,8CAAsC,erF0xaxC,CqF1xaE,sBAAsC,erF8xaxC,CqF9xaE,gBAAsC,erFkyaxC,CqFlyaE,kBAAsC,erFsyaxC,CqFtyaE,iBAAsC,erF0yaxC,CqF1yaE,sBAAsC,erF8yaxC,CqF9yaE,eAAsC,erFkzaxC,CqFlzaE,oBAAsC,erFszaxC,CqFtzaE,uBAAsC,erF0zaxC,CqF1zaE,yBAAsC,erF8zaxC,CqF9zaE,yBAAsC,erFk0axC,CqFl0aE,sBAAsC,erFs0axC,CqFt0aE,sCAAsC,erF00axC,CqF10aE,sDAAsC,erFk1axC,CqFl1aE,6FAAsC,erFk2axC,CqFl2aE,4CAAsC,erF02axC,CqF12aE,iBAAsC,erF82axC,CqF92aE,0BAAsC,erFk3axC,CqFl3aE,qBAAsC,erFs3axC,CqFt3aE,eAAsC,erF03axC,CqF13aE,sCAAsC,erFk4axC,CqFl4aE,mBAAsC,erFs4axC,CqFt4aE,mDAAsC,erF84axC,CqF94aE,oBAAsC,erFk5axC,CqFl5aE,oBAAsC,erFs5axC,CqFt5aE,sDAAsC,erF85axC,CqF95aE,oBAAsC,erFk6axC,CqFl6aE,8CAAsC,erF06axC,CqF16aE,mBAAsC,erF86axC,CqF96aE,oBAAsC,erFk7axC,CqFl7aE,oDAAsC,erF87axC,CqF97aE,iBAAsC,erFk8axC,CqFl8aE,gDAAsC,erF08axC,CqF18aE,8CAAsC,erFk9axC,CqFl9aE,wDAAsC,erF09axC,CqF19aE,uBAAsC,erF89axC,CqF99aE,mBAAsC,erFk+axC,CqFl+aE,0BAAsC,erFs+axC,CqFt+aE,kBAAsC,erF0+axC,CqF1+aE,oBAAsC,erF8+axC,CqF9+aE,kBAAsC,erFk/axC,CqFl/aE,iDAAsC,erF0/axC,CqF1/aE,6BAAsC,erF8/axC,CqF9/aE,4BAAsC,erFkgbxC,CqFlgbE,0DAAsC,erF0gbxC,CqF1gbE,qBAAsC,erF8gbxC,CqF9gbE,mBAAsC,erFkhbxC,CqFlhbE,kDAAsC,erFshbxC,CqFthbE,8DAAsC,erFkibxC,CqFlibE,mBAAsC,erFsibxC,CqFtibE,kCAAsC,erF0ibxC,CqF1ibE,oBAAsC,erF8ibxC,CqF9ibE,sDAAsC,erFsjbxC,CqFtjbE,mCAAsC,erF0jbxC,CqF1jbE,uBAAsC,erF8jbxC,CqF9jbE,+CAAsC,erFskbxC,CqFtkbE,oBAAsC,erF0kbxC,CqF1kbE,6CAAsC,erFklbxC,CqFllbE,yDAAsC,erF0lbxC,CqF1lbE,wBAAsC,erF8lbxC,CqF9lbE,0DAAsC,erFsmbxC,CqFtmbE,sDAAsC,erF8mbxC,CqF9mbE,iEAAsC,erFsnbxC,CqFtnbE,oBAAsC,erF0nbxC,CqF1nbE,kBAAsC,erF8nbxC,CqF9nbE,eAAsC,erFkobxC,CqFlobE,6BAAsC,erFsobxC,CqFtobE,iBAAsC,erF0obxC,CqF1obE,0BAAsC,erF8obxC,CqF9obE,4GAAsC,erF8pbxC,CqF9pbE,gBAAsC,erFkqbxC,CqFlqbE,sBAAsC,erFsqbxC,CqFtqbE,iEAAsC,erFkrbxC,CqFlrbE,gEAAsC,erF0rbxC,CqF1rbE,qBAAsC,erF8rbxC,CqF9rbE,oDAAsC,erFssbxC,CqFtsbE,iBAAsC,erF0sbxC,CqF1sbE,gDAAsC,erFktbxC,CqFltbE,uCAAsC,erF0tbxC,CqF1tbE,uBAAsC,erF8tbxC,CqF9tbE,gBAAsC,erFkubxC,CqFlubE,kBAAsC,erFsubxC,CqFtubE,8EAAsC,erFkvbxC,CqFlvbE,mBAAsC,erFsvbxC,CqFtvbE,6BAAsC,erF0vbxC,CqF1vbE,gBAAsC,erF8vbxC,CqF9vbE,iBAAsC,erFkwbxC,CqFlwbE,iCAAsC,erFswbxC,CqFtwbE,sCAAsC,erF8wbxC,CqF9wbE,8CAAsC,erFsxbxC,CqFtxbE,yBAAsC,erF0xbxC,CqF1xbE,0DAAsC,erFkybxC,CqFlybE,+BAAsC,erFsybxC,CqFtybE,qBAAsC,erF0ybxC,CqF1ybE,sBAAsC,erF8ybxC,CqF9ybE,wFAAsC,erF0zbxC,CqF1zbE,8CAAsC,erFk0bxC,CqFl0bE,+CAAsC,erF00bxC,CqF10bE,iDAAsC,erFk1bxC,CqFl1bE,qBAAsC,erFs1bxC,CqFt1bE,2BAAsC,erF01bxC,CqF11bE,iDAAsC,erFk2bxC,CqFl2bE,sBAAsC,erFs2bxC,CqFt2bE,oFAAsC,erFk3bxC,CqFl3bE,oBAAsC,erFs3bxC,CqFt3bE,4CAAsC,erF83bxC,CqF93bE,sDAAsC,erFs4bxC,CqFt4bE,yBAAsC,erF04bxC,CqF14bE,iEAAsC,erFk5bxC,CqFl5bE,2BAAsC,erFs5bxC,CqFt5bE,wBAAsC,erF05bxC,CqF15bE,4DAAsC,erFs6bxC,CqFt6bE,6BAAsC,erF06bxC,CqF16bE,yBAAsC,erF86bxC,CqF96bE,8BAAsC,erFk7bxC,CqFl7bE,+CAAsC,erF07bxC,CqF17bE,uCAAsC,erFk8bxC,CqFl8bE,iBAAsC,erFs8bxC,CqFt8bE,iCAAsC,erF08bxC,CqF18bE,uBAAsC,erF88bxC,CqF98bE,yBAAsC,erFk9bxC,CqFl9bE,mBAAsC,erFs9bxC,CqFt9bE,8BAAsC,erF09bxC,CqF19bE,uDAAsC,erFk+bxC,CqFl+bE,+CAAsC,erF0+bxC,CqF1+bE,kBAAsC,erF8+bxC,CqF9+bE,wDAAsC,erFs/bxC,CqFt/bE,iBAAsC,erF0/bxC,CqF1/bE,qBAAsC,erF8/bxC,CqF9/bE,kBAAsC,erFkgcxC,CqFlgcE,mCAAsC,erFsgcxC,CqFtgcE,kBAAsC,erF0gcxC,CqF1gcE,2BAAsC,erF8gcxC,CqF9gcE,oBAAsC,erFkhcxC,CqFlhcE,aAAsC,WrFshcxC,CqFthcE,2CAAsC,erF8hcxC,CqF9hcE,qBAAsC,erFkicxC,CqFlicE,aAAsC,WrFsicxC,CqFticE,8DAAsC,erF8icxC,CqF9icE,kDAAsC,erFsjcxC,CqFtjcE,aAAsC,WrF0jcxC,CqF1jcE,qBAAsC,erF8jcxC,CqF9jcE,qBAAsC,erFkkcxC,CqFlkcE,sCAAsC,erF0kcxC,CqF1kcE,4DAAsC,erFklcxC,CqFllcE,+BAAsC,erFslcxC,CqFtlcE,kBAAsC,erF0lcxC,CqF1lcE,oCAAsC,erFkmcxC,CqFlmcE,+DAAsC,erF8mcxC,CqF9mcE,8BAAsC,erFkncxC,CqFlncE,yDAAsC,erF0ncxC,CqF1ncE,yBAAsC,erF8ncxC,CqF9ncE,uBAAsC,erFkocxC,CqFlocE,oBAAsC,erFsocxC,CqFtocE,2DAAsC,erF8ocxC,CqF9ocE,kBAAsC,erFkpcxC,CqFlpcE,oBAAsC,YrFspcxC,CqFtpcE,0BAAsC,erF0pcxC,CqF1pcE,oDAAsC,erFkqcxC,CqFlqcE,8BAAsC,erFsqcxC,CqFtqcE,8BAAsC,erF0qcxC,CqF1qcE,wBAAsC,erF8qcxC,CqF9qcE,uBAAsC,erFkrcxC,CqFlrcE,qDAAsC,erF0rcxC,CqF1rcE,gBAAsC,erF8rcxC,CqF9rcE,kDAAsC,erFsscxC,CqFtscE,uCAAsC,erF0scxC,CqF1scE,kCAAsC,erF8scxC,CqF9scE,+DAAsC,erFstcxC,CqFttcE,yBAAsC,erF0tcxC,CqF1tcE,kDAAsC,erFsucxC,CqFtucE,uBAAsC,erF0ucxC,CqF1ucE,wBAAsC,erF8ucxC,CqF9ucE,aAAsC,WrFkvcxC,CqFlvcE,gBAAsC,erFsvcxC,CqFtvcE,gBAAsC,erF0vcxC,CqF1vcE,+BAAsC,erFkwcxC,CqFlwcE,8BAAsC,erFswcxC,CqFtwcE,0CAAsC,erF8wcxC,CqF9wcE,0BAAsC,erFkxcxC,CqFlxcE,sBAAsC,erFsxcxC,CqFtxcE,sBAAsC,erF0xcxC,CqF1xcE,yBAAsC,erF8xcxC,CqF9xcE,qBAAsC,erFkycxC,CqFlycE,yBAAsC,erFsycxC,CqFtycE,+CAAsC,erF8ycxC,CqF9ycE,0BAAsC,erFkzcxC,CqFlzcE,gBAAsC,erFszcxC,CqFtzcE,8CAAsC,erF8zcxC,CqF9zcE,iBAAsC,erFk0cxC,CqFl0cE,wBAAsC,erFs0cxC,CqFt0cE,iEAAsC,erFk1cxC,CqFl1cE,iBAAsC,erFs1cxC,CqFt1cE,0DAAsC,erF81cxC,CqF91cE,8BAAsC,erFk2cxC,CqFl2cE,yDAAsC,erF02cxC,CqF12cE,wBAAsC,erF82cxC,CqF92cE,4CAAsC,erFs3cxC,CqFt3cE,2BAAsC,erF03cxC,CqF13cE,uBAAsC,erF83cxC,CqF93cE,2CAAsC,erFs4cxC,CqFt4cE,yBAAsC,erF04cxC,CqF14cE,kCAAsC,erF84cxC,CqF94cE,aAAsC,WrFk5cxC,CqFl5cE,gBAAsC,erFs5cxC,CqFt5cE,+CAAsC,erF85cxC,CqF95cE,yBAAsC,erFk6cxC,CqFl6cE,4BAAsC,erFs6cxC,CqFt6cE,iBAAsC,erF06cxC,CqF16cE,0BAAsC,erF86cxC,CqF96cE,2CAAsC,erFs7cxC,CqFt7cE,yBAAsC,erF07cxC,CqF17cE,uBAAsC,erF87cxC,CqF97cE,oDAAsC,erFs8cxC,CqFt8cE,6CAAsC,erF88cxC,CqF98cE,wBAAsC,erFk9cxC,CqFl9cE,gDAAsC,erF09cxC,CqF19cE,8BAAsC,erF89cxC,CqF99cE,4CAAsC,erFs+cxC,CqFt+cE,uBAAsC,erF0+cxC,CqF1+cE,aAAsC,WrF8+cxC,CqF9+cE,gHAAsC,erF8/cxC,CqF9/cE,gBAAsC,erFkgdxC,CqFlgdE,wBAAsC,erFsgdxC,CqFtgdE,sBAAsC,erF0gdxC,CqF1gdE,uBAAsC,erF8gdxC,CqF9gdE,qBAAsC,erFkhdxC,CqFlhdE,oBAAsC,erFshdxC,CqFthdE,+BAAsC,erF0hdxC,CqF1hdE,+BAAsC,erF8hdxC,CqF9hdE,gDAAsC,erFkidxC,CqFlidE,oDAAsC,erF0idxC,CqF1idE,kBAAsC,erF8idxC,CqF9idE,kDAAsC,erFsjdxC,CqFtjdE,mBAAsC,erF0jdxC,CqF1jdE,0BAAsC,erF8jdxC,CqF9jdE,uBAAsC,erFkkdxC,CqFlkdE,qBAAsC,erFskdxC,CqFtkdE,iDAAsC,erF8kdxC,CqF9kdE,0BAAsC,erFkldxC,CqFlldE,oDAAsC,erF0ldxC,CqF1ldE,sDAAsC,erFkmdxC,CqFlmdE,4CAAsC,erF0mdxC,CqF1mdE,sBAAsC,erF8mdxC,CqF9mdE,kBAAsC,erFkndxC,CqFlndE,2BAAsC,erFsndxC,CqFtndE,sBAAsC,erF0ndxC,CqF1ndE,uCAAsC,erFkodxC,CqFlodE,kBAAsC,erFsodxC,CqFtodE,gBAAsC,erF0odxC,CqF1odE,uCAAsC,erFkpdxC,CqFlpdE,sBAAsC,erFspdxC,CqFtpdE,sDAAsC,erF8pdxC,CqF9pdE,2BAAsC,erFkqdxC,CqFlqdE,2BAAsC,erFsqdxC,CqFtqdE,yBAAsC,erF0qdxC,CqF1qdE,uBAAsC,erF8qdxC,CqF9qdE,sBAAsC,erFkrdxC,CqFlrdE,kBAAsC,erFsrdxC,CqFtrdE,2CAAsC,erF8rdxC,CqF9rdE,uBAAsC,erFksdxC,CqFlsdE,eAAsC,erFssdxC,CqFtsdE,qCAAsC,erF0sdxC,CqF1sdE,uBAAsC,erF8sdxC,CqF9sdE,iBAAsC,erFktdxC,CqFltdE,8BAAsC,erFstdxC,CqFttdE,oBAAsC,erF0tdxC,CqF1tdE,2BAAsC,erF8tdxC,CqF9tdE,sBAAsC,erFkudxC,CqFludE,6BAAsC,erFsudxC,CqFtudE,gBAAsC,erF0udxC,CqF1udE,sBAAsC,erF8udxC,CqF9udE,gDAAsC,erFsvdxC,CqFtvdE,+CAAsC,erF8vdxC,CqF9vdE,6CAAsC,erFswdxC,CqFtwdE,wBAAsC,erF0wdxC,CqF1wdE,8CAAsC,erFkxdxC,CqFlxdE,uBAAsC,erFsxdxC,CqFtxdE,iDAAsC,erF8xdxC,CqF9xdE,8CAAsC,erFsydxC,CqFtydE,oBAAsC,erF0ydxC,CqF1ydE,yBAAsC,erF8ydxC,CqF9ydE,8BAAsC,erFkzdxC,CqFlzdE,sDAAsC,erF0zdxC,CqF1zdE,gBAAsC,erF8zdxC,CqF9zdE,yCAAsC,erFs0dxC,CqFt0dE,eAAsC,erF00dxC,CqF10dE,2CAAsC,erFk1dxC,CqFl1dE,6BAAsC,erFs1dxC,CqFt1dE,qCAAsC,erF01dxC,CqF11dE,uBAAsC,erF81dxC,CqF91dE,sBAAsC,erFk2dxC,CqFl2dE,eAAsC,erFs2dxC,CqFt2dE,6BAAsC,erF02dxC,CqF12dE,qBAAsC,erF82dxC,CqF92dE,gEAAsC,erF03dxC,CqF13dE,eAAsC,erF83dxC,CqF93dE,8BAAsC,erFk4dxC,CqFl4dE,4CAAsC,erF04dxC,CqF14dE,2BAAsC,erF84dxC,CqF94dE,uCAAsC,erFs5dxC,CqFt5dE,wBAAsC,erF05dxC,CqF15dE,qCAAsC,erFk6dxC,CqFl6dE,uCAAsC,erF06dxC,CqF16dE,kBAAsC,erF86dxC,CqF96dE,0DAAsC,erFs7dxC,CqFt7dE,uCAAsC,erF87dxC,CqF97dE,8CAAsC,erFs8dxC,CqFt8dE,sBAAsC,erF08dxC,CqF18dE,mBAAsC,erF88dxC,CqF98dE,mDAAsC,erFs9dxC,CqFt9dE,2DAAsC,erF89dxC,CqF99dE,qBAAsC,erFk+dxC,CqFl+dE,wBAAsC,erFs+dxC,CqFt+dE,yBAAsC,erF0+dxC,CqF1+dE,yBAAsC,erF8+dxC,CqF9+dE,kDAAsC,erFs/dxC,CqFt/dE,4GAAsC,erFsgexC,CqFtgeE,qBAAsC,erF0gexC,CqF1geE,mDAAsC,erFkhexC,CqFlheE,uBAAsC,erFshexC,CqFtheE,uBAAsC,erF0hexC,CqF1heE,+BAAsC,erF8hexC,CqF9heE,uBAAsC,erFkiexC,CqFlieE,iDAAsC,erF0iexC,CqF1ieE,iBAAsC,erF8iexC,CqF9ieE,oDAAsC,erFsjexC,CqFtjeE,0BAAsC,erF0jexC,CqF1jeE,2BAAsC,erF8jexC,CqF9jeE,yCAAsC,erFskexC,CqFtkeE,mDAAsC,erF8kexC,CqF9keE,uBAAsC,erFklexC,CqFlleE,wBAAsC,erFslexC,CqFtleE,oBAAsC,erF0lexC,CqF1leE,wBAAsC,erF8lexC,CqF9leE,wBAAsC,erFkmexC,CqFlmeE,wBAAsC,erFsmexC,CqFtmeE,sBAAsC,erF0mexC,CqF1meE,sBAAsC,erF8mexC,CqF9meE,qBAAsC,erFknexC,CqFlneE,6CAAsC,erF0nexC,CqF1neE,iBAAsC,erF8nexC,CqF9neE,kFAAsC,erF0oexC,CqF1oeE,wBAAsC,erF8oexC,CqF9oeE,eAAsC,erFkpexC,CqFlpeE,kDAAsC,erF0pexC,CqF1peE,sDAAsC,erFsqexC,CqFtqeE,iBAAsC,erF0qexC,CqF1qeE,kBAAsC,erF8qexC,CqF9qeE,uCAAsC,erFsrexC,CqFtreE,sBAAsC,erF0rexC,CqF1reE,yBAAsC,erF8rexC,CqF9reE,0BAAsC,erFksexC,CqFlseE,sBAAsC,erFssexC,CqFtseE,sBAAsC,erF0sexC,CqF1seE,+BAAsC,erF8sexC,CqF9seE,iBAAsC,erFktexC,CqFlteE,sBAAsC,erFstexC,CqFtteE,mBAAsC,erF0texC,CqF1teE,oBAAsC,erF8texC,CqF9teE,aAAsC,WrFkuexC,CqFlueE,4BAAsC,erFsuexC,CqFtueE,sBAAsC,erF0uexC,CqF1ueE,6DAAsC,erFkvexC,CqFlveE,qCAAsC,erF0vexC,CqF1veE,oBAAsC,erF8vexC,CqF9veE,uCAAsC,erFswexC,CqFtweE,aAAsC,WrF0wexC,CqF1weE,8CAAsC,erFkxexC,CqFlxeE,uBAAsC,erFsxexC,CqFtxeE,iBAAsC,erF0xexC,CqF1xeE,0CAAsC,erFkyexC,CqFlyeE,0BAAsC,erFsyexC,CqFtyeE,oDAAsC,erF8yexC,CqF9yeE,iDAAsC,erFszexC,CqFtzeE,yCAAsC,erF8zexC,CqF9zeE,wDAAsC,erFs0exC,CqFt0eE,2BAAsC,erF00exC,CqF10eE,0BAAsC,erF80exC,CqF90eE,iBAAsC,erFk1exC,CqFl1eE,qBAAsC,erFs1exC,CqFt1eE,qBAAsC,erF01exC,CqF11eE,sBAAsC,erF81exC,CqF91eE,eAAsC,erFk2exC,CqFl2eE,mBAAsC,erFs2exC,CqFt2eE,iEAAsC,erFk3exC,CqFl3eE,oBAAsC,erFs3exC,CqFt3eE,gDAAsC,erF83exC,CqF93eE,qBAAsC,erFk4exC,CqFl4eE,+BAAsC,erFs4exC,CqFt4eE,kBAAsC,erF04exC,CqF14eE,iBAAsC,erF84exC,CqF94eE,uDAAsC,erFs5exC,CqFt5eE,yBAAsC,erF05exC,CqF15eE,uBAAsC,erF85exC,CqF95eE,wBAAsC,erFk6exC,CqFl6eE,yBAAsC,erFs6exC,CqFt6eE,kBAAsC,erF06exC,CqF16eE,0BAAsC,erF86exC,CqF96eE,gDAAsC,erFs7exC,CqFt7eE,oBAAsC,erF07exC,CqF17eE,0CAAsC,erFk8exC,CqFl8eE,8CAAsC,erF08exC,CqF18eE,0BAAsC,erF88exC,CqF98eE,wCAAsC,erFs9exC,CqFt9eE,wBAAsC,erF09exC,CqF19eE,kBAAsC,erF89exC,CqF99eE,kBAAsC,erFk+exC,CqFl+eE,kBAAsC,erFs+exC,CqFt+eE,mFAAsC,erFk/exC,CqFl/eE,8DAAsC,erF0/exC,CqF1/eE,iBAAsC,erF8/exC,CqF9/eE,0BAAsC,erFkgfxC,CqFlgfE,mBAAsC,erFsgfxC,CqFtgfE,0EAAsC,erF8gfxC,CqF9gfE,oBAAsC,erFkhfxC,CqFlhfE,iBAAsC,erFshfxC,CqFthfE,sBAAsC,erF0hfxC,CqF1hfE,uBAAsC,erF8hfxC,CqF9hfE,gBAAsC,erFkifxC,CqFlifE,wBAAsC,erFsifxC,CqFtifE,wBAAsC,erF0ifxC,CqF1ifE,+EAAsC,erFsjfxC,CqFtjfE,4BAAsC,erF0jfxC,CqF1jfE,kBAAsC,erF8jfxC,CqF9jfE,wIAAsC,erFklfxC,CqFllfE,qCAAsC,erF0lfxC,CqF1lfE,+DAAsC,erFkmfxC,CqFlmfE,oBAAsC,erFsmfxC,CqFtmfE,8CAAsC,erF8mfxC,CqF9mfE,wBAAsC,erFknfxC,CqFlnfE,sCAAsC,erFsnfxC,CqFtnfE,yDAAsC,erF8nfxC,CqF9nfE,yBAAsC,erFkofxC,CqFlofE,yBAAsC,erFsofxC,CqFtofE,wDAAsC,erF8ofxC,CqF9ofE,0CAAsC,erFspfxC,CqFtpfE,uBAAsC,erF0pfxC,CqF1pfE,oEAAsC,erFsqfxC,CqFtqfE,2CAAsC,erF8qfxC,CqF9qfE,kDAAsC,erFsrfxC,CqFtrfE,oDAAsC,erF8rfxC,CqF9rfE,eAAsC,erFksfxC,CqFlsfE,uBAAsC,erFssfxC,CqFtsfE,qCAAsC,erF8sfxC,CqF9sfE,iBAAsC,erFktfxC,CqFltfE,sDAAsC,erF0tfxC,CqF1tfE,6BAAsC,erF8tfxC,CqF9tfE,uBAAsC,erFkufxC,CqFlufE,sBAAsC,erFsufxC,CqFtufE,sBAAsC,erF0ufxC,CqF1ufE,kKAAsC,erF0vfxC,CqF1vfE,+BAAsC,erFkwfxC,CqFlwfE,+CAAsC,erF0wfxC,CqF1wfE,kBAAsC,erF8wfxC,CqF9wfE,oBAAsC,erFkxfxC,CqFlxfE,yBAAsC,erFsxfxC,CqFtxfE,iCAAsC,erF0xfxC,CqF1xfE,kDAAsC,erFkyfxC,CqFlyfE,iBAAsC,erFsyfxC,CqFtyfE,4BAAsC,erF0yfxC,CqF1yfE,4BAAsC,erF8yfxC,CqF9yfE,yBAAsC,erFkzfxC,CqFlzfE,6CAAsC,erF0zfxC,CqF1zfE,aAAsC,WrF8zfxC,CqF9zfE,2DAAsC,erFs0fxC,CqFt0fE,uCAAsC,erF80fxC,CqF90fE,kDAAsC,erFs1fxC,CqFt1fE,kBAAsC,erF01fxC,CqF11fE,kBAAsC,erF81fxC,CqF91fE,6BAAsC,erFk2fxC,CqFl2fE,aAAsC,WrFs2fxC,CqFt2fE,oBAAsC,erF02fxC,CqF12fE,oBAAsC,erF82fxC,CqF92fE,sBAAsC,erFk3fxC,CqFl3fE,2DAAsC,erF03fxC,CqF13fE,8HAAsC,erF04fxC,CqF14fE,uDAAsC,erFk5fxC,CqFl5fE,oBAAsC,erFs5fxC,CqFt5fE,sBAAsC,erF05fxC,CqF15fE,6CAAsC,erFk6fxC,CqFl6fE,yBAAsC,erFs6fxC,CqFt6fE,iBAAsC,erF06fxC,CqF16fE,kBAAsC,erF86fxC,CqF96fE,wCAAsC,erFs7fxC,CqFt7fE,uBAAsC,erF07fxC,CqF17fE,yBAAsC,erF87fxC,CqF97fE,mBAAsC,erFk8fxC,CqFl8fE,iBAAsC,erFs8fxC,CqFt8fE,qBAAsC,erF08fxC,CqF18fE,iBAAsC,erF88fxC,CqF98fE,2BAAsC,erFk9fxC,CqFl9fE,yBAAsC,erFs9fxC,CqFt9fE,mDAAsC,erF89fxC,CqF99fE,kBAAsC,erFk+fxC,CqFl+fE,qBAAsC,erFs+fxC,CqFt+fE,sDAAsC,erF8+fxC,CqF9+fE,oBAAsC,erFk/fxC,CqFl/fE,uBAAsC,erFs/fxC,CqFt/fE,mCAAsC,erF8/fxC,CqF9/fE,wBAAsC,erFkggBxC,CqFlggBE,wBAAsC,erFsggBxC,CqFtggBE,4CAAsC,erF0ggBxC,CqF1ggBE,6BAAsC,erF8ggBxC,CqF9ggBE,2CAAsC,erFshgBxC,CqFthgBE,wBAAsC,erF0hgBxC,CqF1hgBE,kBAAsC,erF8hgBxC,CqF9hgBE,sBAAsC,erFkigBxC,CqFligBE,0BAAsC,erFsigBxC,CqFtigBE,aAAsC,WrF0igBxC,CqF1igBE,qCAAsC,erFkjgBxC,CqFljgBE,sBAAsC,erFsjgBxC,CqFtjgBE,iCAAsC,erF0jgBxC,CqF1jgBE,gBAAsC,erF8jgBxC,CqF9jgBE,+BAAsC,erFkkgBxC,CqFlkgBE,oBAAsC,erFskgBxC,CqFtkgBE,qCAAsC,erF8kgBxC,CqF9kgBE,4CAAsC,erFslgBxC,CqFtlgBE,0EAAsC,erFkmgBxC,CqFlmgBE,6BAAsC,erFsmgBxC,CqFtmgBE,mBAAsC,erF0mgBxC,CqF1mgBE,oEAAsC,erFsngBxC,CqFtngBE,mCAAsC,erF8ngBxC,CqF9ngBE,wBAAsC,erFkogBxC,CqFlogBE,2CAAsC,erF0ogBxC,CqF1ogBE,8CAAsC,erFkpgBxC,CqFlpgBE,qCAAsC,erF0pgBxC,CqF1pgBE,oCAAsC,erF8pgBxC,CqF9pgBE,4EAAsC,erF8qgBxC,CqF9qgBE,yBAAsC,erFkrgBxC,CqFlrgBE,0BAAsC,erFsrgBxC,CqFtrgBE,aAAsC,WrF0rgBxC,CqF1rgBE,wBAAsC,erF8rgBxC,CqF9rgBE,oBAAsC,erFksgBxC,CqFlsgBE,qBAAsC,erFssgBxC,CqFtsgBE,sDAAsC,erF8sgBxC,CqF9sgBE,sEAAsC,erF0tgBxC,CqF1tgBE,uCAAsC,erFkugBxC,CqFlugBE,yDAAsC,erF0ugBxC,CqF1ugBE,qBAAsC,erF8ugBxC,CqF9ugBE,qBAAsC,erFkvgBxC,CqFlvgBE,iBAAsC,erFsvgBxC,CqFtvgBE,sDAAsC,erF8vgBxC,CqF9vgBE,wBAAsC,erFkwgBxC,CqFlwgBE,gDAAsC,erF0wgBxC,CqF1wgBE,gBAAsC,erF8wgBxC,CqF9wgBE,sBAAsC,erFkxgBxC,CqFlxgBE,kBAAsC,erFsxgBxC,CqFtxgBE,qBAAsC,erF0xgBxC,CqF1xgBE,iBAAsC,erF8xgBxC,CqF9xgBE,2BAAsC,erFkygBxC,CqFlygBE,wBAAsC,erFsygBxC,CqFtygBE,oDAAsC,erF8ygBxC,CqF9ygBE,mBAAsC,erFkzgBxC,CqFlzgBE,sBAAsC,erFszgBxC,CqFtzgBE,+BAAsC,erF8zgBxC,CqF9zgBE,uBAAsC,erFk0gBxC,CqFl0gBE,oBAAsC,erFs0gBxC,CqFt0gBE,iBAAsC,erF00gBxC,CqF10gBE,gBAAsC,erF80gBxC,CqF90gBE,kBAAsC,erFk1gBxC,CqFl1gBE,8BAAsC,erFs1gBxC,CqFt1gBE,gFAAsC,erF02gBxC,CqF12gBE,wEAAsC,erF03gBxC,CqF13gBE,eAAsC,erF83gBxC,CqF93gBE,kBAAsC,erFk4gBxC,CqFl4gBE,iDAAsC,erF04gBxC,CqF14gBE,sBAAsC,erF84gBxC,CqF94gBE,qBAAsC,erFk5gBxC,CqFl5gBE,oBAAsC,erFs5gBxC,CqFt5gBE,wDAAsC,erF85gBxC,CqF95gBE,+BAAsC,erFk6gBxC,CqFl6gBE,uBAAsC,erFs6gBxC,CqFt6gBE,6FAAsC,erFk7gBxC,CqFl7gBE,qBAAsC,YrFs7gBxC,CqFt7gBE,sBAAsC,erF07gBxC,CqF17gBE,sBAAsC,erF87gBxC,CqF97gBE,2BAAsC,erFk8gBxC,CqFl8gBE,sBAAsC,erFs8gBxC,CqFt8gBE,uBAAsC,erF08gBxC,CqF18gBE,qBAAsC,erF88gBxC,CqF98gBE,wDAAsC,erFs9gBxC,CqFt9gBE,+BAAsC,erF09gBxC,CqF19gBE,0CAAsC,erFk+gBxC,CqFl+gBE,sBAAsC,erFs+gBxC,CqFt+gBE,4CAAsC,erF8+gBxC,CqF9+gBE,iCAAsC,erFk/gBxC,CqFl/gBE,mBAAsC,erFs/gBxC,CqFt/gBE,gCAAsC,erF0/gBxC,CqF1/gBE,eAAsC,erF8/gBxC,CqF9/gBE,kDAAsC,erFsghBxC,CqFtghBE,qCAAsC,erF8ghBxC,CqF9ghBE,6BAAsC,erFkhhBxC,CqFlhhBE,mDAAsC,erF0hhBxC,CqF1hhBE,wBAAsC,erF8hhBxC,CqF9hhBE,qCAAsC,erFkihBxC,CqFlihBE,oBAAsC,erFsihBxC,CqFtihBE,yBAAsC,erF0ihBxC,CqF1ihBE,6BAAsC,erF8ihBxC,CqF9ihBE,0DAAsC,erFsjhBxC,CqFtjhBE,iBAAsC,erF0jhBxC,CqF1jhBE,eAAsC,erF8jhBxC,CqF9jhBE,wCAAsC,erFskhBxC,CqFtkhBE,mBAAsC,erF0khBxC,CqF1khBE,0GAAsC,erF0lhBxC,CqF1lhBE,gBAAsC,erF8lhBxC,CqF9lhBE,uBAAsC,erFkmhBxC,CqFlmhBE,6BAAsC,erFsmhBxC,CqFtmhBE,wBAAsC,erF0mhBxC,CqF1mhBE,uBAAsC,erF8mhBxC,CqF9mhBE,wBAAsC,erFknhBxC,CqFlnhBE,oDAAsC,erF0nhBxC,CqF1nhBE,kDAAsC,erFkohBxC,CqFlohBE,gBAAsC,erFsohBxC,CqFtohBE,wBAAsC,YrF0ohBxC,CqF1ohBE,8CAAsC,erFkphBxC,CqFlphBE,sBAAsC,erFsphBxC,CqFtphBE,mCAAsC,erF8phBxC,CqF9phBE,kBAAsC,erFkqhBxC,CqFlqhBE,8FAAsC,erFkrhBxC,CqFlrhBE,wBAAsC,erFsrhBxC,CqFtrhBE,gBAAsC,erF0rhBxC,CqF1rhBE,8CAAsC,erFkshBxC,CqFlshBE,iBAAsC,erFsshBxC,CqFtshBE,iBAAsC,erF0shBxC,CqF1shBE,mBAAsC,erF8shBxC,CqF9shBE,+EAAsC,erF0thBxC,CqF1thBE,8BAAsC,erF8thBxC,CqF9thBE,qEAAsC,erF0uhBxC,CqF1uhBE,uBAAsC,erF8uhBxC,CqF9uhBE,sBAAsC,erFkvhBxC,CqFlvhBE,+DAAsC,erF8vhBxC,CqF9vhBE,wBAAsC,erFkwhBxC,CqFlwhBE,kBAAsC,erFswhBxC,CqFtwhBE,qDAAsC,erF8whBxC,CqF9whBE,gBAAsC,erFkxhBxC,CqFlxhBE,qBAAsC,erFsxhBxC,CqFtxhBE,6BAAsC,erF0xhBxC,CqF1xhBE,eAAsC,erF8xhBxC,CqF9xhBE,qBAAsC,erFkyhBxC,CqFlyhBE,6CAAsC,erF0yhBxC,CqF1yhBE,qBAAsC,erF8yhBxC,CqF9yhBE,+DAAsC,erF0zhBxC,CqF1zhBE,iCAAsC,erFk0hBxC,CqFl0hBE,6DAAsC,erF00hBxC,CqF10hBE,qBAAsC,erF80hBxC,CqF90hBE,gBAAsC,erFk1hBxC,CqFl1hBE,gBAAsC,erFs1hBxC,CqFt1hBE,gCAAsC,erF01hBxC,CqF11hBE,uBAAsC,erF81hBxC,CqF91hBE,8CAAsC,erFs2hBxC,CqFt2hBE,6FAAsC,erFk3hBxC,CqFl3hBE,sDAAsC,erF03hBxC,CqF13hBE,2DAAsC,erFk4hBxC,CqFl4hBE,sBAAsC,erFs4hBxC,CqFt4hBE,2BAAsC,erF04hBxC,CqF14hBE,yBAAsC,erF84hBxC,CqF94hBE,yCAAsC,erFs5hBxC,CqFt5hBE,mBAAsC,erF05hBxC,CqF15hBE,qEAAsC,erFs6hBxC,CqFt6hBE,4BAAsC,erF06hBxC,CqF16hBE,qCAAsC,erF86hBxC,CqF96hBE,wBAAsC,erFk7hBxC,CqFl7hBE,gEAAsC,erF87hBxC,CqF97hBE,4BAAsC,erFk8hBxC,CqFl8hBE,wBAAsC,erFs8hBxC,CqFt8hBE,wCAAsC,erF88hBxC,CqF98hBE,uBAAsC,erFk9hBxC,CqFl9hBE,sBAAsC,erFs9hBxC,CqFt9hBE,oDAAsC,erF89hBxC,CqF99hBE,wBAAsC,erFk+hBxC,CqFl+hBE,sBAAsC,erFs+hBxC,CqFt+hBE,4BAAsC,erF0+hBxC,CqF1+hBE,+BAAsC,erF8+hBxC,CqF9+hBE,iDAAsC,erFs/hBxC,CqFt/hBE,oBAAsC,erF0/hBxC,CqF1/hBE,sDAAsC,erFsgiBxC,CqFtgiBE,kBAAsC,erF0giBxC,CqF1giBE,uCAAsC,erFkhiBxC,CqFlhiBE,yBAAsC,erFshiBxC,CqFthiBE,8CAAsC,erF8hiBxC,CqF9hiBE,uBAAsC,erFkiiBxC,CqFliiBE,gBAAsC,erFsiiBxC,CqFtiiBE,0CAAsC,erF8iiBxC,CqF9iiBE,aAAsC,WrFkjiBxC,CqFljiBE,uDAAsC,erF0jiBxC,CqF1jiBE,+CAAsC,erFkkiBxC,CqFlkiBE,gBAAsC,erFskiBxC,CqFtkiBE,yBAAsC,erF0kiBxC,CqF1kiBE,gDAAsC,erFkliBxC,CqFlliBE,wBAAsC,erFsliBxC,CqFtliBE,qDAAsC,erF8liBxC,CqF9liBE,6CAAsC,erFsmiBxC,CqFtmiBE,0BAAsC,erF0miBxC,CqF1miBE,sDAAsC,erFkniBxC,CqFlniBE,gBAAsC,erFsniBxC,CqFtniBE,uEAAsC,erFkoiBxC,CqFloiBE,yBAAsC,erFsoiBxC,CqFtoiBE,2CAAsC,erF8oiBxC,CqF9oiBE,qDAAsC,erFspiBxC,CqFtpiBE,kDAAsC,erF8piBxC,CqF9piBE,eAAsC,erFkqiBxC,CqFlqiBE,gDAAsC,erF0qiBxC,CqF1qiBE,+BAAsC,YrFkriBxC,CqFlriBE,kBAAsC,erFsriBxC,CqFtriBE,oBAAsC,erF0riBxC,CqF1riBE,yFAAsC,erF8siBxC,CqF9siBE,uDAAsC,erFstiBxC,CqFttiBE,yDAAsC,erF8tiBxC,CqF9tiBE,qBAAsC,erFkuiBxC,CqFluiBE,2BAAsC,erFsuiBxC,CqFtuiBE,gBAAsC,erF0uiBxC,CqF1uiBE,sBAAsC,erF8uiBxC,CqF9uiBE,gDAAsC,erFsviBxC,CqFtviBE,mBAAsC,erF0viBxC,CqF1viBE,mDAAsC,erFkwiBxC,CqFlwiBE,8BAAsC,erFswiBxC,CqFtwiBE,yBAAsC,erF0wiBxC,CqF1wiBE,0BAAsC,erF8wiBxC,CqF9wiBE,qBAAsC,erFkxiBxC,CqFlxiBE,kBAAsC,YrFsxiBxC,CqFtxiBE,mBAAsC,erF0xiBxC,CqF1xiBE,iBAAsC,erF8xiBxC,CqF9xiBE,iGAAsC,erFkziBxC,CqFlziBE,eAAsC,erFsziBxC,CqFtziBE,kBAAsC,erF0ziBxC,CqF1ziBE,6CAAsC,erFk0iBxC,CqFl0iBE,wBAAsC,erFs0iBxC,CqFt0iBE,iBAAsC,erF00iBxC,CqF10iBE,0BAAsC,erF80iBxC,CqF90iBE,6BAAsC,erFk1iBxC,CqFl1iBE,wCAAsC,erF01iBxC,CqF11iBE,wBAAsC,erF81iBxC,CqF91iBE,sBAAsC,erFk2iBxC,CqFl2iBE,4CAAsC,erF02iBxC,CqF12iBE,uBAAsC,erF82iBxC,CqF92iBE,gBAAsC,erFk3iBxC,CqFl3iBE,oBAAsC,erFs3iBxC,CqFt3iBE,0BAAsC,erF03iBxC,CqF13iBE,uBAAsC,erF83iBxC,CqF93iBE,wBAAsC,erFk4iBxC,CqFl4iBE,oBAAsC,erFs4iBxC,CqFt4iBE,uBAAsC,erF04iBxC,CqF14iBE,kBAAsC,erF84iBxC,CqF94iBE,mBAAsC,erFk5iBxC,CqFl5iBE,6BAAsC,erFs5iBxC,CqFt5iBE,sBAAsC,erF05iBxC,CqF15iBE,yBAAsC,erF85iBxC,CqF95iBE,mBAAsC,erFk6iBxC,CqFl6iBE,uCAAsC,erF06iBxC,CqF16iBE,qBAAsC,erF86iBxC,CqF96iBE,uBAAsC,erFk7iBxC,CqFl7iBE,gDAAsC,erF07iBxC,CqF17iBE,iBAAsC,erF87iBxC,CqF97iBE,kDAAsC,erFs8iBxC,CqFt8iBE,yBAAsC,erF08iBxC,CqF18iBE,uBAAsC,erF88iBxC,CqF98iBE,wBAAsC,erFk9iBxC,CqFl9iBE,8BAAsC,erFs9iBxC,CqFt9iBE,yCAAsC,YrF89iBxC,CqF99iBE,wBAAsC,erFk+iBxC,CqFl+iBE,+BAAsC,erFs+iBxC,CqFt+iBE,mBAAsC,erF0+iBxC,CqF1+iBE,uCAAsC,erFk/iBxC,CqFl/iBE,2CAAsC,erF0/iBxC,CqF1/iBE,kBAAsC,erF8/iBxC,CqF9/iBE,0CAAsC,erFsgjBxC,CqFtgjBE,kBAAsC,erF0gjBxC,CqF1gjBE,sBAAsC,erF8gjBxC,CqF9gjBE,sCAAsC,erFshjBxC,CqFthjBE,mBAAsC,erF0hjBxC,CqF1hjBE,iBAAsC,erF8hjBxC,CqF9hjBE,iBAAsC,erFkijBxC,CqFlijBE,iCAAsC,erF0ijBxC,CqF1ijBE,qBAAsC,erF8ijBxC,CqF9ijBE,+BAAsC,erFkjjBxC,CqFljjBE,mBAAsC,erFsjjBxC,CqFtjjBE,mDAAsC,erF8jjBxC,CqF9jjBE,qBAAsC,erFkkjBxC,CqFlkjBE,oBAAsC,erFskjBxC,CqFtkjBE,kDAAsC,erF8kjBxC,CqF9kjBE,mBAAsC,erFkljBxC,CqFlljBE,iDAAsC,erF0ljBxC,CqF1ljBE,gCAAsC,erF8ljBxC,CqF9ljBE,iBAAsC,erFkmjBxC,CqFlmjBE,+CAAsC,erF0mjBxC,CqF1mjBE,oBAAsC,erF8mjBxC,CqF9mjBE,oDAAsC,erFsnjBxC,CqFtnjBE,kBAAsC,erF0njBxC,CqF1njBE,gDAAsC,erFkojBxC,CqFlojBE,2DAAsC,erF0ojBxC,CqF1ojBE,wDAAsC,erFkpjBxC,CqFlpjBE,0CAAsC,erF0pjBxC,CqF1pjBE,6DAAsC,erFkqjBxC,CqFlqjBE,yBAAsC,erFsqjBxC,CqFtqjBE,8CAAsC,erF8qjBxC,CqF9qjBE,8DAAsC,erFsrjBxC,CqFtrjBE,gCAAsC,erF0rjBxC,CqF1rjBE,mBAAsC,erF8rjBxC,CqF9rjBE,gCAAsC,erFksjBxC,CqFlsjBE,iBAAsC,erFssjBxC,CqFtsjBE,uCAAsC,erF8sjBxC,CqF9sjBE,eAAsC,erFktjBxC,CqFltjBE,kBAAsC,erFstjBxC,CqFttjBE,gBAAsC,erF0tjBxC,CqF1tjBE,sDAAsC,erFkujBxC,CqFlujBE,kBAAsC,erFsujBxC,CqFtujBE,oBAAsC,erF0ujBxC,CqF1ujBE,iBAAsC,erF8ujBxC,CqF9ujBE,uBAAsC,erFkvjBxC,CqFlvjBE,2BAAsC,erFsvjBxC,CqFtvjBE,2CAAsC,erF8vjBxC,CqF9vjBE,iBAAsC,erFkwjBxC,CqFlwjBE,wBAAsC,erFswjBxC,CqFtwjBE,mBAAsC,erF0wjBxC,CqF1wjBE,kDAAsC,erFkxjBxC,CqFlxjBE,wEAAsC,erF8xjBxC,CqF9xjBE,mBAAsC,YrFkyjBxC,CqFlyjBE,oEAAsC,erF0yjBxC,CqF1yjBE,mBAAsC,erF8yjBxC,CqF9yjBE,aAAsC,WrFkzjBxC,CqFlzjBE,iBAAsC,erFszjBxC,CqFtzjBE,wBAAsC,erF0zjBxC,CqF1zjBE,oBAAsC,erF8zjBxC,CqF9zjBE,6BAAsC,erFk0jBxC,CqFl0jBE,qCAAsC,erFs0jBxC,CqFt0jBE,qBAAsC,erF00jBxC,CqF10jBE,eAAsC,erF80jBxC,CqF90jBE,kCAAsC,erFk1jBxC,CqFl1jBE,2CAAsC,erF01jBxC,CqF11jBE,2BAAsC,erF81jBxC,CqF91jBE,oBAAsC,erFk2jBxC,CqFl2jBE,mBAAsC,erFs2jBxC,CqFt2jBE,mCAAsC,erF82jBxC,CqF92jBE,mBAAsC,erFk3jBxC,CqFl3jBE,kBAAsC,erFs3jBxC,CqFt3jBE,uBAAsC,erF03jBxC,CqF13jBE,8CAAsC,erFk4jBxC,CqFl4jBE,6DAAsC,erF04jBxC,CqF14jBE,wBAAsC,erF84jBxC,CqF94jBE,mCAAsC,erFk5jBxC,CqFl5jBE,uFAAsC,erFk6jBxC,CqFl6jBE,iBAAsC,erFs6jBxC,CqFt6jBE,0CAAsC,erF06jBxC,CqF16jBE,qDAAsC,erFk7jBxC,CqFl7jBE,iDAAsC,erF07jBxC,CqF17jBE,mBAAsC,erF87jBxC,CqF97jBE,4BAAsC,erFk8jBxC,CqFl8jBE,uCAAsC,erF08jBxC,CqF18jBE,kBAAsC,erF88jBxC,CqF98jBE,sBAAsC,erFk9jBxC,CqFl9jBE,uCAAsC,erF09jBxC,CqF19jBE,uBAAsC,erF89jBxC,CqF99jBE,4BAAsC,erFk+jBxC,CqFl+jBE,+BAAsC,erF0+jBxC,CqF1+jBE,wBAAsC,erF8+jBxC,CqF9+jBE,mDAAsC,erFs/jBxC,CqFt/jBE,8EAAsC,erFkgkBxC,CqFlgkBE,kBAAsC,erFsgkBxC,CqFtgkBE,0CAAsC,erF8gkBxC,CqF9gkBE,aAAsC,WrFkhkBxC,CqFlhkBE,yCAAsC,erF0hkBxC,CqF1hkBE,sCAAsC,erFkikBxC,CqFlikBE,gBAAsC,erFsikBxC,CqFtikBE,qBAAsC,erF0ikBxC,CqF1ikBE,iBAAsC,erF8ikBxC,CqF9ikBE,uDAAsC,erFsjkBxC,CqFtjkBE,8BAAsC,erF0jkBxC,CqF1jkBE,sBAAsC,erF8jkBxC,CqF9jkBE,6BAAsC,erFkkkBxC,CqFlkkBE,6BAAsC,erFskkBxC,CqFtkkBE,oCAAsC,erF0kkBxC,CqF1kkBE,4CAAsC,erFklkBxC,CqFllkBE,sBAAsC,erFslkBxC,CqFtlkBE,qBAAsC,erF0lkBxC,CqF1lkBE,0BAAsC,erF8lkBxC,CqF9lkBE,8CAAsC,erFsmkBxC,CqFtmkBE,oBAAsC,erF0mkBxC,CqF1mkBE,eAAsC,erF8mkBxC,CqF9mkBE,gDAAsC,erFsnkBxC,CqFtnkBE,yDAAsC,erF8nkBxC,CqF9nkBE,yGAAsC,erF8okBxC,CqF9okBE,qBAAsC,erFkpkBxC,CqFlpkBE,qBAAsC,erFspkBxC,CqFtpkBE,yDAAsC,erF8pkBxC,CqF9pkBE,qBAAsC,erFkqkBxC,CqFlqkBE,mFAAsC,erF8qkBxC,CqF9qkBE,oBAAsC,erFkrkBxC,CqFlrkBE,yCAAsC,erF0rkBxC,CqF1rkBE,0BAAsC,erF8rkBxC,CqF9rkBE,qBAAsC,erFkskBxC,CqFlskBE,0BAAsC,erFsskBxC,CqFtskBE,8CAAsC,erF8skBxC,CqF9skBE,uBAAsC,erFktkBxC,CqFltkBE,mCAAsC,erFstkBxC,CqFttkBE,mBAAsC,erF0tkBxC,CqF1tkBE,uBAAsC,erF8tkBxC,CqF9tkBE,4DAAsC,erFsukBxC,CqFtukBE,qBAAsC,erF0ukBxC,CqF1ukBE,6DAAsC,erFsvkBxC,CqFtvkBE,wBAAsC,erF0vkBxC,CqF1vkBE,yEAAsC,erFswkBxC,CqFtwkBE,8CAAsC,erF8wkBxC,CqF9wkBE,2CAAsC,erFsxkBxC,CqFtxkBE,qDAAsC,erF8xkBxC,CqF9xkBE,+CAAsC,erFsykBxC,CqFtykBE,sCAAsC,erF0ykBxC,CqF1ykBE,sDAAsC,erFkzkBxC,CqFlzkBE,gBAAsC,erFszkBxC,CqFtzkBE,wBAAsC,erF0zkBxC,CqF1zkBE,iBAAsC,erF8zkBxC,CqF9zkBE,uCAAsC,erFs0kBxC,CqFt0kBE,0BAAsC,erF00kBxC,CqF10kBE,wEAAsC,erFs1kBxC,CqFt1kBE,iBAAsC,erF01kBxC,CqF11kBE,iBAAsC,erF81kBxC,CqF91kBE,4CAAsC,erFs2kBxC,CqFt2kBE,+CAAsC,erF82kBxC,CqF92kBE,wDAAsC,erFs3kBxC,CqFt3kBE,qBAAsC,erF03kBxC,CqF13kBE,sBAAsC,erF83kBxC,CqF93kBE,0CAAsC,erFs4kBxC,CqFt4kBE,wBAAsC,erF04kBxC,CqF14kBE,2BAAsC,erF84kBxC,CqF94kBE,wCAAsC,erFs5kBxC,CqFt5kBE,iBAAsC,erF05kBxC,CqF15kBE,gBAAsC,erF85kBxC,CqF95kBE,0DAAsC,erFs6kBxC,CqFt6kBE,0BAAsC,erF06kBxC,CqF16kBE,0CAAsC,erFk7kBxC,CqFl7kBE,sBAAsC,erFs7kBxC,CqFt7kBE,sBAAsC,erF07kBxC,CqF17kBE,mBAAsC,erF87kBxC,CqF97kBE,qBAAsC,erFk8kBxC,CqFl8kBE,wBAAsC,erFs8kBxC,CqFt8kBE,uBAAsC,erF08kBxC,CqF18kBE,kBAAsC,erF88kBxC,CqF98kBE,eAAsC,erFk9kBxC,CqFl9kBE,8CAAsC,erF09kBxC,CqF19kBE,qBAAsC,erF89kBxC,CqF99kBE,oCAAsC,erFk+kBxC,CqFl+kBE,gBAAsC,erFs+kBxC,CqFt+kBE,wBAAsC,erF0+kBxC,CqF1+kBE,6CAAsC,erFk/kBxC,CqFl/kBE,iBAAsC,erFs/kBxC,CqFt/kBE,4BAAsC,erF0/kBxC,CqF1/kBE,uBAAsC,YrF8/kBxC,CqF9/kBE,uBAAsC,erFkglBxC,CqFlglBE,iBAAsC,erFsglBxC,CqFtglBE,oEAAsC,erFkhlBxC,CqFlhlBE,wDAAsC,YrF8hlBxC,CqF9hlBE,aAAsC,WrFkilBxC,CqFlilBE,4DAAsC,erF0ilBxC,CqF1ilBE,2CAAsC,erFkjlBxC,CqFljlBE,oCAAsC,erFsjlBxC,CqFtjlBE,2GAAsC,erF0klBxC,CqF1klBE,oBAAsC,erF8klBxC,CqF9klBE,kBAAsC,erFkllBxC,CqFlllBE,aAAsC,WrFsllBxC,CqFtllBE,mBAAsC,erF0llBxC,CqF1llBE,kDAAsC,erFkmlBxC,CqFlmlBE,oBAAsC,erFsmlBxC,CqFtmlBE,2BAAsC,erF0mlBxC,CqF1mlBE,qDAAsC,erFknlBxC,CqFlnlBE,8CAAsC,erF0nlBxC,CqF1nlBE,0DAAsC,erFkolBxC,CqFlolBE,mBAAsC,erFsolBxC,CqFtolBE,sBAAsC,erF0olBxC,CqF1olBE,yCAAsC,erFkplBxC,CqFlplBE,kDAAsC,erF0plBxC,CqF1plBE,gCAAsC,erF8plBxC,CqF9plBE,+BAAsC,erFkqlBxC,CqFlqlBE,2CAAsC,erF0qlBxC,C6E3olBE,sFAPA,kBAAsB,CAEtB,cAAe,CANf,UAAW,CAEX,WAAY,CACZ,eAAgB,CAFhB,SAAU,CAHV,iBAAkB,CAOlB,kBAAmB,CANnB,S7EirlBF;;AsF3slBA;;;;EAAA,CAQA,YAEE,sDtF2slBF,CsFxslBA,WAIE,kBF8BwB,CEjCxB,iCACA,iBAAkB,CAClB,eAAgB,CAEhB,kJtF2slBF,CsFvslBA,eAEE,etFyslBF;;AuFjulBA;;;;EAAA,CAQA,YACE,gDACA,wDvFiulBF,CuF9tlBA,WAIE,kBH8BwB,CGjCxB,iCACA,iBAAkB,CAClB,eAAgB,CAEhB,sJvFiulBF,CuF7tlBA,iBAEE,evF+tlBF;;AwFvvlBA;;;;EAAA,CAQA,YACE,iDACA,yDxFuvlBF,CwFpvlBA,WAIE,kBJ8BwB,CIjCxB,mCACA,iBAAkB,CAClB,eAAgB,CAEhB,oJxFuvlBF,CwFnvlBA,gBAEE,exFqvlBF,CwFjvlBE,kBAAqC,exFqvlBvC,CwFrvlBE,iBAAqC,exFyvlBvC,CwFzvlBE,gBAAqC,exF6vlBvC,CwF7vlBE,mBAAqC,exFiwlBvC,CwFjwlBE,kBAAqC,exFqwlBvC,CwFrwlBE,oBAAqC,exFywlBvC,CwFzwlBE,+BAAqC,exF6wlBvC,CwF7wlBE,eAAqC,exFixlBvC,CwFjxlBE,kBAAqC,exFqxlBvC,CwFrxlBE,iBAAqC,exFyxlBvC,CwFzxlBE,sBAAqC,exF6xlBvC,CwF7xlBE,eAAqC,exFiylBvC,CwFjylBE,iBAAqC,exFqylBvC,CwFrylBE,sBAAqC,exFyylBvC,CwFzylBE,kBAAqC,exF6ylBvC,CwF7ylBE,gBAAqC,exFizlBvC,CwFjzlBE,qBAAqC,exFqzlBvC,CwFrzlBE,sBAAqC,exFyzlBvC,CwFzzlBE,uBAAqC,exF6zlBvC,CwF7zlBE,gBAAqC,exFi0lBvC,CwFj0lBE,mBAAqC,exFq0lBvC,CwFr0lBE,eAAqC,exFy0lBvC,CwFz0lBE,0CAAqC,exFi1lBvC,CwFj1lBE,qBAAqC,exFq1lBvC,CwFr1lBE,cAAqC,exFy1lBvC,CwFz1lBE,iBAAqC,exF61lBvC,CwF71lBE,gBAAqC,exFi2lBvC,CwFj2lBE,oBAAqC,exFq2lBvC,CwFr2lBE,mCAAqC,exFy2lBvC,CwFz2lBE,sBAAqC,exF62lBvC,CwF72lBE,mBAAqC,exFi3lBvC,CwFj3lBE,kBAAqC,exFq3lBvC,CwFr3lBE,eAAqC,exFy3lBvC,CwFz3lBE,yBAAqC,exF63lBvC,CwF73lBE,+BAAqC,exFi4lBvC,CwFj4lBE,iBAAqC,exFq4lBvC,CwFr4lBE,iBAAqC,exFy4lBvC,CwFz4lBE,sBAAqC,exF64lBvC,CwF74lBE,cAAqC,exFi5lBvC,CwFj5lBE,mBAAqC,exFq5lBvC,CwFr5lBE,qBAAqC,exFy5lBvC,CwFz5lBE,oBAAqC,exF65lBvC,CwF75lBE,kDAAqC,exFq6lBvC,CwFr6lBE,mBAAqC,exFy6lBvC,CwFz6lBE,kBAAqC,exF66lBvC,CwF76lBE,+BAAqC,exFi7lBvC,CwFj7lBE,mBAAqC,exFq7lBvC,CwFr7lBE,iBAAqC,exFy7lBvC,CwFz7lBE,mBAAqC,exF67lBvC,CwF77lBE,wDAAqC,exFq8lBvC,CwFr8lBE,sBAAqC,exFy8lBvC,CwFz8lBE,wBAAqC,exF68lBvC,CwF78lBE,4DAAqC,exFq9lBvC,CwFr9lBE,gBAAqC,exFy9lBvC,CwFz9lBE,mBAAqC,exF69lBvC,CwF79lBE,mBAAqC,exFi+lBvC,CwFj+lBE,sDAAqC,exFy+lBvC,CwFz+lBE,yBAAqC,exF6+lBvC,CwF7+lBE,sBAAqC,exFi/lBvC,CwFj/lBE,oBAAqC,exFq/lBvC,CwFr/lBE,sBAAqC,exFy/lBvC,CwFz/lBE,uBAAqC,exF6/lBvC,CwF7/lBE,oBAAqC,exFigmBvC,CwFjgmBE,sBAAqC,exFqgmBvC,CwFrgmBE,0BAAqC,exFygmBvC,CwFzgmBE,sBAAqC,exF6gmBvC,CwF7gmBE,4BAAqC,exFihmBvC,CwFjhmBE,qBAAqC,exFqhmBvC,CwFrhmBE,mBAAqC,exFyhmBvC,CwFzhmBE,qBAAqC,exF6hmBvC,CwF7hmBE,+BAAqC,exFiimBvC,CwFjimBE,kBAAqC,exFqimBvC,CwFrimBE,kBAAqC,exFyimBvC,CwFzimBE,kEAAqC,exFijmBvC,CwFjjmBE,qBAAqC,exFqjmBvC,CwFrjmBE,uBAAqC,exFyjmBvC,CwFzjmBE,yBAAqC,exF6jmBvC,CwF7jmBE,kBAAqC,exFikmBvC,CwFjkmBE,sBAAqC,exFqkmBvC,CwFrkmBE,oBAAqC,exFykmBvC,CwFzkmBE,uBAAqC,exF6kmBvC,CwF7kmBE,qCAAqC,exFilmBvC,CwFjlmBE,oBAAqC,exFqlmBvC,CwFrlmBE,4BAAqC,exFylmBvC,CwFzlmBE,+BAAqC,exF6lmBvC,CwF7lmBE,qBAAqC,exFimmBvC,CwFjmmBE,kBAAqC,exFqmmBvC,CwFrmmBE,wBAAqC,exFymmBvC,CwFzmmBE,mBAAqC,exF6mmBvC,CwF7mmBE,mBAAqC,exFinmBvC,CwFjnmBE,gBAAqC,exFqnmBvC,CwFrnmBE,eAAqC,exFynmBvC,CwFznmBE,mBAAqC,exF6nmBvC,CwF7nmBE,gCAAqC,exFiomBvC,CwFjomBE,kDAAqC,exFyomBvC,CwFzomBE,kBAAqC,exF6omBvC,CwF7omBE,kBAAqC,exFipmBvC,CwFjpmBE,eAAqC,exFqpmBvC,CwFrpmBE,sBAAqC,exFypmBvC,CwFzpmBE,oBAAqC,exF6pmBvC,CwF7pmBE,0BAAqC,exFiqmBvC,CwFjqmBE,sDAAqC,exFyqmBvC,CwFzqmBE,oBAAqC,exF6qmBvC,CwF7qmBE,gBAAqC,exFirmBvC,CwFjrmBE,eAAqC,exFqrmBvC,CwFrrmBE,iBAAqC,exFyrmBvC,CwFzrmBE,wBAAqC,exF6rmBvC,CwF7rmBE,kBAAqC,exFismBvC,CwFjsmBE,kBAAqC,exFqsmBvC,CwFrsmBE,kBAAqC,exFysmBvC,CwFzsmBE,oBAAqC,exF6smBvC,CwF7smBE,wBAAqC,exFitmBvC,CwFjtmBE,oBAAqC,exFqtmBvC,CwFrtmBE,oDAAqC,exF6tmBvC,CwF7tmBE,qBAAqC,exFiumBvC,CwFjumBE,qBAAqC,exFqumBvC,CwFrumBE,mBAAqC,exFyumBvC,CwFzumBE,iBAAqC,exF6umBvC,CwF7umBE,oBAAqC,exFivmBvC,CwFjvmBE,mBAAqC,exFqvmBvC,CwFrvmBE,wBAAqC,exFyvmBvC,CwFzvmBE,qBAAqC,exF6vmBvC,CwF7vmBE,yBAAqC,exFiwmBvC,CwFjwmBE,uBAAqC,exFqwmBvC,CwFrwmBE,kBAAqC,exFywmBvC,CwFzwmBE,qDAAqC,exFixmBvC,CwFjxmBE,gBAAqC,exFqxmBvC,CwFrxmBE,iBAAqC,exFyxmBvC,CwFzxmBE,qBAAqC,exF6xmBvC,CwF7xmBE,sBAAqC,exFiymBvC,CwFjymBE,oDAAqC,exFyymBvC,CwFzymBE,uBAAqC,exF6ymBvC,CwF7ymBE,sCAAqC,exFqzmBvC,CwFrzmBE,qBAAqC,exFyzmBvC,CwFzzmBE,6BAAqC,exF6zmBvC,CwF7zmBE,2BAAqC,exFi0mBvC,CwFj0mBE,iBAAqC,exFq0mBvC,CwFr0mBE,iBAAqC,exFy0mBvC,CwFz0mBE,kBAAqC,exF60mBvC,CwF70mBE,oBAAqC,exFi1mBvC,CwFj1mBE,gBAAqC,exFq1mBvC,CwFr1mBE,mBAAqC,exFy1mBvC,CwFz1mBE,kBAAqC,exF61mBvC,CwF71mBE,uBAAqC,exFi2mBvC,CwFj2mBE,6BAAqC,exFq2mBvC,CwFr2mBE,wBAAqC,exFy2mBvC,CwFz2mBE,iCAAqC,exF62mBvC,CwF72mBE,gBAAqC,exFi3mBvC,CwFj3mBE,mBAAqC,exFq3mBvC,CwFr3mBE,kBAAqC,exFy3mBvC,CwFz3mBE,mBAAqC,exF63mBvC,CwF73mBE,kBAAqC,exFi4mBvC,CwFj4mBE,yBAAqC,exFq4mBvC,CwFr4mBE,uBAAqC,exFy4mBvC,CwFz4mBE,sBAAqC,exF64mBvC,CwF74mBE,sBAAqC,exFi5mBvC,CwFj5mBE,oBAAqC,exFq5mBvC,CwFr5mBE,eAAqC,exFy5mBvC,CwFz5mBE,kBAAqC,exF65mBvC,CwF75mBE,2BAAqC,exFi6mBvC,CwFj6mBE,gBAAqC,exFq6mBvC,CwFr6mBE,kBAAqC,exFy6mBvC,CwFz6mBE,oBAAqC,exF66mBvC,CwF76mBE,gBAAqC,exFi7mBvC,CwFj7mBE,gDAAqC,exFy7mBvC,CwFz7mBE,iBAAqC,exF67mBvC,CwF77mBE,gDAAqC,exFq8mBvC,CwFr8mBE,sBAAqC,exFy8mBvC,CwFz8mBE,uFAAqC,exFq9mBvC,CwFr9mBE,oBAAqC,exFy9mBvC,CwFz9mBE,iBAAqC,exF69mBvC,CwF79mBE,gBAAqC,exFi+mBvC,CwFj+mBE,qBAAqC,exFq+mBvC,CwFr+mBE,mBAAqC,exFy+mBvC,CwFz+mBE,qBAAqC,exF6+mBvC,CwF7+mBE,kBAAqC,exFi/mBvC,CwFj/mBE,sBAAqC,exFq/mBvC,CwFr/mBE,kDAAqC,exF6/mBvC,CwF7/mBE,uBAAqC,exFignBvC,CwFjgnBE,iBAAqC,exFqgnBvC,CwFrgnBE,6BAAqC,exFygnBvC,CwFzgnBE,mBAAqC,exF6gnBvC,CwF7gnBE,gBAAqC,exFihnBvC,CwFjhnBE,0BAAqC,exFqhnBvC,CwFrhnBE,sBAAqC,exFyhnBvC,CwFzhnBE,wBAAqC,exF6hnBvC,CwF7hnBE,iBAAqC,exFiinBvC,CwFjinBE,mBAAqC,exFqinBvC,CwFrinBE,mBAAqC,exFyinBvC,CwFzinBE,yBAAqC,exF6inBvC,CwF7inBE,wBAAqC,exFijnBvC,CwFjjnBE,kBAAqC,exFqjnBvC,CwFrjnBE,kBAAqC,exFyjnBvC,CwFzjnBE,0BAAqC,exF6jnBvC,CwF7jnBE,kDAAqC,exFqknBvC,CwFrknBE,wBAAqC,exFyknBvC,CwFzknBE,sBAAqC,exF6knBvC,CwF7knBE,qBAAqC,exFilnBvC,CwFjlnBE,wBAAqC,exFqlnBvC,CwFrlnBE,mBAAqC,exFylnBvC,CwFzlnBE,kBAAqC,exF6lnBvC,CwF7lnBE,qBAAqC,exFimnBvC,CwFjmnBE,gEAAqC,exFymnBvC,CwFzmnBE,oBAAqC,exF6mnBvC,CwF7mnBE,gBAAqC,exFinnBvC,CwFjnnBE,qBAAqC,exFqnnBvC,CwFrnnBE,iBAAqC,exFynnBvC,CwFznnBE,oBAAqC,exF6nnBvC,CwF7nnBE,iBAAqC,exFionBvC,CwFjonBE,qBAAqC,exFqonBvC,CwFronBE,uBAAqC,exFyonBvC,CwFzonBE,qBAAqC,exF6onBvC,CwF7onBE,kCAAqC,exFipnBvC,CwFjpnBE,mBAAqC,exFqpnBvC,CwFrpnBE,kBAAqC,exFypnBvC,CwFzpnBE,iBAAqC,exF6pnBvC,CwF7pnBE,mBAAqC,exFiqnBvC,CwFjqnBE,mBAAqC,exFqqnBvC,CwFrqnBE,2BAAqC,exFyqnBvC,CwFzqnBE,kBAAqC,exF6qnBvC,CwF7qnBE,yBAAqC,exFirnBvC,CwFjrnBE,kBAAqC,exFqrnBvC,CwFrrnBE,iBAAqC,exFyrnBvC,CwFzrnBE,cAAqC,exF6rnBvC,CwF7rnBE,eAAqC,exFisnBvC,CwFjsnBE,wDAAqC,exFysnBvC,CwFzsnBE,gBAAqC,exF6snBvC,CwF7snBE,sBAAqC,exFitnBvC,CwFjtnBE,+BAAqC,exFqtnBvC,CwFrtnBE,uBAAqC,exFytnBvC,CwFztnBE,qBAAqC,exF6tnBvC,CwF7tnBE,gBAAqC,exFiunBvC,CwFjunBE,qBAAqC,exFqunBvC,CwFrunBE,oBAAqC,exFyunBvC,CwFzunBE,gBAAqC,exF6unBvC,CwF7unBE,4BAAqC,exFivnBvC,CwFjvnBE,kBAAqC,exFqvnBvC,CwFrvnBE,kBAAqC,exFyvnBvC,CwFzvnBE,iBAAqC,exF6vnBvC,CwF7vnBE,wBAAqC,exFiwnBvC,CwFjwnBE,iBAAqC,exFqwnBvC,CwFrwnBE,uBAAqC,exFywnBvC,CwFzwnBE,0BAAqC,exF6wnBvC,CwF7wnBE,yBAAqC,exFixnBvC,CwFjxnBE,qBAAqC,exFqxnBvC,CwFrxnBE,yBAAqC,exFyxnBvC,CwFzxnBE,sBAAqC,exF6xnBvC,CwF7xnBE,mBAAqC,exFiynBvC,CwFjynBE,oBAAqC,exFqynBvC,CwFrynBE,wBAAqC,exFyynBvC,CwFzynBE,kCAAqC,exF6ynBvC,CwF7ynBE,mBAAqC,exFiznBvC,CwFjznBE,mBAAqC,exFqznBvC,CwFrznBE,gBAAqC,exFyznBvC,CwFzznBE,kBAAqC,exF6znBvC,CwF7znBE,qBAAqC,exFi0nBvC,CwFj0nBE,yBAAqC,exFq0nBvC,CwFr0nBE,sBAAqC,exFy0nBvC,CwFz0nBE,4DAAqC,exFi1nBvC,CwFj1nBE,uBAAqC,exFq1nBvC,CwFr1nBE,uBAAqC,exFy1nBvC,CwFz1nBE,2BAAqC,exF61nBvC,CwF71nBE,eAAqC,exFi2nBvC,CwFj2nBE,yBAAqC,exFq2nBvC,CwFr2nBE,0BAAqC,exFy2nBvC,CwFz2nBE,qBAAqC,exF62nBvC,CwF72nBE,mBAAqC,exFi3nBvC,CwFj3nBE,sBAAqC,exFq3nBvC,CwFr3nBE,oBAAqC,exFy3nBvC,CwFz3nBE,kBAAqC,exF63nBvC,CwF73nBE,kBAAqC,exFi4nBvC,CwFj4nBE,8CAAqC,exFy4nBvC,CwFz4nBE,oBAAqC,exF64nBvC,CwF74nBE,mBAAqC,exFi5nBvC,CwFj5nBE,wBAAqC,exFq5nBvC,CwFr5nBE,gBAAqC,exFy5nBvC,CwFz5nBE,oBAAqC,exF65nBvC,CwF75nBE,mBAAqC,exFi6nBvC,CwFj6nBE,mBAAqC,exFq6nBvC,CwFr6nBE,yBAAqC,exFy6nBvC,CwFz6nBE,eAAqC,exF66nBvC,CwF76nBE,kBAAqC,exFi7nBvC,CwFj7nBE,kBAAqC,exFq7nBvC,CwFr7nBE,sBAAqC,exFy7nBvC,CwFz7nBE,mBAAqC,exF67nBvC,CwF77nBE,kBAAqC,exFi8nBvC,CwFj8nBE,iBAAqC,exFq8nBvC,CwFr8nBE,sBAAqC,exFy8nBvC,CwFz8nBE,gBAAqC,exF68nBvC,CwF78nBE,yBAAqC,exFi9nBvC,CwFj9nBE,sBAAqC,exFq9nBvC,CwFr9nBE,mBAAqC,exFy9nBvC,CwFz9nBE,kBAAqC,exF69nBvC,CwF79nBE,gBAAqC,exFi+nBvC,CwFj+nBE,8BAAqC,exFq+nBvC,CwFr+nBE,mBAAqC,exFy+nBvC,CwFz+nBE,uBAAqC,exF6+nBvC,CwF7+nBE,oBAAqC,exFi/nBvC,CwFj/nBE,kBAAqC,exFq/nBvC,CwFr/nBE,qBAAqC,exFy/nBvC,CwFz/nBE,yBAAqC,exF6/nBvC,CwF7/nBE,oBAAqC,exFigoBvC,CwFjgoBE,wCAAqC,exFygoBvC,CwFzgoBE,0BAAqC,exF6goBvC,CwF7goBE,qBAAqC,exFihoBvC,CwFjhoBE,0DAAqC,exFyhoBvC,CwFzhoBE,+BAAqC,exF6hoBvC,CwF7hoBE,kBAAqC,exFiioBvC,CwFjioBE,uBAAqC,exFqioBvC,CwFrioBE,qBAAqC,exFyioBvC,CwFzioBE,gBAAqC,exF6ioBvC,CwF7ioBE,qCAAqC,exFijoBvC,CwFjjoBE,uBAAqC,exFqjoBvC,CwFrjoBE,kBAAqC,exFyjoBvC,CwFzjoBE,sDAAqC,exFikoBvC,CwFjkoBE,kBAAqC,exFqkoBvC,CwFrkoBE,iBAAqC,exFykoBvC,CwFzkoBE,iBAAqC,exF6koBvC,CwF7koBE,oBAAqC,exFiloBvC,CwFjloBE,mBAAqC,exFqloBvC,CwFrloBE,qBAAqC,exFyloBvC,CwFzloBE,kBAAqC,exF6loBvC,CwF7loBE,mBAAqC,exFimoBvC,CwFjmoBE,iBAAqC,exFqmoBvC,CwFrmoBE,kDAAqC,exF6moBvC,CwF7moBE,iBAAqC,exFinoBvC,CwFjnoBE,oBAAqC,exFqnoBvC,CwFrnoBE,uBAAqC,exFynoBvC,CwFznoBE,iBAAqC,exF6noBvC,CwF7noBE,kCAAqC,exFiooBvC,CwFjooBE,yBAAqC,exFqooBvC,CwFrooBE,mBAAqC,exFyooBvC,CwFzooBE,qBAAqC,exF6ooBvC,CwF7ooBE,kBAAqC,exFipoBvC,CwFjpoBE,kBAAqC,exFqpoBvC,CwFrpoBE,oBAAqC,exFypoBvC,CwFzpoBE,oBAAqC,exF6poBvC,CwF7poBE,sBAAqC,exFiqoBvC,CwFjqoBE,iBAAqC,exFqqoBvC,CwFrqoBE,4BAAqC,exFyqoBvC,CwFzqoBE,uBAAqC,exF6qoBvC,CwF7qoBE,oBAAqC,exFiroBvC,CwFjroBE,sBAAqC,exFqroBvC,CwFrroBE,4BAAqC,exFyroBvC,CwFzroBE,wBAAqC,exF6roBvC,CwF7roBE,oBAAqC,exFisoBvC,CwFjsoBE,yBAAqC,exFqsoBvC,CwFrsoBE,sBAAqC,exFysoBvC,CwFzsoBE,uBAAqC,exF6soBvC,CwF7soBE,kBAAqC,exFitoBvC,CwFjtoBE,gBAAqC,exFqtoBvC,CwFrtoBE,wBAAqC,exFytoBvC,CwFztoBE,wBAAqC,exF6toBvC,CwF7toBE,uBAAqC,exFiuoBvC,CwFjuoBE,qBAAqC,exFquoBvC,CwFruoBE,gBAAqC,exFyuoBvC,CwFzuoBE,kBAAqC,exF6uoBvC,CwF7uoBE,wBAAqC,exFivoBvC,CwFjvoBE,gBAAqC,exFqvoBvC,CwFrvoBE,kBAAqC,exFyvoBvC,CwFzvoBE,qBAAqC,exF6voBvC,CwF7voBE,qBAAqC,exFiwoBvC,CwFjwoBE,kBAAqC,exFqwoBvC,CwFrwoBE,mBAAqC,exFywoBvC,CwFzwoBE,qBAAqC,exF6woBvC,CwF7woBE,0BAAqC,exFixoBvC,CwFjxoBE,qBAAqC,exFqxoBvC,CwFrxoBE,0BAAqC,exFyxoBvC,CwFzxoBE,yBAAqC,exF6xoBvC,CwF7xoBE,kBAAqC,exFiyoBvC,CwFjyoBE,kBAAqC,exFqyoBvC,CwFryoBE,iBAAqC,exFyyoBvC,CwFzyoBE,kBAAqC,exF6yoBvC,CwF7yoBE,8BAAqC,exFizoBvC,CwFjzoBE,gBAAqC,exFqzoBvC,CwFrzoBE,0CAAqC,exF6zoBvC,CwF7zoBE,4BAAqC,exFi0oBvC,CwFj0oBE,sBAAqC,exFq0oBvC,CwFr0oBE,0BAAqC,exFy0oBvC,CwFz0oBE,mBAAqC,exF60oBvC,CwF70oBE,eAAqC,exFi1oBvC,CwFj1oBE,uBAAqC,exFq1oBvC,CwFr1oBE,iBAAqC,exFy1oBvC,CwFz1oBE,wBAAqC,exF61oBvC,CwF71oBE,gBAAqC,exFi2oBvC,CwFj2oBE,mBAAqC,exFq2oBvC,CwFr2oBE,kBAAqC,exFy2oBvC,CwFz2oBE,8CAAqC,exFi3oBvC,CwFj3oBE,gCAAqC,exFq3oBvC,CwFr3oBE,gBAAqC,exFy3oBvC,CwFz3oBE,eAAqC,exF63oBvC,CwF73oBE,oDAAqC,exFq4oBvC,CwFr4oBE,kBAAqC,exFy4oBvC,CwFz4oBE,mBAAqC,exF64oBvC,CwF74oBE,iBAAqC,exFi5oBvC,CwFj5oBE,gBAAqC,exFq5oBvC,CwFr5oBE,sBAAqC,exFy5oBvC,CwFz5oBE,kBAAqC,exF65oBvC,CwF75oBE,yBAAqC,exFi6oBvC,CwFj6oBE,sBAAqC,exFq6oBvC,CwFr6oBE,kBAAqC,exFy6oBvC,CwFz6oBE,uBAAqC,exF66oBvC,CwF76oBE,4CAAqC,exFq7oBvC,CwFr7oBE,kDAAqC,exF67oBvC,CwF77oBE,kBAAqC,exFi8oBvC,CwFj8oBE,kCAAqC,exFq8oBvC,CwFr8oBE,sBAAqC,exFy8oBvC,CwFz8oBE,mBAAqC,exF68oBvC,CwF78oBE,iBAAqC,exFi9oBvC,CwFj9oBE,kBAAqC,exFq9oBvC,CwFr9oBE,0BAAqC,exFy9oBvC,CwFz9oBE,mBAAqC,exF69oBvC,CwF79oBE,qBAAqC,exFi+oBvC,CwFj+oBE,mBAAqC,exFq+oBvC,CwFr+oBE,kBAAqC,exFy+oBvC,CwFz+oBE,mBAAqC,exF6+oBvC,CwF7+oBE,gBAAqC,exFi/oBvC,CwFj/oBE,0BAAqC,exFq/oBvC,CwFr/oBE,oBAAqC,exFy/oBvC,CwFz/oBE,cAAqC,exF6/oBvC,CwF7/oBE,iBAAqC,exFigpBvC,CwFjgpBE,eAAqC,exFqgpBvC,CwFrgpBE,eAAqC,exFygpBvC,CwFzgpBE,kBAAqC,exF6gpBvC,CwF7gpBE,gCAAqC,exFihpBvC,CwFjhpBE,mBAAqC,exFqhpBvC,CwFrhpBE,gBAAqC,exFyhpBvC,CwFzhpBE,kBAAqC,exF6hpBvC,CwF7hpBE,eAAqC,exFiipBvC,CwFjipBE,kBAAqC,exFqipBvC,CwFripBE,mBAAqC,exFyipBvC,CwFzipBE,oBAAqC,exF6ipBvC,CwF7ipBE,2BAAqC,exFijpBvC,CwFjjpBE,kBAAqC,exFqjpBvC,CwFrjpBE,gBAAqC,exFyjpBvC,CwFzjpBE,mBAAqC,exF6jpBvC,CwF7jpBE,mBAAqC,exFikpBvC,CwFjkpBE,mBAAqC,exFqkpBvC,CwFrkpBE,qBAAqC,exFykpBvC,CwFzkpBE,kBAAqC,exF6kpBvC,CwF7kpBE,eAAqC,exFilpBvC,CwFjlpBE,kBAAqC,exFqlpBvC,CwFrlpBE,eAAqC,exFylpBvC,CwFzlpBE,oBAAqC,exF6lpBvC,CwF7lpBE,8BAAqC,exFimpBvC,CwFjmpBE,6BAAqC,exFqmpBvC,CwFrmpBE,mBAAqC,exFympBvC,CwFzmpBE,8CAAqC,exFinpBvC,CwFjnpBE,wBAAqC,exFqnpBvC,CwFrnpBE,kBAAqC,exFynpBvC,CwFznpBE,sDAAqC,exFiopBvC,CwFjopBE,mBAAqC,exFqopBvC,CwFropBE,uBAAqC,exFyopBvC,CwFzopBE,uCAAqC,exFippBvC,CwFjppBE,iBAAqC,exFqppBvC,CwFrppBE,eAAqC,exFyppBvC,CwFzppBE,kBAAqC,exF6ppBvC,CwF7ppBE,kBAAqC,exFiqpBvC,CwFjqpBE,iBAAqC,exFqqpBvC,CwFrqpBE,4BAAqC,exFyqpBvC,CwFzqpBE,uBAAqC,exF6qpBvC,CwF7qpBE,sCAAqC,exFqrpBvC,CwFrrpBE,kBAAqC,exFyrpBvC,CwFzrpBE,oBAAqC,exF6rpBvC,CwF7rpBE,qBAAqC,exFispBvC,CwFjspBE,mBAAqC,exFqspBvC,CwFrspBE,yBAAqC,exFyspBvC,CwFzspBE,kBAAqC,exF6spBvC,CwF7spBE,qBAAqC,exFitpBvC,CwFjtpBE,kBAAqC,exFqtpBvC,CwFrtpBE,oBAAqC,exFytpBvC,CwFztpBE,kBAAqC,exF6tpBvC,CwF7tpBE,+BAAqC,exFiupBvC,CwFjupBE,uBAAqC,exFqupBvC,CwFrupBE,gBAAqC,exFyupBvC,CwFzupBE,0CAAqC,exF6upBvC,CwF7upBE,kBAAqC,exFivpBvC,CwFjvpBE,iBAAqC,exFqvpBvC,CwFrvpBE,+BAAqC,exFyvpBvC,CwFzvpBE,qBAAqC,exF6vpBvC,CwF7vpBE,kBAAqC,exFiwpBvC,CwFjwpBE,4BAAqC,exFqwpBvC,CwFrwpBE,uBAAqC,exFywpBvC,CwFzwpBE,gBAAqC,exF6wpBvC,CwF7wpBE,sBAAqC,exFixpBvC,CwFjxpBE,oBAAqC,exFqxpBvC,CwFrxpBE,iBAAqC,exFyxpBvC,CwFzxpBE,kBAAqC,exF6xpBvC,CwF7xpBE,eAAqC,exFiypBvC,CwFjypBE,wBAAqC,exFqypBvC,CyFj0pBA,KAOE,wBAAyB,CACzB,8DAAmE,CACnE,6BAA8B,CCH9B,yBAA0B,CAI1B,2BAA4B,CAC5B,2BAA4B,CAC5B,0BAA2B,CAC3B,yBAA0B,CAC1B,0BAA2B,CAC3B,uBAAwB,CAGxB,4BAA6B,CAG7B,8BAA+B,CAC/B,qCAAsC,CACtC,qCAAsC,CACtC,oCAAqC,CAGrC,wCAAyC,CAGzC,6BAA8B,CAC9B,6BAA8B,CAI9B,uKAGA,6HAEA,yDAA0D,CAC1D,4DAA6D,CAC7D,mEAAoE,CCpCpE,2BAA4B,CAG5B,4BACA,2BACA,oCACA,kCACA,4BACA,yBACA,wBACA,0BACA,2BACA,6BACA,4BACA,sBACA,sBACA,qBACA,oBACA,sBAGA,6BCtBA,kDAAmD,CACnD,sDAAuD,CACvD,kEAAmE,CACnE,kEAAmE,CACnE,kEAAmE,CACnE,iEAAkE,CAClE,wDAAyD,CACzD,oDAAqD,CACrD,mDAAoD,CACpD,kEAAmE,CACnE,mDAAoD,CACpD,iDAAkD,CCXlD,qEAAsE,CACtE,mEAAoE,CACpE,qEAAsE,CACtE,wEAAyE,CCPzE,mCAAoC,CACpC,wD9Fw0pBF,C8Fr0pBA,KACE,4CAA6C,CAI7C,gCAAiC,CAEjC,YAAa,CACb,qBAAsB,CANtB,uCAAwC,CACxC,eAAgB,CAChB,gBJoCiB,CIlCjB,gB9F8wqBF,C8FzwqBE,8BACE,4C9F2wqBJ,C8FvwqBA,EAEE,aAAc,CADd,qB9F4wqBF,C8FxwqBE,SACE,+C9F0wqBJ,C8FvwqBE,WACE,iB9FywqBJ,C8FrwqBA,ECkCE,oBAAqB,CACrB,2BAA4B,CAvC5B,yBAA0B,CAGxB,2CAvBuB,CA2BvB,6B/F0wqBJ,C+FtuqBE,QACE,iCAAkC,CA1BlC,6BAA8B,CAH9B,iD/FuwqBJ,C+F/tqBE,mBACE,2B/FouqBJ,C+FluqBI,gBACE,iC/FouqBN,C8FvxqBE,aACE,gCAAiC,CACjC,cAAgB,CAEhB,gBAAkB,CADlB,aAAc,CAEd,oBAAqB,CACrB,gB9FyxqBJ,C8FnxqBI,gCACE,iCAAkC,CAClC,0BAA2B,CAC3B,mB9FqxqBN,C8FjxqBE,gBACE,8B9FmxqBJ,C8FhxqBE,gBACE,8B9FkxqBJ,C8F9wqBA,0CAEE,0CAA2C,CAC3C,0CAA2C,CAC3C,gBAAiB,CAHjB,wB9FoxqBF,C8F9wqBA,OAIE,iCAAkC,CADlC,Y9FixqBF,C8F5wqBA,cAHE,8B9FoxqBF,C8FjxqBA,OAGE,iC9F8wqBF,C8F1wqBA,OAGE,iC9F4wqBF,C8FxwqBA,cAHE,8B9FgxqBF,C8F7wqBA,OAGE,iC9F0wqBF,C8FtwqBA,OAGE,iC9FwwqBF,C8FpwqBA,cAHE,gC9F4wqBF,C8FzwqBA,OAGE,iC9FswqBF,C8FlwqBA,yBAEE,oC9FqwqBF,C8FlwqBA,GACE,QAAS,CACT,4C9FqwqBF,C8FlwqBA,kBAIE,4C9FqwqBF,C8FlwqBA,IAEE,+CAAgD,CAChD,iC9FowqBF,C8FjwqBE,mBACE,wCAAyC,CAGzC,8CAA+C,CAF/C,cAAgB,CAChB,mB9FowqBJ,C8F/vqBA,KACE,kC9FkwqBF,C8F/vqBA,IAGE,yCAA0C,CAG1C,wCAAyC,CACzC,oBL/HyB,CK4HzB,gCAAiC,CACjC,iBAAkB,CAJlB,cAAe,CACf,Y9FuwqBF,C8FhwqBE,aAEE,UAAY,CACZ,kB9FiwqBJ,C8F5vqBA,iBASE,2CAA4C,CAC5C,WAAY,CAFZ,qCAAsC,CAJtC,YAAa,CAEb,SAAU,CAHV,cAAe,CAEf,QAAS,CAET,yBAA0B,CAL1B,Y9FswqBF,C8F5vqBE,8BAGE,sB9F4vqBJ,C8FzvqBE,uBAIE,qDAAsD,CCnIxD,iCAAkC,CDoIhC,+CAAgD,CCjKlD,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CDsK9B,6BAA8B,CCxJ9B,6B/Fy5qBJ,C8F5vqBE,+BACE,eAAgB,CAChB,8CrFnKiB,CqFoKjB,wCAAyC,CACzC,uB9F8vqBJ,C8FrvqBA,eAEE,eAAgB,CADhB,8C9FyvqBF,CgGn8qBA,WAME,yCAA0C,CAG1C,+CAAgD,CANhD,MAAO,CAIP,aAAe,CANf,cAAe,CAGf,OAAQ,CACR,iBAAkB,CAHlB,KAAM,CAUN,2BAA4B,CAC5B,qCAAuC,CALvC,YhG+8qBF,CgGx8qBE,wBACE,uBhG08qBJ,CgGv8qBE,aAEE,6ChGw8qBJ,CgGt8qBI,2BAEE,qBhGu8qBN,CiGv+qBA,cAEE,YAAa,CADb,WAAY,CAEZ,sBjG0+qBF,CiGx+qBE,mCACE,YjG0+qBJ,CiGt+qBA,eACE,UjGy+qBF,Ccr7qBI,yBmFrDJ,eAII,ejG0+qBF,CACF,CkGz/qBA,2BAGE,QAAS,CACT,eAAgB,CAIhB,iClGu/qBF,CkGr/qBE,gCAVF,2BAWI,elGw/qBF,CACF,CkGr/qBA,mDAME,kBAAmB,CAFnB,YAAa,CAGb,sBAAuB,CALvB,eAAgB,CAOhB,mBAAqB,CAJrB,iBAAkB,CAGlB,iBAAkB,CALlB,UlG8/qBF,Ccp8qBI,4BoF7DJ,mDAaI,gBlGy/qBF,CACF,CkGv/qBE,uDACE,eAAiB,CACjB,QlG0/qBJ,CkGt/qBE,uDACE,wClGy/qBJ,CkGr/qBE,yHAOE,wCAJmB,CAKnB,oCALmB,CAOnB,oBAAsB,CC5CxB,+FACE,CD0CA,kClGo/qBJ,CkGj/qBI,qIAKE,kDAbuB,CAcvB,8CAduB,CHc3B,iCAAkC,CGC9B,4CAA6C,CH9BjD,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CGkC5B,6BAA8B,CHpBhC,6B/F8grBJ,CkGp/qBI,qJACE,+CACA,uBlGu/qBN,CkGj/qBA,wBACE,8ClGo/qBF,CkGj/qBA,2BACE,2ClGo/qBF,CoG9jrBA,SAGE,YAAa,CADb,qBAAsB,CADtB,WAAY,CAGZ,WpGokrBF,CoGlkrBE,qBACE,YAAa,CAEb,WAAY,CADZ,sBpGqkrBJ,CoGlkrBI,2CAEE,YAAa,CACb,qBAAsB,CAFtB,qBAAsB,CAQtB,cAAe,CACf,eAAgB,CAChB,YAAa,CAHb,UpGmkrBN,Cc1hrBI,0BsFpCE,uDAII,iBAAkB,CADlB,kBpGgkrBR,CACF,CqG/lrBA,WAEE,4CAA6C,CAD7C,UrGmmrBF,CqGhmrBE,6BACE,YAAa,CACb,WAAY,CAEZ,WAAY,CADZ,YrGmmrBJ,CqG/lrBE,+FAGE,YAAa,CACb,qBAAsB,CAGtB,WAAY,CAFZ,SAAW,CACX,sBrGkmrBJ,CqG9lrBE,iCACE,iBrGgmrBJ,CqG7lrBE,8BACE,crG+lrBJ,CqG3lrBE,0BACE,erG6lrBJ,CsG5nrBA,mBACE,etG+nrBF,CsG7nrBE,yCACE,YAAa,CACb,qBtG+nrBJ,CuGnorBE,yCACE,YAAa,CACb,qBAAsB,CACtB,evGsorBJ,CwGjorBA,WAME,yDAA2D,CAC3D,qDAAwD,CAIxD,sBAAuB,CADvB,eAAgB,CADhB,SAAU,CARV,eAAgB,CAChB,KAAM,CAMN,UAAW,CALX,YxG8orBF,CwGporBE,6BAEE,kBAAmB,CADnB,YAAa,CAEb,kBAAmB,CACnB,iBAAkB,CAClB,kBxGsorBJ,CwGnorBE,0BACE,qBxGqorBJ,CwGjorBE,wBAIE,kBAAmB,CADnB,YAAa,CAFb,+BAAgC,CAChC,mCxGqorBJ,CwG/nrBE,gCACE,YAAa,CACb,axGiorBJ,Cc/mrBI,yB0FpBF,gCAKI,eAAgB,CAChB,WAAY,CACZ,mBxGkorBJ,CACF,CwG/nrBE,oHAIE,kBAAmB,CADnB,YAAa,CAEb,cAAe,CAGf,SxG+nrBJ,CwG5nrBE,6EAEE,kBxG8nrBJ,CwG1nrBE,uCACE,aAAc,CAEd,SAAW,CADX,iBxG6nrBJ,CwGznrBE,qCAEE,mBxG0nrBJ,CwGtnrBE,yBACE,YxGwnrBJ,Cc7orBI,yB0FoBF,yBAKI,oBxGwnrBJ,CACF,CwGtnrBI,qCACE,iBxGwnrBN,CwGtnrBM,+CT0FJ,iCAAkC,CSvF5B,kBAAmB,CT2FzB,iB/F6hrBF,C+F1hrBE,sDAKE,4BAA6B,CAJ7B,UAAW,CACX,aAAc,CAEd,OAAQ,CAIN,0CACA,iCANF,iB/FgirBJ,C+FthrBE,qDACE,gCAAiC,CACjC,oB/FwhrBJ,C+FvhrBI,4DAEI,sE/FwhrBR,C+FjhrBE,6DACE,eAAgB,CAChB,yCAA0C,CAC1C,uB/FmhrBJ,CwGzorBQ,uDACE,8BxG2orBV,CwGxorBU,8DACE,gDxG0orBZ,CwGrorBM,8CACE,iBxGuorBR,CwGrorBQ,qDACE,kBxGuorBV,CwGporBQ,+DACE,qBfnFU,CeoFV,iCxGsorBV,CwGporBU,6EACE,iDxGsorBZ,CwGnorBU,qEAEE,sDAEA,gCAAiC,CAHjC,oBxGuorBZ,CwG9nrBI,qDTpCF,iCAAkC,CAClC,oB/FqqrBF,C+FnqrBE,2DACE,iCAAkC,CAzEpC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CAc9B,6B/F4urBJ,CwGporBM,0CAEE,WAAY,CADZ,axGuorBR,CwGporBQ,gDTtFN,iCAAkC,CA7BlC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CAc9B,6B/FwvrBJ,CwGvorBM,kDAIE,+CAAgD,CAFhD,wCAAyC,CACzC,kDAAqD,CAGrD,cAAgB,CAChB,eAAgB,CAFhB,eAAiB,CAJjB,YxG+orBR,CwGvorBQ,iEAGE,qBxGuorBV,CwGporBU,2FACE,wBxGsorBZ,CwGnorBU,+EACE,UxGqorBZ,CwGhorBQ,6DACE,YxGkorBV,CwGvnrBE,iCAIE,wBAAyB,CAFzB,4BAA6B,CAD7B,mCAAoC,CAEpC,eAAgB,CAEhB,axGynrBJ,CwGtnrBE,iCACE,iBxGwnrBJ,Cc9vrBI,yB0FqIF,iCAII,YxGynrBJ,CACF,CwGtnrBE,mCACE,gBxGwnrBJ,CctwrBI,0B0F6IF,mCAII,YxGynrBJ,CACF,Cc3wrBI,yB0FwJF,kCACE,oBxGunrBF,CACF,CwGpnrBA,UAME,exGinrBF,CwGtnrBE,gBTjKA,iCAAkC,CA7BlC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CAc9B,6B/FqzrBJ,CwGvnrBE,6BAEE,qCAAsC,CADtC,yBAA0B,CAE1B,eAAiB,CACjB,gBxGynrBJ,CwGrnrBA,kCACE,eAAiB,CACjB,gBAAiB,CACjB,qBxGwnrBF,CwGpnrBA,2BACE,gBxGunrBF,Cc5yrBI,yB0FoLJ,2BAII,YxGwnrBF,CACF,CwGpnrBA,8BACE,YxGunrBF,CcrzrBI,yB0F6LJ,8BAII,YxGwnrBF,CACF,CyGz3rBA,uBACE,ezG43rBF,CyGz3rBE,4CACE,2CzG23rBJ,CyGx3rBE,kDACE,gBzG03rBJ,C0G53rBA,oBAaE,4CAA6C,CAD7C,8CAA+C,CAX/C,YAAa,C1FuBX,aAAc,C0FtBhB,qBAAsB,CAatB,6CAA8C,CAZ9C,QAAS,CACT,iDAAkD,CAUlD,eAAgB,CAHhB,uBANA,eAAgB,CAChB,4BAA6B,C1FmB3B,ShBu3rBJ,Ccx1rBI,yB4FxDJ,oBAkBI,sC1Gk4rBF,CACF,C0Gh4rBE,mCACE,qB1Gk4rBJ,C0G93rBE,8BACE,6C1Gg4rBJ,C0G73rBE,+BACE,c1G+3rBJ,Cct2rBI,yB4FtBF,iCAEI,Y1G83rBJ,CACF,C0G13rBE,4LAIE,gC1G+3rBJ,C0G13rBI,8IACE,e1G63rBN,C0Gx3rBE,0CACE,YAAa,CACb,qB1G03rBJ,C0Gx3rBI,uEAGE,gCAAiC,CADjC,6CAA8C,CAD9C,iDAAkD,CAGlD,mB1G03rBN,C0Gr3rBQ,sFACE,eAAgB,CAChB,8CjG5CW,CiG6CX,uB1Gu3rBV,C0Gj3rBI,wEACE,YAAa,CACb,qB1Gm3rBN,C0G/2rBI,qEAEE,kBAAmB,CADnB,YAAa,CAEb,Q1Gi3rBN,Cch5rBI,yB4FAF,0CAmCI,Y1Gi3rBJ,CACF,C0G92rBE,kDAEE,4C1G+2rBJ,Ccx5rBI,yB4FuCF,kDAKI,e1Gg3rBJ,CACF,C0G72rBE,gDAEE,iBAAkB,CADlB,e1Gg3rBJ,C0G52rBE,kCACE,eAAgB,CAChB,c1G82rBJ,C0Gx2rBQ,6EAME,oBAAqB,CAFrB,YAAa,CAFb,WAAY,CAGZ,6BAA8B,CAJ9B,iBAAkB,CAElB,U1G62rBV,C0Gx2rBU,6FAGE,a1Gw2rBZ,C0Gp2rBY,8GACE,c1Gs2rBd,C0G91rBE,oCAGE,iB1G81rBJ,C0G51rBI,4FAEE,mCAIA,kB1G21rBN,C0Gv1rBM,oDAEE,e1Gw1rBR,C0Gt1rBQ,4EACE,Y1Gw1rBV,C0Gp1rBQ,kEACE,Y1Gs1rBV,C0Gp1rBU,kFACE,8CjG9IS,CiG+IT,wB1Gs1rBZ,C0Gj1rBQ,oEAgBE,kBAAmB,CAfnB,cAAe,CAaf,mBAAoB,CAHpB,WA5CiB,CAgDjB,sBAAuB,CAVvB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,U1Gk1rBV,C0G10rBU,qFACE,gB1G40rBZ,C0Gn0rBU,2EACE,wB1Gq0rBZ,C0G5zrBA,aACE,kB1Gg0rBF,Cc99rBI,yB4F6JJ,aAII,a1Gi0rBF,CACF,C0G/zrBE,gBACE,aAAc,CACd,e1Gi0rBJ,C0G9zrBI,mBACE,kB1Gg0rBN,C0G5zrBE,kBAME,eAAgB,CX9HlB,iCAAkC,CWyHhC,aAAc,CAMd,qBjG9Ne,CiGyNf,sBXzHF,oB/F27rBF,C+Fz7rBE,wBAEE,4BAA6B,CAD7B,yBAA0B,CAxE1B,6BAA8B,CAH9B,iD/F0gsBJ,C+Fv7rBE,iDANE,iC/Fg8rBJ,C+Ft7rBE,gCACE,iDtF5GoB,CsF6GpB,YAAa,CACb,U/Fw7rBJ,C0Gz0rBM,2CAEE,qCAAsC,CADtC,yBAA0B,CAE1B,eAAiB,CACjB,gB1G20rBR,C0Gt0rBE,wBAGE,4BAA6B,CXtG7B,qEANe,CAHjB,8BAA+B,CAD/B,e/Fy7rBF,C+F76rBI,sCACE,6GACA,Y/F+6rBN,C0Gz0rBE,+BACE,6C1G60rBJ,C0Gv0rBE,sDALE,iDAAkD,CAClD,mB1Gm1rBJ,C0G/0rBE,uBAKE,gCAAiC,CAMjC,6CAA8C,CAR9C,kBAAmB,CADnB,iB1G60rBJ,C0Gx0rBI,mCACE,Y1G00rBN,CcjisBI,yB4F+MF,uBAcI,sC1Gw0rBJ,CACF,C2GjmsBA,sBAiBE,4CAA6C,CAhB7C,YAAa,CAGb,qBAAsB,CADtB,aAAc,CAOd,6CAA8C,CAH9C,iDAAkD,CALlD,OAAQ,CAgBR,eAAgB,CAVhB,sBAAuB,CAHvB,eAAgB,CAChB,4BAA6B,CAG7B,kC3G2msBF,CczjsBI,0B6F3DJ,sBAaI,sC3G2msBF,CACF,C2GpmsBA,wBACE,a3GumsBF,CclksBI,0B6FtCJ,wBAII,6CAA8C,CAC9C,iB3GwmsBF,CACF,C2GtmsBE,0BACE,mB3GwmsBJ,C4GjmsBA,sBACE,qBAAuB,CACvB,U5GmnsBF,CcllsBI,4B8F9BJ,oBAhBE,QAAS,CANT,cAAe,CAHf,YAAa,CAgBX,MAAO,CADP,gBAAiB,CAdnB,gBAAiB,CAGjB,eAAgB,CAPhB,cAAe,CACf,KAAM,CAON,sDACE,CAEF,iBAAkB,CANlB,SAAU,CAHV,Y5G2psBA,CACF,C4G7nsBE,0BACE,aAAc,CACd,kB5G+nsBJ,CcxmsBI,6B8FnBJ,sBA3BE,QAAS,CANT,cAAe,CAHf,YAAa,CAYX,iBAAkB,CAXpB,gBAAiB,CAGjB,eAAgB,CAPhB,cAAe,CAgBb,OAAQ,CAfV,KAAM,CAON,sDACE,CAEF,iBAAkB,CANlB,SAAU,CAHV,Y5GirsBA,CACF,C4GxosBE,4BACE,cAAe,CACf,kB5G0osBJ,C6GvssBA,kBAGE,YAAa,CACb,cAAe,CAGf,eAAiB,CANjB,eAAgB,CAChB,c7GgtsBF,C6GzssBE,qCAEE,kBAAmB,CADnB,YAAa,CAiBb,eAAiB,CAdjB,iBAAkB,CADlB,kB7G6ssBJ,C6G1ssBI,sFAOE,epGHa,CoGFb,iBAAkB,CAClB,sB7G6ssBN,C6GlssBI,uCdoEF,iCAAkC,CAClC,oB/FiosBF,C+F/nsBE,6CACE,iCAAkC,CAzEpC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CAc9B,6B/FwssBJ,C6GzssBI,kEAIE,iCAAkC,CADlC,qCAAsC,CAFtC,yBAA0B,CAC1B,eAAiB,CAGjB,e7G2ssBN,C8G/usBE,sBAKE,kBAAmB,CAKnB,WAAY,CADZ,eAAgB,CX+ClB,qBAAsB,CJ0HtB,iCAAkC,Ce9KhC,YAAa,CAOb,cAAe,CAKf,eAVA,sBAAuB,CAMvB,gBpB2Be,CSmBjB,eAAgB,CADhB,cAAe,CW5Cb,iBfyKF,iB/F6ksBF,C+F1ksBE,6BAKE,4BAA6B,CAJ7B,UAAW,CACX,aAAc,CAEd,OAAQ,CAIN,0CACA,iCANF,iB/FglsBJ,C+FtksBE,4BACE,gCAAiC,CACjC,oB/FwksBJ,C+FvksBI,mCAEI,sE/FwksBR,C+FjksBE,oCACE,eAAgB,CAChB,yCAA0C,CAC1C,uB/FmksBJ,C8GpwsBA,qBAKE,kBAAmB,CAFnB,kBrBcoB,CqBhBpB,YAAa,CACb,kBAAmB,CAEnB,4BAA6B,CAI7B,eAAgB,CADhB,eAAgB,CADhB,c9GywsBF,C8GnwsBI,mGAKE,mCAAoC,CADpC,iBAAkB,CADlB,qB9GwwsBN,C8GlwsBI,gDACE,a9GowsBN,C8GjwsBI,+CACE,U9GmwsBN,C8GhwsBI,2CACE,a9GkwsBN,C8G7vsBE,yCAEE,mBAAqB,CADrB,Y9GgwsBJ,C8G5vsBE,gCACE,kCAAmC,CACnC,qBAAsB,CACtB,gB9G8vsBJ,C+G/zsBA,cAWE,kBAAmB,CAJnB,YAAa,CAGb,aAAc,CAEd,SAAW,CAVX,+BAAgC,CAIhC,QAAS,CAHT,mCAAoC,CACpC,eAAiB,CAHjB,iBAAkB,CAIlB,U/G00sBF,C+Gh0sBE,gBACE,gCAAiC,CACjC,e/Gk0sBJ,C+G9zsBE,kBAEE,WAAY,CADZ,cAAe,CAEf,U/Gg0sBJ,C+G7zsBE,gDhB6BA,iCAAkC,CgBzBhC,gCAAiC,ChBJnC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CAc9B,6B/F+zsBJ,CgHh2sBE,iBACE,kBhHs2sBJ,CgHl2sBE,iBACE,YAAa,CACb,qBhHo2sBJ,CgHl2sBI,mBAEE,kBAAmB,CjBoFvB,iCAAkC,CiBrF9B,YAAa,CAEb,WAAY,CAEZ,qBvBmBkB,CuBpBlB,kBvBoBkB,CM+DtB,oB/FoxsBF,C+FlxsBE,yBACE,iCAAkC,CAzEpC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CAc9B,6B/F21sBJ,CiH73sBE,uBAEE,kBAAmB,CADnB,cjHo4sBJ,CiHj4sBI,0BACE,iBjHm4sBN,CiH93sBE,oBACE,6CjHg4sBJ,Cch1sBI,0BmGjDF,oBAII,sCjHi4sBJ,CACF,CiH93sBE,sBACE,gCAAiC,CACjC,iDAAkD,CAClD,mBjHg4sBJ,CkHt5sBA,gBACE,UlH45sBF,CkH15sBE,kBACE,iCAAkC,CAElC,iBAAkB,CADlB,alH65sBJ,CkHz5sBE,kBACE,elH25sBJ,CkHx5sBE,kBAGE,kBAAmB,CACnB,WAAY,CAIZ,iCAAkC,CANlC,YAAa,CAIb,aAAc,CACd,iBAAkB,CAFlB,YAAa,CAIb,oBlHy5sBJ,CkHv5sBI,oCnB0CF,oBAAqB,CACrB,2BAA4B,CmBvCxB,eAAgB,CADhB,qDAAsD,CnBC1D,yBAA0B,CAGxB,2CAvBuB,CA2BvB,6B/Fq5sBJ,C+Fj3sBE,0CACE,iCAAkC,CA1BlC,6BAA8B,CAH9B,iD/Fk5sBJ,C+F12sBE,uFACE,2B/F+2sBJ,C+F72sBI,kDACE,iC/F+2sBN,CkHr6sBM,4FnBwBJ,iCAAkC,CA7BlC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CAc9B,6B/F26sBJ,CkHx6sBI,kCACE,qBAAsB,CACtB,alH06sBN,CkHx6sBM,sDACE,yBlH06sBR,CkHt6sBI,4BACE,UlHw6sBN,CkHr6sBI,6BACE,WlHu6sBN,CkHr6sBM,gDACE,gBlHu6sBR,CmH99sBA,WAME,wCAAyC,CADzC,oB1BwByB,C0BtBzB,gCAAiC,CAJjC,SAAW,CADX,kBAAoB,CADpB,iBnH0+sBF,CmHj+sBE,6BANA,4CnH2+sBF,CmHr+sBE,kBAEE,iCnHm+sBJ,CmH/9sBE,wBACE,iDnHi+sBJ,CmH/9sBI,oCACE,enHi+sBN,CmH79sBE,iBAEE,6BAA8B,CAC9B,SAAU,CAFV,iBnHi+sBJ,CmH59sBE,yCAGE,iCAAkC,CADlC,0BAAgC,CADhC,iBnHg+sBJ,CmH39sBE,8BACE,4CAA6C,CAE7C,WAAY,CADZ,gCnH89sBJ,CmH19sBI,2CACE,iCnH49sBN,CmHx9sBI,qHAEE,enHy9sBN,CmHt9sBI,gFAEE,iCnHu9sBN,CmHl9sBE,wCAGE,6BAA8B,CAF9B,YAAa,CACb,uBnHq9sBJ,Cct9sBI,yBqGDF,wCAMI,YnHq9sBJ,CACF,CmH98sBA,iBAEE,gBnHm9sBF,CmH78sBA,mBACE,YnHm9sBF,CmHj9sBE,yBAaE,4BAA6B,CAE7B,WAAY,CAdZ,YAAa,CAMb,QAAS,CAGT,gBAAkB,CAElB,eAAgB,CAEhB,gB1G/Ee,C0GqEf,cAAe,CAKf,UAAW,CAHX,OAAQ,CAER,8BAAgC,CAGhC,SAAU,CANV,YnH29sBJ,CmH/8sBI,mCACE,qBAAuB,CACvB,UnHi9sBN,CmH98sBI,wCACE,WnHg9sBN,CmH78sBM,0FAEE,mCnH+8sBR,CmHr8sBA,qBAIE,kBAAmB,CAKnB,yCAA0C,CAJ1C,wCAAyC,CACzC,mBAL8B,CAM9B,iCAAkC,CAJlC,mBAAoB,CAKpB,YnH28sBF,CmHx8sBE,2BACE,qDnH08sBJ,CmHv8sBE,mCACE,mBnHy8sBJ,CmHr8sBE,kDACE,sCAAuC,CACvC,0CAA2C,CAE3C,gBAAkB,CADlB,iBnHw8sBJ,CmHp8sBE,6CACE,enHs8sBJ,CmHl8sBE,uBACE,kBnHo8sBJ,CmHh8sBE,+BACE,YnHk8sBJ,CctitBI,yBqGmGF,+BAII,YnHm8sBJ,CACF,CoHlmtBE,+BjBAA,+FACE,CiBAA,aAAc,CACd,iBpH4mtBJ,CcvjtBI,0BsGvDF,+BAMI,gBpH4mtBJ,CACF,CoHtmtBI,iCAIE,yCAA0C,CAH1C,oBAAsB,CAItB,mCAAoC,CAHpC,iBAAkB,CAClB,cAAgB,CAGhB,oBAAqB,CAGrB,mCpHsmtBN,CoHpmtBM,uCACE,8CpHsmtBR,CoHnmtBM,wCAEE,WAAY,CADZ,oCAAqC,CAErC,yBAA0B,CAC1B,kBpHqmtBR,CqHxotBE,mCACE,YrH8otBJ,CqH5otBI,0CAEE,iCAAkC,CADlC,oBrH+otBN,CqH3otBI,0CACE,gBrH6otBN,CqHvotBE,0NAGE,crHgptBJ,CsHvqtBA,oCACE,oCAAqC,CACrC,gCAAiC,CAGjC,iBtHwqtBF,Cc9mtBI,yBwG/DJ,oCAQI,mBtHyqtBF,CACF,CsHvqtBE,0CAEE,wBAAyB,CADzB,oDtH0qtBJ,CsHtqtBE,2CAEE,oCAAqC,CADrC,gCtHyqtBJ,CsHrqtBE,kDACE,wBtHuqtBJ,CsHnqtBA,wBACE,oCAAqC,CACrC,8CtHsqtBF,CsHpqtBE,0CACE,+CAAgD,CAChD,gCAAiC,CACjC,sBtHsqtBJ,CsHpqtBI,2DACE,+CtHsqtBN,CsHnqtBI,gDAGE,yCAA0C,CvBkB9C,iCAAkC,CA7BlC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CAc9B,6B/F6qtBJ,CsHtqtBI,iDvBgHA,qEANe,CAHjB,8BAA+B,CAD/B,eAAgB,CuBnGZ,iBAAkB,CAClB,StHyqtBN,C+F3jtBI,+DACE,6GACA,Y/F6jtBN,CsH3qtBM,6DACE,UAAW,CAEX,WAAY,CAGZ,MAAO,CAFP,iBAAkB,CAGlB,KAAM,CALN,UAAW,CAGX,UtH+qtBR,CsHzqtBI,wDACE,UtH2qtBN,CsHrqtBA,wDnBPE,qBAAsB,CmBStB,eAAgB,CnBPhB,eAAgB,CADhB,cAAe,CmBSf,YtH2qtBF,CcprtBI,yBwGMJ,wDAUI,etHyqtBF,CACF,CuHrvtBA,aAEE,kBvHyvtBF,CuHrvtBE,kBACE,YvHwvtBJ,CuH1utBA,6DACE,avHmvtBF,CuH7utBE,wCAHE,iCvH2vtBJ,CuHxvtBE,sBACE,aAAc,CAKd,iBAAkB,CADlB,4BAAkB,CxBiFpB,oB/FkqtBF,C+FhqtBE,4BAEE,4BAA6B,CAD7B,yBAA0B,CAxE1B,6BAA8B,CAH9B,iD/FivtBJ,C+F9ptBE,yDANE,iC/FuqtBJ,C+F7ptBE,oCACE,iDtF5GoB,CsF6GpB,YAAa,CACb,U/F+ptBJ,CuH7vtBI,6BAGE,4BAA6B,CxBgH/B,qEANe,CAHjB,8BAA+B,CAD/B,e/F0ptBF,C+F9otBI,2CACE,6GACA,Y/FgptBN,CuHlwtBM,mCACE,iCvHowtBR,CuHhwtBI,oCACE,qBvHkwtBN,CwHvztBA,mDAcE,+CAAgD,CAHhD,uBAAyB,CACzB,kCAAmC,CACnC,oB/BmByB,CUxBzB,+FACE,CqBCF,kBAAmB,CANnB,oBAAqB,CAErB,eAAgB,CADhB,eAAiB,CAIjB,uBAAwB,CASxB,iBAAkB,CAflB,qBxHs0tBF,CwHrztBE,yDACE,mBAAqB,CACrB,gBxHyztBJ,CwHrztBA,iBAEE,4CAA6C,CAD7C,qCxHyztBF,CwHrztBA,mBAEE,4CAA6C,CAD7C,qCxHyztBF,CwHrztBA,eAEE,2CAA4C,CAD5C,oCxHyztBF,CwHrztBA,qBACE,exHwztBF,CwHtztBE,4BAEE,2BAA4B,CAE5B,+CAAgD,CADhD,yBAA0B,CAF1B,kBxH2ztBJ,CwHnztBE,kCACE,8BAA+B,CAC/B,6CxHsztBJ,CwHjztBE,oCACE,8BAA+B,CAC/B,+CxHoztBJ,CwH/ytBE,uCACE,6BAA8B,CAC9B,kDxHkztBJ,CyHv3tBA,uBAGE,4CAA6C,CAF7C,YAAa,CACb,qBzH23tBF,Cc9ztBI,yB2G/DJ,uBAMI,ezH23tBF,CACF,CyHz3tBE,qDAGE,gCAAiC,CADjC,6CAA8C,CAD9C,iDAAkD,CAGlD,mBzH23tBJ,CyHx3tBE,uCAEE,eAAgB,CADhB,kBAAmB,CAEnB,SzH03tBJ,CyHx3tBI,4CAGE,iCAAkC,CAFlC,aAAc,CACd,gBzH23tBN,CyHx3tBM,kDAGE,4BAA6B,CAF7B,8BAA+B,CAC/B,oBzH23tBR,C0Hh5tBA,2BAYE,+CAAgD,CAHhD,wBACA,kCAAmC,CACnC,oBAdyB,CvBIzB,+FACE,CuBMF,kBAAmB,CANnB,oBAAqB,CAErB,eAAgB,CADhB,qBAAwB,CAIxB,uB1Hg6tBF,C0Ht5tBE,mDACE,e1Hy5tBJ,C0Hr5tBE,qEACE,kBAAmB,CACnB,mB1Hw5tBJ,C0Hp5tBE,kEAEE,e1Hw5tBJ,C0Hp5tBE,+DAQE,yCAA0C,CAL1C,qDAAsD,CAFtD,eAAiB,CACjB,8BAAkC,CAElC,iBAAkB,CAOlB,S1Hk5tBJ,C2Hz7tBE,6EACE,UAAW,CAEX,WAAY,CAEZ,MAAO,CAOP,mBAAoB,CARpB,iBAAkB,CAElB,KAAM,CAJN,UAAW,CAKX,U3H67tBJ,C0H35tBI,2EAKE,2BAA4B,CAG5B,0CAA2C,CAF3C,yBAA0B,CAF1B,WAAY,CAFZ,UAAY,CAKZ,mBAAoB,CAEpB,SAAU,CARV,iBAAkB,CAElB,U1Ho6tBN,C0H15tBI,mEACE,e1H65tBN,C0Hz5tBE,+CACE,uC1H45tBJ,C0H15tBI,mFACE,8C1H65tBN,C0H35tBM,+FACE,gCAAiC,CACjC,4C1H85tBR,C0Hz5tBE,2CACE,qC1H45tBJ,C0H15tBI,+EACE,4C1H65tBN,C0H35tBM,2FACE,8BAA+B,CAC/B,0C1H85tBR,C0Hz5tBE,2CACE,qC1H45tBJ,C0H15tBI,+EACE,4C1H65tBN,C0H35tBM,2FACE,8BAA+B,CAC/B,0C1H85tBR,C0Hz5tBE,yCACE,oC1H45tBJ,C0H15tBI,6EACE,2C1H65tBN,C0H35tBM,yFACE,6BAA8B,CAC9B,yC1H85tBR,C0Hz5tBE,uCACE,oC1H45tBJ,C0H15tBI,2EACE,2C1H65tBN,C0H35tBM,uFACE,6BAA8B,CAC9B,wC1H85tBR,C0Hz5tBE,qCACE,qC1H45tBJ,C0H15tBI,yEACE,4C1H65tBN,C0H35tBM,qFACE,8BAA+B,CAC/B,uC1H85tBR,C0Hz5tBE,mCACE,qC1H45tBJ,C0H15tBI,uEACE,4C1H65tBN,C0H35tBM,mFACE,8BAA+B,CAC/B,sC1H85tBR,C0Hz5tBE,+CACE,uC1H45tBJ,C0H15tBI,mFACE,8C1H65tBN,C0H35tBM,+FACE,gCAAiC,CACjC,4C1H85tBR,C0Hz5tBE,qCACE,kC1H45tBJ,C0H15tBI,yEACE,yC1H65tBN,C0H35tBM,qFACE,2BAA4B,CAC5B,uC1H85tBR,C0Hz5tBE,2CACE,qC1H45tBJ,C0H15tBI,+EACE,4C1H65tBN,C0H35tBM,2FACE,8BAA+B,CAC/B,0C1H85tBR,C0Hz5tBE,2DACE,uC1H45tBJ,C0H15tBI,+FACE,8C1H65tBN,C0H35tBM,2GACE,gCAAiC,CACjC,uC1H85tBR,C0Hr5tBE,2CAQE,yBALA,UAAW,CADX,WAAY,CAEZ,iBAAmB,CACnB,YAAa,CAJb,a1H65tBJ,C0Hl5tBI,8HAEE,uC1Hq5tBN,C0Hl5tBI,sHAEE,qC1Hq5tBN,C0Hl5tBI,gHAEE,oC1Hq5tBN,C0Hl5tBI,mKAGE,qC1Hq5tBN,C0Hl5tBI,0GAEE,kC1Hq5tBN,C0Hj5tBI,qFACE,aAAc,CACd,c1Ho5tBN,C0Hv4tBA,sDAOE,yCAA0C,CAC1C,oCAAqC,CACrC,oBAtRyB,CvBIzB,+FACE,CuB6QF,YAAa,CACb,qBAAsB,CAItB,oB1Hg5tBF,C0H54tBE,0GACE,gB1Hi5tBJ,C0H74tBE,8DACE,2C1Hk5tBJ,C0H94tBE,8FACE,iB1Hm5tBJ,C0Hj5tBI,0GAEE,gB1Hq5tBN,C0H74tBA,cAEE,yCAA0C,CAD1C,wCAAyC,CAEzC,oBArTyB,CAwTzB,iBAAmB,CACnB,S1Hi5tBF,C0H/4tBE,0BACE,mB1Hi5tBJ,C0H94tBE,8BAKE,+CAAgD,CAChD,0CAA2C,CAC3C,qDAAsD,CALtD,eAAgB,CAEhB,oBAAsB,CADtB,iBAAmB,CAFnB,iB1Hs5tBJ,C0H54tBE,+EAEE,e1H84tBJ,C0H34tBE,gBACE,iBAAkB,CAClB,kB1H64tBJ,C0Ht4tBA,SACE,YAAa,CACb,qB1H44tBF,C0Ht4tBA,YAEE,eAAgB,CADhB,Y1H64tBF,C4H3uuBA,iBACE,wBAAyB,CACzB,mBAAoB,CACpB,e5HmvuBF,C4HjvuBE,+BAGE,yCAA0C,CAF1C,uBAAwB,CACxB,kB5HovuBJ,C4H9uuBI,iCACE,iB5HmvuBN,C4HjvuBM,wCACE,iB5HmvuBR,C4H9uuBI,0CACE,gBAAiB,CACjB,eAAiB,CACjB,iB5HgvuBN,C4HruuBE,kCACE,kB5H2uuBJ,C4HtuuBA,KACE,4C5H0uuBF,C4HruuBA,0CAEE,iB5HyuuBF,C4H1tuBA,kHAIE,gC5HyuuBF,C4H/tuBA,UACE,kC5HkuuBF,C4H/tuBA,wCAEE,iCAAkC,CAClC,e5HkuuBF,C4H9tuBA,2BAEE,wC5HiuuBF,C4H9tuBA,eACE,uC5HiuuBF,C4H9tuBA,uBAIE,wCAAyC,CAFzC,+CAAgD,CADhD,4CAA6C,CAE7C,iB5HkuuBF,C4H9tuBA,4BASE,W5HytuBF,C4HvtuBE,2CACE,U5HytuBJ,C4H/suBA,oEAEE,kB5HotuBF,C4HltuBE,uEACE,gB5HotuBJ,C4HjtuBI,oFACE,Y5HmtuBN,C4H/suBE,kFACE,YAAa,CACb,2B5HituBJ,C4H9suBE,mKAIE,yCAA0C,CAD1C,mBAAqB,CADrB,gB5HktuBJ,C6Ht2uBA,+DAME,oBHTyB,CGUzB,kBAAmB,CAJnB,YAAa,CACb,qBAAsB,CACtB,W7H+2uBF,C6Hx2uBA,0BACE,wCAAyC,CACzC,oB7H22uBF,C6Hx2uBE,iDAEE,+CAAgD,CAEhD,cAAe,CACf,0CAA2C,CAJ3C,QAAS,CAET,a7H42uBJ,C6Hx2uBI,8DACE,iB7H02uBN,C6Hp2uBE,iDAEE,eAAgB,CADhB,Q7Hu2uBJ,C6Hp2uBI,qDACE,WAAY,CACZ,e7Hs2uBN,C6H91uBA,aAEE,yCAA0C,CAC1C,wCAAyC,CACzC,oBAAsB,CAHtB,oB7Hu2uBF,C6Hj2uBA,OACE,wC7Ho2uBF,C6Hl2uBE,aACE,iC7Ho2uBJ,C6H/1uBA,aACE,oB7Hk2uBF,C8Hv6uBA,8CAIE,aAAc,CACd,gBAAiB,CACjB,iB9H06uBF,C8Ht6uBE,oBAGE,iBAAkB,CADlB,iB9Hy6uBJ,C8Hp6uBE,0BACE,kB9Hs6uBJ,C8Hn6uBE,kBAGE,iCAAkC,CAFlC,0CAA2C,CAC3C,0CAA2C,CAE3C,gBAAiB,CACjB,iBAAkB,CAClB,gBAAkB,CAClB,iB9Hq6uBJ,C8Hn6uBI,+BAEE,e9Ho6uBN,C8Hj6uBI,oBAEE,oBAAqB,CADrB,gB9Ho6uBN,C8Hh6uBI,8BAEE,gBAAiB,CACjB,iBAAkB,CAFlB,iB9Ho6uBN,C+H38uBA,+CACE,W/H88uBF,C+H38uBA,8CACE,W/H88uBF,C+H18uBA,qBAEE,eAAgB,CADhB,oB/H88uBF,C+Hz8uBA,eACE,mB/H48uBF,C+H18uBE,0BACE,kB/H48uBJ,C+Hz8uBE,uDAEE,e/H28uBJ,C+Hx8uBE,sBACE,wC/H08uBJ,CgIl+uBA,+EAIE,gBhIw+uBF,CiIj/uBA,GAEE,kBAAmB,CACnB,gBAAiB,CAFjB,cjIs/uBF,CiIj/uBA,MAEE,yBjIo/uBF,CiIl/uBE,wCACE,oBAAsB,CACtB,iBjIq/uBJ,CkIjgvBA,WAuBE,yCAA0C,CApB1C,yDAA2D,CAC3D,oBRDyB,CQDzB,iCAAkC,CADlC,WAAY,CAIZ,iBlIqgvBF,CkIngvBE,aACE,gClIqgvBJ,CkIjgvBE,uBACE,QlImgvBJ,CkI//uBE,wBACE,elIigvBJ,C2HvgvBE,kBACE,UAAW,CAEX,WAAY,CAEZ,MAAO,CAOP,mBAAoB,CARpB,iBAAkB,CAElB,KAAM,CAJN,U3H+gvBJ,CkIngvBE,aACE,wClIqgvBJ,CkIjgvBE,kBACE,UlImgvBJ,CmIhivBA,cAWE,yCAA0C,CAV1C,sCAAuC,CAGvC,iBAAkB,CAFlB,aAAc,CACd,eAAgB,CAGhB,eAAgB,CADhB,iBAAkB,CAElB,iBnIuivBF,C2HrivBE,qBACE,UAAW,CAEX,WAAY,CAEZ,MAAO,CAOP,mBAAoB,CARpB,iBAAkB,CAElB,KAAM,CAJN,UAAW,CAKX,U3HwivBJ,CmI1ivBA,4BAKE,iCAAkC,CAJlC,gCAAiC,CACjC,yBAA0B,CAC1B,cAAgB,CAChB,enI8ivBF,CoIhkvBA,MAEE,gBAAiB,CACjB,iBpIqkvBF,CoInkvBE,kBACE,cpIqkvBJ,CoIlkvBE,iBACE,apIokvBJ,CoI9jvBA,cAEE,gBAAiB,CACjB,iCAAkC,CAFlC,iBpImkvBF,CoI3jvBE,0BACE,epI+jvBJ,CoI5jvBE,4BACE,gBpI+jvBJ,CoI5jvBE,8BACE,iBpI+jvBJ,CoI1jvBA,OAGE,yBAA0B,CAC1B;;GAAA,CjCrBA,oDAAqD,CADrD,4BnGqlvBF,CmGhlvBI,oDAEE,yDnGolvBN,CmG/kvBI,gBACE,kDAAmD,CACnD,gDnGilvBN,CmG3kvBM,+BACE,wDnG6kvBR,CmG1kvBM,8BACE,yDnG4kvBR,CoI1kvBA,gCAGE,epI2kvBF,CqI9nvBE,2BACE,eAAgB,CAChB,erIoovBJ,CqIjovBE,oBACE,crImovBJ,CqIhovBE,sCACE,eAAgB,CAChB,kBrIkovBJ,CqIhovBI,wCAEE,eAAgB,CADhB,erImovBN,CqI/nvBI,yCACE,eAAgB,CAChB,0BrIiovBN,CqI5nvBE,+BACE,erI8nvBJ,CqItnvBE,oDACE,eAAgB,CAChB,crI0nvBJ,CsI1pvBA,mBAEE,kBAAmB,CACnB,YAAa,CACb,cAAe,CAGf,etIiqvBF,CsI7pvBA,UACE,mBtIgqvBF,CsI5pvBA,SAIE,0BAA2B,CAH3B,QtIgqvBF,CsI1pvBE,gCAEE,aAAc,CADd,iBtI6pvBJ,CsIxpvBE,uBACE,WAAY,CAEZ,aAAc,CADd,oBtI2pvBJ,CsItpvBI,yCACE,QtIwpvBN,CuI5rvBE,8FAEE,6CAA8C,CAG9C,gBvIqsvBJ,CuIjsvBI,sGACE,gCvIqsvBN,CuIjsvBE,uBASE,YAAa,CACb,qBAAsB,CACtB,QAAU,CATV,eAAgB,CAUhB,eAAgB,CANhB,iBAAkB,CAHlB,cvIusvBJ,CuI3rvBI,mCACE,kBAAmB,CACnB,SvI6rvBN,CuI1rvBM,sCAGE,kBAAmB,CADnB,YvI4rvBR,CuIlrvBA,kBAEE,YAAa,CADb,eAAgB,CAEhB,cvIwrvBF,CuIrrvBE,uBAEE,YAAa,CACb,avIsrvBJ,CuInrvBI,yBAEE,kBAAmB,CADnB,YAAa,CAGb,QAAS,CACT,kBAAmB,CAFnB,gBvIurvBN,CuInrvBM,kCACE,gCvIqrvBR,CuI9qvBI,iEACE,kCvIgrvBN,CuI1qvBE,qCACE,YvI4qvBJ,CuIxqvBE,mCACE,gBAAiB,CACjB,gBvI0qvBJ,CuIxqvBI,kEACE,mCvI0qvBN,CuIlqvBA,6BAEE,cvIwqvBF,CuItqvBE,qDACE,evIyqvBJ,CuItqvBI,mFACE,YAAa,CACb,kBAAmB,CAGnB,gBAAkB,CAFlB,QAAS,CACT,eAAgB,CAEhB,cvIyqvBN,CuIrqvBI,yFAEE,iBAAkB,CADlB,YvIyqvBN,CuItqvBM,6FACE,evIyqvBR,CuIpqvBI,2FACE,mBvIuqvBN,CwIxyvBA,oBAGE,iBAAkB,CAClB,kBAAmB,CACnB,eAAgB,CAJhB,kBAAmB,CACnB,mBAAoB,CAIpB,WxI8yvBF,CwI3yvBA,KACE,iExI8yvBF,CyI1zvBA,6BAGE,kBAAmB,CASnB,yCAA0C,CAD1C,WAAY,CATZ,YAAa,CAEb,sBzIk0vBF,CyI/zvBE,2CACE,4BzIi0vBJ,CyI1zvBI,iDAEE,wCAAyC,CADzC,2BzI6zvBN,CyIvzvBE,mDAEE,yCAA0C,CAD1C,2BzI0zvBJ,CyItzvBE,mCAEE,SzIuzvBJ,CyIpzvBE,2CACE,8CzIszvBJ,CyIlzvBA,kCAIE,czIkzvBF,C0I91vBE,8WAQE,gC1Ii2vBJ,C0I91vBE,6EAEE,4CAA6C,CAC7C,wCAAyC,CACzC,iBAAkB,CAClB,gCAAiC,CACjC,cAAe,CACf,gB1Ig2vBJ,C2Ix2vBA,kCAGE,sBAAuB,CADvB,WAAY,CAEZ,e3Io3vBF,C2Ij3vBE,6FAEE,oB3Im3vBJ,C2Ih3vBE,gDACE,yC3Ik3vBJ,C2I92vBE,6FAEE,oB3Ig3vBJ,C2I92vBI,qGACE,Y3Ii3vBN,C4Ih5vBA,sDAEE,mBAAoB,CADpB,+C5Is5vBF,C6Ir5vBA,iBACE,uB7I25vBF,C6Iv5vBA,gCAEE,a7Iy5vBF,C8I30vBA,MAIM,k+B9I83vBN,C8I9ovBA,uBAzDY,4BAFA,+BAEA,8BAFA,iCAEA,2BAFA,8BAEA,yBAFA,4BAEA,4BAFA,+BAEA,4BAFA,+BAEA,+CAFA,qDAEA,2BAFA,8BAEA,qUAFA,uCAEA,6JAWR,8CAA+C,CAC/C,yCAA0C,CAC1C,iDAAkD,CAClD,uDAAwD,CACxD,qDAAsD,CACtD,kEAAmE,CACnE,2D9ImuvBJ,C8I9tvBI,+EAEE,sB9I2uvBN,C8IlsvBE,uBAnEU,gEAEA,2BAFA,wHAEA,+CAFA,mFAEA,qUAFA,uCAEA,6JAWR,8CAA+C,CAC/C,yCAA0C,CAC1C,iDAAkD,CAClD,uDAAwD,CACxD,qDAAsD,CACtD,kEAAmE,CACnE,2DAA4D,CAmD5D,kB9IsuvBJ,C8IpxvBI,+EAEE,sB9IiyvBN,C8IxvvBE,sBAnEU,gEAEA,2BAFA,wHAEA,+CAFA,mFAEA,wTAFA,uCAEA,mKAWR,8CAA+C,CAC/C,yCAA0C,CAC1C,iDAAkD,CAClD,uDAAwD,CACxD,qDAAsD,CACtD,kEAAmE,CACnE,2DAA4D,CAmD5D,iB9IiyvBJ,C8I10vBI,+EAEE,sB9Iu1vBN,C8Ih1vBI,sDACE,mC9Im1vBN,C8I50vBI,kEACE,sBACA,oB9I+0vBN,C8I30vBI,qCACE,+B9I80vBN,C8IvzvBE,mBACE,8B9I0zvBJ,C8I3zvBE,qBACE,gC9I8zvBJ,C8I/zvBE,kBACE,6B9Ik0vBJ,C8In0vBE,gBACE,2B9Is0vBJ,C8Iv0vBE,mBACE,8B9I00vBJ,C8I30vBE,mBACE,8B9I80vBJ,C8I/0vBE,qBACE,gC9Ik1vBJ,C8In1vBE,kBACE,6B9Is1vBJ,C8Iv1vBE,qBACE,gC9I01vBJ,C8I31vBE,sBACE,iC9I81vBJ,C8I/1vBE,kBACE,6B9Ik2vBJ,C8In2vBE,kBACE,6B9Is2vBJ,C8Iv2vBE,wBACE,mC9I02vBJ,C8I32vBE,4BACE,uC9I82vBJ,C8I/2vBE,uBACE,kC9Ik3vBJ,C8In3vBE,6BACE,wC9Is3vBJ,C8Iv3vBE,kBACE,6B9I03vBJ,C8I33vBE,iBACE,4B9I83vBJ,C8I/3vBE,2BACE,sC9Ik4vBJ,C8In4vBE,8BACE,yC9Is4vBJ,C8Iv4vBE,sBACE,iC9I04vBJ,C8I34vBE,yBACE,oC9I84vBJ,C8I/4vBE,mBACE,8B9Ik5vBJ,C8In5vBE,sBACE,iC9Is5vBJ,C+IzpwBE,uBAzBA,4BAIA,8BAOA,sCAGA,4CACA,sDACA,gEAGA,wCAkBY,8BAKA,mCA1CZ,8BAIA,gCAOA,wCAGA,gDACA,0DACA,oEAGA,0CAkBY,gCAKA,qCA1CZ,4BAIA,8BAOA,sCAGA,4CACA,sDACA,gEAGA,wCAkBY,8BAKA,mCA1CZ,yBAIA,2BAOA,mCAGA,sCACA,gDACA,0DAGA,qCAkBY,2BAKA,gCA1CZ,4BAIA,iCAOA,sCAGA,4CACA,sDACA,gEAGA,2CAkBY,8BAKA,mCA1CZ,2BAIA,6BAOA,qCAGA,0CACA,oDACA,8DAGA,uCAkBY,6BAKA,kCA1CZ,0BAIA,+BAOA,oCAGA,wCACA,kDACA,4DAGA,yCAkBY,4BAKA,iCA1CZ,0BAIA,4BAOA,oCAGA,wCACA,kDACA,4DAGA,sCAkBY,4BAKA,8BA1CZ,yBAIA,2BAOA,mCAGA,sCACA,gDACA,0DAGA,qCAnBA,0BAIA,4BAOA,oCAGA,wCACA,kDACA,4DAGA,sCAnBA,uBAIA,+BAOA,oCAGA,wCACA,kDACA,4DAGA,wC/ImxwBF,C+I7wwBE,sBAzBA,4BAIA,iCAOA,sCAGA,4CACA,sDACA,gEAGA,2CAkBY,8BAKA,gCA1CZ,8BAIA,mCAOA,wCAGA,gDACA,0DACA,oEAGA,0CAkBY,gCAKA,kCA1CZ,4BAIA,iCAOA,sCAGA,4CACA,sDACA,gEAGA,2CAkBY,8BAKA,gCA1CZ,yBAIA,8BAOA,mCAGA,sCACA,gDACA,0DAGA,wCAkBY,2BAKA,6BA1CZ,4BAIA,iCAOA,sCAGA,4CACA,sDACA,gEAGA,2CAkBY,8BAKA,gCA1CZ,2BAIA,gCAOA,qCAGA,0CACA,oDACA,8DAGA,0CAkBY,6BAKA,+BA1CZ,0BAIA,+BAOA,oCAGA,wCACA,kDACA,4DAGA,yCAkBY,4BAKA,iCA1CZ,0BAIA,+BAOA,oCAGA,wCACA,kDACA,4DAGA,yCAkBY,4BAKA,8BA1CZ,yBAIA,2BAOA,mCAGA,sCACA,gDACA,0DAGA,qCAnBA,0BAIA,4BAOA,oCAGA,wCACA,kDACA,4DAGA,sCAnBA,uBAIA,+BAOA,oCAGA,wCACA,kDACA,4DAGA,wC/Im3wBF,C+Iz0wBE,6CACE,8C/Ig1wBJ,C+Ix0wBE,oJ5ClIA,+FnGo9wBF,C+It0wBA,qBACE,wC/I40wBF,C+I10wBE,qCACE,+CAAgD,CAChD,+C/I40wBJ,C+Iz0wBE,qCAEE,4C/I20wBJ,C+Ix0wBE,wEAJE,+C/I+0wBJ,C+It0wBE,sDAEE,Y/Iu0wBJ,C+Ip0wBI,4DAEE,oBAAsB,CADtB,8C/Iu0wBN,C+Il0wBE,yCACE,wC/Io0wBJ,C+IzzwBI,4CAOE,+CAAgD,CALhD,2EAIA,iCAAoC,CALpC,6BAA8B,CAI9B,8BAAiC,CAIjC,8BAA+B,CAD/B,6B/I8zwBN,C+I1zwBI,kDAGE,2CAA4C,CAF5C,4CAA8C,CAC9C,qBAAuB,CAEvB,iC/I4zwBN,C+IxzwBI,uEACE,wBAAyB,CACzB,gCAAiC,CACjC,8BAA+B,CAC/B,iD/I0zwBN,C+IrzwBE,8BAIE,yCAA0C,CAF1C,gCAAkC,CAClC,iCAAoC,CAFpC,iCAAkC,CAMlC,gBAAiB,CADjB,wBAA0B,CAD1B,e/IyzwBJ,C+I/ywBE,4FALI,+C/I8zwBN,C+IzzwBE,wCACE,6CAA+C,CAC/C,sBAAwB,CACxB,gBAAiB,CACjB,e/IqzwBJ,C+I5ywBA,oBAEE,kBAAoB,C5ClPpB,+FnGoixBF,C+I5ywBE,2CAYE,2CAA4C,CAC5C,mDAAoD,CAVpD,kBAAmB,CAqCnB,0DAA4D,CAvC5D,kBAAoB,CA0CpB,8DAAiE,CAzCjE,YAAa,CAGb,eAAgB,CAEhB,oBAAsB,CADtB,iBAAmB,CAFnB,iB/IqzwBJ,C+I1ywBI,kEAGE,mDAAoD,CAFpD,Q/I6ywBN,C+IlywBQ,yIACE,gDACA,qD/IwywBV,C+IrywBM,8DAEE,+C/IsywBR,C+I7ywBQ,6IACE,kDACA,uD/ImzwBV,C+IhzwBM,gEAEE,iD/IizwBR,C+IxzwBQ,yIACE,gDACA,qD/I8zwBV,C+I3zwBM,8DAEE,+C/I4zwBR,C+In0wBQ,mIACE,6CACA,kD/Iy0wBV,C+It0wBM,2DAEE,4C/Iu0wBR,C+I90wBQ,yIACE,gDACA,qD/Io1wBV,C+Ij1wBM,8DAEE,+C/Ik1wBR,C+Iz1wBQ,uIACE,+CACA,oD/I+1wBV,C+I51wBM,6DAEE,8C/I61wBR,C+Ip2wBQ,qIACE,8CACA,mD/I02wBV,C+Iv2wBM,4DAEE,6C/Iw2wBR,C+I/2wBQ,qIACE,8CACA,mD/Iq3wBV,C+Il3wBM,4DAEE,6C/Im3wBR,C+I13wBQ,mIACE,6CACA,kD/Ig4wBV,C+I73wBM,2DAEE,4C/I83wBR,C+Ir4wBQ,qIACE,8CACA,mD/I24wBV,C+Ix4wBM,4DAEE,6C/Iy4wBR,C+Ih5wBQ,qIACE,8CACA,mD/Is5wBV,C+In5wBM,4DAEE,6C/Io5wBR,C2HzqxBE,kDACE,UAAW,CAEX,WAAY,CAEZ,MAAO,CAOP,mBAAoB,CARpB,iBAAkB,CAElB,KAAM,CAJN,UAAW,CAKX,U3H4qxBJ,C+Il5wBI,kEAGE,+CAAgD,CADhD,4CAA8C,CAD9C,8D/Is5wBN,C+Ij5wBI,gEAEE,kBAAmB,CACnB,4CAA8C,CAF9C,mB/Iq5wBN,C+Ij5wBM,oEACE,S/Im5wBR,C+I94wBI,sHAEE,S/Ig5wBN,CmG3oxBE,iDACE,qBnG6oxBJ,CmG3oxBI,uEACE,sBnG6oxBN,C+Ih5wBI,+DAGE,sBtIpTa,CsIkTb,8CtItSe,CsIuSf,sB/Im5wBN,C+I94wBE,qEACE,2BAA4B,CAC5B,4B/Ig5wBJ,C+Iv4wBE,aACE,iBAAkB,CAClB,gC/I84wBJ,C+I54wBI,mBhDjSF,iCAAkC,CA7BlC,yBAA0B,CAkBxB,6BAA8B,CAf9B,2CAvBuB,CAmCvB,iDAtB8B,CgDwU5B,6BAA8B,ChD1ThC,6B/F4sxBJ,C+I54wBM,2BACE,uD/I84wBR,C+I/4wBM,6BACE,yD/Ii5wBR,C+Il5wBM,2BACE,uD/Io5wBR,C+Ir5wBM,wBACE,oD/Iu5wBR,C+Ix5wBM,2BACE,uD/I05wBR,C+I35wBM,0BACE,sD/I65wBR,C+I95wBM,yBACE,qD/Ig6wBR,C+Ij6wBM,yBACE,qD/Im6wBR,C+Ip6wBM,wBACE,oD/Is6wBR,C+Iv6wBM,yBACE,qD/Iy6wBR,C+I16wBM,yBACE,qD/I46wBR,C+Ip6wBM,8EASE,mDACA,+CAPA,sBtI5VW,CsI0VX,+CACA,sB/I06wBR,C+I56wBM,kFASE,qDACA,iDAPA,sBtI5VW,CsI0VX,iDACA,sB/Ik7wBR,C+Ip7wBM,8EASE,mDACA,+CAPA,sBtI5VW,CsI0VX,+CACA,sB/I07wBR,C+I57wBM,wEASE,gDACA,4CAPA,sBtI5VW,CsI0VX,4CACA,sB/Ik8wBR,C+Ip8wBM,8EASE,mDACA,+CAPA,sBtI5VW,CsI0VX,+CACA,sB/I08wBR,C+I58wBM,4EASE,kDACA,8CAPA,sBtI5VW,CsI0VX,8CACA,sB/Ik9wBR,C+Ip9wBM,0EASE,iDACA,6CAPA,sBtI5VW,CsI0VX,6CACA,sB/I09wBR,C+I59wBM,0EASE,iDACA,6CAPA,sBtI5VW,CsI0VX,6CACA,sB/Ik+wBR,C+Ip+wBM,wEASE,gDACA,4CAPA,sBtI5VW,CsI0VX,4CACA,sB/I0+wBR,C+I5+wBM,0EASE,iDACA,6CAPA,sBtI5VW,CsI0VX,6CACA,sB/Ik/wBR,C+Ip/wBM,0EASE,iDACA,6CAPA,sBtI5VW,CsI0VX,6CACA,sB/I0/wBR,CgJj1xBI,yEACE,SAAU,CACV,ShJ21xBN,CgJx1xBI,mEACE,UhJ01xBN,CmGpzxBE,gEACE,qBnGszxBJ,CmGpzxBI,sFACE,sBnGszxBN,CgJr1xBM,gEACE,ehJu1xBR,CgJn1xBI,6DACE,ahJq1xBN,CgJ53xBI,wGACE,uBAAwB,CACxB,ehJ83xBN,CgJz3xBI,mFACE,wBAAyB,CACzB,ehJ23xBN,CgJ50xBI,4DAGE,gBhJq2xBN,CgJ50xBM,qFAUE,sBvIlFW,CuIyEX,UAAW,CAMX,WAAY,CAFZ,YAGA,8CvIpEa,CuIqEb,sBvIxEY,CuIqEZ,wBhJ+0xBR,CgJv0xBM,yGACE,2BAA4B,CAC5B,4BhJy0xBR,CgJj0xBI,2CACE,8ChJm0xBN,CgJh7xBI,iEACE,uBAAwB,CACxB,ehJk7xBN,CgJp6xBI,0DACE,SAAU,CACV,ShJs6xBN,CgJn6xBI,oDACE,UhJq6xBN,CmG/3xBE,iDACE,qBnGi4xBJ,CmG/3xBI,uEACE,sBnGi4xBN,CgJ90xBM,iDACE,ehJg1xBR,CgJ70xBM,yDACE,sBhJ+0xBR,CgJh8xBI,+DACE,wBAAyB,CACzB,ehJk8xBN,CgJ30xBM,wDACE,2BAA4B,CAC5B,4BhJ60xBR,CiJ98xBA,mDAME,ejJu9xBF,CiJr9xBE,+DACE,iBjJw9xBJ,CiJ/8xBM,2I9CHJ,oDAAqD,CADrD,4BnGy9xBF,CmGp9xBI,4lBAEE,yDnG49xBN,CmGv9xBI,6JACE,kDAAmD,CACnD,gDnG09xBN,CmGp9xBM,2LACE,wDnGu9xBR,CmGp9xBM,yLACE,yDnGu9xBR,CiJx+xBU,yKACE,oDjJ2+xBZ,CiJn+xBM,2K9CvBJ,2CAA4C,CAC5C,oBAAsB,CAFtB,oCAAqC,CAGrC,anG+/xBF,CiJp+xBM,gEACE,wCjJs+xBR,CiJ/9xBA,qBACE,kBjJk+xBF,CiJx9xBE,sDAEE,ajJ09xBJ,CiJv9xBE,qDAEE,ajJw9xBJ,CiJj9xBE,uDAEE,ajJm9xBJ,CiJh9xBE,sDAEE,ajJi9xBJ,CiJz8xBA,wBACE,cAAe,CACf,ejJ+8xBF,CiJ18xBE,4C9C7EA,oDAAqD,CADrD,4BnG6hyBF,CmGxhyBI,wMAEE,yDnG4hyBN,CmGvhyBI,qDACE,kDAAmD,CACnD,gDnGyhyBN,CmGnhyBM,oEACE,wDnGqhyBR,CmGlhyBM,mEACE,yDnGohyBR,CiJ39xBM,2DACE,oDjJ69xBR,CiJv9xBI,gN9C/FF,2CAA4C,CAC5C,oBAAsB,CAFtB,oCAAqC,CAGrC,anG4jyBF,CiJp9xBE,2BACE,YAAa,CACb,qBAAsB,CACtB,uBjJu9xBJ,CiJp9xBE,kDAEE,oBjJs9xBJ,CiJl9xBI,6BACE,iBjJo9xBN,CkJplyBA,uEACE,eAAgB,CAChB,SlJgmyBF,CmJlmyBI,uFACE,mCAAoC,CACpC,enJ6myBN,CmJ1myBI,yDACE,iCnJ4myBN,CmJxmyBE,+BAEE,eAAgB,CADhB,QnJ2myBJ,CmJxmyBI,kCACE,qBAAsB,CAGtB,gDAAiD,CADjD,aAAc,CADd,cnJ4myBN,CmJvmyBM,oCACE,enJymyBR,CmJtmyBM,0FAEE,gCAAiC,CACjC,enJwmyBR,CmJrmyBQ,4GAGE,iCAAkC,CAFlC,WAAY,CACZ,kBnJymyBV","sources":["webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_type.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_banner.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_root.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/vendor/_rfs.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_color-mode.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_reboot.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_variables.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_border-radius.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_lists.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_bootstrap.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_images.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_image.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_containers.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_container.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_breakpoints.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_grid.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_grid.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_tables.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_table-variants.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_labels.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-text.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-control.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_transition.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_gradients.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-select.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-check.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-range.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_floating-labels.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_input-group.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_forms.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_buttons.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_buttons.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_transitions.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_dropdown.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_caret.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_button-group.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_nav.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_navbar.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_card.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_accordion.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_breadcrumb.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_pagination.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_pagination.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_badge.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_alert.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_progress.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_list-group.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_close.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_toasts.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_modal.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_backdrop.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_tooltip.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_reset-text.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_popover.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_carousel.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_clearfix.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_spinners.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_offcanvas.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_placeholders.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_color-bg.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_colored-links.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_focus-ring.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_icon-link.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_ratio.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_position.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_stacks.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_visually-hidden.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_visually-hidden.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_stretched-link.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_text-truncation.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_text-truncate.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_vr.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_utilities.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/utilities/_api.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_core.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_sizing.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_mixins.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_fixed-width.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_list.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_bordered-pulled.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_animated.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_rotated-flipped.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_stacked.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_variables.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_icons.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/solid.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/regular.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/brands.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_layout.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_icons.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_admonitions.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_versionmodified.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/base/_base.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_links.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_skip-link.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_container.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_announcement.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_mixins.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer-article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer-content.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_header.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_header-article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-primary.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-secondary.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-toggle.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_breadcrumbs.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_icon-links.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/header/_header-logo.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_navbar-links.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_page-toc.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_prev-next.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_search.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_searchbox.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_switcher-theme.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_switcher-version.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_toc-inpage.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_versionmodified.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_indices.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_admonitions.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_color.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_api.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_code.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_figures.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_footnotes.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_hacks.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_lists.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_quotes.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_spans.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_tables.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_toctree.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_math.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_ablog.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_bootstrap.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_copybutton.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_ethical-ads.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_execution.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_graphviz.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_pydata.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_color.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_togglebutton.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_notebooks.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_leaflet.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/pages/_search.scss"],"sourcesContent":["//\n// Headings\n//\n.h1 {\n @extend h1;\n}\n\n.h2 {\n @extend h2;\n}\n\n.h3 {\n @extend h3;\n}\n\n.h4 {\n @extend h4;\n}\n\n.h5 {\n @extend h5;\n}\n\n.h6 {\n @extend h6;\n}\n\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n@each $display, $font-size in $display-font-sizes {\n .display-#{$display} {\n @include font-size($font-size);\n font-family: $display-font-family;\n font-style: $display-font-style;\n font-weight: $display-font-weight;\n line-height: $display-line-height;\n }\n}\n\n//\n// Emphasis\n//\n.small {\n @extend small;\n}\n\n.mark {\n @extend mark;\n}\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size($initialism-font-size);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $blockquote-margin-y;\n @include font-size($blockquote-font-size);\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n.blockquote-footer {\n margin-top: -$blockquote-margin-y;\n margin-bottom: $blockquote-margin-y;\n @include font-size($blockquote-footer-font-size);\n color: $blockquote-footer-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","@charset \"UTF-8\";\n/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root,\n[data-bs-theme=light] {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-primary-text-emphasis: #052c65;\n --bs-secondary-text-emphasis: #2b2f32;\n --bs-success-text-emphasis: #0a3622;\n --bs-info-text-emphasis: #055160;\n --bs-warning-text-emphasis: #664d03;\n --bs-danger-text-emphasis: #58151c;\n --bs-light-text-emphasis: #495057;\n --bs-dark-text-emphasis: #495057;\n --bs-primary-bg-subtle: #cfe2ff;\n --bs-secondary-bg-subtle: #e2e3e5;\n --bs-success-bg-subtle: #d1e7dd;\n --bs-info-bg-subtle: #cff4fc;\n --bs-warning-bg-subtle: #fff3cd;\n --bs-danger-bg-subtle: #f8d7da;\n --bs-light-bg-subtle: #fcfcfd;\n --bs-dark-bg-subtle: #ced4da;\n --bs-primary-border-subtle: #9ec5fe;\n --bs-secondary-border-subtle: #c4c8cb;\n --bs-success-border-subtle: #a3cfbb;\n --bs-info-border-subtle: #9eeaf9;\n --bs-warning-border-subtle: #ffe69c;\n --bs-danger-border-subtle: #f1aeb5;\n --bs-light-border-subtle: #e9ecef;\n --bs-dark-border-subtle: #adb5bd;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg: #fff;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-emphasis-color: #000;\n --bs-emphasis-color-rgb: 0, 0, 0;\n --bs-secondary-color: rgba(33, 37, 41, 0.75);\n --bs-secondary-color-rgb: 33, 37, 41;\n --bs-secondary-bg: #e9ecef;\n --bs-secondary-bg-rgb: 233, 236, 239;\n --bs-tertiary-color: rgba(33, 37, 41, 0.5);\n --bs-tertiary-color-rgb: 33, 37, 41;\n --bs-tertiary-bg: #f8f9fa;\n --bs-tertiary-bg-rgb: 248, 249, 250;\n --bs-heading-color: inherit;\n --bs-link-color: #0d6efd;\n --bs-link-color-rgb: 13, 110, 253;\n --bs-link-decoration: underline;\n --bs-link-hover-color: #0a58ca;\n --bs-link-hover-color-rgb: 10, 88, 202;\n --bs-code-color: #d63384;\n --bs-highlight-color: #212529;\n --bs-highlight-bg: #fff3cd;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-xxl: 2rem;\n --bs-border-radius-2xl: var(--bs-border-radius-xxl);\n --bs-border-radius-pill: 50rem;\n --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --bs-focus-ring-width: 0.1875rem;\n --bs-focus-ring-opacity: 1;\n --bs-focus-ring-color: var(--pst-color-accent);\n --bs-form-valid-color: #198754;\n --bs-form-valid-border-color: #198754;\n --bs-form-invalid-color: #dc3545;\n --bs-form-invalid-border-color: #dc3545;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n --bs-body-color: #dee2e6;\n --bs-body-color-rgb: 222, 226, 230;\n --bs-body-bg: #212529;\n --bs-body-bg-rgb: 33, 37, 41;\n --bs-emphasis-color: #fff;\n --bs-emphasis-color-rgb: 255, 255, 255;\n --bs-secondary-color: rgba(222, 226, 230, 0.75);\n --bs-secondary-color-rgb: 222, 226, 230;\n --bs-secondary-bg: #343a40;\n --bs-secondary-bg-rgb: 52, 58, 64;\n --bs-tertiary-color: rgba(222, 226, 230, 0.5);\n --bs-tertiary-color-rgb: 222, 226, 230;\n --bs-tertiary-bg: #2b3035;\n --bs-tertiary-bg-rgb: 43, 48, 53;\n --bs-primary-text-emphasis: #6ea8fe;\n --bs-secondary-text-emphasis: #a7acb1;\n --bs-success-text-emphasis: #75b798;\n --bs-info-text-emphasis: #6edff6;\n --bs-warning-text-emphasis: #ffda6a;\n --bs-danger-text-emphasis: #ea868f;\n --bs-light-text-emphasis: #f8f9fa;\n --bs-dark-text-emphasis: #dee2e6;\n --bs-primary-bg-subtle: #031633;\n --bs-secondary-bg-subtle: #161719;\n --bs-success-bg-subtle: #051b11;\n --bs-info-bg-subtle: #032830;\n --bs-warning-bg-subtle: #332701;\n --bs-danger-bg-subtle: #2c0b0e;\n --bs-light-bg-subtle: #343a40;\n --bs-dark-bg-subtle: #1a1d20;\n --bs-primary-border-subtle: #084298;\n --bs-secondary-border-subtle: #41464b;\n --bs-success-border-subtle: #0f5132;\n --bs-info-border-subtle: #087990;\n --bs-warning-border-subtle: #997404;\n --bs-danger-border-subtle: #842029;\n --bs-light-border-subtle: #495057;\n --bs-dark-border-subtle: #343a40;\n --bs-heading-color: inherit;\n --bs-link-color: #6ea8fe;\n --bs-link-hover-color: #8bb9fe;\n --bs-link-color-rgb: 110, 168, 254;\n --bs-link-hover-color-rgb: 139, 185, 254;\n --bs-code-color: #e685b5;\n --bs-highlight-color: #dee2e6;\n --bs-highlight-bg: #664d03;\n --bs-border-color: #495057;\n --bs-border-color-translucent: rgba(255, 255, 255, 0.15);\n --bs-form-valid-color: #75b798;\n --bs-form-valid-border-color: #75b798;\n --bs-form-invalid-color: #ea868f;\n --bs-form-invalid-border-color: #ea868f;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: var(--bs-border-width) solid;\n opacity: 0.25;\n}\n\nh6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n color: var(--bs-heading-color);\n}\n\nh1, .h1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1, .h1 {\n font-size: 2.5rem;\n }\n}\n\nh2, .h2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2, .h2 {\n font-size: 2rem;\n }\n}\n\nh3, .h3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3, .h3 {\n font-size: 1.75rem;\n }\n}\n\nh4, .h4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4, .h4 {\n font-size: 1.5rem;\n }\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall, .small {\n font-size: 0.875em;\n}\n\nmark, .mark {\n padding: 0.1875em;\n color: var(--bs-highlight-color);\n background-color: var(--bs-highlight-bg);\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));\n text-decoration: underline;\n}\na:hover {\n --bs-link-color-rgb: var(--bs-link-hover-color-rgb);\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: var(--bs-code-color);\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.1875rem 0.375rem;\n font-size: 0.875em;\n color: var(--bs-body-bg);\n background-color: var(--bs-body-color);\n border-radius: 0.25rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-secondary-color);\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: calc(1.625rem + 4.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-1 {\n font-size: 5rem;\n }\n}\n\n.display-2 {\n font-size: calc(1.575rem + 3.9vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-2 {\n font-size: 4.5rem;\n }\n}\n\n.display-3 {\n font-size: calc(1.525rem + 3.3vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-3 {\n font-size: 4rem;\n }\n}\n\n.display-4 {\n font-size: calc(1.475rem + 2.7vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-4 {\n font-size: 3.5rem;\n }\n}\n\n.display-5 {\n font-size: calc(1.425rem + 2.1vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-5 {\n font-size: 3rem;\n }\n}\n\n.display-6 {\n font-size: calc(1.375rem + 1.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-6 {\n font-size: 2.5rem;\n }\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 0.875em;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n.blockquote > :last-child {\n margin-bottom: 0;\n}\n\n.blockquote-footer {\n margin-top: -1rem;\n margin-bottom: 1rem;\n font-size: 0.875em;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: var(--bs-body-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 0.875em;\n color: var(--bs-secondary-color);\n}\n\n.container,\n.container-fluid,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 540px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 720px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 960px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1400px;\n }\n}\n:root {\n --bs-breakpoint-xs: 0;\n --bs-breakpoint-sm: 540px;\n --bs-breakpoint-md: 720px;\n --bs-breakpoint-lg: 960px;\n --bs-breakpoint-xl: 1200px;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 540px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 720px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 960px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.table {\n --bs-table-color-type: initial;\n --bs-table-bg-type: initial;\n --bs-table-color-state: initial;\n --bs-table-bg-state: initial;\n --bs-table-color: var(--bs-emphasis-color);\n --bs-table-bg: var(--bs-body-bg);\n --bs-table-border-color: var(--bs-border-color);\n --bs-table-accent-bg: transparent;\n --bs-table-striped-color: var(--bs-emphasis-color);\n --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);\n --bs-table-active-color: var(--bs-emphasis-color);\n --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1);\n --bs-table-hover-color: var(--bs-emphasis-color);\n --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--bs-table-border-color);\n}\n.table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));\n background-color: var(--bs-table-bg);\n border-bottom-width: var(--bs-border-width);\n box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));\n}\n.table > tbody {\n vertical-align: inherit;\n}\n.table > thead {\n vertical-align: bottom;\n}\n\n.table-group-divider {\n border-top: calc(var(--bs-border-width) * 2) solid currentcolor;\n}\n\n.caption-top {\n caption-side: top;\n}\n\n.table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n}\n\n.table-bordered > :not(caption) > * {\n border-width: var(--bs-border-width) 0;\n}\n.table-bordered > :not(caption) > * > * {\n border-width: 0 var(--bs-border-width);\n}\n\n.table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n}\n.table-borderless > :not(:first-child) {\n border-top-width: 0;\n}\n\n.table-striped > tbody > tr:nth-of-type(odd) > * {\n --bs-table-color-type: var(--bs-table-striped-color);\n --bs-table-bg-type: var(--bs-table-striped-bg);\n}\n\n.table-striped-columns > :not(caption) > tr > :nth-child(even) {\n --bs-table-color-type: var(--bs-table-striped-color);\n --bs-table-bg-type: var(--bs-table-striped-bg);\n}\n\n.table-active {\n --bs-table-color-state: var(--bs-table-active-color);\n --bs-table-bg-state: var(--bs-table-active-bg);\n}\n\n.table-hover > tbody > tr:hover > * {\n --bs-table-color-state: var(--bs-table-hover-color);\n --bs-table-bg-state: var(--bs-table-hover-bg);\n}\n\n.table-primary {\n --bs-table-color: #000;\n --bs-table-bg: #cfe2ff;\n --bs-table-border-color: #a6b5cc;\n --bs-table-striped-bg: #c5d7f2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bacbe6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfd1ec;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-secondary {\n --bs-table-color: #000;\n --bs-table-bg: #e2e3e5;\n --bs-table-border-color: #b5b6b7;\n --bs-table-striped-bg: #d7d8da;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #cbccce;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #d1d2d4;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-success {\n --bs-table-color: #000;\n --bs-table-bg: #d1e7dd;\n --bs-table-border-color: #a7b9b1;\n --bs-table-striped-bg: #c7dbd2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bcd0c7;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c1d6cc;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-info {\n --bs-table-color: #000;\n --bs-table-bg: #cff4fc;\n --bs-table-border-color: #a6c3ca;\n --bs-table-striped-bg: #c5e8ef;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #badce3;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfe2e9;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-warning {\n --bs-table-color: #000;\n --bs-table-bg: #fff3cd;\n --bs-table-border-color: #ccc2a4;\n --bs-table-striped-bg: #f2e7c3;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #e6dbb9;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #ece1be;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-danger {\n --bs-table-color: #000;\n --bs-table-bg: #f8d7da;\n --bs-table-border-color: #c6acae;\n --bs-table-striped-bg: #eccccf;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfc2c4;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5c7ca;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-light {\n --bs-table-color: #000;\n --bs-table-bg: #f8f9fa;\n --bs-table-border-color: #c6c7c8;\n --bs-table-striped-bg: #ecedee;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfe0e1;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5e6e7;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-dark {\n --bs-table-color: #fff;\n --bs-table-bg: #212529;\n --bs-table-border-color: #4d5154;\n --bs-table-striped-bg: #2c3034;\n --bs-table-striped-color: #fff;\n --bs-table-active-bg: #373b3e;\n --bs-table-active-color: #fff;\n --bs-table-hover-bg: #323539;\n --bs-table-hover-color: #fff;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n@media (max-width: 539.98px) {\n .table-responsive-sm {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 719.98px) {\n .table-responsive-md {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 959.98px) {\n .table-responsive-lg {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n.form-label {\n margin-bottom: 0.5rem;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + var(--bs-border-width));\n padding-bottom: calc(0.375rem + var(--bs-border-width));\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + var(--bs-border-width));\n padding-bottom: calc(0.5rem + var(--bs-border-width));\n font-size: 1.25rem;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + var(--bs-border-width));\n padding-bottom: calc(0.25rem + var(--bs-border-width));\n font-size: 0.875rem;\n}\n\n.form-text {\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-secondary-color);\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n appearance: none;\n background-color: var(--bs-body-bg);\n background-clip: padding-box;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control[type=file] {\n overflow: hidden;\n}\n.form-control[type=file]:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control:focus {\n color: var(--bs-body-color);\n background-color: var(--bs-body-bg);\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-control::-webkit-date-and-time-value {\n min-width: 85px;\n height: 1.5em;\n margin: 0;\n}\n.form-control::-webkit-datetime-edit {\n display: block;\n padding: 0;\n}\n.form-control::placeholder {\n color: var(--bs-secondary-color);\n opacity: 1;\n}\n.form-control:disabled {\n background-color: var(--bs-secondary-bg);\n opacity: 1;\n}\n.form-control::file-selector-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: var(--bs-body-color);\n background-color: var(--bs-tertiary-bg);\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--bs-border-width);\n border-radius: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n}\n.form-control:hover:not(:disabled):not([readonly])::file-selector-button {\n background-color: var(--bs-secondary-bg);\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n line-height: 1.5;\n color: var(--bs-body-color);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--bs-border-width) 0;\n}\n.form-control-plaintext:focus {\n outline: 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n.form-control-sm::file-selector-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem;\n}\n\n.form-control-lg {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n.form-control-lg::file-selector-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem;\n}\n\ntextarea.form-control {\n min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n}\ntextarea.form-control-sm {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n}\ntextarea.form-control-lg {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n}\n\n.form-control-color {\n width: 3rem;\n height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n padding: 0.375rem;\n}\n.form-control-color:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control-color::-moz-color-swatch {\n border: 0 !important;\n border-radius: var(--bs-border-radius);\n}\n.form-control-color::-webkit-color-swatch {\n border: 0 !important;\n border-radius: var(--bs-border-radius);\n}\n.form-control-color.form-control-sm {\n height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n}\n.form-control-color.form-control-lg {\n height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n}\n\n.form-select {\n --bs-form-select-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n display: block;\n width: 100%;\n padding: 0.375rem 2.25rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n appearance: none;\n background-color: var(--bs-body-bg);\n background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-select {\n transition: none;\n }\n}\n.form-select:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-select[multiple], .form-select[size]:not([size=\"1\"]) {\n padding-right: 0.75rem;\n background-image: none;\n}\n.form-select:disabled {\n background-color: var(--bs-secondary-bg);\n}\n.form-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 var(--bs-body-color);\n}\n\n.form-select-sm {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.form-select-lg {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n[data-bs-theme=dark] .form-select {\n --bs-form-select-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n}\n\n.form-check {\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5em;\n margin-bottom: 0.125rem;\n}\n.form-check .form-check-input {\n float: left;\n margin-left: -1.5em;\n}\n\n.form-check-reverse {\n padding-right: 1.5em;\n padding-left: 0;\n text-align: right;\n}\n.form-check-reverse .form-check-input {\n float: right;\n margin-right: -1.5em;\n margin-left: 0;\n}\n\n.form-check-input {\n --bs-form-check-bg: var(--bs-body-bg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--bs-form-check-bg);\n background-image: var(--bs-form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--bs-border-width) solid var(--bs-border-color);\n print-color-adjust: exact;\n}\n.form-check-input[type=checkbox] {\n border-radius: 0.25em;\n}\n.form-check-input[type=radio] {\n border-radius: 50%;\n}\n.form-check-input:active {\n filter: brightness(90%);\n}\n.form-check-input:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-check-input:checked {\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.form-check-input:checked[type=checkbox] {\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\");\n}\n.form-check-input:checked[type=radio] {\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-check-input[type=checkbox]:indeterminate {\n background-color: #0d6efd;\n border-color: #0d6efd;\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n}\n.form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: 0.5;\n}\n\n.form-switch {\n padding-left: 2.5em;\n}\n.form-switch .form-check-input {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");\n width: 2em;\n margin-left: -2.5em;\n background-image: var(--bs-form-switch-bg);\n background-position: left center;\n border-radius: 2em;\n transition: background-position 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-switch .form-check-input {\n transition: none;\n }\n}\n.form-switch .form-check-input:focus {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\");\n}\n.form-switch .form-check-input:checked {\n background-position: right center;\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-switch.form-check-reverse {\n padding-right: 2.5em;\n padding-left: 0;\n}\n.form-switch.form-check-reverse .form-check-input {\n margin-right: -2.5em;\n margin-left: 0;\n}\n\n.form-check-inline {\n display: inline-block;\n margin-right: 1rem;\n}\n\n.btn-check {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.btn-check[disabled] + .btn, .btn-check:disabled + .btn {\n pointer-events: none;\n filter: none;\n opacity: 0.65;\n}\n\n[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e\");\n}\n\n.form-range {\n width: 100%;\n height: 1.375rem;\n padding: 0;\n appearance: none;\n background-color: transparent;\n}\n.form-range:focus {\n outline: 0;\n}\n.form-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-range::-moz-focus-outer {\n border: 0;\n}\n.form-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n appearance: none;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n.form-range::-webkit-slider-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: var(--bs-secondary-bg);\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n appearance: none;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n}\n.form-range::-moz-range-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: var(--bs-secondary-bg);\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range:disabled {\n pointer-events: none;\n}\n.form-range:disabled::-webkit-slider-thumb {\n background-color: var(--bs-secondary-color);\n}\n.form-range:disabled::-moz-range-thumb {\n background-color: var(--bs-secondary-color);\n}\n\n.form-floating {\n position: relative;\n}\n.form-floating > .form-control,\n.form-floating > .form-control-plaintext,\n.form-floating > .form-select {\n height: calc(3.5rem + calc(var(--bs-border-width) * 2));\n min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));\n line-height: 1.25;\n}\n.form-floating > label {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n height: 100%;\n padding: 1rem 0.75rem;\n overflow: hidden;\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--bs-border-width) solid transparent;\n transform-origin: 0 0;\n transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n}\n.form-floating > .form-control,\n.form-floating > .form-control-plaintext {\n padding: 1rem 0.75rem;\n}\n.form-floating > .form-control::placeholder,\n.form-floating > .form-control-plaintext::placeholder {\n color: transparent;\n}\n.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),\n.form-floating > .form-control-plaintext:focus,\n.form-floating > .form-control-plaintext:not(:placeholder-shown) {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:-webkit-autofill,\n.form-floating > .form-control-plaintext:-webkit-autofill {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-select {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:focus ~ label,\n.form-floating > .form-control:not(:placeholder-shown) ~ label,\n.form-floating > .form-control-plaintext ~ label,\n.form-floating > .form-select ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control:focus ~ label::after,\n.form-floating > .form-control:not(:placeholder-shown) ~ label::after,\n.form-floating > .form-control-plaintext ~ label::after,\n.form-floating > .form-select ~ label::after {\n position: absolute;\n inset: 1rem 0.375rem;\n z-index: -1;\n height: 1.5em;\n content: \"\";\n background-color: var(--bs-body-bg);\n border-radius: var(--bs-border-radius);\n}\n.form-floating > .form-control:-webkit-autofill ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control-plaintext ~ label {\n border-width: var(--bs-border-width) 0;\n}\n.form-floating > :disabled ~ label,\n.form-floating > .form-control:disabled ~ label {\n color: #6c757d;\n}\n.form-floating > :disabled ~ label::after,\n.form-floating > .form-control:disabled ~ label::after {\n background-color: var(--bs-secondary-bg);\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-select,\n.input-group > .form-floating {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n}\n.input-group > .form-control:focus,\n.input-group > .form-select:focus,\n.input-group > .form-floating:focus-within {\n z-index: 5;\n}\n.input-group .btn {\n position: relative;\n z-index: 2;\n}\n.input-group .btn:focus {\n z-index: 5;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--bs-tertiary-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n padding-right: 3rem;\n}\n\n.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3),\n.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,\n.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4),\n.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control,\n.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {\n margin-left: calc(var(--bs-border-width) * -1);\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group > .form-floating:not(:first-child) > .form-control,\n.input-group > .form-floating:not(:first-child) > .form-select {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-valid-color);\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: var(--bs-success);\n border-radius: var(--bs-border-radius);\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: var(--bs-form-valid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: var(--bs-form-valid-border-color);\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-success-rgb), 1);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:valid, .form-select.is-valid {\n border-color: var(--bs-form-valid-border-color);\n}\n.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size=\"1\"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size=\"1\"] {\n --bs-form-select-bg-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n padding-right: 4.125rem;\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:valid:focus, .form-select.is-valid:focus {\n border-color: var(--bs-form-valid-border-color);\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-success-rgb), 1);\n}\n\n.was-validated .form-control-color:valid, .form-control-color.is-valid {\n width: calc(3rem + calc(1.5em + 0.75rem));\n}\n\n.was-validated .form-check-input:valid, .form-check-input.is-valid {\n border-color: var(--bs-form-valid-border-color);\n}\n.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {\n background-color: var(--bs-form-valid-color);\n}\n.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-success-rgb), 1);\n}\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: var(--bs-form-valid-color);\n}\n\n.form-check-inline .form-check-input ~ .valid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,\n.was-validated .input-group > .form-select:not(:focus):valid,\n.input-group > .form-select:not(:focus).is-valid,\n.was-validated .input-group > .form-floating:not(:focus-within):valid,\n.input-group > .form-floating:not(:focus-within).is-valid {\n z-index: 3;\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-invalid-color);\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: var(--bs-danger);\n border-radius: var(--bs-border-radius);\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: var(--bs-form-invalid-border-color);\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-danger-rgb), 1);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:invalid, .form-select.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n}\n.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size=\"1\"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size=\"1\"] {\n --bs-form-select-bg-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n padding-right: 4.125rem;\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {\n border-color: var(--bs-form-invalid-border-color);\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-danger-rgb), 1);\n}\n\n.was-validated .form-control-color:invalid, .form-control-color.is-invalid {\n width: calc(3rem + calc(1.5em + 0.75rem));\n}\n\n.was-validated .form-check-input:invalid, .form-check-input.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n}\n.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {\n background-color: var(--bs-form-invalid-color);\n}\n.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-danger-rgb), 1);\n}\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: var(--bs-form-invalid-color);\n}\n\n.form-check-inline .form-check-input ~ .invalid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,\n.was-validated .input-group > .form-select:not(:focus):invalid,\n.input-group > .form-select:not(:focus).is-invalid,\n.was-validated .input-group > .form-floating:not(:focus-within):invalid,\n.input-group > .form-floating:not(:focus-within).is-invalid {\n z-index: 4;\n}\n\n.btn {\n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.1875rem rgba(var(--bs-btn-focus-shadow-rgb), .5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n}\n.btn-check + .btn:hover {\n color: var(--bs-btn-color);\n background-color: var(--bs-btn-bg);\n border-color: var(--bs-btn-border-color);\n}\n.btn:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:focus-visible + .btn {\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {\n color: var(--bs-btn-active-color);\n background-color: var(--bs-btn-active-bg);\n border-color: var(--bs-btn-active-border-color);\n}\n.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:checked:focus-visible + .btn {\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn:disabled, .btn.disabled, fieldset:disabled .btn {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n}\n\n.btn-primary {\n --bs-btn-color: #fff;\n --bs-btn-bg: #0d6efd;\n --bs-btn-border-color: #0d6efd;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #0b5ed7;\n --bs-btn-hover-border-color: #0a58ca;\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #0d6efd;\n --bs-btn-disabled-border-color: #0d6efd;\n}\n\n.btn-secondary {\n --bs-btn-color: #fff;\n --bs-btn-bg: #6c757d;\n --bs-btn-border-color: #6c757d;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #5c636a;\n --bs-btn-hover-border-color: #565e64;\n --bs-btn-focus-shadow-rgb: 130, 138, 145;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #565e64;\n --bs-btn-active-border-color: #51585e;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #6c757d;\n --bs-btn-disabled-border-color: #6c757d;\n}\n\n.btn-success {\n --bs-btn-color: #fff;\n --bs-btn-bg: #198754;\n --bs-btn-border-color: #198754;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #157347;\n --bs-btn-hover-border-color: #146c43;\n --bs-btn-focus-shadow-rgb: 60, 153, 110;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #146c43;\n --bs-btn-active-border-color: #13653f;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #198754;\n --bs-btn-disabled-border-color: #198754;\n}\n\n.btn-info {\n --bs-btn-color: #000;\n --bs-btn-bg: #0dcaf0;\n --bs-btn-border-color: #0dcaf0;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #31d2f2;\n --bs-btn-hover-border-color: #25cff2;\n --bs-btn-focus-shadow-rgb: 11, 172, 204;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #3dd5f3;\n --bs-btn-active-border-color: #25cff2;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #0dcaf0;\n --bs-btn-disabled-border-color: #0dcaf0;\n}\n\n.btn-warning {\n --bs-btn-color: #000;\n --bs-btn-bg: #ffc107;\n --bs-btn-border-color: #ffc107;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #ffca2c;\n --bs-btn-hover-border-color: #ffc720;\n --bs-btn-focus-shadow-rgb: 217, 164, 6;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #ffcd39;\n --bs-btn-active-border-color: #ffc720;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #ffc107;\n --bs-btn-disabled-border-color: #ffc107;\n}\n\n.btn-danger {\n --bs-btn-color: #fff;\n --bs-btn-bg: #dc3545;\n --bs-btn-border-color: #dc3545;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #bb2d3b;\n --bs-btn-hover-border-color: #b02a37;\n --bs-btn-focus-shadow-rgb: 225, 83, 97;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #b02a37;\n --bs-btn-active-border-color: #a52834;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #dc3545;\n --bs-btn-disabled-border-color: #dc3545;\n}\n\n.btn-light {\n --bs-btn-color: #000;\n --bs-btn-bg: #f8f9fa;\n --bs-btn-border-color: #f8f9fa;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #d3d4d5;\n --bs-btn-hover-border-color: #c6c7c8;\n --bs-btn-focus-shadow-rgb: 211, 212, 213;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #c6c7c8;\n --bs-btn-active-border-color: #babbbc;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #f8f9fa;\n --bs-btn-disabled-border-color: #f8f9fa;\n}\n\n.btn-dark {\n --bs-btn-color: #fff;\n --bs-btn-bg: #212529;\n --bs-btn-border-color: #212529;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #424649;\n --bs-btn-hover-border-color: #373b3e;\n --bs-btn-focus-shadow-rgb: 66, 70, 73;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #4d5154;\n --bs-btn-active-border-color: #373b3e;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #212529;\n --bs-btn-disabled-border-color: #212529;\n}\n\n.btn-outline-primary {\n --bs-btn-color: #0d6efd;\n --bs-btn-border-color: #0d6efd;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #0d6efd;\n --bs-btn-hover-border-color: #0d6efd;\n --bs-btn-focus-shadow-rgb: 13, 110, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0d6efd;\n --bs-btn-active-border-color: #0d6efd;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #0d6efd;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #0d6efd;\n --bs-gradient: none;\n}\n\n.btn-outline-secondary {\n --bs-btn-color: #6c757d;\n --bs-btn-border-color: #6c757d;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #6c757d;\n --bs-btn-hover-border-color: #6c757d;\n --bs-btn-focus-shadow-rgb: 108, 117, 125;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #6c757d;\n --bs-btn-active-border-color: #6c757d;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #6c757d;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #6c757d;\n --bs-gradient: none;\n}\n\n.btn-outline-success {\n --bs-btn-color: #198754;\n --bs-btn-border-color: #198754;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #198754;\n --bs-btn-hover-border-color: #198754;\n --bs-btn-focus-shadow-rgb: 25, 135, 84;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #198754;\n --bs-btn-active-border-color: #198754;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #198754;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #198754;\n --bs-gradient: none;\n}\n\n.btn-outline-info {\n --bs-btn-color: #0dcaf0;\n --bs-btn-border-color: #0dcaf0;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #0dcaf0;\n --bs-btn-hover-border-color: #0dcaf0;\n --bs-btn-focus-shadow-rgb: 13, 202, 240;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #0dcaf0;\n --bs-btn-active-border-color: #0dcaf0;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #0dcaf0;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #0dcaf0;\n --bs-gradient: none;\n}\n\n.btn-outline-warning {\n --bs-btn-color: #ffc107;\n --bs-btn-border-color: #ffc107;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #ffc107;\n --bs-btn-hover-border-color: #ffc107;\n --bs-btn-focus-shadow-rgb: 255, 193, 7;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #ffc107;\n --bs-btn-active-border-color: #ffc107;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #ffc107;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #ffc107;\n --bs-gradient: none;\n}\n\n.btn-outline-danger {\n --bs-btn-color: #dc3545;\n --bs-btn-border-color: #dc3545;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #dc3545;\n --bs-btn-hover-border-color: #dc3545;\n --bs-btn-focus-shadow-rgb: 220, 53, 69;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #dc3545;\n --bs-btn-active-border-color: #dc3545;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #dc3545;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #dc3545;\n --bs-gradient: none;\n}\n\n.btn-outline-light {\n --bs-btn-color: #f8f9fa;\n --bs-btn-border-color: #f8f9fa;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #f8f9fa;\n --bs-btn-hover-border-color: #f8f9fa;\n --bs-btn-focus-shadow-rgb: 248, 249, 250;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #f8f9fa;\n --bs-btn-active-border-color: #f8f9fa;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #f8f9fa;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #f8f9fa;\n --bs-gradient: none;\n}\n\n.btn-outline-dark {\n --bs-btn-color: #212529;\n --bs-btn-border-color: #212529;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #212529;\n --bs-btn-hover-border-color: #212529;\n --bs-btn-focus-shadow-rgb: 33, 37, 41;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #212529;\n --bs-btn-active-border-color: #212529;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #212529;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #212529;\n --bs-gradient: none;\n}\n\n.btn-link {\n --bs-btn-font-weight: 400;\n --bs-btn-color: var(--bs-link-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-color: transparent;\n --bs-btn-hover-color: var(--bs-link-hover-color);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-active-color: var(--bs-link-hover-color);\n --bs-btn-active-border-color: transparent;\n --bs-btn-disabled-color: #6c757d;\n --bs-btn-disabled-border-color: transparent;\n --bs-btn-box-shadow: 0 0 0 #000;\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n text-decoration: underline;\n}\n.btn-link:focus-visible {\n color: var(--bs-btn-color);\n}\n.btn-link:hover {\n color: var(--bs-btn-hover-color);\n}\n\n.btn-lg, .btn-group-lg > .btn {\n --bs-btn-padding-y: 0.5rem;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 1.25rem;\n --bs-btn-border-radius: var(--bs-border-radius-lg);\n}\n\n.btn-sm, .btn-group-sm > .btn {\n --bs-btn-padding-y: 0.25rem;\n --bs-btn-padding-x: 0.5rem;\n --bs-btn-font-size: 0.875rem;\n --bs-btn-border-radius: var(--bs-border-radius-sm);\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n.dropup,\n.dropend,\n.dropdown,\n.dropstart,\n.dropup-center,\n.dropdown-center {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n --bs-dropdown-zindex: 1000;\n --bs-dropdown-min-width: 10rem;\n --bs-dropdown-padding-x: 0;\n --bs-dropdown-padding-y: 0.5rem;\n --bs-dropdown-spacer: 0.125rem;\n --bs-dropdown-font-size: 1rem;\n --bs-dropdown-color: var(--bs-body-color);\n --bs-dropdown-bg: var(--bs-body-bg);\n --bs-dropdown-border-color: var(--bs-border-color-translucent);\n --bs-dropdown-border-radius: var(--bs-border-radius);\n --bs-dropdown-border-width: var(--bs-border-width);\n --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));\n --bs-dropdown-divider-bg: var(--bs-border-color-translucent);\n --bs-dropdown-divider-margin-y: 0.5rem;\n --bs-dropdown-box-shadow: var(--bs-box-shadow);\n --bs-dropdown-link-color: var(--bs-body-color);\n --bs-dropdown-link-hover-color: var(--bs-body-color);\n --bs-dropdown-link-hover-bg: var(--pst-color-surface);\n --bs-dropdown-link-active-color: #fff;\n --bs-dropdown-link-active-bg: var(--pst-color-surface);\n --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);\n --bs-dropdown-item-padding-x: 1rem;\n --bs-dropdown-item-padding-y: 0.25rem;\n --bs-dropdown-header-color: #6c757d;\n --bs-dropdown-header-padding-x: 1rem;\n --bs-dropdown-header-padding-y: 0.5rem;\n position: absolute;\n z-index: var(--bs-dropdown-zindex);\n display: none;\n min-width: var(--bs-dropdown-min-width);\n padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);\n margin: 0;\n font-size: var(--bs-dropdown-font-size);\n color: var(--bs-dropdown-color);\n text-align: left;\n list-style: none;\n background-color: var(--bs-dropdown-bg);\n background-clip: padding-box;\n border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);\n border-radius: var(--bs-dropdown-border-radius);\n}\n.dropdown-menu[data-bs-popper] {\n top: 100%;\n left: 0;\n margin-top: var(--bs-dropdown-spacer);\n}\n\n.dropdown-menu-start {\n --bs-position: start;\n}\n.dropdown-menu-start[data-bs-popper] {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-end {\n --bs-position: end;\n}\n.dropdown-menu-end[data-bs-popper] {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 540px) {\n .dropdown-menu-sm-start {\n --bs-position: start;\n }\n .dropdown-menu-sm-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-end {\n --bs-position: end;\n }\n .dropdown-menu-sm-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 720px) {\n .dropdown-menu-md-start {\n --bs-position: start;\n }\n .dropdown-menu-md-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-end {\n --bs-position: end;\n }\n .dropdown-menu-md-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 960px) {\n .dropdown-menu-lg-start {\n --bs-position: start;\n }\n .dropdown-menu-lg-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-end {\n --bs-position: end;\n }\n .dropdown-menu-lg-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-start {\n --bs-position: start;\n }\n .dropdown-menu-xl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-end {\n --bs-position: end;\n }\n .dropdown-menu-xl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu[data-bs-popper] {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: var(--bs-dropdown-spacer);\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropend .dropdown-menu[data-bs-popper] {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: var(--bs-dropdown-spacer);\n}\n.dropend .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropend .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropend .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropstart .dropdown-menu[data-bs-popper] {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: var(--bs-dropdown-spacer);\n}\n.dropstart .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropstart .dropdown-toggle::after {\n display: none;\n}\n.dropstart .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropstart .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: var(--bs-dropdown-divider-margin-y) 0;\n overflow: hidden;\n border-top: 1px solid var(--bs-dropdown-divider-bg);\n opacity: 1;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);\n clear: both;\n font-weight: 400;\n color: var(--bs-dropdown-link-color);\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n border-radius: var(--bs-dropdown-item-border-radius, 0);\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: var(--bs-dropdown-link-hover-color);\n background-color: var(--bs-dropdown-link-hover-bg);\n}\n.dropdown-item.active, .dropdown-item:active {\n color: var(--bs-dropdown-link-active-color);\n text-decoration: none;\n background-color: var(--bs-dropdown-link-active-bg);\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: var(--bs-dropdown-link-disabled-color);\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);\n margin-bottom: 0;\n font-size: 0.875rem;\n color: var(--bs-dropdown-header-color);\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);\n color: var(--bs-dropdown-link-color);\n}\n\n.dropdown-menu-dark {\n --bs-dropdown-color: #dee2e6;\n --bs-dropdown-bg: #343a40;\n --bs-dropdown-border-color: var(--bs-border-color-translucent);\n --bs-dropdown-box-shadow: ;\n --bs-dropdown-link-color: #dee2e6;\n --bs-dropdown-link-hover-color: #fff;\n --bs-dropdown-divider-bg: var(--bs-border-color-translucent);\n --bs-dropdown-link-hover-bg: var(--pst-color-surface);\n --bs-dropdown-link-active-color: #fff;\n --bs-dropdown-link-active-bg: var(--pst-color-surface);\n --bs-dropdown-link-disabled-color: #adb5bd;\n --bs-dropdown-header-color: #adb5bd;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n.btn-group > .btn-check:checked + .btn,\n.btn-group > .btn-check:focus + .btn,\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn-check:checked + .btn,\n.btn-group-vertical > .btn-check:focus + .btn,\n.btn-group-vertical > .btn:hover,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group {\n border-radius: var(--bs-border-radius);\n}\n.btn-group > :not(.btn-check:first-child) + .btn,\n.btn-group > .btn-group:not(:first-child) {\n margin-left: calc(var(--bs-border-width) * -1);\n}\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn.dropdown-toggle-split:first-child,\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:nth-child(n+3),\n.btn-group > :not(.btn-check) + .btn,\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: calc(var(--bs-border-width) * -1);\n}\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn ~ .btn,\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav {\n --bs-nav-link-padding-x: 1rem;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-link-color);\n --bs-nav-link-hover-color: var(--bs-link-hover-color);\n --bs-nav-link-disabled-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);\n font-size: var(--bs-nav-link-font-size);\n font-weight: var(--bs-nav-link-font-weight);\n color: var(--bs-nav-link-color);\n text-decoration: none;\n background: none;\n border: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n}\n.nav-link:hover, .nav-link:focus {\n color: var(--bs-nav-link-hover-color);\n}\n.nav-link:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.nav-link.disabled, .nav-link:disabled {\n color: var(--bs-nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n --bs-nav-tabs-border-width: var(--bs-border-width);\n --bs-nav-tabs-border-color: var(--bs-border-color);\n --bs-nav-tabs-border-radius: var(--bs-border-radius);\n --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);\n --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);\n --bs-nav-tabs-link-active-bg: var(--bs-body-bg);\n --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);\n border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);\n}\n.nav-tabs .nav-link {\n margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));\n border: var(--bs-nav-tabs-border-width) solid transparent;\n border-top-left-radius: var(--bs-nav-tabs-border-radius);\n border-top-right-radius: var(--bs-nav-tabs-border-radius);\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n isolation: isolate;\n border-color: var(--bs-nav-tabs-link-hover-border-color);\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: var(--bs-nav-tabs-link-active-color);\n background-color: var(--bs-nav-tabs-link-active-bg);\n border-color: var(--bs-nav-tabs-link-active-border-color);\n}\n.nav-tabs .dropdown-menu {\n margin-top: calc(-1 * var(--bs-nav-tabs-border-width));\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills {\n --bs-nav-pills-border-radius: var(--bs-border-radius);\n --bs-nav-pills-link-active-color: #fff;\n --bs-nav-pills-link-active-bg: #0d6efd;\n}\n.nav-pills .nav-link {\n border-radius: var(--bs-nav-pills-border-radius);\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: var(--bs-nav-pills-link-active-color);\n background-color: var(--bs-nav-pills-link-active-bg);\n}\n\n.nav-underline {\n --bs-nav-underline-gap: 1rem;\n --bs-nav-underline-border-width: 0.125rem;\n --bs-nav-underline-link-active-color: var(--bs-emphasis-color);\n gap: var(--bs-nav-underline-gap);\n}\n.nav-underline .nav-link {\n padding-right: 0;\n padding-left: 0;\n border-bottom: var(--bs-nav-underline-border-width) solid transparent;\n}\n.nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-bottom-color: currentcolor;\n}\n.nav-underline .nav-link.active,\n.nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--bs-nav-underline-link-active-color);\n border-bottom-color: currentcolor;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.nav-fill .nav-item .nav-link,\n.nav-justified .nav-item .nav-link {\n width: 100%;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n --bs-navbar-padding-x: 0;\n --bs-navbar-padding-y: 0.5rem;\n --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);\n --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);\n --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);\n --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-brand-padding-y: 0.3125rem;\n --bs-navbar-brand-margin-end: 1rem;\n --bs-navbar-brand-font-size: 1.25rem;\n --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-nav-link-padding-x: 0.5rem;\n --bs-navbar-toggler-padding-y: 0.25rem;\n --bs-navbar-toggler-padding-x: 0.75rem;\n --bs-navbar-toggler-font-size: 1.25rem;\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);\n --bs-navbar-toggler-border-radius: var(--bs-border-radius);\n --bs-navbar-toggler-focus-width: 0.1875rem;\n --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);\n}\n.navbar > .container,\n.navbar > .container-fluid,\n.navbar > .container-sm,\n.navbar > .container-md,\n.navbar > .container-lg,\n.navbar > .container-xl {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n padding-top: var(--bs-navbar-brand-padding-y);\n padding-bottom: var(--bs-navbar-brand-padding-y);\n margin-right: var(--bs-navbar-brand-margin-end);\n font-size: var(--bs-navbar-brand-font-size);\n color: var(--bs-navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n}\n.navbar-brand:hover, .navbar-brand:focus {\n color: var(--bs-navbar-brand-hover-color);\n}\n\n.navbar-nav {\n --bs-nav-link-padding-x: 0;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-navbar-color);\n --bs-nav-link-hover-color: var(--bs-navbar-hover-color);\n --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {\n color: var(--bs-navbar-active-color);\n}\n.navbar-nav .dropdown-menu {\n position: static;\n}\n\n.navbar-text {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-navbar-color);\n}\n.navbar-text a,\n.navbar-text a:hover,\n.navbar-text a:focus {\n color: var(--bs-navbar-active-color);\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);\n font-size: var(--bs-navbar-toggler-font-size);\n line-height: 1;\n color: var(--bs-navbar-color);\n background-color: transparent;\n border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);\n border-radius: var(--bs-navbar-toggler-border-radius);\n transition: var(--bs-navbar-toggler-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .navbar-toggler {\n transition: none;\n }\n}\n.navbar-toggler:hover {\n text-decoration: none;\n}\n.navbar-toggler:focus {\n text-decoration: none;\n outline: 0;\n box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n background-image: var(--bs-navbar-toggler-icon-bg);\n background-repeat: no-repeat;\n background-position: center;\n background-size: 100%;\n}\n\n.navbar-nav-scroll {\n max-height: var(--bs-scroll-height, 75vh);\n overflow-y: auto;\n}\n\n@media (min-width: 540px) {\n .navbar-expand-sm {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n .navbar-expand-sm .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-sm .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-sm .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 720px) {\n .navbar-expand-md {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n .navbar-expand-md .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-md .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-md .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 960px) {\n .navbar-expand-lg {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n .navbar-expand-lg .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-lg .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-lg .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xl .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-xl .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-xl .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n.navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n}\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n.navbar-expand .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n}\n.navbar-expand .offcanvas .offcanvas-header {\n display: none;\n}\n.navbar-expand .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n}\n\n.navbar-dark,\n.navbar[data-bs-theme=dark] {\n --bs-navbar-color: rgba(255, 255, 255, 0.55);\n --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);\n --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);\n --bs-navbar-active-color: #fff;\n --bs-navbar-brand-color: #fff;\n --bs-navbar-brand-hover-color: #fff;\n --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n[data-bs-theme=dark] .navbar-toggler-icon {\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.card {\n --bs-card-spacer-y: 1rem;\n --bs-card-spacer-x: 1rem;\n --bs-card-title-spacer-y: 0.5rem;\n --bs-card-title-color: ;\n --bs-card-subtitle-color: ;\n --bs-card-border-width: var(--bs-border-width);\n --bs-card-border-color: var(--bs-border-color-translucent);\n --bs-card-border-radius: var(--bs-border-radius);\n --bs-card-box-shadow: ;\n --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));\n --bs-card-cap-padding-y: 0.5rem;\n --bs-card-cap-padding-x: 1rem;\n --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);\n --bs-card-cap-color: ;\n --bs-card-height: ;\n --bs-card-color: ;\n --bs-card-bg: var(--bs-body-bg);\n --bs-card-img-overlay-padding: 1rem;\n --bs-card-group-margin: 0.75rem;\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: var(--bs-card-height);\n color: var(--bs-body-color);\n word-wrap: break-word;\n background-color: var(--bs-card-bg);\n background-clip: border-box;\n border: var(--bs-card-border-width) solid var(--bs-card-border-color);\n border-radius: var(--bs-card-border-radius);\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: var(--bs-card-inner-border-radius);\n border-top-right-radius: var(--bs-card-inner-border-radius);\n}\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: var(--bs-card-inner-border-radius);\n border-bottom-left-radius: var(--bs-card-inner-border-radius);\n}\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);\n color: var(--bs-card-color);\n}\n\n.card-title {\n margin-bottom: var(--bs-card-title-spacer-y);\n color: var(--bs-card-title-color);\n}\n\n.card-subtitle {\n margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));\n margin-bottom: 0;\n color: var(--bs-card-subtitle-color);\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link + .card-link {\n margin-left: var(--bs-card-spacer-x);\n}\n\n.card-header {\n padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);\n margin-bottom: 0;\n color: var(--bs-card-cap-color);\n background-color: var(--bs-card-cap-bg);\n border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);\n}\n.card-header:first-child {\n border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;\n}\n\n.card-footer {\n padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);\n color: var(--bs-card-cap-color);\n background-color: var(--bs-card-cap-bg);\n border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);\n}\n.card-footer:last-child {\n border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);\n}\n\n.card-header-tabs {\n margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));\n margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));\n margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));\n border-bottom: 0;\n}\n.card-header-tabs .nav-link.active {\n background-color: var(--bs-card-bg);\n border-bottom-color: var(--bs-card-bg);\n}\n\n.card-header-pills {\n margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));\n margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: var(--bs-card-img-overlay-padding);\n border-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: var(--bs-card-inner-border-radius);\n border-top-right-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: var(--bs-card-inner-border-radius);\n border-bottom-left-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-group > .card {\n margin-bottom: var(--bs-card-group-margin);\n}\n@media (min-width: 540px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.accordion {\n --bs-accordion-color: var(--bs-body-color);\n --bs-accordion-bg: var(--bs-body-bg);\n --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;\n --bs-accordion-border-color: var(--bs-border-color);\n --bs-accordion-border-width: var(--bs-border-width);\n --bs-accordion-border-radius: var(--bs-border-radius);\n --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));\n --bs-accordion-btn-padding-x: 1.25rem;\n --bs-accordion-btn-padding-y: 1rem;\n --bs-accordion-btn-color: var(--bs-body-color);\n --bs-accordion-btn-bg: var(--bs-accordion-bg);\n --bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e\");\n --bs-accordion-btn-icon-width: 1.25rem;\n --bs-accordion-btn-icon-transform: rotate(-180deg);\n --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;\n --bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e\");\n --bs-accordion-btn-focus-box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n --bs-accordion-body-padding-x: 1.25rem;\n --bs-accordion-body-padding-y: 1rem;\n --bs-accordion-active-color: var(--bs-primary-text-emphasis);\n --bs-accordion-active-bg: var(--bs-primary-bg-subtle);\n}\n\n.accordion-button {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);\n font-size: 1rem;\n color: var(--bs-accordion-btn-color);\n text-align: left;\n background-color: var(--bs-accordion-btn-bg);\n border: 0;\n border-radius: 0;\n overflow-anchor: none;\n transition: var(--bs-accordion-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button {\n transition: none;\n }\n}\n.accordion-button:not(.collapsed) {\n color: var(--bs-accordion-active-color);\n background-color: var(--bs-accordion-active-bg);\n box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);\n}\n.accordion-button:not(.collapsed)::after {\n background-image: var(--bs-accordion-btn-active-icon);\n transform: var(--bs-accordion-btn-icon-transform);\n}\n.accordion-button::after {\n flex-shrink: 0;\n width: var(--bs-accordion-btn-icon-width);\n height: var(--bs-accordion-btn-icon-width);\n margin-left: auto;\n content: \"\";\n background-image: var(--bs-accordion-btn-icon);\n background-repeat: no-repeat;\n background-size: var(--bs-accordion-btn-icon-width);\n transition: var(--bs-accordion-btn-icon-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button::after {\n transition: none;\n }\n}\n.accordion-button:hover {\n z-index: 2;\n}\n.accordion-button:focus {\n z-index: 3;\n outline: 0;\n box-shadow: var(--bs-accordion-btn-focus-box-shadow);\n}\n\n.accordion-header {\n margin-bottom: 0;\n}\n\n.accordion-item {\n color: var(--bs-accordion-color);\n background-color: var(--bs-accordion-bg);\n border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);\n}\n.accordion-item:first-of-type {\n border-top-left-radius: var(--bs-accordion-border-radius);\n border-top-right-radius: var(--bs-accordion-border-radius);\n}\n.accordion-item:first-of-type > .accordion-header .accordion-button {\n border-top-left-radius: var(--bs-accordion-inner-border-radius);\n border-top-right-radius: var(--bs-accordion-inner-border-radius);\n}\n.accordion-item:not(:first-of-type) {\n border-top: 0;\n}\n.accordion-item:last-of-type {\n border-bottom-right-radius: var(--bs-accordion-border-radius);\n border-bottom-left-radius: var(--bs-accordion-border-radius);\n}\n.accordion-item:last-of-type > .accordion-header .accordion-button.collapsed {\n border-bottom-right-radius: var(--bs-accordion-inner-border-radius);\n border-bottom-left-radius: var(--bs-accordion-inner-border-radius);\n}\n.accordion-item:last-of-type > .accordion-collapse {\n border-bottom-right-radius: var(--bs-accordion-border-radius);\n border-bottom-left-radius: var(--bs-accordion-border-radius);\n}\n\n.accordion-body {\n padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);\n}\n\n.accordion-flush > .accordion-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n.accordion-flush > .accordion-item:first-child {\n border-top: 0;\n}\n.accordion-flush > .accordion-item:last-child {\n border-bottom: 0;\n}\n.accordion-flush > .accordion-item > .accordion-header .accordion-button, .accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed {\n border-radius: 0;\n}\n.accordion-flush > .accordion-item > .accordion-collapse {\n border-radius: 0;\n}\n\n[data-bs-theme=dark] .accordion-button::after {\n --bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n --bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n}\n\n.breadcrumb {\n --bs-breadcrumb-padding-x: 0;\n --bs-breadcrumb-padding-y: 0;\n --bs-breadcrumb-margin-bottom: 1rem;\n --bs-breadcrumb-bg: ;\n --bs-breadcrumb-border-radius: ;\n --bs-breadcrumb-divider-color: var(--bs-secondary-color);\n --bs-breadcrumb-item-padding-x: 0.5rem;\n --bs-breadcrumb-item-active-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);\n margin-bottom: var(--bs-breadcrumb-margin-bottom);\n font-size: var(--bs-breadcrumb-font-size);\n list-style: none;\n background-color: var(--bs-breadcrumb-bg);\n border-radius: var(--bs-breadcrumb-border-radius);\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: var(--bs-breadcrumb-item-padding-x);\n}\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: var(--bs-breadcrumb-item-padding-x);\n color: var(--bs-breadcrumb-divider-color);\n content: var(--bs-breadcrumb-divider, \"/\") /* rtl: var(--bs-breadcrumb-divider, \"/\") */;\n}\n.breadcrumb-item.active {\n color: var(--bs-breadcrumb-item-active-color);\n}\n\n.pagination {\n --bs-pagination-padding-x: 0.75rem;\n --bs-pagination-padding-y: 0.375rem;\n --bs-pagination-font-size: 1rem;\n --bs-pagination-color: var(--bs-link-color);\n --bs-pagination-bg: var(--bs-body-bg);\n --bs-pagination-border-width: var(--bs-border-width);\n --bs-pagination-border-color: var(--bs-border-color);\n --bs-pagination-border-radius: var(--bs-border-radius);\n --bs-pagination-hover-color: var(--bs-link-hover-color);\n --bs-pagination-hover-bg: var(--bs-tertiary-bg);\n --bs-pagination-hover-border-color: var(--bs-border-color);\n --bs-pagination-focus-color: var(--bs-link-hover-color);\n --bs-pagination-focus-bg: var(--bs-secondary-bg);\n --bs-pagination-focus-box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n --bs-pagination-active-color: #fff;\n --bs-pagination-active-bg: #0d6efd;\n --bs-pagination-active-border-color: #0d6efd;\n --bs-pagination-disabled-color: var(--bs-secondary-color);\n --bs-pagination-disabled-bg: var(--bs-secondary-bg);\n --bs-pagination-disabled-border-color: var(--bs-border-color);\n display: flex;\n padding-left: 0;\n list-style: none;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);\n font-size: var(--bs-pagination-font-size);\n color: var(--bs-pagination-color);\n text-decoration: none;\n background-color: var(--bs-pagination-bg);\n border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n}\n.page-link:hover {\n z-index: 2;\n color: var(--bs-pagination-hover-color);\n background-color: var(--bs-pagination-hover-bg);\n border-color: var(--bs-pagination-hover-border-color);\n}\n.page-link:focus {\n z-index: 3;\n color: var(--bs-pagination-focus-color);\n background-color: var(--bs-pagination-focus-bg);\n outline: 0;\n box-shadow: var(--bs-pagination-focus-box-shadow);\n}\n.page-link.active, .active > .page-link {\n z-index: 3;\n color: var(--bs-pagination-active-color);\n background-color: var(--bs-pagination-active-bg);\n border-color: var(--bs-pagination-active-border-color);\n}\n.page-link.disabled, .disabled > .page-link {\n color: var(--bs-pagination-disabled-color);\n pointer-events: none;\n background-color: var(--bs-pagination-disabled-bg);\n border-color: var(--bs-pagination-disabled-border-color);\n}\n\n.page-item:not(:first-child) .page-link {\n margin-left: calc(var(--bs-border-width) * -1);\n}\n.page-item:first-child .page-link {\n border-top-left-radius: var(--bs-pagination-border-radius);\n border-bottom-left-radius: var(--bs-pagination-border-radius);\n}\n.page-item:last-child .page-link {\n border-top-right-radius: var(--bs-pagination-border-radius);\n border-bottom-right-radius: var(--bs-pagination-border-radius);\n}\n\n.pagination-lg {\n --bs-pagination-padding-x: 1.5rem;\n --bs-pagination-padding-y: 0.75rem;\n --bs-pagination-font-size: 1.25rem;\n --bs-pagination-border-radius: var(--bs-border-radius-lg);\n}\n\n.pagination-sm {\n --bs-pagination-padding-x: 0.5rem;\n --bs-pagination-padding-y: 0.25rem;\n --bs-pagination-font-size: 0.875rem;\n --bs-pagination-border-radius: var(--bs-border-radius-sm);\n}\n\n.badge {\n --bs-badge-padding-x: 0.65em;\n --bs-badge-padding-y: 0.35em;\n --bs-badge-font-size: 0.75em;\n --bs-badge-font-weight: 700;\n --bs-badge-color: #fff;\n --bs-badge-border-radius: var(--bs-border-radius);\n display: inline-block;\n padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);\n font-size: var(--bs-badge-font-size);\n font-weight: var(--bs-badge-font-weight);\n line-height: 1;\n color: var(--bs-badge-color);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: var(--bs-badge-border-radius);\n}\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.alert {\n --bs-alert-bg: transparent;\n --bs-alert-padding-x: 1rem;\n --bs-alert-padding-y: 1rem;\n --bs-alert-margin-bottom: 1rem;\n --bs-alert-color: inherit;\n --bs-alert-border-color: transparent;\n --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);\n --bs-alert-border-radius: var(--bs-border-radius);\n --bs-alert-link-color: inherit;\n position: relative;\n padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);\n margin-bottom: var(--bs-alert-margin-bottom);\n color: var(--bs-alert-color);\n background-color: var(--bs-alert-bg);\n border: var(--bs-alert-border);\n border-radius: var(--bs-alert-border-radius);\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n color: var(--bs-alert-link-color);\n}\n\n.alert-dismissible {\n padding-right: 3rem;\n}\n.alert-dismissible .btn-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 1.25rem 1rem;\n}\n\n.alert-primary {\n --bs-alert-color: var(--bs-primary-text-emphasis);\n --bs-alert-bg: var(--bs-primary-bg-subtle);\n --bs-alert-border-color: var(--bs-primary-border-subtle);\n --bs-alert-link-color: var(--bs-primary-text-emphasis);\n}\n\n.alert-secondary {\n --bs-alert-color: var(--bs-secondary-text-emphasis);\n --bs-alert-bg: var(--bs-secondary-bg-subtle);\n --bs-alert-border-color: var(--bs-secondary-border-subtle);\n --bs-alert-link-color: var(--bs-secondary-text-emphasis);\n}\n\n.alert-success {\n --bs-alert-color: var(--bs-success-text-emphasis);\n --bs-alert-bg: var(--bs-success-bg-subtle);\n --bs-alert-border-color: var(--bs-success-border-subtle);\n --bs-alert-link-color: var(--bs-success-text-emphasis);\n}\n\n.alert-info {\n --bs-alert-color: var(--bs-info-text-emphasis);\n --bs-alert-bg: var(--bs-info-bg-subtle);\n --bs-alert-border-color: var(--bs-info-border-subtle);\n --bs-alert-link-color: var(--bs-info-text-emphasis);\n}\n\n.alert-warning {\n --bs-alert-color: var(--bs-warning-text-emphasis);\n --bs-alert-bg: var(--bs-warning-bg-subtle);\n --bs-alert-border-color: var(--bs-warning-border-subtle);\n --bs-alert-link-color: var(--bs-warning-text-emphasis);\n}\n\n.alert-danger {\n --bs-alert-color: var(--bs-danger-text-emphasis);\n --bs-alert-bg: var(--bs-danger-bg-subtle);\n --bs-alert-border-color: var(--bs-danger-border-subtle);\n --bs-alert-link-color: var(--bs-danger-text-emphasis);\n}\n\n.alert-light {\n --bs-alert-color: var(--bs-light-text-emphasis);\n --bs-alert-bg: var(--bs-light-bg-subtle);\n --bs-alert-border-color: var(--bs-light-border-subtle);\n --bs-alert-link-color: var(--bs-light-text-emphasis);\n}\n\n.alert-dark {\n --bs-alert-color: var(--bs-dark-text-emphasis);\n --bs-alert-bg: var(--bs-dark-bg-subtle);\n --bs-alert-border-color: var(--bs-dark-border-subtle);\n --bs-alert-link-color: var(--bs-dark-text-emphasis);\n}\n\n@keyframes progress-bar-stripes {\n 0% {\n background-position-x: 1rem;\n }\n}\n.progress,\n.progress-stacked {\n --bs-progress-height: 1rem;\n --bs-progress-font-size: 0.75rem;\n --bs-progress-bg: var(--bs-secondary-bg);\n --bs-progress-border-radius: var(--bs-border-radius);\n --bs-progress-box-shadow: var(--bs-box-shadow-inset);\n --bs-progress-bar-color: #fff;\n --bs-progress-bar-bg: #0d6efd;\n --bs-progress-bar-transition: width 0.6s ease;\n display: flex;\n height: var(--bs-progress-height);\n overflow: hidden;\n font-size: var(--bs-progress-font-size);\n background-color: var(--bs-progress-bg);\n border-radius: var(--bs-progress-border-radius);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--bs-progress-bar-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--bs-progress-bar-bg);\n transition: var(--bs-progress-bar-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: var(--bs-progress-height) var(--bs-progress-height);\n}\n\n.progress-stacked > .progress {\n overflow: visible;\n}\n\n.progress-stacked > .progress > .progress-bar {\n width: 100%;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.list-group {\n --bs-list-group-color: var(--bs-body-color);\n --bs-list-group-bg: var(--bs-body-bg);\n --bs-list-group-border-color: var(--bs-border-color);\n --bs-list-group-border-width: var(--bs-border-width);\n --bs-list-group-border-radius: var(--bs-border-radius);\n --bs-list-group-item-padding-x: 1rem;\n --bs-list-group-item-padding-y: 0.5rem;\n --bs-list-group-action-color: var(--bs-secondary-color);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);\n --bs-list-group-action-active-color: var(--bs-body-color);\n --bs-list-group-action-active-bg: var(--bs-secondary-bg);\n --bs-list-group-disabled-color: var(--bs-secondary-color);\n --bs-list-group-disabled-bg: var(--bs-body-bg);\n --bs-list-group-active-color: #fff;\n --bs-list-group-active-bg: #0d6efd;\n --bs-list-group-active-border-color: #0d6efd;\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: var(--bs-list-group-border-radius);\n}\n\n.list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n}\n.list-group-numbered > .list-group-item::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n}\n\n.list-group-item-action {\n width: 100%;\n color: var(--bs-list-group-action-color);\n text-align: inherit;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: var(--bs-list-group-action-hover-color);\n text-decoration: none;\n background-color: var(--bs-list-group-action-hover-bg);\n}\n.list-group-item-action:active {\n color: var(--bs-list-group-action-active-color);\n background-color: var(--bs-list-group-action-active-bg);\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);\n color: var(--bs-list-group-color);\n text-decoration: none;\n background-color: var(--bs-list-group-bg);\n border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);\n}\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n.list-group-item.disabled, .list-group-item:disabled {\n color: var(--bs-list-group-disabled-color);\n pointer-events: none;\n background-color: var(--bs-list-group-disabled-bg);\n}\n.list-group-item.active {\n z-index: 2;\n color: var(--bs-list-group-active-color);\n background-color: var(--bs-list-group-active-bg);\n border-color: var(--bs-list-group-active-border-color);\n}\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n.list-group-item + .list-group-item.active {\n margin-top: calc(-1 * var(--bs-list-group-border-width));\n border-top-width: var(--bs-list-group-border-width);\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n.list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n}\n.list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n}\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n}\n\n@media (min-width: 540px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 720px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 960px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n.list-group-flush {\n border-radius: 0;\n}\n.list-group-flush > .list-group-item {\n border-width: 0 0 var(--bs-list-group-border-width);\n}\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n --bs-list-group-color: var(--bs-primary-text-emphasis);\n --bs-list-group-bg: var(--bs-primary-bg-subtle);\n --bs-list-group-border-color: var(--bs-primary-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);\n --bs-list-group-active-color: var(--bs-primary-bg-subtle);\n --bs-list-group-active-bg: var(--bs-primary-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);\n}\n\n.list-group-item-secondary {\n --bs-list-group-color: var(--bs-secondary-text-emphasis);\n --bs-list-group-bg: var(--bs-secondary-bg-subtle);\n --bs-list-group-border-color: var(--bs-secondary-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);\n --bs-list-group-active-color: var(--bs-secondary-bg-subtle);\n --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);\n}\n\n.list-group-item-success {\n --bs-list-group-color: var(--bs-success-text-emphasis);\n --bs-list-group-bg: var(--bs-success-bg-subtle);\n --bs-list-group-border-color: var(--bs-success-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-success-border-subtle);\n --bs-list-group-active-color: var(--bs-success-bg-subtle);\n --bs-list-group-active-bg: var(--bs-success-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-success-text-emphasis);\n}\n\n.list-group-item-info {\n --bs-list-group-color: var(--bs-info-text-emphasis);\n --bs-list-group-bg: var(--bs-info-bg-subtle);\n --bs-list-group-border-color: var(--bs-info-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-info-border-subtle);\n --bs-list-group-active-color: var(--bs-info-bg-subtle);\n --bs-list-group-active-bg: var(--bs-info-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-info-text-emphasis);\n}\n\n.list-group-item-warning {\n --bs-list-group-color: var(--bs-warning-text-emphasis);\n --bs-list-group-bg: var(--bs-warning-bg-subtle);\n --bs-list-group-border-color: var(--bs-warning-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);\n --bs-list-group-active-color: var(--bs-warning-bg-subtle);\n --bs-list-group-active-bg: var(--bs-warning-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);\n}\n\n.list-group-item-danger {\n --bs-list-group-color: var(--bs-danger-text-emphasis);\n --bs-list-group-bg: var(--bs-danger-bg-subtle);\n --bs-list-group-border-color: var(--bs-danger-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);\n --bs-list-group-active-color: var(--bs-danger-bg-subtle);\n --bs-list-group-active-bg: var(--bs-danger-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);\n}\n\n.list-group-item-light {\n --bs-list-group-color: var(--bs-light-text-emphasis);\n --bs-list-group-bg: var(--bs-light-bg-subtle);\n --bs-list-group-border-color: var(--bs-light-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-light-border-subtle);\n --bs-list-group-active-color: var(--bs-light-bg-subtle);\n --bs-list-group-active-bg: var(--bs-light-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-light-text-emphasis);\n}\n\n.list-group-item-dark {\n --bs-list-group-color: var(--bs-dark-text-emphasis);\n --bs-list-group-bg: var(--bs-dark-bg-subtle);\n --bs-list-group-border-color: var(--bs-dark-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-dark-border-subtle);\n --bs-list-group-active-color: var(--bs-dark-bg-subtle);\n --bs-list-group-active-bg: var(--bs-dark-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-dark-text-emphasis);\n}\n\n.btn-close {\n --bs-btn-close-color: #000;\n --bs-btn-close-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e\");\n --bs-btn-close-opacity: 0.5;\n --bs-btn-close-hover-opacity: 0.75;\n --bs-btn-close-focus-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n --bs-btn-close-focus-opacity: 1;\n --bs-btn-close-disabled-opacity: 0.25;\n --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);\n box-sizing: content-box;\n width: 1em;\n height: 1em;\n padding: 0.25em 0.25em;\n color: var(--bs-btn-close-color);\n background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;\n border: 0;\n border-radius: 0.375rem;\n opacity: var(--bs-btn-close-opacity);\n}\n.btn-close:hover {\n color: var(--bs-btn-close-color);\n text-decoration: none;\n opacity: var(--bs-btn-close-hover-opacity);\n}\n.btn-close:focus {\n outline: 0;\n box-shadow: var(--bs-btn-close-focus-shadow);\n opacity: var(--bs-btn-close-focus-opacity);\n}\n.btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--bs-btn-close-disabled-opacity);\n}\n\n.btn-close-white {\n filter: var(--bs-btn-close-white-filter);\n}\n\n[data-bs-theme=dark] .btn-close {\n filter: var(--bs-btn-close-white-filter);\n}\n\n.toast {\n --bs-toast-zindex: 1090;\n --bs-toast-padding-x: 0.75rem;\n --bs-toast-padding-y: 0.5rem;\n --bs-toast-spacing: 1.5rem;\n --bs-toast-max-width: 350px;\n --bs-toast-font-size: 0.875rem;\n --bs-toast-color: ;\n --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);\n --bs-toast-border-width: var(--bs-border-width);\n --bs-toast-border-color: var(--bs-border-color-translucent);\n --bs-toast-border-radius: var(--bs-border-radius);\n --bs-toast-box-shadow: var(--bs-box-shadow);\n --bs-toast-header-color: var(--bs-secondary-color);\n --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);\n --bs-toast-header-border-color: var(--bs-border-color-translucent);\n width: var(--bs-toast-max-width);\n max-width: 100%;\n font-size: var(--bs-toast-font-size);\n color: var(--bs-toast-color);\n pointer-events: auto;\n background-color: var(--bs-toast-bg);\n background-clip: padding-box;\n border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);\n box-shadow: var(--bs-toast-box-shadow);\n border-radius: var(--bs-toast-border-radius);\n}\n.toast.showing {\n opacity: 0;\n}\n.toast:not(.show) {\n display: none;\n}\n\n.toast-container {\n --bs-toast-zindex: 1090;\n position: absolute;\n z-index: var(--bs-toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n}\n.toast-container > :not(:last-child) {\n margin-bottom: var(--bs-toast-spacing);\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);\n color: var(--bs-toast-header-color);\n background-color: var(--bs-toast-header-bg);\n background-clip: padding-box;\n border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);\n border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));\n border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));\n}\n.toast-header .btn-close {\n margin-right: calc(-0.5 * var(--bs-toast-padding-x));\n margin-left: var(--bs-toast-padding-x);\n}\n\n.toast-body {\n padding: var(--bs-toast-padding-x);\n word-wrap: break-word;\n}\n\n.modal {\n --bs-modal-zindex: 1055;\n --bs-modal-width: 500px;\n --bs-modal-padding: 1rem;\n --bs-modal-margin: 0.5rem;\n --bs-modal-color: ;\n --bs-modal-bg: var(--bs-body-bg);\n --bs-modal-border-color: var(--bs-border-color-translucent);\n --bs-modal-border-width: var(--bs-border-width);\n --bs-modal-border-radius: var(--bs-border-radius-lg);\n --bs-modal-box-shadow: var(--bs-box-shadow-sm);\n --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));\n --bs-modal-header-padding-x: 1rem;\n --bs-modal-header-padding-y: 1rem;\n --bs-modal-header-padding: 1rem 1rem;\n --bs-modal-header-border-color: var(--bs-border-color);\n --bs-modal-header-border-width: var(--bs-border-width);\n --bs-modal-title-line-height: 1.5;\n --bs-modal-footer-gap: 0.5rem;\n --bs-modal-footer-bg: ;\n --bs-modal-footer-border-color: var(--bs-border-color);\n --bs-modal-footer-border-width: var(--bs-border-width);\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--bs-modal-zindex);\n display: none;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: var(--bs-modal-margin);\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n height: calc(100% - var(--bs-modal-margin) * 2);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: 100%;\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - var(--bs-modal-margin) * 2);\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n color: var(--bs-modal-color);\n pointer-events: auto;\n background-color: var(--bs-modal-bg);\n background-clip: padding-box;\n border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);\n border-radius: var(--bs-modal-border-radius);\n outline: 0;\n}\n\n.modal-backdrop {\n --bs-backdrop-zindex: 1050;\n --bs-backdrop-bg: #000;\n --bs-backdrop-opacity: 0.5;\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--bs-backdrop-zindex);\n width: 100vw;\n height: 100vh;\n background-color: var(--bs-backdrop-bg);\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: var(--bs-backdrop-opacity);\n}\n\n.modal-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--bs-modal-header-padding);\n border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);\n border-top-left-radius: var(--bs-modal-inner-border-radius);\n border-top-right-radius: var(--bs-modal-inner-border-radius);\n}\n.modal-header .btn-close {\n padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);\n margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: var(--bs-modal-title-line-height);\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--bs-modal-padding);\n}\n\n.modal-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);\n background-color: var(--bs-modal-footer-bg);\n border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);\n border-bottom-right-radius: var(--bs-modal-inner-border-radius);\n border-bottom-left-radius: var(--bs-modal-inner-border-radius);\n}\n.modal-footer > * {\n margin: calc(var(--bs-modal-footer-gap) * 0.5);\n}\n\n@media (min-width: 540px) {\n .modal {\n --bs-modal-margin: 1.75rem;\n --bs-modal-box-shadow: var(--bs-box-shadow);\n }\n .modal-dialog {\n max-width: var(--bs-modal-width);\n margin-right: auto;\n margin-left: auto;\n }\n .modal-sm {\n --bs-modal-width: 300px;\n }\n}\n@media (min-width: 960px) {\n .modal-lg,\n .modal-xl {\n --bs-modal-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n --bs-modal-width: 1140px;\n }\n}\n.modal-fullscreen {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n}\n.modal-fullscreen .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n}\n.modal-fullscreen .modal-header,\n.modal-fullscreen .modal-footer {\n border-radius: 0;\n}\n.modal-fullscreen .modal-body {\n overflow-y: auto;\n}\n\n@media (max-width: 539.98px) {\n .modal-fullscreen-sm-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-sm-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-header,\n .modal-fullscreen-sm-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 719.98px) {\n .modal-fullscreen-md-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-md-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-header,\n .modal-fullscreen-md-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 959.98px) {\n .modal-fullscreen-lg-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-lg-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-header,\n .modal-fullscreen-lg-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 1199.98px) {\n .modal-fullscreen-xl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-header,\n .modal-fullscreen-xl-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-body {\n overflow-y: auto;\n }\n}\n.tooltip {\n --bs-tooltip-zindex: 1080;\n --bs-tooltip-max-width: 200px;\n --bs-tooltip-padding-x: 0.5rem;\n --bs-tooltip-padding-y: 0.25rem;\n --bs-tooltip-margin: ;\n --bs-tooltip-font-size: 0.875rem;\n --bs-tooltip-color: var(--bs-body-bg);\n --bs-tooltip-bg: var(--bs-emphasis-color);\n --bs-tooltip-border-radius: var(--bs-border-radius);\n --bs-tooltip-opacity: 0.9;\n --bs-tooltip-arrow-width: 0.8rem;\n --bs-tooltip-arrow-height: 0.4rem;\n z-index: var(--bs-tooltip-zindex);\n display: block;\n margin: var(--bs-tooltip-margin);\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--bs-tooltip-font-size);\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: var(--bs-tooltip-opacity);\n}\n.tooltip .tooltip-arrow {\n display: block;\n width: var(--bs-tooltip-arrow-width);\n height: var(--bs-tooltip-arrow-height);\n}\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {\n bottom: calc(-1 * var(--bs-tooltip-arrow-height));\n}\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;\n border-top-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {\n left: calc(-1 * var(--bs-tooltip-arrow-height));\n width: var(--bs-tooltip-arrow-height);\n height: var(--bs-tooltip-arrow-width);\n}\n.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;\n border-right-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:end:ignore */\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {\n top: calc(-1 * var(--bs-tooltip-arrow-height));\n}\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);\n border-bottom-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {\n right: calc(-1 * var(--bs-tooltip-arrow-height));\n width: var(--bs-tooltip-arrow-height);\n height: var(--bs-tooltip-arrow-width);\n}\n.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);\n border-left-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:end:ignore */\n.tooltip-inner {\n max-width: var(--bs-tooltip-max-width);\n padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);\n color: var(--bs-tooltip-color);\n text-align: center;\n background-color: var(--bs-tooltip-bg);\n border-radius: var(--bs-tooltip-border-radius);\n}\n\n.popover {\n --bs-popover-zindex: 1070;\n --bs-popover-max-width: 276px;\n --bs-popover-font-size: 0.875rem;\n --bs-popover-bg: var(--bs-body-bg);\n --bs-popover-border-width: var(--bs-border-width);\n --bs-popover-border-color: var(--bs-border-color-translucent);\n --bs-popover-border-radius: var(--bs-border-radius-lg);\n --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));\n --bs-popover-box-shadow: var(--bs-box-shadow);\n --bs-popover-header-padding-x: 1rem;\n --bs-popover-header-padding-y: 0.5rem;\n --bs-popover-header-font-size: 1rem;\n --bs-popover-header-color: inherit;\n --bs-popover-header-bg: var(--bs-secondary-bg);\n --bs-popover-body-padding-x: 1rem;\n --bs-popover-body-padding-y: 1rem;\n --bs-popover-body-color: var(--bs-body-color);\n --bs-popover-arrow-width: 1rem;\n --bs-popover-arrow-height: 0.5rem;\n --bs-popover-arrow-border: var(--bs-popover-border-color);\n z-index: var(--bs-popover-zindex);\n display: block;\n max-width: var(--bs-popover-max-width);\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--bs-popover-font-size);\n word-wrap: break-word;\n background-color: var(--bs-popover-bg);\n background-clip: padding-box;\n border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);\n border-radius: var(--bs-popover-border-radius);\n}\n.popover .popover-arrow {\n display: block;\n width: var(--bs-popover-arrow-width);\n height: var(--bs-popover-arrow-height);\n}\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {\n bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-top-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n bottom: var(--bs-popover-border-width);\n border-top-color: var(--bs-popover-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {\n left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n width: var(--bs-popover-arrow-height);\n height: var(--bs-popover-arrow-width);\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {\n left: 0;\n border-right-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n left: var(--bs-popover-border-width);\n border-right-color: var(--bs-popover-bg);\n}\n\n/* rtl:end:ignore */\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {\n top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-bottom-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n top: var(--bs-popover-border-width);\n border-bottom-color: var(--bs-popover-bg);\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--bs-popover-arrow-width);\n margin-left: calc(-0.5 * var(--bs-popover-arrow-width));\n content: \"\";\n border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {\n right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n width: var(--bs-popover-arrow-height);\n height: var(--bs-popover-arrow-width);\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {\n right: 0;\n border-left-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n right: var(--bs-popover-border-width);\n border-left-color: var(--bs-popover-bg);\n}\n\n/* rtl:end:ignore */\n.popover-header {\n padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);\n margin-bottom: 0;\n font-size: var(--bs-popover-header-font-size);\n color: var(--bs-popover-header-color);\n background-color: var(--bs-popover-header-bg);\n border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);\n border-top-left-radius: var(--bs-popover-inner-border-radius);\n border-top-right-radius: var(--bs-popover-inner-border-radius);\n}\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);\n color: var(--bs-popover-body-color);\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-start,\n.carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n}\n.carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\") /*rtl:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")*/;\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\") /*rtl:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")*/;\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-right: 15%;\n margin-bottom: 1rem;\n margin-left: 15%;\n}\n.carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n padding: 0;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n}\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 1.25rem;\n left: 15%;\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n color: #fff;\n text-align: center;\n}\n\n.carousel-dark .carousel-control-prev-icon,\n.carousel-dark .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n.carousel-dark .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n.carousel-dark .carousel-caption {\n color: #000;\n}\n\n[data-bs-theme=dark] .carousel .carousel-control-prev-icon,\n[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon,\n[data-bs-theme=dark].carousel .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption {\n color: #000;\n}\n\n.spinner-grow,\n.spinner-border {\n display: inline-block;\n width: var(--bs-spinner-width);\n height: var(--bs-spinner-height);\n vertical-align: var(--bs-spinner-vertical-align);\n border-radius: 50%;\n animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg) /* rtl:ignore */;\n }\n}\n.spinner-border {\n --bs-spinner-width: 2rem;\n --bs-spinner-height: 2rem;\n --bs-spinner-vertical-align: -0.125em;\n --bs-spinner-border-width: 0.25em;\n --bs-spinner-animation-speed: 0.75s;\n --bs-spinner-animation-name: spinner-border;\n border: var(--bs-spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n}\n\n.spinner-border-sm {\n --bs-spinner-width: 1rem;\n --bs-spinner-height: 1rem;\n --bs-spinner-border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n.spinner-grow {\n --bs-spinner-width: 2rem;\n --bs-spinner-height: 2rem;\n --bs-spinner-vertical-align: -0.125em;\n --bs-spinner-animation-speed: 0.75s;\n --bs-spinner-animation-name: spinner-grow;\n background-color: currentcolor;\n opacity: 0;\n}\n\n.spinner-grow-sm {\n --bs-spinner-width: 1rem;\n --bs-spinner-height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --bs-spinner-animation-speed: 1.5s;\n }\n}\n.offcanvas, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {\n --bs-offcanvas-zindex: 1045;\n --bs-offcanvas-width: 400px;\n --bs-offcanvas-height: 30vh;\n --bs-offcanvas-padding-x: 1rem;\n --bs-offcanvas-padding-y: 1rem;\n --bs-offcanvas-color: var(--bs-body-color);\n --bs-offcanvas-bg: var(--bs-body-bg);\n --bs-offcanvas-border-width: var(--bs-border-width);\n --bs-offcanvas-border-color: var(--bs-border-color-translucent);\n --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);\n --bs-offcanvas-transition: transform 0.3s ease-in-out;\n --bs-offcanvas-title-line-height: 1.5;\n}\n\n@media (max-width: 539.98px) {\n .offcanvas-sm {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 539.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-sm {\n transition: none;\n }\n}\n@media (max-width: 539.98px) {\n .offcanvas-sm.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-sm.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-sm.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-sm.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {\n visibility: visible;\n }\n}\n@media (min-width: 540px) {\n .offcanvas-sm {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-sm .offcanvas-header {\n display: none;\n }\n .offcanvas-sm .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 719.98px) {\n .offcanvas-md {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 719.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-md {\n transition: none;\n }\n}\n@media (max-width: 719.98px) {\n .offcanvas-md.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-md.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-md.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-md.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {\n visibility: visible;\n }\n}\n@media (min-width: 720px) {\n .offcanvas-md {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-md .offcanvas-header {\n display: none;\n }\n .offcanvas-md .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 959.98px) {\n .offcanvas-lg {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 959.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-lg {\n transition: none;\n }\n}\n@media (max-width: 959.98px) {\n .offcanvas-lg.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-lg.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-lg.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-lg.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {\n visibility: visible;\n }\n}\n@media (min-width: 960px) {\n .offcanvas-lg {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-lg .offcanvas-header {\n display: none;\n }\n .offcanvas-lg .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 1199.98px) {\n .offcanvas-xl {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-xl {\n transition: none;\n }\n}\n@media (max-width: 1199.98px) {\n .offcanvas-xl.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-xl.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-xl.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-xl.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {\n visibility: visible;\n }\n}\n@media (min-width: 1200px) {\n .offcanvas-xl {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-xl .offcanvas-header {\n display: none;\n }\n .offcanvas-xl .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n.offcanvas {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .offcanvas {\n transition: none;\n }\n}\n.offcanvas.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n}\n.offcanvas.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n}\n.offcanvas.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n}\n.offcanvas.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n}\n.offcanvas.showing, .offcanvas.show:not(.hiding) {\n transform: none;\n}\n.offcanvas.showing, .offcanvas.hiding, .offcanvas.show {\n visibility: visible;\n}\n\n.offcanvas-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.offcanvas-backdrop.fade {\n opacity: 0;\n}\n.offcanvas-backdrop.show {\n opacity: 0.5;\n}\n\n.offcanvas-header {\n display: flex;\n align-items: center;\n padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);\n}\n.offcanvas-header .btn-close {\n padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);\n margin: calc(-0.5 * var(--bs-offcanvas-padding-y)) calc(-0.5 * var(--bs-offcanvas-padding-x)) calc(-0.5 * var(--bs-offcanvas-padding-y)) auto;\n}\n\n.offcanvas-title {\n margin-bottom: 0;\n line-height: var(--bs-offcanvas-title-line-height);\n}\n\n.offcanvas-body {\n flex-grow: 1;\n padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);\n overflow-y: auto;\n}\n\n.placeholder {\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: 0.5;\n}\n.placeholder.btn::before {\n display: inline-block;\n content: \"\";\n}\n\n.placeholder-xs {\n min-height: 0.6em;\n}\n\n.placeholder-sm {\n min-height: 0.8em;\n}\n\n.placeholder-lg {\n min-height: 1.2em;\n}\n\n.placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n}\n\n@keyframes placeholder-glow {\n 50% {\n opacity: 0.2;\n }\n}\n.placeholder-wave {\n mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n}\n\n@keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n}\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.text-bg-primary {\n color: #fff !important;\n background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-secondary {\n color: #fff !important;\n background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-success {\n color: #fff !important;\n background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-info {\n color: #000 !important;\n background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-warning {\n color: #000 !important;\n background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-danger {\n color: #fff !important;\n background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-light {\n color: #000 !important;\n background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-dark {\n color: #fff !important;\n background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.link-primary {\n color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-primary:hover, .link-primary:focus {\n color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-secondary {\n color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-secondary:hover, .link-secondary:focus {\n color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-success {\n color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-success:hover, .link-success:focus {\n color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-info {\n color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-info:hover, .link-info:focus {\n color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-warning {\n color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-warning:hover, .link-warning:focus {\n color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-danger {\n color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-danger:hover, .link-danger:focus {\n color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-light {\n color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-light:hover, .link-light:focus {\n color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-dark {\n color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-dark:hover, .link-dark:focus {\n color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-body-emphasis {\n color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-body-emphasis:hover, .link-body-emphasis:focus {\n color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;\n text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;\n}\n\n.focus-ring:focus {\n outline: 0;\n box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);\n}\n\n.icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n}\n.icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n}\n@media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n}\n\n.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));\n}\n\n.ratio {\n position: relative;\n width: 100%;\n}\n.ratio::before {\n display: block;\n padding-top: var(--bs-aspect-ratio);\n content: \"\";\n}\n.ratio > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.ratio-1x1 {\n --bs-aspect-ratio: 100%;\n}\n\n.ratio-4x3 {\n --bs-aspect-ratio: 75%;\n}\n\n.ratio-16x9 {\n --bs-aspect-ratio: 56.25%;\n}\n\n.ratio-21x9 {\n --bs-aspect-ratio: 42.8571428571%;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n.sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n}\n\n.sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n}\n\n@media (min-width: 540px) {\n .sticky-sm-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-sm-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 720px) {\n .sticky-md-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-md-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 960px) {\n .sticky-lg-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-lg-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1200px) {\n .sticky-xl-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-xl-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n.hstack {\n display: flex;\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n}\n\n.vstack {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-self: stretch;\n}\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n.visually-hidden:not(caption),\n.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {\n position: absolute !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n content: \"\";\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.vr {\n display: inline-block;\n align-self: stretch;\n width: var(--bs-border-width);\n min-height: 1em;\n background-color: currentcolor;\n opacity: 0.25;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.float-start {\n float: left !important;\n}\n\n.float-end {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n.object-fit-contain {\n object-fit: contain !important;\n}\n\n.object-fit-cover {\n object-fit: cover !important;\n}\n\n.object-fit-fill {\n object-fit: fill !important;\n}\n\n.object-fit-scale {\n object-fit: scale-down !important;\n}\n\n.object-fit-none {\n object-fit: none !important;\n}\n\n.opacity-0 {\n opacity: 0 !important;\n}\n\n.opacity-25 {\n opacity: 0.25 !important;\n}\n\n.opacity-50 {\n opacity: 0.5 !important;\n}\n\n.opacity-75 {\n opacity: 0.75 !important;\n}\n\n.opacity-100 {\n opacity: 1 !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.overflow-visible {\n overflow: visible !important;\n}\n\n.overflow-scroll {\n overflow: scroll !important;\n}\n\n.overflow-x-auto {\n overflow-x: auto !important;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden !important;\n}\n\n.overflow-x-visible {\n overflow-x: visible !important;\n}\n\n.overflow-x-scroll {\n overflow-x: scroll !important;\n}\n\n.overflow-y-auto {\n overflow-y: auto !important;\n}\n\n.overflow-y-hidden {\n overflow-y: hidden !important;\n}\n\n.overflow-y-visible {\n overflow-y: visible !important;\n}\n\n.overflow-y-scroll {\n overflow-y: scroll !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-inline-grid {\n display: inline-grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.shadow {\n box-shadow: var(--bs-box-shadow) !important;\n}\n\n.shadow-sm {\n box-shadow: var(--bs-box-shadow-sm) !important;\n}\n\n.shadow-lg {\n box-shadow: var(--bs-box-shadow-lg) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.focus-ring-primary {\n --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-secondary {\n --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-success {\n --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-info {\n --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-warning {\n --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-danger {\n --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-light {\n --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-dark {\n --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity));\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.top-0 {\n top: 0 !important;\n}\n\n.top-50 {\n top: 50% !important;\n}\n\n.top-100 {\n top: 100% !important;\n}\n\n.bottom-0 {\n bottom: 0 !important;\n}\n\n.bottom-50 {\n bottom: 50% !important;\n}\n\n.bottom-100 {\n bottom: 100% !important;\n}\n\n.start-0 {\n left: 0 !important;\n}\n\n.start-50 {\n left: 50% !important;\n}\n\n.start-100 {\n left: 100% !important;\n}\n\n.end-0 {\n right: 0 !important;\n}\n\n.end-50 {\n right: 50% !important;\n}\n\n.end-100 {\n right: 100% !important;\n}\n\n.translate-middle {\n transform: translate(-50%, -50%) !important;\n}\n\n.translate-middle-x {\n transform: translateX(-50%) !important;\n}\n\n.translate-middle-y {\n transform: translateY(-50%) !important;\n}\n\n.border {\n border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top {\n border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-end {\n border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-end-0 {\n border-right: 0 !important;\n}\n\n.border-bottom {\n border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-start {\n border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-start-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-secondary {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-success {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-info {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-warning {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-danger {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-light {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-dark {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-black {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-white {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-primary-subtle {\n border-color: var(--bs-primary-border-subtle) !important;\n}\n\n.border-secondary-subtle {\n border-color: var(--bs-secondary-border-subtle) !important;\n}\n\n.border-success-subtle {\n border-color: var(--bs-success-border-subtle) !important;\n}\n\n.border-info-subtle {\n border-color: var(--bs-info-border-subtle) !important;\n}\n\n.border-warning-subtle {\n border-color: var(--bs-warning-border-subtle) !important;\n}\n\n.border-danger-subtle {\n border-color: var(--bs-danger-border-subtle) !important;\n}\n\n.border-light-subtle {\n border-color: var(--bs-light-border-subtle) !important;\n}\n\n.border-dark-subtle {\n border-color: var(--bs-dark-border-subtle) !important;\n}\n\n.border-1 {\n border-width: 1px !important;\n}\n\n.border-2 {\n border-width: 2px !important;\n}\n\n.border-3 {\n border-width: 3px !important;\n}\n\n.border-4 {\n border-width: 4px !important;\n}\n\n.border-5 {\n border-width: 5px !important;\n}\n\n.border-opacity-10 {\n --bs-border-opacity: 0.1;\n}\n\n.border-opacity-25 {\n --bs-border-opacity: 0.25;\n}\n\n.border-opacity-50 {\n --bs-border-opacity: 0.5;\n}\n\n.border-opacity-75 {\n --bs-border-opacity: 0.75;\n}\n\n.border-opacity-100 {\n --bs-border-opacity: 1;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n.gap-0 {\n gap: 0 !important;\n}\n\n.gap-1 {\n gap: 0.25rem !important;\n}\n\n.gap-2 {\n gap: 0.5rem !important;\n}\n\n.gap-3 {\n gap: 1rem !important;\n}\n\n.gap-4 {\n gap: 1.5rem !important;\n}\n\n.gap-5 {\n gap: 3rem !important;\n}\n\n.row-gap-0 {\n row-gap: 0 !important;\n}\n\n.row-gap-1 {\n row-gap: 0.25rem !important;\n}\n\n.row-gap-2 {\n row-gap: 0.5rem !important;\n}\n\n.row-gap-3 {\n row-gap: 1rem !important;\n}\n\n.row-gap-4 {\n row-gap: 1.5rem !important;\n}\n\n.row-gap-5 {\n row-gap: 3rem !important;\n}\n\n.column-gap-0 {\n column-gap: 0 !important;\n}\n\n.column-gap-1 {\n column-gap: 0.25rem !important;\n}\n\n.column-gap-2 {\n column-gap: 0.5rem !important;\n}\n\n.column-gap-3 {\n column-gap: 1rem !important;\n}\n\n.column-gap-4 {\n column-gap: 1.5rem !important;\n}\n\n.column-gap-5 {\n column-gap: 3rem !important;\n}\n\n.font-monospace {\n font-family: var(--bs-font-monospace) !important;\n}\n\n.fs-1 {\n font-size: calc(1.375rem + 1.5vw) !important;\n}\n\n.fs-2 {\n font-size: calc(1.325rem + 0.9vw) !important;\n}\n\n.fs-3 {\n font-size: calc(1.3rem + 0.6vw) !important;\n}\n\n.fs-4 {\n font-size: calc(1.275rem + 0.3vw) !important;\n}\n\n.fs-5 {\n font-size: 1.25rem !important;\n}\n\n.fs-6 {\n font-size: 1rem !important;\n}\n\n.fst-italic {\n font-style: italic !important;\n}\n\n.fst-normal {\n font-style: normal !important;\n}\n\n.fw-lighter {\n font-weight: lighter !important;\n}\n\n.fw-light {\n font-weight: 300 !important;\n}\n\n.fw-normal {\n font-weight: 400 !important;\n}\n\n.fw-medium {\n font-weight: 500 !important;\n}\n\n.fw-semibold {\n font-weight: 600 !important;\n}\n\n.fw-bold {\n font-weight: 700 !important;\n}\n\n.fw-bolder {\n font-weight: bolder !important;\n}\n\n.lh-1 {\n line-height: 1 !important;\n}\n\n.lh-sm {\n line-height: 1.25 !important;\n}\n\n.lh-base {\n line-height: 1.5 !important;\n}\n\n.lh-lg {\n line-height: 2 !important;\n}\n\n.text-start {\n text-align: left !important;\n}\n\n.text-end {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-decoration-underline {\n text-decoration: underline !important;\n}\n\n.text-decoration-line-through {\n text-decoration: line-through !important;\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n/* rtl:begin:remove */\n.text-break {\n word-wrap: break-word !important;\n word-break: break-word !important;\n}\n\n/* rtl:end:remove */\n.text-primary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-secondary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-success {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-info {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-warning {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-danger {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-light {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-dark {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-black {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-white {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-body {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-muted {\n --bs-text-opacity: 1;\n color: var(--bs-secondary-color) !important;\n}\n\n.text-black-50 {\n --bs-text-opacity: 1;\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n --bs-text-opacity: 1;\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-body-secondary {\n --bs-text-opacity: 1;\n color: var(--bs-secondary-color) !important;\n}\n\n.text-body-tertiary {\n --bs-text-opacity: 1;\n color: var(--bs-tertiary-color) !important;\n}\n\n.text-body-emphasis {\n --bs-text-opacity: 1;\n color: var(--bs-emphasis-color) !important;\n}\n\n.text-reset {\n --bs-text-opacity: 1;\n color: inherit !important;\n}\n\n.text-opacity-25 {\n --bs-text-opacity: 0.25;\n}\n\n.text-opacity-50 {\n --bs-text-opacity: 0.5;\n}\n\n.text-opacity-75 {\n --bs-text-opacity: 0.75;\n}\n\n.text-opacity-100 {\n --bs-text-opacity: 1;\n}\n\n.text-primary-emphasis {\n color: var(--bs-primary-text-emphasis) !important;\n}\n\n.text-secondary-emphasis {\n color: var(--bs-secondary-text-emphasis) !important;\n}\n\n.text-success-emphasis {\n color: var(--bs-success-text-emphasis) !important;\n}\n\n.text-info-emphasis {\n color: var(--bs-info-text-emphasis) !important;\n}\n\n.text-warning-emphasis {\n color: var(--bs-warning-text-emphasis) !important;\n}\n\n.text-danger-emphasis {\n color: var(--bs-danger-text-emphasis) !important;\n}\n\n.text-light-emphasis {\n color: var(--bs-light-text-emphasis) !important;\n}\n\n.text-dark-emphasis {\n color: var(--bs-dark-text-emphasis) !important;\n}\n\n.link-opacity-10 {\n --bs-link-opacity: 0.1;\n}\n\n.link-opacity-10-hover:hover {\n --bs-link-opacity: 0.1;\n}\n\n.link-opacity-25 {\n --bs-link-opacity: 0.25;\n}\n\n.link-opacity-25-hover:hover {\n --bs-link-opacity: 0.25;\n}\n\n.link-opacity-50 {\n --bs-link-opacity: 0.5;\n}\n\n.link-opacity-50-hover:hover {\n --bs-link-opacity: 0.5;\n}\n\n.link-opacity-75 {\n --bs-link-opacity: 0.75;\n}\n\n.link-opacity-75-hover:hover {\n --bs-link-opacity: 0.75;\n}\n\n.link-opacity-100 {\n --bs-link-opacity: 1;\n}\n\n.link-opacity-100-hover:hover {\n --bs-link-opacity: 1;\n}\n\n.link-offset-1 {\n text-underline-offset: 0.125em !important;\n}\n\n.link-offset-1-hover:hover {\n text-underline-offset: 0.125em !important;\n}\n\n.link-offset-2 {\n text-underline-offset: 0.25em !important;\n}\n\n.link-offset-2-hover:hover {\n text-underline-offset: 0.25em !important;\n}\n\n.link-offset-3 {\n text-underline-offset: 0.375em !important;\n}\n\n.link-offset-3-hover:hover {\n text-underline-offset: 0.375em !important;\n}\n\n.link-underline-primary {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-secondary {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-success {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-info {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-warning {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-danger {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-light {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-dark {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-underline-opacity-0 {\n --bs-link-underline-opacity: 0;\n}\n\n.link-underline-opacity-0-hover:hover {\n --bs-link-underline-opacity: 0;\n}\n\n.link-underline-opacity-10 {\n --bs-link-underline-opacity: 0.1;\n}\n\n.link-underline-opacity-10-hover:hover {\n --bs-link-underline-opacity: 0.1;\n}\n\n.link-underline-opacity-25 {\n --bs-link-underline-opacity: 0.25;\n}\n\n.link-underline-opacity-25-hover:hover {\n --bs-link-underline-opacity: 0.25;\n}\n\n.link-underline-opacity-50 {\n --bs-link-underline-opacity: 0.5;\n}\n\n.link-underline-opacity-50-hover:hover {\n --bs-link-underline-opacity: 0.5;\n}\n\n.link-underline-opacity-75 {\n --bs-link-underline-opacity: 0.75;\n}\n\n.link-underline-opacity-75-hover:hover {\n --bs-link-underline-opacity: 0.75;\n}\n\n.link-underline-opacity-100 {\n --bs-link-underline-opacity: 1;\n}\n\n.link-underline-opacity-100-hover:hover {\n --bs-link-underline-opacity: 1;\n}\n\n.bg-primary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-success {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-info {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-warning {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-danger {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-light {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-dark {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-black {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-white {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-transparent {\n --bs-bg-opacity: 1;\n background-color: transparent !important;\n}\n\n.bg-body-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body-tertiary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-opacity-10 {\n --bs-bg-opacity: 0.1;\n}\n\n.bg-opacity-25 {\n --bs-bg-opacity: 0.25;\n}\n\n.bg-opacity-50 {\n --bs-bg-opacity: 0.5;\n}\n\n.bg-opacity-75 {\n --bs-bg-opacity: 0.75;\n}\n\n.bg-opacity-100 {\n --bs-bg-opacity: 1;\n}\n\n.bg-primary-subtle {\n background-color: var(--bs-primary-bg-subtle) !important;\n}\n\n.bg-secondary-subtle {\n background-color: var(--bs-secondary-bg-subtle) !important;\n}\n\n.bg-success-subtle {\n background-color: var(--bs-success-bg-subtle) !important;\n}\n\n.bg-info-subtle {\n background-color: var(--bs-info-bg-subtle) !important;\n}\n\n.bg-warning-subtle {\n background-color: var(--bs-warning-bg-subtle) !important;\n}\n\n.bg-danger-subtle {\n background-color: var(--bs-danger-bg-subtle) !important;\n}\n\n.bg-light-subtle {\n background-color: var(--bs-light-bg-subtle) !important;\n}\n\n.bg-dark-subtle {\n background-color: var(--bs-dark-bg-subtle) !important;\n}\n\n.bg-gradient {\n background-image: var(--bs-gradient) !important;\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.pe-none {\n pointer-events: none !important;\n}\n\n.pe-auto {\n pointer-events: auto !important;\n}\n\n.rounded {\n border-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.rounded-1 {\n border-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-2 {\n border-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-3 {\n border-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-4 {\n border-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-5 {\n border-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-top {\n border-top-left-radius: var(--bs-border-radius) !important;\n border-top-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-top-0 {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n}\n\n.rounded-top-1 {\n border-top-left-radius: var(--bs-border-radius-sm) !important;\n border-top-right-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-top-2 {\n border-top-left-radius: var(--bs-border-radius) !important;\n border-top-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-top-3 {\n border-top-left-radius: var(--bs-border-radius-lg) !important;\n border-top-right-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-top-4 {\n border-top-left-radius: var(--bs-border-radius-xl) !important;\n border-top-right-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-top-5 {\n border-top-left-radius: var(--bs-border-radius-xxl) !important;\n border-top-right-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-top-circle {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n}\n\n.rounded-top-pill {\n border-top-left-radius: var(--bs-border-radius-pill) !important;\n border-top-right-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-end {\n border-top-right-radius: var(--bs-border-radius) !important;\n border-bottom-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-end-0 {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.rounded-end-1 {\n border-top-right-radius: var(--bs-border-radius-sm) !important;\n border-bottom-right-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-end-2 {\n border-top-right-radius: var(--bs-border-radius) !important;\n border-bottom-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-end-3 {\n border-top-right-radius: var(--bs-border-radius-lg) !important;\n border-bottom-right-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-end-4 {\n border-top-right-radius: var(--bs-border-radius-xl) !important;\n border-bottom-right-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-end-5 {\n border-top-right-radius: var(--bs-border-radius-xxl) !important;\n border-bottom-right-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-end-circle {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n}\n\n.rounded-end-pill {\n border-top-right-radius: var(--bs-border-radius-pill) !important;\n border-bottom-right-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: var(--bs-border-radius) !important;\n border-bottom-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-bottom-0 {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n\n.rounded-bottom-1 {\n border-bottom-right-radius: var(--bs-border-radius-sm) !important;\n border-bottom-left-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-bottom-2 {\n border-bottom-right-radius: var(--bs-border-radius) !important;\n border-bottom-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-bottom-3 {\n border-bottom-right-radius: var(--bs-border-radius-lg) !important;\n border-bottom-left-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-bottom-4 {\n border-bottom-right-radius: var(--bs-border-radius-xl) !important;\n border-bottom-left-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-bottom-5 {\n border-bottom-right-radius: var(--bs-border-radius-xxl) !important;\n border-bottom-left-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-bottom-circle {\n border-bottom-right-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n}\n\n.rounded-bottom-pill {\n border-bottom-right-radius: var(--bs-border-radius-pill) !important;\n border-bottom-left-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-start {\n border-bottom-left-radius: var(--bs-border-radius) !important;\n border-top-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-start-0 {\n border-bottom-left-radius: 0 !important;\n border-top-left-radius: 0 !important;\n}\n\n.rounded-start-1 {\n border-bottom-left-radius: var(--bs-border-radius-sm) !important;\n border-top-left-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-start-2 {\n border-bottom-left-radius: var(--bs-border-radius) !important;\n border-top-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-start-3 {\n border-bottom-left-radius: var(--bs-border-radius-lg) !important;\n border-top-left-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-start-4 {\n border-bottom-left-radius: var(--bs-border-radius-xl) !important;\n border-top-left-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-start-5 {\n border-bottom-left-radius: var(--bs-border-radius-xxl) !important;\n border-top-left-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-start-circle {\n border-bottom-left-radius: 50% !important;\n border-top-left-radius: 50% !important;\n}\n\n.rounded-start-pill {\n border-bottom-left-radius: var(--bs-border-radius-pill) !important;\n border-top-left-radius: var(--bs-border-radius-pill) !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n.z-n1 {\n z-index: -1 !important;\n}\n\n.z-0 {\n z-index: 0 !important;\n}\n\n.z-1 {\n z-index: 1 !important;\n}\n\n.z-2 {\n z-index: 2 !important;\n}\n\n.z-3 {\n z-index: 3 !important;\n}\n\n@media (min-width: 540px) {\n .float-sm-start {\n float: left !important;\n }\n .float-sm-end {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n .object-fit-sm-contain {\n object-fit: contain !important;\n }\n .object-fit-sm-cover {\n object-fit: cover !important;\n }\n .object-fit-sm-fill {\n object-fit: fill !important;\n }\n .object-fit-sm-scale {\n object-fit: scale-down !important;\n }\n .object-fit-sm-none {\n object-fit: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-inline-grid {\n display: inline-grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n .gap-sm-0 {\n gap: 0 !important;\n }\n .gap-sm-1 {\n gap: 0.25rem !important;\n }\n .gap-sm-2 {\n gap: 0.5rem !important;\n }\n .gap-sm-3 {\n gap: 1rem !important;\n }\n .gap-sm-4 {\n gap: 1.5rem !important;\n }\n .gap-sm-5 {\n gap: 3rem !important;\n }\n .row-gap-sm-0 {\n row-gap: 0 !important;\n }\n .row-gap-sm-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-sm-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-sm-3 {\n row-gap: 1rem !important;\n }\n .row-gap-sm-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-sm-5 {\n row-gap: 3rem !important;\n }\n .column-gap-sm-0 {\n column-gap: 0 !important;\n }\n .column-gap-sm-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-sm-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-sm-3 {\n column-gap: 1rem !important;\n }\n .column-gap-sm-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-sm-5 {\n column-gap: 3rem !important;\n }\n .text-sm-start {\n text-align: left !important;\n }\n .text-sm-end {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 720px) {\n .float-md-start {\n float: left !important;\n }\n .float-md-end {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n .object-fit-md-contain {\n object-fit: contain !important;\n }\n .object-fit-md-cover {\n object-fit: cover !important;\n }\n .object-fit-md-fill {\n object-fit: fill !important;\n }\n .object-fit-md-scale {\n object-fit: scale-down !important;\n }\n .object-fit-md-none {\n object-fit: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-inline-grid {\n display: inline-grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n .gap-md-0 {\n gap: 0 !important;\n }\n .gap-md-1 {\n gap: 0.25rem !important;\n }\n .gap-md-2 {\n gap: 0.5rem !important;\n }\n .gap-md-3 {\n gap: 1rem !important;\n }\n .gap-md-4 {\n gap: 1.5rem !important;\n }\n .gap-md-5 {\n gap: 3rem !important;\n }\n .row-gap-md-0 {\n row-gap: 0 !important;\n }\n .row-gap-md-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-md-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-md-3 {\n row-gap: 1rem !important;\n }\n .row-gap-md-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-md-5 {\n row-gap: 3rem !important;\n }\n .column-gap-md-0 {\n column-gap: 0 !important;\n }\n .column-gap-md-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-md-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-md-3 {\n column-gap: 1rem !important;\n }\n .column-gap-md-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-md-5 {\n column-gap: 3rem !important;\n }\n .text-md-start {\n text-align: left !important;\n }\n .text-md-end {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 960px) {\n .float-lg-start {\n float: left !important;\n }\n .float-lg-end {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n .object-fit-lg-contain {\n object-fit: contain !important;\n }\n .object-fit-lg-cover {\n object-fit: cover !important;\n }\n .object-fit-lg-fill {\n object-fit: fill !important;\n }\n .object-fit-lg-scale {\n object-fit: scale-down !important;\n }\n .object-fit-lg-none {\n object-fit: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-inline-grid {\n display: inline-grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n .gap-lg-0 {\n gap: 0 !important;\n }\n .gap-lg-1 {\n gap: 0.25rem !important;\n }\n .gap-lg-2 {\n gap: 0.5rem !important;\n }\n .gap-lg-3 {\n gap: 1rem !important;\n }\n .gap-lg-4 {\n gap: 1.5rem !important;\n }\n .gap-lg-5 {\n gap: 3rem !important;\n }\n .row-gap-lg-0 {\n row-gap: 0 !important;\n }\n .row-gap-lg-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-lg-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-lg-3 {\n row-gap: 1rem !important;\n }\n .row-gap-lg-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-lg-5 {\n row-gap: 3rem !important;\n }\n .column-gap-lg-0 {\n column-gap: 0 !important;\n }\n .column-gap-lg-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-lg-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-lg-3 {\n column-gap: 1rem !important;\n }\n .column-gap-lg-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-lg-5 {\n column-gap: 3rem !important;\n }\n .text-lg-start {\n text-align: left !important;\n }\n .text-lg-end {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-start {\n float: left !important;\n }\n .float-xl-end {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n .object-fit-xl-contain {\n object-fit: contain !important;\n }\n .object-fit-xl-cover {\n object-fit: cover !important;\n }\n .object-fit-xl-fill {\n object-fit: fill !important;\n }\n .object-fit-xl-scale {\n object-fit: scale-down !important;\n }\n .object-fit-xl-none {\n object-fit: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-inline-grid {\n display: inline-grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n .gap-xl-0 {\n gap: 0 !important;\n }\n .gap-xl-1 {\n gap: 0.25rem !important;\n }\n .gap-xl-2 {\n gap: 0.5rem !important;\n }\n .gap-xl-3 {\n gap: 1rem !important;\n }\n .gap-xl-4 {\n gap: 1.5rem !important;\n }\n .gap-xl-5 {\n gap: 3rem !important;\n }\n .row-gap-xl-0 {\n row-gap: 0 !important;\n }\n .row-gap-xl-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-xl-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-xl-3 {\n row-gap: 1rem !important;\n }\n .row-gap-xl-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-xl-5 {\n row-gap: 3rem !important;\n }\n .column-gap-xl-0 {\n column-gap: 0 !important;\n }\n .column-gap-xl-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-xl-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-xl-3 {\n column-gap: 1rem !important;\n }\n .column-gap-xl-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-xl-5 {\n column-gap: 3rem !important;\n }\n .text-xl-start {\n text-align: left !important;\n }\n .text-xl-end {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .fs-1 {\n font-size: 2.5rem !important;\n }\n .fs-2 {\n font-size: 2rem !important;\n }\n .fs-3 {\n font-size: 1.75rem !important;\n }\n .fs-4 {\n font-size: 1.5rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-inline-grid {\n display: inline-grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\n.fa {\n font-family: var(--fa-style-family, \"Font Awesome 6 Free\");\n font-weight: var(--fa-style, 900);\n}\n\n.fa,\n.fa-classic,\n.fa-sharp,\n.fas,\n.fa-solid,\n.far,\n.fa-regular,\n.fab,\n.fa-brands {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: var(--fa-display, inline-block);\n font-style: normal;\n font-variant: normal;\n line-height: 1;\n text-rendering: auto;\n}\n\n.fas,\n.fa-classic,\n.fa-solid,\n.far,\n.fa-regular {\n font-family: \"Font Awesome 6 Free\";\n}\n\n.fab,\n.fa-brands {\n font-family: \"Font Awesome 6 Brands\";\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n animation-name: fa-beat;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n animation-name: fa-bounce;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n animation-name: fa-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n animation-name: fa-beat-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n animation-name: fa-flip;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n animation-name: fa-shake;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n animation-name: fa-spin;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 2s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n animation-name: fa-spin;\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n animation-delay: -1ms;\n animation-duration: 1ms;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n transform: scale(1);\n }\n 45% {\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-bounce {\n 0% {\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-flip {\n 50% {\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-shake {\n 0% {\n transform: rotate(-15deg);\n }\n 4% {\n transform: rotate(15deg);\n }\n 8%, 24% {\n transform: rotate(-18deg);\n }\n 12%, 28% {\n transform: rotate(18deg);\n }\n 16% {\n transform: rotate(-22deg);\n }\n 20% {\n transform: rotate(22deg);\n }\n 32% {\n transform: rotate(-12deg);\n }\n 36% {\n transform: rotate(12deg);\n }\n 40%, 100% {\n transform: rotate(0deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n transform: rotate(var(--fa-rotate-angle, 0));\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-0::before {\n content: \"\\30 \";\n}\n\n.fa-1::before {\n content: \"\\31 \";\n}\n\n.fa-2::before {\n content: \"\\32 \";\n}\n\n.fa-3::before {\n content: \"\\33 \";\n}\n\n.fa-4::before {\n content: \"\\34 \";\n}\n\n.fa-5::before {\n content: \"\\35 \";\n}\n\n.fa-6::before {\n content: \"\\36 \";\n}\n\n.fa-7::before {\n content: \"\\37 \";\n}\n\n.fa-8::before {\n content: \"\\38 \";\n}\n\n.fa-9::before {\n content: \"\\39 \";\n}\n\n.fa-fill-drip::before {\n content: \"\\f576\";\n}\n\n.fa-arrows-to-circle::before {\n content: \"\\e4bd\";\n}\n\n.fa-circle-chevron-right::before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-right::before {\n content: \"\\f138\";\n}\n\n.fa-at::before {\n content: \"\\@\";\n}\n\n.fa-trash-can::before {\n content: \"\\f2ed\";\n}\n\n.fa-trash-alt::before {\n content: \"\\f2ed\";\n}\n\n.fa-text-height::before {\n content: \"\\f034\";\n}\n\n.fa-user-xmark::before {\n content: \"\\f235\";\n}\n\n.fa-user-times::before {\n content: \"\\f235\";\n}\n\n.fa-stethoscope::before {\n content: \"\\f0f1\";\n}\n\n.fa-message::before {\n content: \"\\f27a\";\n}\n\n.fa-comment-alt::before {\n content: \"\\f27a\";\n}\n\n.fa-info::before {\n content: \"\\f129\";\n}\n\n.fa-down-left-and-up-right-to-center::before {\n content: \"\\f422\";\n}\n\n.fa-compress-alt::before {\n content: \"\\f422\";\n}\n\n.fa-explosion::before {\n content: \"\\e4e9\";\n}\n\n.fa-file-lines::before {\n content: \"\\f15c\";\n}\n\n.fa-file-alt::before {\n content: \"\\f15c\";\n}\n\n.fa-file-text::before {\n content: \"\\f15c\";\n}\n\n.fa-wave-square::before {\n content: \"\\f83e\";\n}\n\n.fa-ring::before {\n content: \"\\f70b\";\n}\n\n.fa-building-un::before {\n content: \"\\e4d9\";\n}\n\n.fa-dice-three::before {\n content: \"\\f527\";\n}\n\n.fa-calendar-days::before {\n content: \"\\f073\";\n}\n\n.fa-calendar-alt::before {\n content: \"\\f073\";\n}\n\n.fa-anchor-circle-check::before {\n content: \"\\e4aa\";\n}\n\n.fa-building-circle-arrow-right::before {\n content: \"\\e4d1\";\n}\n\n.fa-volleyball::before {\n content: \"\\f45f\";\n}\n\n.fa-volleyball-ball::before {\n content: \"\\f45f\";\n}\n\n.fa-arrows-up-to-line::before {\n content: \"\\e4c2\";\n}\n\n.fa-sort-down::before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-desc::before {\n content: \"\\f0dd\";\n}\n\n.fa-circle-minus::before {\n content: \"\\f056\";\n}\n\n.fa-minus-circle::before {\n content: \"\\f056\";\n}\n\n.fa-door-open::before {\n content: \"\\f52b\";\n}\n\n.fa-right-from-bracket::before {\n content: \"\\f2f5\";\n}\n\n.fa-sign-out-alt::before {\n content: \"\\f2f5\";\n}\n\n.fa-atom::before {\n content: \"\\f5d2\";\n}\n\n.fa-soap::before {\n content: \"\\e06e\";\n}\n\n.fa-icons::before {\n content: \"\\f86d\";\n}\n\n.fa-heart-music-camera-bolt::before {\n content: \"\\f86d\";\n}\n\n.fa-microphone-lines-slash::before {\n content: \"\\f539\";\n}\n\n.fa-microphone-alt-slash::before {\n content: \"\\f539\";\n}\n\n.fa-bridge-circle-check::before {\n content: \"\\e4c9\";\n}\n\n.fa-pump-medical::before {\n content: \"\\e06a\";\n}\n\n.fa-fingerprint::before {\n content: \"\\f577\";\n}\n\n.fa-hand-point-right::before {\n content: \"\\f0a4\";\n}\n\n.fa-magnifying-glass-location::before {\n content: \"\\f689\";\n}\n\n.fa-search-location::before {\n content: \"\\f689\";\n}\n\n.fa-forward-step::before {\n content: \"\\f051\";\n}\n\n.fa-step-forward::before {\n content: \"\\f051\";\n}\n\n.fa-face-smile-beam::before {\n content: \"\\f5b8\";\n}\n\n.fa-smile-beam::before {\n content: \"\\f5b8\";\n}\n\n.fa-flag-checkered::before {\n content: \"\\f11e\";\n}\n\n.fa-football::before {\n content: \"\\f44e\";\n}\n\n.fa-football-ball::before {\n content: \"\\f44e\";\n}\n\n.fa-school-circle-exclamation::before {\n content: \"\\e56c\";\n}\n\n.fa-crop::before {\n content: \"\\f125\";\n}\n\n.fa-angles-down::before {\n content: \"\\f103\";\n}\n\n.fa-angle-double-down::before {\n content: \"\\f103\";\n}\n\n.fa-users-rectangle::before {\n content: \"\\e594\";\n}\n\n.fa-people-roof::before {\n content: \"\\e537\";\n}\n\n.fa-people-line::before {\n content: \"\\e534\";\n}\n\n.fa-beer-mug-empty::before {\n content: \"\\f0fc\";\n}\n\n.fa-beer::before {\n content: \"\\f0fc\";\n}\n\n.fa-diagram-predecessor::before {\n content: \"\\e477\";\n}\n\n.fa-arrow-up-long::before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-up::before {\n content: \"\\f176\";\n}\n\n.fa-fire-flame-simple::before {\n content: \"\\f46a\";\n}\n\n.fa-burn::before {\n content: \"\\f46a\";\n}\n\n.fa-person::before {\n content: \"\\f183\";\n}\n\n.fa-male::before {\n content: \"\\f183\";\n}\n\n.fa-laptop::before {\n content: \"\\f109\";\n}\n\n.fa-file-csv::before {\n content: \"\\f6dd\";\n}\n\n.fa-menorah::before {\n content: \"\\f676\";\n}\n\n.fa-truck-plane::before {\n content: \"\\e58f\";\n}\n\n.fa-record-vinyl::before {\n content: \"\\f8d9\";\n}\n\n.fa-face-grin-stars::before {\n content: \"\\f587\";\n}\n\n.fa-grin-stars::before {\n content: \"\\f587\";\n}\n\n.fa-bong::before {\n content: \"\\f55c\";\n}\n\n.fa-spaghetti-monster-flying::before {\n content: \"\\f67b\";\n}\n\n.fa-pastafarianism::before {\n content: \"\\f67b\";\n}\n\n.fa-arrow-down-up-across-line::before {\n content: \"\\e4af\";\n}\n\n.fa-spoon::before {\n content: \"\\f2e5\";\n}\n\n.fa-utensil-spoon::before {\n content: \"\\f2e5\";\n}\n\n.fa-jar-wheat::before {\n content: \"\\e517\";\n}\n\n.fa-envelopes-bulk::before {\n content: \"\\f674\";\n}\n\n.fa-mail-bulk::before {\n content: \"\\f674\";\n}\n\n.fa-file-circle-exclamation::before {\n content: \"\\e4eb\";\n}\n\n.fa-circle-h::before {\n content: \"\\f47e\";\n}\n\n.fa-hospital-symbol::before {\n content: \"\\f47e\";\n}\n\n.fa-pager::before {\n content: \"\\f815\";\n}\n\n.fa-address-book::before {\n content: \"\\f2b9\";\n}\n\n.fa-contact-book::before {\n content: \"\\f2b9\";\n}\n\n.fa-strikethrough::before {\n content: \"\\f0cc\";\n}\n\n.fa-k::before {\n content: \"K\";\n}\n\n.fa-landmark-flag::before {\n content: \"\\e51c\";\n}\n\n.fa-pencil::before {\n content: \"\\f303\";\n}\n\n.fa-pencil-alt::before {\n content: \"\\f303\";\n}\n\n.fa-backward::before {\n content: \"\\f04a\";\n}\n\n.fa-caret-right::before {\n content: \"\\f0da\";\n}\n\n.fa-comments::before {\n content: \"\\f086\";\n}\n\n.fa-paste::before {\n content: \"\\f0ea\";\n}\n\n.fa-file-clipboard::before {\n content: \"\\f0ea\";\n}\n\n.fa-code-pull-request::before {\n content: \"\\e13c\";\n}\n\n.fa-clipboard-list::before {\n content: \"\\f46d\";\n}\n\n.fa-truck-ramp-box::before {\n content: \"\\f4de\";\n}\n\n.fa-truck-loading::before {\n content: \"\\f4de\";\n}\n\n.fa-user-check::before {\n content: \"\\f4fc\";\n}\n\n.fa-vial-virus::before {\n content: \"\\e597\";\n}\n\n.fa-sheet-plastic::before {\n content: \"\\e571\";\n}\n\n.fa-blog::before {\n content: \"\\f781\";\n}\n\n.fa-user-ninja::before {\n content: \"\\f504\";\n}\n\n.fa-person-arrow-up-from-line::before {\n content: \"\\e539\";\n}\n\n.fa-scroll-torah::before {\n content: \"\\f6a0\";\n}\n\n.fa-torah::before {\n content: \"\\f6a0\";\n}\n\n.fa-broom-ball::before {\n content: \"\\f458\";\n}\n\n.fa-quidditch::before {\n content: \"\\f458\";\n}\n\n.fa-quidditch-broom-ball::before {\n content: \"\\f458\";\n}\n\n.fa-toggle-off::before {\n content: \"\\f204\";\n}\n\n.fa-box-archive::before {\n content: \"\\f187\";\n}\n\n.fa-archive::before {\n content: \"\\f187\";\n}\n\n.fa-person-drowning::before {\n content: \"\\e545\";\n}\n\n.fa-arrow-down-9-1::before {\n content: \"\\f886\";\n}\n\n.fa-sort-numeric-desc::before {\n content: \"\\f886\";\n}\n\n.fa-sort-numeric-down-alt::before {\n content: \"\\f886\";\n}\n\n.fa-face-grin-tongue-squint::before {\n content: \"\\f58a\";\n}\n\n.fa-grin-tongue-squint::before {\n content: \"\\f58a\";\n}\n\n.fa-spray-can::before {\n content: \"\\f5bd\";\n}\n\n.fa-truck-monster::before {\n content: \"\\f63b\";\n}\n\n.fa-w::before {\n content: \"W\";\n}\n\n.fa-earth-africa::before {\n content: \"\\f57c\";\n}\n\n.fa-globe-africa::before {\n content: \"\\f57c\";\n}\n\n.fa-rainbow::before {\n content: \"\\f75b\";\n}\n\n.fa-circle-notch::before {\n content: \"\\f1ce\";\n}\n\n.fa-tablet-screen-button::before {\n content: \"\\f3fa\";\n}\n\n.fa-tablet-alt::before {\n content: \"\\f3fa\";\n}\n\n.fa-paw::before {\n content: \"\\f1b0\";\n}\n\n.fa-cloud::before {\n content: \"\\f0c2\";\n}\n\n.fa-trowel-bricks::before {\n content: \"\\e58a\";\n}\n\n.fa-face-flushed::before {\n content: \"\\f579\";\n}\n\n.fa-flushed::before {\n content: \"\\f579\";\n}\n\n.fa-hospital-user::before {\n content: \"\\f80d\";\n}\n\n.fa-tent-arrow-left-right::before {\n content: \"\\e57f\";\n}\n\n.fa-gavel::before {\n content: \"\\f0e3\";\n}\n\n.fa-legal::before {\n content: \"\\f0e3\";\n}\n\n.fa-binoculars::before {\n content: \"\\f1e5\";\n}\n\n.fa-microphone-slash::before {\n content: \"\\f131\";\n}\n\n.fa-box-tissue::before {\n content: \"\\e05b\";\n}\n\n.fa-motorcycle::before {\n content: \"\\f21c\";\n}\n\n.fa-bell-concierge::before {\n content: \"\\f562\";\n}\n\n.fa-concierge-bell::before {\n content: \"\\f562\";\n}\n\n.fa-pen-ruler::before {\n content: \"\\f5ae\";\n}\n\n.fa-pencil-ruler::before {\n content: \"\\f5ae\";\n}\n\n.fa-people-arrows::before {\n content: \"\\e068\";\n}\n\n.fa-people-arrows-left-right::before {\n content: \"\\e068\";\n}\n\n.fa-mars-and-venus-burst::before {\n content: \"\\e523\";\n}\n\n.fa-square-caret-right::before {\n content: \"\\f152\";\n}\n\n.fa-caret-square-right::before {\n content: \"\\f152\";\n}\n\n.fa-scissors::before {\n content: \"\\f0c4\";\n}\n\n.fa-cut::before {\n content: \"\\f0c4\";\n}\n\n.fa-sun-plant-wilt::before {\n content: \"\\e57a\";\n}\n\n.fa-toilets-portable::before {\n content: \"\\e584\";\n}\n\n.fa-hockey-puck::before {\n content: \"\\f453\";\n}\n\n.fa-table::before {\n content: \"\\f0ce\";\n}\n\n.fa-magnifying-glass-arrow-right::before {\n content: \"\\e521\";\n}\n\n.fa-tachograph-digital::before {\n content: \"\\f566\";\n}\n\n.fa-digital-tachograph::before {\n content: \"\\f566\";\n}\n\n.fa-users-slash::before {\n content: \"\\e073\";\n}\n\n.fa-clover::before {\n content: \"\\e139\";\n}\n\n.fa-reply::before {\n content: \"\\f3e5\";\n}\n\n.fa-mail-reply::before {\n content: \"\\f3e5\";\n}\n\n.fa-star-and-crescent::before {\n content: \"\\f699\";\n}\n\n.fa-house-fire::before {\n content: \"\\e50c\";\n}\n\n.fa-square-minus::before {\n content: \"\\f146\";\n}\n\n.fa-minus-square::before {\n content: \"\\f146\";\n}\n\n.fa-helicopter::before {\n content: \"\\f533\";\n}\n\n.fa-compass::before {\n content: \"\\f14e\";\n}\n\n.fa-square-caret-down::before {\n content: \"\\f150\";\n}\n\n.fa-caret-square-down::before {\n content: \"\\f150\";\n}\n\n.fa-file-circle-question::before {\n content: \"\\e4ef\";\n}\n\n.fa-laptop-code::before {\n content: \"\\f5fc\";\n}\n\n.fa-swatchbook::before {\n content: \"\\f5c3\";\n}\n\n.fa-prescription-bottle::before {\n content: \"\\f485\";\n}\n\n.fa-bars::before {\n content: \"\\f0c9\";\n}\n\n.fa-navicon::before {\n content: \"\\f0c9\";\n}\n\n.fa-people-group::before {\n content: \"\\e533\";\n}\n\n.fa-hourglass-end::before {\n content: \"\\f253\";\n}\n\n.fa-hourglass-3::before {\n content: \"\\f253\";\n}\n\n.fa-heart-crack::before {\n content: \"\\f7a9\";\n}\n\n.fa-heart-broken::before {\n content: \"\\f7a9\";\n}\n\n.fa-square-up-right::before {\n content: \"\\f360\";\n}\n\n.fa-external-link-square-alt::before {\n content: \"\\f360\";\n}\n\n.fa-face-kiss-beam::before {\n content: \"\\f597\";\n}\n\n.fa-kiss-beam::before {\n content: \"\\f597\";\n}\n\n.fa-film::before {\n content: \"\\f008\";\n}\n\n.fa-ruler-horizontal::before {\n content: \"\\f547\";\n}\n\n.fa-people-robbery::before {\n content: \"\\e536\";\n}\n\n.fa-lightbulb::before {\n content: \"\\f0eb\";\n}\n\n.fa-caret-left::before {\n content: \"\\f0d9\";\n}\n\n.fa-circle-exclamation::before {\n content: \"\\f06a\";\n}\n\n.fa-exclamation-circle::before {\n content: \"\\f06a\";\n}\n\n.fa-school-circle-xmark::before {\n content: \"\\e56d\";\n}\n\n.fa-arrow-right-from-bracket::before {\n content: \"\\f08b\";\n}\n\n.fa-sign-out::before {\n content: \"\\f08b\";\n}\n\n.fa-circle-chevron-down::before {\n content: \"\\f13a\";\n}\n\n.fa-chevron-circle-down::before {\n content: \"\\f13a\";\n}\n\n.fa-unlock-keyhole::before {\n content: \"\\f13e\";\n}\n\n.fa-unlock-alt::before {\n content: \"\\f13e\";\n}\n\n.fa-cloud-showers-heavy::before {\n content: \"\\f740\";\n}\n\n.fa-headphones-simple::before {\n content: \"\\f58f\";\n}\n\n.fa-headphones-alt::before {\n content: \"\\f58f\";\n}\n\n.fa-sitemap::before {\n content: \"\\f0e8\";\n}\n\n.fa-circle-dollar-to-slot::before {\n content: \"\\f4b9\";\n}\n\n.fa-donate::before {\n content: \"\\f4b9\";\n}\n\n.fa-memory::before {\n content: \"\\f538\";\n}\n\n.fa-road-spikes::before {\n content: \"\\e568\";\n}\n\n.fa-fire-burner::before {\n content: \"\\e4f1\";\n}\n\n.fa-flag::before {\n content: \"\\f024\";\n}\n\n.fa-hanukiah::before {\n content: \"\\f6e6\";\n}\n\n.fa-feather::before {\n content: \"\\f52d\";\n}\n\n.fa-volume-low::before {\n content: \"\\f027\";\n}\n\n.fa-volume-down::before {\n content: \"\\f027\";\n}\n\n.fa-comment-slash::before {\n content: \"\\f4b3\";\n}\n\n.fa-cloud-sun-rain::before {\n content: \"\\f743\";\n}\n\n.fa-compress::before {\n content: \"\\f066\";\n}\n\n.fa-wheat-awn::before {\n content: \"\\e2cd\";\n}\n\n.fa-wheat-alt::before {\n content: \"\\e2cd\";\n}\n\n.fa-ankh::before {\n content: \"\\f644\";\n}\n\n.fa-hands-holding-child::before {\n content: \"\\e4fa\";\n}\n\n.fa-asterisk::before {\n content: \"\\*\";\n}\n\n.fa-square-check::before {\n content: \"\\f14a\";\n}\n\n.fa-check-square::before {\n content: \"\\f14a\";\n}\n\n.fa-peseta-sign::before {\n content: \"\\e221\";\n}\n\n.fa-heading::before {\n content: \"\\f1dc\";\n}\n\n.fa-header::before {\n content: \"\\f1dc\";\n}\n\n.fa-ghost::before {\n content: \"\\f6e2\";\n}\n\n.fa-list::before {\n content: \"\\f03a\";\n}\n\n.fa-list-squares::before {\n content: \"\\f03a\";\n}\n\n.fa-square-phone-flip::before {\n content: \"\\f87b\";\n}\n\n.fa-phone-square-alt::before {\n content: \"\\f87b\";\n}\n\n.fa-cart-plus::before {\n content: \"\\f217\";\n}\n\n.fa-gamepad::before {\n content: \"\\f11b\";\n}\n\n.fa-circle-dot::before {\n content: \"\\f192\";\n}\n\n.fa-dot-circle::before {\n content: \"\\f192\";\n}\n\n.fa-face-dizzy::before {\n content: \"\\f567\";\n}\n\n.fa-dizzy::before {\n content: \"\\f567\";\n}\n\n.fa-egg::before {\n content: \"\\f7fb\";\n}\n\n.fa-house-medical-circle-xmark::before {\n content: \"\\e513\";\n}\n\n.fa-campground::before {\n content: \"\\f6bb\";\n}\n\n.fa-folder-plus::before {\n content: \"\\f65e\";\n}\n\n.fa-futbol::before {\n content: \"\\f1e3\";\n}\n\n.fa-futbol-ball::before {\n content: \"\\f1e3\";\n}\n\n.fa-soccer-ball::before {\n content: \"\\f1e3\";\n}\n\n.fa-paintbrush::before {\n content: \"\\f1fc\";\n}\n\n.fa-paint-brush::before {\n content: \"\\f1fc\";\n}\n\n.fa-lock::before {\n content: \"\\f023\";\n}\n\n.fa-gas-pump::before {\n content: \"\\f52f\";\n}\n\n.fa-hot-tub-person::before {\n content: \"\\f593\";\n}\n\n.fa-hot-tub::before {\n content: \"\\f593\";\n}\n\n.fa-map-location::before {\n content: \"\\f59f\";\n}\n\n.fa-map-marked::before {\n content: \"\\f59f\";\n}\n\n.fa-house-flood-water::before {\n content: \"\\e50e\";\n}\n\n.fa-tree::before {\n content: \"\\f1bb\";\n}\n\n.fa-bridge-lock::before {\n content: \"\\e4cc\";\n}\n\n.fa-sack-dollar::before {\n content: \"\\f81d\";\n}\n\n.fa-pen-to-square::before {\n content: \"\\f044\";\n}\n\n.fa-edit::before {\n content: \"\\f044\";\n}\n\n.fa-car-side::before {\n content: \"\\f5e4\";\n}\n\n.fa-share-nodes::before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt::before {\n content: \"\\f1e0\";\n}\n\n.fa-heart-circle-minus::before {\n content: \"\\e4ff\";\n}\n\n.fa-hourglass-half::before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-2::before {\n content: \"\\f252\";\n}\n\n.fa-microscope::before {\n content: \"\\f610\";\n}\n\n.fa-sink::before {\n content: \"\\e06d\";\n}\n\n.fa-bag-shopping::before {\n content: \"\\f290\";\n}\n\n.fa-shopping-bag::before {\n content: \"\\f290\";\n}\n\n.fa-arrow-down-z-a::before {\n content: \"\\f881\";\n}\n\n.fa-sort-alpha-desc::before {\n content: \"\\f881\";\n}\n\n.fa-sort-alpha-down-alt::before {\n content: \"\\f881\";\n}\n\n.fa-mitten::before {\n content: \"\\f7b5\";\n}\n\n.fa-person-rays::before {\n content: \"\\e54d\";\n}\n\n.fa-users::before {\n content: \"\\f0c0\";\n}\n\n.fa-eye-slash::before {\n content: \"\\f070\";\n}\n\n.fa-flask-vial::before {\n content: \"\\e4f3\";\n}\n\n.fa-hand::before {\n content: \"\\f256\";\n}\n\n.fa-hand-paper::before {\n content: \"\\f256\";\n}\n\n.fa-om::before {\n content: \"\\f679\";\n}\n\n.fa-worm::before {\n content: \"\\e599\";\n}\n\n.fa-house-circle-xmark::before {\n content: \"\\e50b\";\n}\n\n.fa-plug::before {\n content: \"\\f1e6\";\n}\n\n.fa-chevron-up::before {\n content: \"\\f077\";\n}\n\n.fa-hand-spock::before {\n content: \"\\f259\";\n}\n\n.fa-stopwatch::before {\n content: \"\\f2f2\";\n}\n\n.fa-face-kiss::before {\n content: \"\\f596\";\n}\n\n.fa-kiss::before {\n content: \"\\f596\";\n}\n\n.fa-bridge-circle-xmark::before {\n content: \"\\e4cb\";\n}\n\n.fa-face-grin-tongue::before {\n content: \"\\f589\";\n}\n\n.fa-grin-tongue::before {\n content: \"\\f589\";\n}\n\n.fa-chess-bishop::before {\n content: \"\\f43a\";\n}\n\n.fa-face-grin-wink::before {\n content: \"\\f58c\";\n}\n\n.fa-grin-wink::before {\n content: \"\\f58c\";\n}\n\n.fa-ear-deaf::before {\n content: \"\\f2a4\";\n}\n\n.fa-deaf::before {\n content: \"\\f2a4\";\n}\n\n.fa-deafness::before {\n content: \"\\f2a4\";\n}\n\n.fa-hard-of-hearing::before {\n content: \"\\f2a4\";\n}\n\n.fa-road-circle-check::before {\n content: \"\\e564\";\n}\n\n.fa-dice-five::before {\n content: \"\\f523\";\n}\n\n.fa-square-rss::before {\n content: \"\\f143\";\n}\n\n.fa-rss-square::before {\n content: \"\\f143\";\n}\n\n.fa-land-mine-on::before {\n content: \"\\e51b\";\n}\n\n.fa-i-cursor::before {\n content: \"\\f246\";\n}\n\n.fa-stamp::before {\n content: \"\\f5bf\";\n}\n\n.fa-stairs::before {\n content: \"\\e289\";\n}\n\n.fa-i::before {\n content: \"I\";\n}\n\n.fa-hryvnia-sign::before {\n content: \"\\f6f2\";\n}\n\n.fa-hryvnia::before {\n content: \"\\f6f2\";\n}\n\n.fa-pills::before {\n content: \"\\f484\";\n}\n\n.fa-face-grin-wide::before {\n content: \"\\f581\";\n}\n\n.fa-grin-alt::before {\n content: \"\\f581\";\n}\n\n.fa-tooth::before {\n content: \"\\f5c9\";\n}\n\n.fa-v::before {\n content: \"V\";\n}\n\n.fa-bangladeshi-taka-sign::before {\n content: \"\\e2e6\";\n}\n\n.fa-bicycle::before {\n content: \"\\f206\";\n}\n\n.fa-staff-snake::before {\n content: \"\\e579\";\n}\n\n.fa-rod-asclepius::before {\n content: \"\\e579\";\n}\n\n.fa-rod-snake::before {\n content: \"\\e579\";\n}\n\n.fa-staff-aesculapius::before {\n content: \"\\e579\";\n}\n\n.fa-head-side-cough-slash::before {\n content: \"\\e062\";\n}\n\n.fa-truck-medical::before {\n content: \"\\f0f9\";\n}\n\n.fa-ambulance::before {\n content: \"\\f0f9\";\n}\n\n.fa-wheat-awn-circle-exclamation::before {\n content: \"\\e598\";\n}\n\n.fa-snowman::before {\n content: \"\\f7d0\";\n}\n\n.fa-mortar-pestle::before {\n content: \"\\f5a7\";\n}\n\n.fa-road-barrier::before {\n content: \"\\e562\";\n}\n\n.fa-school::before {\n content: \"\\f549\";\n}\n\n.fa-igloo::before {\n content: \"\\f7ae\";\n}\n\n.fa-joint::before {\n content: \"\\f595\";\n}\n\n.fa-angle-right::before {\n content: \"\\f105\";\n}\n\n.fa-horse::before {\n content: \"\\f6f0\";\n}\n\n.fa-q::before {\n content: \"Q\";\n}\n\n.fa-g::before {\n content: \"G\";\n}\n\n.fa-notes-medical::before {\n content: \"\\f481\";\n}\n\n.fa-temperature-half::before {\n content: \"\\f2c9\";\n}\n\n.fa-temperature-2::before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-2::before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-half::before {\n content: \"\\f2c9\";\n}\n\n.fa-dong-sign::before {\n content: \"\\e169\";\n}\n\n.fa-capsules::before {\n content: \"\\f46b\";\n}\n\n.fa-poo-storm::before {\n content: \"\\f75a\";\n}\n\n.fa-poo-bolt::before {\n content: \"\\f75a\";\n}\n\n.fa-face-frown-open::before {\n content: \"\\f57a\";\n}\n\n.fa-frown-open::before {\n content: \"\\f57a\";\n}\n\n.fa-hand-point-up::before {\n content: \"\\f0a6\";\n}\n\n.fa-money-bill::before {\n content: \"\\f0d6\";\n}\n\n.fa-bookmark::before {\n content: \"\\f02e\";\n}\n\n.fa-align-justify::before {\n content: \"\\f039\";\n}\n\n.fa-umbrella-beach::before {\n content: \"\\f5ca\";\n}\n\n.fa-helmet-un::before {\n content: \"\\e503\";\n}\n\n.fa-bullseye::before {\n content: \"\\f140\";\n}\n\n.fa-bacon::before {\n content: \"\\f7e5\";\n}\n\n.fa-hand-point-down::before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-up-from-bracket::before {\n content: \"\\e09a\";\n}\n\n.fa-folder::before {\n content: \"\\f07b\";\n}\n\n.fa-folder-blank::before {\n content: \"\\f07b\";\n}\n\n.fa-file-waveform::before {\n content: \"\\f478\";\n}\n\n.fa-file-medical-alt::before {\n content: \"\\f478\";\n}\n\n.fa-radiation::before {\n content: \"\\f7b9\";\n}\n\n.fa-chart-simple::before {\n content: \"\\e473\";\n}\n\n.fa-mars-stroke::before {\n content: \"\\f229\";\n}\n\n.fa-vial::before {\n content: \"\\f492\";\n}\n\n.fa-gauge::before {\n content: \"\\f624\";\n}\n\n.fa-dashboard::before {\n content: \"\\f624\";\n}\n\n.fa-gauge-med::before {\n content: \"\\f624\";\n}\n\n.fa-tachometer-alt-average::before {\n content: \"\\f624\";\n}\n\n.fa-wand-magic-sparkles::before {\n content: \"\\e2ca\";\n}\n\n.fa-magic-wand-sparkles::before {\n content: \"\\e2ca\";\n}\n\n.fa-e::before {\n content: \"E\";\n}\n\n.fa-pen-clip::before {\n content: \"\\f305\";\n}\n\n.fa-pen-alt::before {\n content: \"\\f305\";\n}\n\n.fa-bridge-circle-exclamation::before {\n content: \"\\e4ca\";\n}\n\n.fa-user::before {\n content: \"\\f007\";\n}\n\n.fa-school-circle-check::before {\n content: \"\\e56b\";\n}\n\n.fa-dumpster::before {\n content: \"\\f793\";\n}\n\n.fa-van-shuttle::before {\n content: \"\\f5b6\";\n}\n\n.fa-shuttle-van::before {\n content: \"\\f5b6\";\n}\n\n.fa-building-user::before {\n content: \"\\e4da\";\n}\n\n.fa-square-caret-left::before {\n content: \"\\f191\";\n}\n\n.fa-caret-square-left::before {\n content: \"\\f191\";\n}\n\n.fa-highlighter::before {\n content: \"\\f591\";\n}\n\n.fa-key::before {\n content: \"\\f084\";\n}\n\n.fa-bullhorn::before {\n content: \"\\f0a1\";\n}\n\n.fa-globe::before {\n content: \"\\f0ac\";\n}\n\n.fa-synagogue::before {\n content: \"\\f69b\";\n}\n\n.fa-person-half-dress::before {\n content: \"\\e548\";\n}\n\n.fa-road-bridge::before {\n content: \"\\e563\";\n}\n\n.fa-location-arrow::before {\n content: \"\\f124\";\n}\n\n.fa-c::before {\n content: \"C\";\n}\n\n.fa-tablet-button::before {\n content: \"\\f10a\";\n}\n\n.fa-building-lock::before {\n content: \"\\e4d6\";\n}\n\n.fa-pizza-slice::before {\n content: \"\\f818\";\n}\n\n.fa-money-bill-wave::before {\n content: \"\\f53a\";\n}\n\n.fa-chart-area::before {\n content: \"\\f1fe\";\n}\n\n.fa-area-chart::before {\n content: \"\\f1fe\";\n}\n\n.fa-house-flag::before {\n content: \"\\e50d\";\n}\n\n.fa-person-circle-minus::before {\n content: \"\\e540\";\n}\n\n.fa-ban::before {\n content: \"\\f05e\";\n}\n\n.fa-cancel::before {\n content: \"\\f05e\";\n}\n\n.fa-camera-rotate::before {\n content: \"\\e0d8\";\n}\n\n.fa-spray-can-sparkles::before {\n content: \"\\f5d0\";\n}\n\n.fa-air-freshener::before {\n content: \"\\f5d0\";\n}\n\n.fa-star::before {\n content: \"\\f005\";\n}\n\n.fa-repeat::before {\n content: \"\\f363\";\n}\n\n.fa-cross::before {\n content: \"\\f654\";\n}\n\n.fa-box::before {\n content: \"\\f466\";\n}\n\n.fa-venus-mars::before {\n content: \"\\f228\";\n}\n\n.fa-arrow-pointer::before {\n content: \"\\f245\";\n}\n\n.fa-mouse-pointer::before {\n content: \"\\f245\";\n}\n\n.fa-maximize::before {\n content: \"\\f31e\";\n}\n\n.fa-expand-arrows-alt::before {\n content: \"\\f31e\";\n}\n\n.fa-charging-station::before {\n content: \"\\f5e7\";\n}\n\n.fa-shapes::before {\n content: \"\\f61f\";\n}\n\n.fa-triangle-circle-square::before {\n content: \"\\f61f\";\n}\n\n.fa-shuffle::before {\n content: \"\\f074\";\n}\n\n.fa-random::before {\n content: \"\\f074\";\n}\n\n.fa-person-running::before {\n content: \"\\f70c\";\n}\n\n.fa-running::before {\n content: \"\\f70c\";\n}\n\n.fa-mobile-retro::before {\n content: \"\\e527\";\n}\n\n.fa-grip-lines-vertical::before {\n content: \"\\f7a5\";\n}\n\n.fa-spider::before {\n content: \"\\f717\";\n}\n\n.fa-hands-bound::before {\n content: \"\\e4f9\";\n}\n\n.fa-file-invoice-dollar::before {\n content: \"\\f571\";\n}\n\n.fa-plane-circle-exclamation::before {\n content: \"\\e556\";\n}\n\n.fa-x-ray::before {\n content: \"\\f497\";\n}\n\n.fa-spell-check::before {\n content: \"\\f891\";\n}\n\n.fa-slash::before {\n content: \"\\f715\";\n}\n\n.fa-computer-mouse::before {\n content: \"\\f8cc\";\n}\n\n.fa-mouse::before {\n content: \"\\f8cc\";\n}\n\n.fa-arrow-right-to-bracket::before {\n content: \"\\f090\";\n}\n\n.fa-sign-in::before {\n content: \"\\f090\";\n}\n\n.fa-shop-slash::before {\n content: \"\\e070\";\n}\n\n.fa-store-alt-slash::before {\n content: \"\\e070\";\n}\n\n.fa-server::before {\n content: \"\\f233\";\n}\n\n.fa-virus-covid-slash::before {\n content: \"\\e4a9\";\n}\n\n.fa-shop-lock::before {\n content: \"\\e4a5\";\n}\n\n.fa-hourglass-start::before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-1::before {\n content: \"\\f251\";\n}\n\n.fa-blender-phone::before {\n content: \"\\f6b6\";\n}\n\n.fa-building-wheat::before {\n content: \"\\e4db\";\n}\n\n.fa-person-breastfeeding::before {\n content: \"\\e53a\";\n}\n\n.fa-right-to-bracket::before {\n content: \"\\f2f6\";\n}\n\n.fa-sign-in-alt::before {\n content: \"\\f2f6\";\n}\n\n.fa-venus::before {\n content: \"\\f221\";\n}\n\n.fa-passport::before {\n content: \"\\f5ab\";\n}\n\n.fa-heart-pulse::before {\n content: \"\\f21e\";\n}\n\n.fa-heartbeat::before {\n content: \"\\f21e\";\n}\n\n.fa-people-carry-box::before {\n content: \"\\f4ce\";\n}\n\n.fa-people-carry::before {\n content: \"\\f4ce\";\n}\n\n.fa-temperature-high::before {\n content: \"\\f769\";\n}\n\n.fa-microchip::before {\n content: \"\\f2db\";\n}\n\n.fa-crown::before {\n content: \"\\f521\";\n}\n\n.fa-weight-hanging::before {\n content: \"\\f5cd\";\n}\n\n.fa-xmarks-lines::before {\n content: \"\\e59a\";\n}\n\n.fa-file-prescription::before {\n content: \"\\f572\";\n}\n\n.fa-weight-scale::before {\n content: \"\\f496\";\n}\n\n.fa-weight::before {\n content: \"\\f496\";\n}\n\n.fa-user-group::before {\n content: \"\\f500\";\n}\n\n.fa-user-friends::before {\n content: \"\\f500\";\n}\n\n.fa-arrow-up-a-z::before {\n content: \"\\f15e\";\n}\n\n.fa-sort-alpha-up::before {\n content: \"\\f15e\";\n}\n\n.fa-chess-knight::before {\n content: \"\\f441\";\n}\n\n.fa-face-laugh-squint::before {\n content: \"\\f59b\";\n}\n\n.fa-laugh-squint::before {\n content: \"\\f59b\";\n}\n\n.fa-wheelchair::before {\n content: \"\\f193\";\n}\n\n.fa-circle-arrow-up::before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-up::before {\n content: \"\\f0aa\";\n}\n\n.fa-toggle-on::before {\n content: \"\\f205\";\n}\n\n.fa-person-walking::before {\n content: \"\\f554\";\n}\n\n.fa-walking::before {\n content: \"\\f554\";\n}\n\n.fa-l::before {\n content: \"L\";\n}\n\n.fa-fire::before {\n content: \"\\f06d\";\n}\n\n.fa-bed-pulse::before {\n content: \"\\f487\";\n}\n\n.fa-procedures::before {\n content: \"\\f487\";\n}\n\n.fa-shuttle-space::before {\n content: \"\\f197\";\n}\n\n.fa-space-shuttle::before {\n content: \"\\f197\";\n}\n\n.fa-face-laugh::before {\n content: \"\\f599\";\n}\n\n.fa-laugh::before {\n content: \"\\f599\";\n}\n\n.fa-folder-open::before {\n content: \"\\f07c\";\n}\n\n.fa-heart-circle-plus::before {\n content: \"\\e500\";\n}\n\n.fa-code-fork::before {\n content: \"\\e13b\";\n}\n\n.fa-city::before {\n content: \"\\f64f\";\n}\n\n.fa-microphone-lines::before {\n content: \"\\f3c9\";\n}\n\n.fa-microphone-alt::before {\n content: \"\\f3c9\";\n}\n\n.fa-pepper-hot::before {\n content: \"\\f816\";\n}\n\n.fa-unlock::before {\n content: \"\\f09c\";\n}\n\n.fa-colon-sign::before {\n content: \"\\e140\";\n}\n\n.fa-headset::before {\n content: \"\\f590\";\n}\n\n.fa-store-slash::before {\n content: \"\\e071\";\n}\n\n.fa-road-circle-xmark::before {\n content: \"\\e566\";\n}\n\n.fa-user-minus::before {\n content: \"\\f503\";\n}\n\n.fa-mars-stroke-up::before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-v::before {\n content: \"\\f22a\";\n}\n\n.fa-champagne-glasses::before {\n content: \"\\f79f\";\n}\n\n.fa-glass-cheers::before {\n content: \"\\f79f\";\n}\n\n.fa-clipboard::before {\n content: \"\\f328\";\n}\n\n.fa-house-circle-exclamation::before {\n content: \"\\e50a\";\n}\n\n.fa-file-arrow-up::before {\n content: \"\\f574\";\n}\n\n.fa-file-upload::before {\n content: \"\\f574\";\n}\n\n.fa-wifi::before {\n content: \"\\f1eb\";\n}\n\n.fa-wifi-3::before {\n content: \"\\f1eb\";\n}\n\n.fa-wifi-strong::before {\n content: \"\\f1eb\";\n}\n\n.fa-bath::before {\n content: \"\\f2cd\";\n}\n\n.fa-bathtub::before {\n content: \"\\f2cd\";\n}\n\n.fa-underline::before {\n content: \"\\f0cd\";\n}\n\n.fa-user-pen::before {\n content: \"\\f4ff\";\n}\n\n.fa-user-edit::before {\n content: \"\\f4ff\";\n}\n\n.fa-signature::before {\n content: \"\\f5b7\";\n}\n\n.fa-stroopwafel::before {\n content: \"\\f551\";\n}\n\n.fa-bold::before {\n content: \"\\f032\";\n}\n\n.fa-anchor-lock::before {\n content: \"\\e4ad\";\n}\n\n.fa-building-ngo::before {\n content: \"\\e4d7\";\n}\n\n.fa-manat-sign::before {\n content: \"\\e1d5\";\n}\n\n.fa-not-equal::before {\n content: \"\\f53e\";\n}\n\n.fa-border-top-left::before {\n content: \"\\f853\";\n}\n\n.fa-border-style::before {\n content: \"\\f853\";\n}\n\n.fa-map-location-dot::before {\n content: \"\\f5a0\";\n}\n\n.fa-map-marked-alt::before {\n content: \"\\f5a0\";\n}\n\n.fa-jedi::before {\n content: \"\\f669\";\n}\n\n.fa-square-poll-vertical::before {\n content: \"\\f681\";\n}\n\n.fa-poll::before {\n content: \"\\f681\";\n}\n\n.fa-mug-hot::before {\n content: \"\\f7b6\";\n}\n\n.fa-car-battery::before {\n content: \"\\f5df\";\n}\n\n.fa-battery-car::before {\n content: \"\\f5df\";\n}\n\n.fa-gift::before {\n content: \"\\f06b\";\n}\n\n.fa-dice-two::before {\n content: \"\\f528\";\n}\n\n.fa-chess-queen::before {\n content: \"\\f445\";\n}\n\n.fa-glasses::before {\n content: \"\\f530\";\n}\n\n.fa-chess-board::before {\n content: \"\\f43c\";\n}\n\n.fa-building-circle-check::before {\n content: \"\\e4d2\";\n}\n\n.fa-person-chalkboard::before {\n content: \"\\e53d\";\n}\n\n.fa-mars-stroke-right::before {\n content: \"\\f22b\";\n}\n\n.fa-mars-stroke-h::before {\n content: \"\\f22b\";\n}\n\n.fa-hand-back-fist::before {\n content: \"\\f255\";\n}\n\n.fa-hand-rock::before {\n content: \"\\f255\";\n}\n\n.fa-square-caret-up::before {\n content: \"\\f151\";\n}\n\n.fa-caret-square-up::before {\n content: \"\\f151\";\n}\n\n.fa-cloud-showers-water::before {\n content: \"\\e4e4\";\n}\n\n.fa-chart-bar::before {\n content: \"\\f080\";\n}\n\n.fa-bar-chart::before {\n content: \"\\f080\";\n}\n\n.fa-hands-bubbles::before {\n content: \"\\e05e\";\n}\n\n.fa-hands-wash::before {\n content: \"\\e05e\";\n}\n\n.fa-less-than-equal::before {\n content: \"\\f537\";\n}\n\n.fa-train::before {\n content: \"\\f238\";\n}\n\n.fa-eye-low-vision::before {\n content: \"\\f2a8\";\n}\n\n.fa-low-vision::before {\n content: \"\\f2a8\";\n}\n\n.fa-crow::before {\n content: \"\\f520\";\n}\n\n.fa-sailboat::before {\n content: \"\\e445\";\n}\n\n.fa-window-restore::before {\n content: \"\\f2d2\";\n}\n\n.fa-square-plus::before {\n content: \"\\f0fe\";\n}\n\n.fa-plus-square::before {\n content: \"\\f0fe\";\n}\n\n.fa-torii-gate::before {\n content: \"\\f6a1\";\n}\n\n.fa-frog::before {\n content: \"\\f52e\";\n}\n\n.fa-bucket::before {\n content: \"\\e4cf\";\n}\n\n.fa-image::before {\n content: \"\\f03e\";\n}\n\n.fa-microphone::before {\n content: \"\\f130\";\n}\n\n.fa-cow::before {\n content: \"\\f6c8\";\n}\n\n.fa-caret-up::before {\n content: \"\\f0d8\";\n}\n\n.fa-screwdriver::before {\n content: \"\\f54a\";\n}\n\n.fa-folder-closed::before {\n content: \"\\e185\";\n}\n\n.fa-house-tsunami::before {\n content: \"\\e515\";\n}\n\n.fa-square-nfi::before {\n content: \"\\e576\";\n}\n\n.fa-arrow-up-from-ground-water::before {\n content: \"\\e4b5\";\n}\n\n.fa-martini-glass::before {\n content: \"\\f57b\";\n}\n\n.fa-glass-martini-alt::before {\n content: \"\\f57b\";\n}\n\n.fa-rotate-left::before {\n content: \"\\f2ea\";\n}\n\n.fa-rotate-back::before {\n content: \"\\f2ea\";\n}\n\n.fa-rotate-backward::before {\n content: \"\\f2ea\";\n}\n\n.fa-undo-alt::before {\n content: \"\\f2ea\";\n}\n\n.fa-table-columns::before {\n content: \"\\f0db\";\n}\n\n.fa-columns::before {\n content: \"\\f0db\";\n}\n\n.fa-lemon::before {\n content: \"\\f094\";\n}\n\n.fa-head-side-mask::before {\n content: \"\\e063\";\n}\n\n.fa-handshake::before {\n content: \"\\f2b5\";\n}\n\n.fa-gem::before {\n content: \"\\f3a5\";\n}\n\n.fa-dolly::before {\n content: \"\\f472\";\n}\n\n.fa-dolly-box::before {\n content: \"\\f472\";\n}\n\n.fa-smoking::before {\n content: \"\\f48d\";\n}\n\n.fa-minimize::before {\n content: \"\\f78c\";\n}\n\n.fa-compress-arrows-alt::before {\n content: \"\\f78c\";\n}\n\n.fa-monument::before {\n content: \"\\f5a6\";\n}\n\n.fa-snowplow::before {\n content: \"\\f7d2\";\n}\n\n.fa-angles-right::before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-right::before {\n content: \"\\f101\";\n}\n\n.fa-cannabis::before {\n content: \"\\f55f\";\n}\n\n.fa-circle-play::before {\n content: \"\\f144\";\n}\n\n.fa-play-circle::before {\n content: \"\\f144\";\n}\n\n.fa-tablets::before {\n content: \"\\f490\";\n}\n\n.fa-ethernet::before {\n content: \"\\f796\";\n}\n\n.fa-euro-sign::before {\n content: \"\\f153\";\n}\n\n.fa-eur::before {\n content: \"\\f153\";\n}\n\n.fa-euro::before {\n content: \"\\f153\";\n}\n\n.fa-chair::before {\n content: \"\\f6c0\";\n}\n\n.fa-circle-check::before {\n content: \"\\f058\";\n}\n\n.fa-check-circle::before {\n content: \"\\f058\";\n}\n\n.fa-circle-stop::before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle::before {\n content: \"\\f28d\";\n}\n\n.fa-compass-drafting::before {\n content: \"\\f568\";\n}\n\n.fa-drafting-compass::before {\n content: \"\\f568\";\n}\n\n.fa-plate-wheat::before {\n content: \"\\e55a\";\n}\n\n.fa-icicles::before {\n content: \"\\f7ad\";\n}\n\n.fa-person-shelter::before {\n content: \"\\e54f\";\n}\n\n.fa-neuter::before {\n content: \"\\f22c\";\n}\n\n.fa-id-badge::before {\n content: \"\\f2c1\";\n}\n\n.fa-marker::before {\n content: \"\\f5a1\";\n}\n\n.fa-face-laugh-beam::before {\n content: \"\\f59a\";\n}\n\n.fa-laugh-beam::before {\n content: \"\\f59a\";\n}\n\n.fa-helicopter-symbol::before {\n content: \"\\e502\";\n}\n\n.fa-universal-access::before {\n content: \"\\f29a\";\n}\n\n.fa-circle-chevron-up::before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-up::before {\n content: \"\\f139\";\n}\n\n.fa-lari-sign::before {\n content: \"\\e1c8\";\n}\n\n.fa-volcano::before {\n content: \"\\f770\";\n}\n\n.fa-person-walking-dashed-line-arrow-right::before {\n content: \"\\e553\";\n}\n\n.fa-sterling-sign::before {\n content: \"\\f154\";\n}\n\n.fa-gbp::before {\n content: \"\\f154\";\n}\n\n.fa-pound-sign::before {\n content: \"\\f154\";\n}\n\n.fa-viruses::before {\n content: \"\\e076\";\n}\n\n.fa-square-person-confined::before {\n content: \"\\e577\";\n}\n\n.fa-user-tie::before {\n content: \"\\f508\";\n}\n\n.fa-arrow-down-long::before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-down::before {\n content: \"\\f175\";\n}\n\n.fa-tent-arrow-down-to-line::before {\n content: \"\\e57e\";\n}\n\n.fa-certificate::before {\n content: \"\\f0a3\";\n}\n\n.fa-reply-all::before {\n content: \"\\f122\";\n}\n\n.fa-mail-reply-all::before {\n content: \"\\f122\";\n}\n\n.fa-suitcase::before {\n content: \"\\f0f2\";\n}\n\n.fa-person-skating::before {\n content: \"\\f7c5\";\n}\n\n.fa-skating::before {\n content: \"\\f7c5\";\n}\n\n.fa-filter-circle-dollar::before {\n content: \"\\f662\";\n}\n\n.fa-funnel-dollar::before {\n content: \"\\f662\";\n}\n\n.fa-camera-retro::before {\n content: \"\\f083\";\n}\n\n.fa-circle-arrow-down::before {\n content: \"\\f0ab\";\n}\n\n.fa-arrow-circle-down::before {\n content: \"\\f0ab\";\n}\n\n.fa-file-import::before {\n content: \"\\f56f\";\n}\n\n.fa-arrow-right-to-file::before {\n content: \"\\f56f\";\n}\n\n.fa-square-arrow-up-right::before {\n content: \"\\f14c\";\n}\n\n.fa-external-link-square::before {\n content: \"\\f14c\";\n}\n\n.fa-box-open::before {\n content: \"\\f49e\";\n}\n\n.fa-scroll::before {\n content: \"\\f70e\";\n}\n\n.fa-spa::before {\n content: \"\\f5bb\";\n}\n\n.fa-location-pin-lock::before {\n content: \"\\e51f\";\n}\n\n.fa-pause::before {\n content: \"\\f04c\";\n}\n\n.fa-hill-avalanche::before {\n content: \"\\e507\";\n}\n\n.fa-temperature-empty::before {\n content: \"\\f2cb\";\n}\n\n.fa-temperature-0::before {\n content: \"\\f2cb\";\n}\n\n.fa-thermometer-0::before {\n content: \"\\f2cb\";\n}\n\n.fa-thermometer-empty::before {\n content: \"\\f2cb\";\n}\n\n.fa-bomb::before {\n content: \"\\f1e2\";\n}\n\n.fa-registered::before {\n content: \"\\f25d\";\n}\n\n.fa-address-card::before {\n content: \"\\f2bb\";\n}\n\n.fa-contact-card::before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard::before {\n content: \"\\f2bb\";\n}\n\n.fa-scale-unbalanced-flip::before {\n content: \"\\f516\";\n}\n\n.fa-balance-scale-right::before {\n content: \"\\f516\";\n}\n\n.fa-subscript::before {\n content: \"\\f12c\";\n}\n\n.fa-diamond-turn-right::before {\n content: \"\\f5eb\";\n}\n\n.fa-directions::before {\n content: \"\\f5eb\";\n}\n\n.fa-burst::before {\n content: \"\\e4dc\";\n}\n\n.fa-house-laptop::before {\n content: \"\\e066\";\n}\n\n.fa-laptop-house::before {\n content: \"\\e066\";\n}\n\n.fa-face-tired::before {\n content: \"\\f5c8\";\n}\n\n.fa-tired::before {\n content: \"\\f5c8\";\n}\n\n.fa-money-bills::before {\n content: \"\\e1f3\";\n}\n\n.fa-smog::before {\n content: \"\\f75f\";\n}\n\n.fa-crutch::before {\n content: \"\\f7f7\";\n}\n\n.fa-cloud-arrow-up::before {\n content: \"\\f0ee\";\n}\n\n.fa-cloud-upload::before {\n content: \"\\f0ee\";\n}\n\n.fa-cloud-upload-alt::before {\n content: \"\\f0ee\";\n}\n\n.fa-palette::before {\n content: \"\\f53f\";\n}\n\n.fa-arrows-turn-right::before {\n content: \"\\e4c0\";\n}\n\n.fa-vest::before {\n content: \"\\e085\";\n}\n\n.fa-ferry::before {\n content: \"\\e4ea\";\n}\n\n.fa-arrows-down-to-people::before {\n content: \"\\e4b9\";\n}\n\n.fa-seedling::before {\n content: \"\\f4d8\";\n}\n\n.fa-sprout::before {\n content: \"\\f4d8\";\n}\n\n.fa-left-right::before {\n content: \"\\f337\";\n}\n\n.fa-arrows-alt-h::before {\n content: \"\\f337\";\n}\n\n.fa-boxes-packing::before {\n content: \"\\e4c7\";\n}\n\n.fa-circle-arrow-left::before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-left::before {\n content: \"\\f0a8\";\n}\n\n.fa-group-arrows-rotate::before {\n content: \"\\e4f6\";\n}\n\n.fa-bowl-food::before {\n content: \"\\e4c6\";\n}\n\n.fa-candy-cane::before {\n content: \"\\f786\";\n}\n\n.fa-arrow-down-wide-short::before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-asc::before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-down::before {\n content: \"\\f160\";\n}\n\n.fa-cloud-bolt::before {\n content: \"\\f76c\";\n}\n\n.fa-thunderstorm::before {\n content: \"\\f76c\";\n}\n\n.fa-text-slash::before {\n content: \"\\f87d\";\n}\n\n.fa-remove-format::before {\n content: \"\\f87d\";\n}\n\n.fa-face-smile-wink::before {\n content: \"\\f4da\";\n}\n\n.fa-smile-wink::before {\n content: \"\\f4da\";\n}\n\n.fa-file-word::before {\n content: \"\\f1c2\";\n}\n\n.fa-file-powerpoint::before {\n content: \"\\f1c4\";\n}\n\n.fa-arrows-left-right::before {\n content: \"\\f07e\";\n}\n\n.fa-arrows-h::before {\n content: \"\\f07e\";\n}\n\n.fa-house-lock::before {\n content: \"\\e510\";\n}\n\n.fa-cloud-arrow-down::before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-download::before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-download-alt::before {\n content: \"\\f0ed\";\n}\n\n.fa-children::before {\n content: \"\\e4e1\";\n}\n\n.fa-chalkboard::before {\n content: \"\\f51b\";\n}\n\n.fa-blackboard::before {\n content: \"\\f51b\";\n}\n\n.fa-user-large-slash::before {\n content: \"\\f4fa\";\n}\n\n.fa-user-alt-slash::before {\n content: \"\\f4fa\";\n}\n\n.fa-envelope-open::before {\n content: \"\\f2b6\";\n}\n\n.fa-handshake-simple-slash::before {\n content: \"\\e05f\";\n}\n\n.fa-handshake-alt-slash::before {\n content: \"\\e05f\";\n}\n\n.fa-mattress-pillow::before {\n content: \"\\e525\";\n}\n\n.fa-guarani-sign::before {\n content: \"\\e19a\";\n}\n\n.fa-arrows-rotate::before {\n content: \"\\f021\";\n}\n\n.fa-refresh::before {\n content: \"\\f021\";\n}\n\n.fa-sync::before {\n content: \"\\f021\";\n}\n\n.fa-fire-extinguisher::before {\n content: \"\\f134\";\n}\n\n.fa-cruzeiro-sign::before {\n content: \"\\e152\";\n}\n\n.fa-greater-than-equal::before {\n content: \"\\f532\";\n}\n\n.fa-shield-halved::before {\n content: \"\\f3ed\";\n}\n\n.fa-shield-alt::before {\n content: \"\\f3ed\";\n}\n\n.fa-book-atlas::before {\n content: \"\\f558\";\n}\n\n.fa-atlas::before {\n content: \"\\f558\";\n}\n\n.fa-virus::before {\n content: \"\\e074\";\n}\n\n.fa-envelope-circle-check::before {\n content: \"\\e4e8\";\n}\n\n.fa-layer-group::before {\n content: \"\\f5fd\";\n}\n\n.fa-arrows-to-dot::before {\n content: \"\\e4be\";\n}\n\n.fa-archway::before {\n content: \"\\f557\";\n}\n\n.fa-heart-circle-check::before {\n content: \"\\e4fd\";\n}\n\n.fa-house-chimney-crack::before {\n content: \"\\f6f1\";\n}\n\n.fa-house-damage::before {\n content: \"\\f6f1\";\n}\n\n.fa-file-zipper::before {\n content: \"\\f1c6\";\n}\n\n.fa-file-archive::before {\n content: \"\\f1c6\";\n}\n\n.fa-square::before {\n content: \"\\f0c8\";\n}\n\n.fa-martini-glass-empty::before {\n content: \"\\f000\";\n}\n\n.fa-glass-martini::before {\n content: \"\\f000\";\n}\n\n.fa-couch::before {\n content: \"\\f4b8\";\n}\n\n.fa-cedi-sign::before {\n content: \"\\e0df\";\n}\n\n.fa-italic::before {\n content: \"\\f033\";\n}\n\n.fa-table-cells-column-lock::before {\n content: \"\\e678\";\n}\n\n.fa-church::before {\n content: \"\\f51d\";\n}\n\n.fa-comments-dollar::before {\n content: \"\\f653\";\n}\n\n.fa-democrat::before {\n content: \"\\f747\";\n}\n\n.fa-z::before {\n content: \"Z\";\n}\n\n.fa-person-skiing::before {\n content: \"\\f7c9\";\n}\n\n.fa-skiing::before {\n content: \"\\f7c9\";\n}\n\n.fa-road-lock::before {\n content: \"\\e567\";\n}\n\n.fa-a::before {\n content: \"A\";\n}\n\n.fa-temperature-arrow-down::before {\n content: \"\\e03f\";\n}\n\n.fa-temperature-down::before {\n content: \"\\e03f\";\n}\n\n.fa-feather-pointed::before {\n content: \"\\f56b\";\n}\n\n.fa-feather-alt::before {\n content: \"\\f56b\";\n}\n\n.fa-p::before {\n content: \"P\";\n}\n\n.fa-snowflake::before {\n content: \"\\f2dc\";\n}\n\n.fa-newspaper::before {\n content: \"\\f1ea\";\n}\n\n.fa-rectangle-ad::before {\n content: \"\\f641\";\n}\n\n.fa-ad::before {\n content: \"\\f641\";\n}\n\n.fa-circle-arrow-right::before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-right::before {\n content: \"\\f0a9\";\n}\n\n.fa-filter-circle-xmark::before {\n content: \"\\e17b\";\n}\n\n.fa-locust::before {\n content: \"\\e520\";\n}\n\n.fa-sort::before {\n content: \"\\f0dc\";\n}\n\n.fa-unsorted::before {\n content: \"\\f0dc\";\n}\n\n.fa-list-ol::before {\n content: \"\\f0cb\";\n}\n\n.fa-list-1-2::before {\n content: \"\\f0cb\";\n}\n\n.fa-list-numeric::before {\n content: \"\\f0cb\";\n}\n\n.fa-person-dress-burst::before {\n content: \"\\e544\";\n}\n\n.fa-money-check-dollar::before {\n content: \"\\f53d\";\n}\n\n.fa-money-check-alt::before {\n content: \"\\f53d\";\n}\n\n.fa-vector-square::before {\n content: \"\\f5cb\";\n}\n\n.fa-bread-slice::before {\n content: \"\\f7ec\";\n}\n\n.fa-language::before {\n content: \"\\f1ab\";\n}\n\n.fa-face-kiss-wink-heart::before {\n content: \"\\f598\";\n}\n\n.fa-kiss-wink-heart::before {\n content: \"\\f598\";\n}\n\n.fa-filter::before {\n content: \"\\f0b0\";\n}\n\n.fa-question::before {\n content: \"\\?\";\n}\n\n.fa-file-signature::before {\n content: \"\\f573\";\n}\n\n.fa-up-down-left-right::before {\n content: \"\\f0b2\";\n}\n\n.fa-arrows-alt::before {\n content: \"\\f0b2\";\n}\n\n.fa-house-chimney-user::before {\n content: \"\\e065\";\n}\n\n.fa-hand-holding-heart::before {\n content: \"\\f4be\";\n}\n\n.fa-puzzle-piece::before {\n content: \"\\f12e\";\n}\n\n.fa-money-check::before {\n content: \"\\f53c\";\n}\n\n.fa-star-half-stroke::before {\n content: \"\\f5c0\";\n}\n\n.fa-star-half-alt::before {\n content: \"\\f5c0\";\n}\n\n.fa-code::before {\n content: \"\\f121\";\n}\n\n.fa-whiskey-glass::before {\n content: \"\\f7a0\";\n}\n\n.fa-glass-whiskey::before {\n content: \"\\f7a0\";\n}\n\n.fa-building-circle-exclamation::before {\n content: \"\\e4d3\";\n}\n\n.fa-magnifying-glass-chart::before {\n content: \"\\e522\";\n}\n\n.fa-arrow-up-right-from-square::before {\n content: \"\\f08e\";\n}\n\n.fa-external-link::before {\n content: \"\\f08e\";\n}\n\n.fa-cubes-stacked::before {\n content: \"\\e4e6\";\n}\n\n.fa-won-sign::before {\n content: \"\\f159\";\n}\n\n.fa-krw::before {\n content: \"\\f159\";\n}\n\n.fa-won::before {\n content: \"\\f159\";\n}\n\n.fa-virus-covid::before {\n content: \"\\e4a8\";\n}\n\n.fa-austral-sign::before {\n content: \"\\e0a9\";\n}\n\n.fa-f::before {\n content: \"F\";\n}\n\n.fa-leaf::before {\n content: \"\\f06c\";\n}\n\n.fa-road::before {\n content: \"\\f018\";\n}\n\n.fa-taxi::before {\n content: \"\\f1ba\";\n}\n\n.fa-cab::before {\n content: \"\\f1ba\";\n}\n\n.fa-person-circle-plus::before {\n content: \"\\e541\";\n}\n\n.fa-chart-pie::before {\n content: \"\\f200\";\n}\n\n.fa-pie-chart::before {\n content: \"\\f200\";\n}\n\n.fa-bolt-lightning::before {\n content: \"\\e0b7\";\n}\n\n.fa-sack-xmark::before {\n content: \"\\e56a\";\n}\n\n.fa-file-excel::before {\n content: \"\\f1c3\";\n}\n\n.fa-file-contract::before {\n content: \"\\f56c\";\n}\n\n.fa-fish-fins::before {\n content: \"\\e4f2\";\n}\n\n.fa-building-flag::before {\n content: \"\\e4d5\";\n}\n\n.fa-face-grin-beam::before {\n content: \"\\f582\";\n}\n\n.fa-grin-beam::before {\n content: \"\\f582\";\n}\n\n.fa-object-ungroup::before {\n content: \"\\f248\";\n}\n\n.fa-poop::before {\n content: \"\\f619\";\n}\n\n.fa-location-pin::before {\n content: \"\\f041\";\n}\n\n.fa-map-marker::before {\n content: \"\\f041\";\n}\n\n.fa-kaaba::before {\n content: \"\\f66b\";\n}\n\n.fa-toilet-paper::before {\n content: \"\\f71e\";\n}\n\n.fa-helmet-safety::before {\n content: \"\\f807\";\n}\n\n.fa-hard-hat::before {\n content: \"\\f807\";\n}\n\n.fa-hat-hard::before {\n content: \"\\f807\";\n}\n\n.fa-eject::before {\n content: \"\\f052\";\n}\n\n.fa-circle-right::before {\n content: \"\\f35a\";\n}\n\n.fa-arrow-alt-circle-right::before {\n content: \"\\f35a\";\n}\n\n.fa-plane-circle-check::before {\n content: \"\\e555\";\n}\n\n.fa-face-rolling-eyes::before {\n content: \"\\f5a5\";\n}\n\n.fa-meh-rolling-eyes::before {\n content: \"\\f5a5\";\n}\n\n.fa-object-group::before {\n content: \"\\f247\";\n}\n\n.fa-chart-line::before {\n content: \"\\f201\";\n}\n\n.fa-line-chart::before {\n content: \"\\f201\";\n}\n\n.fa-mask-ventilator::before {\n content: \"\\e524\";\n}\n\n.fa-arrow-right::before {\n content: \"\\f061\";\n}\n\n.fa-signs-post::before {\n content: \"\\f277\";\n}\n\n.fa-map-signs::before {\n content: \"\\f277\";\n}\n\n.fa-cash-register::before {\n content: \"\\f788\";\n}\n\n.fa-person-circle-question::before {\n content: \"\\e542\";\n}\n\n.fa-h::before {\n content: \"H\";\n}\n\n.fa-tarp::before {\n content: \"\\e57b\";\n}\n\n.fa-screwdriver-wrench::before {\n content: \"\\f7d9\";\n}\n\n.fa-tools::before {\n content: \"\\f7d9\";\n}\n\n.fa-arrows-to-eye::before {\n content: \"\\e4bf\";\n}\n\n.fa-plug-circle-bolt::before {\n content: \"\\e55b\";\n}\n\n.fa-heart::before {\n content: \"\\f004\";\n}\n\n.fa-mars-and-venus::before {\n content: \"\\f224\";\n}\n\n.fa-house-user::before {\n content: \"\\e1b0\";\n}\n\n.fa-home-user::before {\n content: \"\\e1b0\";\n}\n\n.fa-dumpster-fire::before {\n content: \"\\f794\";\n}\n\n.fa-house-crack::before {\n content: \"\\e3b1\";\n}\n\n.fa-martini-glass-citrus::before {\n content: \"\\f561\";\n}\n\n.fa-cocktail::before {\n content: \"\\f561\";\n}\n\n.fa-face-surprise::before {\n content: \"\\f5c2\";\n}\n\n.fa-surprise::before {\n content: \"\\f5c2\";\n}\n\n.fa-bottle-water::before {\n content: \"\\e4c5\";\n}\n\n.fa-circle-pause::before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle::before {\n content: \"\\f28b\";\n}\n\n.fa-toilet-paper-slash::before {\n content: \"\\e072\";\n}\n\n.fa-apple-whole::before {\n content: \"\\f5d1\";\n}\n\n.fa-apple-alt::before {\n content: \"\\f5d1\";\n}\n\n.fa-kitchen-set::before {\n content: \"\\e51a\";\n}\n\n.fa-r::before {\n content: \"R\";\n}\n\n.fa-temperature-quarter::before {\n content: \"\\f2ca\";\n}\n\n.fa-temperature-1::before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-1::before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-quarter::before {\n content: \"\\f2ca\";\n}\n\n.fa-cube::before {\n content: \"\\f1b2\";\n}\n\n.fa-bitcoin-sign::before {\n content: \"\\e0b4\";\n}\n\n.fa-shield-dog::before {\n content: \"\\e573\";\n}\n\n.fa-solar-panel::before {\n content: \"\\f5ba\";\n}\n\n.fa-lock-open::before {\n content: \"\\f3c1\";\n}\n\n.fa-elevator::before {\n content: \"\\e16d\";\n}\n\n.fa-money-bill-transfer::before {\n content: \"\\e528\";\n}\n\n.fa-money-bill-trend-up::before {\n content: \"\\e529\";\n}\n\n.fa-house-flood-water-circle-arrow-right::before {\n content: \"\\e50f\";\n}\n\n.fa-square-poll-horizontal::before {\n content: \"\\f682\";\n}\n\n.fa-poll-h::before {\n content: \"\\f682\";\n}\n\n.fa-circle::before {\n content: \"\\f111\";\n}\n\n.fa-backward-fast::before {\n content: \"\\f049\";\n}\n\n.fa-fast-backward::before {\n content: \"\\f049\";\n}\n\n.fa-recycle::before {\n content: \"\\f1b8\";\n}\n\n.fa-user-astronaut::before {\n content: \"\\f4fb\";\n}\n\n.fa-plane-slash::before {\n content: \"\\e069\";\n}\n\n.fa-trademark::before {\n content: \"\\f25c\";\n}\n\n.fa-basketball::before {\n content: \"\\f434\";\n}\n\n.fa-basketball-ball::before {\n content: \"\\f434\";\n}\n\n.fa-satellite-dish::before {\n content: \"\\f7c0\";\n}\n\n.fa-circle-up::before {\n content: \"\\f35b\";\n}\n\n.fa-arrow-alt-circle-up::before {\n content: \"\\f35b\";\n}\n\n.fa-mobile-screen-button::before {\n content: \"\\f3cd\";\n}\n\n.fa-mobile-alt::before {\n content: \"\\f3cd\";\n}\n\n.fa-volume-high::before {\n content: \"\\f028\";\n}\n\n.fa-volume-up::before {\n content: \"\\f028\";\n}\n\n.fa-users-rays::before {\n content: \"\\e593\";\n}\n\n.fa-wallet::before {\n content: \"\\f555\";\n}\n\n.fa-clipboard-check::before {\n content: \"\\f46c\";\n}\n\n.fa-file-audio::before {\n content: \"\\f1c7\";\n}\n\n.fa-burger::before {\n content: \"\\f805\";\n}\n\n.fa-hamburger::before {\n content: \"\\f805\";\n}\n\n.fa-wrench::before {\n content: \"\\f0ad\";\n}\n\n.fa-bugs::before {\n content: \"\\e4d0\";\n}\n\n.fa-rupee-sign::before {\n content: \"\\f156\";\n}\n\n.fa-rupee::before {\n content: \"\\f156\";\n}\n\n.fa-file-image::before {\n content: \"\\f1c5\";\n}\n\n.fa-circle-question::before {\n content: \"\\f059\";\n}\n\n.fa-question-circle::before {\n content: \"\\f059\";\n}\n\n.fa-plane-departure::before {\n content: \"\\f5b0\";\n}\n\n.fa-handshake-slash::before {\n content: \"\\e060\";\n}\n\n.fa-book-bookmark::before {\n content: \"\\e0bb\";\n}\n\n.fa-code-branch::before {\n content: \"\\f126\";\n}\n\n.fa-hat-cowboy::before {\n content: \"\\f8c0\";\n}\n\n.fa-bridge::before {\n content: \"\\e4c8\";\n}\n\n.fa-phone-flip::before {\n content: \"\\f879\";\n}\n\n.fa-phone-alt::before {\n content: \"\\f879\";\n}\n\n.fa-truck-front::before {\n content: \"\\e2b7\";\n}\n\n.fa-cat::before {\n content: \"\\f6be\";\n}\n\n.fa-anchor-circle-exclamation::before {\n content: \"\\e4ab\";\n}\n\n.fa-truck-field::before {\n content: \"\\e58d\";\n}\n\n.fa-route::before {\n content: \"\\f4d7\";\n}\n\n.fa-clipboard-question::before {\n content: \"\\e4e3\";\n}\n\n.fa-panorama::before {\n content: \"\\e209\";\n}\n\n.fa-comment-medical::before {\n content: \"\\f7f5\";\n}\n\n.fa-teeth-open::before {\n content: \"\\f62f\";\n}\n\n.fa-file-circle-minus::before {\n content: \"\\e4ed\";\n}\n\n.fa-tags::before {\n content: \"\\f02c\";\n}\n\n.fa-wine-glass::before {\n content: \"\\f4e3\";\n}\n\n.fa-forward-fast::before {\n content: \"\\f050\";\n}\n\n.fa-fast-forward::before {\n content: \"\\f050\";\n}\n\n.fa-face-meh-blank::before {\n content: \"\\f5a4\";\n}\n\n.fa-meh-blank::before {\n content: \"\\f5a4\";\n}\n\n.fa-square-parking::before {\n content: \"\\f540\";\n}\n\n.fa-parking::before {\n content: \"\\f540\";\n}\n\n.fa-house-signal::before {\n content: \"\\e012\";\n}\n\n.fa-bars-progress::before {\n content: \"\\f828\";\n}\n\n.fa-tasks-alt::before {\n content: \"\\f828\";\n}\n\n.fa-faucet-drip::before {\n content: \"\\e006\";\n}\n\n.fa-cart-flatbed::before {\n content: \"\\f474\";\n}\n\n.fa-dolly-flatbed::before {\n content: \"\\f474\";\n}\n\n.fa-ban-smoking::before {\n content: \"\\f54d\";\n}\n\n.fa-smoking-ban::before {\n content: \"\\f54d\";\n}\n\n.fa-terminal::before {\n content: \"\\f120\";\n}\n\n.fa-mobile-button::before {\n content: \"\\f10b\";\n}\n\n.fa-house-medical-flag::before {\n content: \"\\e514\";\n}\n\n.fa-basket-shopping::before {\n content: \"\\f291\";\n}\n\n.fa-shopping-basket::before {\n content: \"\\f291\";\n}\n\n.fa-tape::before {\n content: \"\\f4db\";\n}\n\n.fa-bus-simple::before {\n content: \"\\f55e\";\n}\n\n.fa-bus-alt::before {\n content: \"\\f55e\";\n}\n\n.fa-eye::before {\n content: \"\\f06e\";\n}\n\n.fa-face-sad-cry::before {\n content: \"\\f5b3\";\n}\n\n.fa-sad-cry::before {\n content: \"\\f5b3\";\n}\n\n.fa-audio-description::before {\n content: \"\\f29e\";\n}\n\n.fa-person-military-to-person::before {\n content: \"\\e54c\";\n}\n\n.fa-file-shield::before {\n content: \"\\e4f0\";\n}\n\n.fa-user-slash::before {\n content: \"\\f506\";\n}\n\n.fa-pen::before {\n content: \"\\f304\";\n}\n\n.fa-tower-observation::before {\n content: \"\\e586\";\n}\n\n.fa-file-code::before {\n content: \"\\f1c9\";\n}\n\n.fa-signal::before {\n content: \"\\f012\";\n}\n\n.fa-signal-5::before {\n content: \"\\f012\";\n}\n\n.fa-signal-perfect::before {\n content: \"\\f012\";\n}\n\n.fa-bus::before {\n content: \"\\f207\";\n}\n\n.fa-heart-circle-xmark::before {\n content: \"\\e501\";\n}\n\n.fa-house-chimney::before {\n content: \"\\e3af\";\n}\n\n.fa-home-lg::before {\n content: \"\\e3af\";\n}\n\n.fa-window-maximize::before {\n content: \"\\f2d0\";\n}\n\n.fa-face-frown::before {\n content: \"\\f119\";\n}\n\n.fa-frown::before {\n content: \"\\f119\";\n}\n\n.fa-prescription::before {\n content: \"\\f5b1\";\n}\n\n.fa-shop::before {\n content: \"\\f54f\";\n}\n\n.fa-store-alt::before {\n content: \"\\f54f\";\n}\n\n.fa-floppy-disk::before {\n content: \"\\f0c7\";\n}\n\n.fa-save::before {\n content: \"\\f0c7\";\n}\n\n.fa-vihara::before {\n content: \"\\f6a7\";\n}\n\n.fa-scale-unbalanced::before {\n content: \"\\f515\";\n}\n\n.fa-balance-scale-left::before {\n content: \"\\f515\";\n}\n\n.fa-sort-up::before {\n content: \"\\f0de\";\n}\n\n.fa-sort-asc::before {\n content: \"\\f0de\";\n}\n\n.fa-comment-dots::before {\n content: \"\\f4ad\";\n}\n\n.fa-commenting::before {\n content: \"\\f4ad\";\n}\n\n.fa-plant-wilt::before {\n content: \"\\e5aa\";\n}\n\n.fa-diamond::before {\n content: \"\\f219\";\n}\n\n.fa-face-grin-squint::before {\n content: \"\\f585\";\n}\n\n.fa-grin-squint::before {\n content: \"\\f585\";\n}\n\n.fa-hand-holding-dollar::before {\n content: \"\\f4c0\";\n}\n\n.fa-hand-holding-usd::before {\n content: \"\\f4c0\";\n}\n\n.fa-bacterium::before {\n content: \"\\e05a\";\n}\n\n.fa-hand-pointer::before {\n content: \"\\f25a\";\n}\n\n.fa-drum-steelpan::before {\n content: \"\\f56a\";\n}\n\n.fa-hand-scissors::before {\n content: \"\\f257\";\n}\n\n.fa-hands-praying::before {\n content: \"\\f684\";\n}\n\n.fa-praying-hands::before {\n content: \"\\f684\";\n}\n\n.fa-arrow-rotate-right::before {\n content: \"\\f01e\";\n}\n\n.fa-arrow-right-rotate::before {\n content: \"\\f01e\";\n}\n\n.fa-arrow-rotate-forward::before {\n content: \"\\f01e\";\n}\n\n.fa-redo::before {\n content: \"\\f01e\";\n}\n\n.fa-biohazard::before {\n content: \"\\f780\";\n}\n\n.fa-location-crosshairs::before {\n content: \"\\f601\";\n}\n\n.fa-location::before {\n content: \"\\f601\";\n}\n\n.fa-mars-double::before {\n content: \"\\f227\";\n}\n\n.fa-child-dress::before {\n content: \"\\e59c\";\n}\n\n.fa-users-between-lines::before {\n content: \"\\e591\";\n}\n\n.fa-lungs-virus::before {\n content: \"\\e067\";\n}\n\n.fa-face-grin-tears::before {\n content: \"\\f588\";\n}\n\n.fa-grin-tears::before {\n content: \"\\f588\";\n}\n\n.fa-phone::before {\n content: \"\\f095\";\n}\n\n.fa-calendar-xmark::before {\n content: \"\\f273\";\n}\n\n.fa-calendar-times::before {\n content: \"\\f273\";\n}\n\n.fa-child-reaching::before {\n content: \"\\e59d\";\n}\n\n.fa-head-side-virus::before {\n content: \"\\e064\";\n}\n\n.fa-user-gear::before {\n content: \"\\f4fe\";\n}\n\n.fa-user-cog::before {\n content: \"\\f4fe\";\n}\n\n.fa-arrow-up-1-9::before {\n content: \"\\f163\";\n}\n\n.fa-sort-numeric-up::before {\n content: \"\\f163\";\n}\n\n.fa-door-closed::before {\n content: \"\\f52a\";\n}\n\n.fa-shield-virus::before {\n content: \"\\e06c\";\n}\n\n.fa-dice-six::before {\n content: \"\\f526\";\n}\n\n.fa-mosquito-net::before {\n content: \"\\e52c\";\n}\n\n.fa-bridge-water::before {\n content: \"\\e4ce\";\n}\n\n.fa-person-booth::before {\n content: \"\\f756\";\n}\n\n.fa-text-width::before {\n content: \"\\f035\";\n}\n\n.fa-hat-wizard::before {\n content: \"\\f6e8\";\n}\n\n.fa-pen-fancy::before {\n content: \"\\f5ac\";\n}\n\n.fa-person-digging::before {\n content: \"\\f85e\";\n}\n\n.fa-digging::before {\n content: \"\\f85e\";\n}\n\n.fa-trash::before {\n content: \"\\f1f8\";\n}\n\n.fa-gauge-simple::before {\n content: \"\\f629\";\n}\n\n.fa-gauge-simple-med::before {\n content: \"\\f629\";\n}\n\n.fa-tachometer-average::before {\n content: \"\\f629\";\n}\n\n.fa-book-medical::before {\n content: \"\\f7e6\";\n}\n\n.fa-poo::before {\n content: \"\\f2fe\";\n}\n\n.fa-quote-right::before {\n content: \"\\f10e\";\n}\n\n.fa-quote-right-alt::before {\n content: \"\\f10e\";\n}\n\n.fa-shirt::before {\n content: \"\\f553\";\n}\n\n.fa-t-shirt::before {\n content: \"\\f553\";\n}\n\n.fa-tshirt::before {\n content: \"\\f553\";\n}\n\n.fa-cubes::before {\n content: \"\\f1b3\";\n}\n\n.fa-divide::before {\n content: \"\\f529\";\n}\n\n.fa-tenge-sign::before {\n content: \"\\f7d7\";\n}\n\n.fa-tenge::before {\n content: \"\\f7d7\";\n}\n\n.fa-headphones::before {\n content: \"\\f025\";\n}\n\n.fa-hands-holding::before {\n content: \"\\f4c2\";\n}\n\n.fa-hands-clapping::before {\n content: \"\\e1a8\";\n}\n\n.fa-republican::before {\n content: \"\\f75e\";\n}\n\n.fa-arrow-left::before {\n content: \"\\f060\";\n}\n\n.fa-person-circle-xmark::before {\n content: \"\\e543\";\n}\n\n.fa-ruler::before {\n content: \"\\f545\";\n}\n\n.fa-align-left::before {\n content: \"\\f036\";\n}\n\n.fa-dice-d6::before {\n content: \"\\f6d1\";\n}\n\n.fa-restroom::before {\n content: \"\\f7bd\";\n}\n\n.fa-j::before {\n content: \"J\";\n}\n\n.fa-users-viewfinder::before {\n content: \"\\e595\";\n}\n\n.fa-file-video::before {\n content: \"\\f1c8\";\n}\n\n.fa-up-right-from-square::before {\n content: \"\\f35d\";\n}\n\n.fa-external-link-alt::before {\n content: \"\\f35d\";\n}\n\n.fa-table-cells::before {\n content: \"\\f00a\";\n}\n\n.fa-th::before {\n content: \"\\f00a\";\n}\n\n.fa-file-pdf::before {\n content: \"\\f1c1\";\n}\n\n.fa-book-bible::before {\n content: \"\\f647\";\n}\n\n.fa-bible::before {\n content: \"\\f647\";\n}\n\n.fa-o::before {\n content: \"O\";\n}\n\n.fa-suitcase-medical::before {\n content: \"\\f0fa\";\n}\n\n.fa-medkit::before {\n content: \"\\f0fa\";\n}\n\n.fa-user-secret::before {\n content: \"\\f21b\";\n}\n\n.fa-otter::before {\n content: \"\\f700\";\n}\n\n.fa-person-dress::before {\n content: \"\\f182\";\n}\n\n.fa-female::before {\n content: \"\\f182\";\n}\n\n.fa-comment-dollar::before {\n content: \"\\f651\";\n}\n\n.fa-business-time::before {\n content: \"\\f64a\";\n}\n\n.fa-briefcase-clock::before {\n content: \"\\f64a\";\n}\n\n.fa-table-cells-large::before {\n content: \"\\f009\";\n}\n\n.fa-th-large::before {\n content: \"\\f009\";\n}\n\n.fa-book-tanakh::before {\n content: \"\\f827\";\n}\n\n.fa-tanakh::before {\n content: \"\\f827\";\n}\n\n.fa-phone-volume::before {\n content: \"\\f2a0\";\n}\n\n.fa-volume-control-phone::before {\n content: \"\\f2a0\";\n}\n\n.fa-hat-cowboy-side::before {\n content: \"\\f8c1\";\n}\n\n.fa-clipboard-user::before {\n content: \"\\f7f3\";\n}\n\n.fa-child::before {\n content: \"\\f1ae\";\n}\n\n.fa-lira-sign::before {\n content: \"\\f195\";\n}\n\n.fa-satellite::before {\n content: \"\\f7bf\";\n}\n\n.fa-plane-lock::before {\n content: \"\\e558\";\n}\n\n.fa-tag::before {\n content: \"\\f02b\";\n}\n\n.fa-comment::before {\n content: \"\\f075\";\n}\n\n.fa-cake-candles::before {\n content: \"\\f1fd\";\n}\n\n.fa-birthday-cake::before {\n content: \"\\f1fd\";\n}\n\n.fa-cake::before {\n content: \"\\f1fd\";\n}\n\n.fa-envelope::before {\n content: \"\\f0e0\";\n}\n\n.fa-angles-up::before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-up::before {\n content: \"\\f102\";\n}\n\n.fa-paperclip::before {\n content: \"\\f0c6\";\n}\n\n.fa-arrow-right-to-city::before {\n content: \"\\e4b3\";\n}\n\n.fa-ribbon::before {\n content: \"\\f4d6\";\n}\n\n.fa-lungs::before {\n content: \"\\f604\";\n}\n\n.fa-arrow-up-9-1::before {\n content: \"\\f887\";\n}\n\n.fa-sort-numeric-up-alt::before {\n content: \"\\f887\";\n}\n\n.fa-litecoin-sign::before {\n content: \"\\e1d3\";\n}\n\n.fa-border-none::before {\n content: \"\\f850\";\n}\n\n.fa-circle-nodes::before {\n content: \"\\e4e2\";\n}\n\n.fa-parachute-box::before {\n content: \"\\f4cd\";\n}\n\n.fa-indent::before {\n content: \"\\f03c\";\n}\n\n.fa-truck-field-un::before {\n content: \"\\e58e\";\n}\n\n.fa-hourglass::before {\n content: \"\\f254\";\n}\n\n.fa-hourglass-empty::before {\n content: \"\\f254\";\n}\n\n.fa-mountain::before {\n content: \"\\f6fc\";\n}\n\n.fa-user-doctor::before {\n content: \"\\f0f0\";\n}\n\n.fa-user-md::before {\n content: \"\\f0f0\";\n}\n\n.fa-circle-info::before {\n content: \"\\f05a\";\n}\n\n.fa-info-circle::before {\n content: \"\\f05a\";\n}\n\n.fa-cloud-meatball::before {\n content: \"\\f73b\";\n}\n\n.fa-camera::before {\n content: \"\\f030\";\n}\n\n.fa-camera-alt::before {\n content: \"\\f030\";\n}\n\n.fa-square-virus::before {\n content: \"\\e578\";\n}\n\n.fa-meteor::before {\n content: \"\\f753\";\n}\n\n.fa-car-on::before {\n content: \"\\e4dd\";\n}\n\n.fa-sleigh::before {\n content: \"\\f7cc\";\n}\n\n.fa-arrow-down-1-9::before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-asc::before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-down::before {\n content: \"\\f162\";\n}\n\n.fa-hand-holding-droplet::before {\n content: \"\\f4c1\";\n}\n\n.fa-hand-holding-water::before {\n content: \"\\f4c1\";\n}\n\n.fa-water::before {\n content: \"\\f773\";\n}\n\n.fa-calendar-check::before {\n content: \"\\f274\";\n}\n\n.fa-braille::before {\n content: \"\\f2a1\";\n}\n\n.fa-prescription-bottle-medical::before {\n content: \"\\f486\";\n}\n\n.fa-prescription-bottle-alt::before {\n content: \"\\f486\";\n}\n\n.fa-landmark::before {\n content: \"\\f66f\";\n}\n\n.fa-truck::before {\n content: \"\\f0d1\";\n}\n\n.fa-crosshairs::before {\n content: \"\\f05b\";\n}\n\n.fa-person-cane::before {\n content: \"\\e53c\";\n}\n\n.fa-tent::before {\n content: \"\\e57d\";\n}\n\n.fa-vest-patches::before {\n content: \"\\e086\";\n}\n\n.fa-check-double::before {\n content: \"\\f560\";\n}\n\n.fa-arrow-down-a-z::before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-asc::before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-down::before {\n content: \"\\f15d\";\n}\n\n.fa-money-bill-wheat::before {\n content: \"\\e52a\";\n}\n\n.fa-cookie::before {\n content: \"\\f563\";\n}\n\n.fa-arrow-rotate-left::before {\n content: \"\\f0e2\";\n}\n\n.fa-arrow-left-rotate::before {\n content: \"\\f0e2\";\n}\n\n.fa-arrow-rotate-back::before {\n content: \"\\f0e2\";\n}\n\n.fa-arrow-rotate-backward::before {\n content: \"\\f0e2\";\n}\n\n.fa-undo::before {\n content: \"\\f0e2\";\n}\n\n.fa-hard-drive::before {\n content: \"\\f0a0\";\n}\n\n.fa-hdd::before {\n content: \"\\f0a0\";\n}\n\n.fa-face-grin-squint-tears::before {\n content: \"\\f586\";\n}\n\n.fa-grin-squint-tears::before {\n content: \"\\f586\";\n}\n\n.fa-dumbbell::before {\n content: \"\\f44b\";\n}\n\n.fa-rectangle-list::before {\n content: \"\\f022\";\n}\n\n.fa-list-alt::before {\n content: \"\\f022\";\n}\n\n.fa-tarp-droplet::before {\n content: \"\\e57c\";\n}\n\n.fa-house-medical-circle-check::before {\n content: \"\\e511\";\n}\n\n.fa-person-skiing-nordic::before {\n content: \"\\f7ca\";\n}\n\n.fa-skiing-nordic::before {\n content: \"\\f7ca\";\n}\n\n.fa-calendar-plus::before {\n content: \"\\f271\";\n}\n\n.fa-plane-arrival::before {\n content: \"\\f5af\";\n}\n\n.fa-circle-left::before {\n content: \"\\f359\";\n}\n\n.fa-arrow-alt-circle-left::before {\n content: \"\\f359\";\n}\n\n.fa-train-subway::before {\n content: \"\\f239\";\n}\n\n.fa-subway::before {\n content: \"\\f239\";\n}\n\n.fa-chart-gantt::before {\n content: \"\\e0e4\";\n}\n\n.fa-indian-rupee-sign::before {\n content: \"\\e1bc\";\n}\n\n.fa-indian-rupee::before {\n content: \"\\e1bc\";\n}\n\n.fa-inr::before {\n content: \"\\e1bc\";\n}\n\n.fa-crop-simple::before {\n content: \"\\f565\";\n}\n\n.fa-crop-alt::before {\n content: \"\\f565\";\n}\n\n.fa-money-bill-1::before {\n content: \"\\f3d1\";\n}\n\n.fa-money-bill-alt::before {\n content: \"\\f3d1\";\n}\n\n.fa-left-long::before {\n content: \"\\f30a\";\n}\n\n.fa-long-arrow-alt-left::before {\n content: \"\\f30a\";\n}\n\n.fa-dna::before {\n content: \"\\f471\";\n}\n\n.fa-virus-slash::before {\n content: \"\\e075\";\n}\n\n.fa-minus::before {\n content: \"\\f068\";\n}\n\n.fa-subtract::before {\n content: \"\\f068\";\n}\n\n.fa-chess::before {\n content: \"\\f439\";\n}\n\n.fa-arrow-left-long::before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-left::before {\n content: \"\\f177\";\n}\n\n.fa-plug-circle-check::before {\n content: \"\\e55c\";\n}\n\n.fa-street-view::before {\n content: \"\\f21d\";\n}\n\n.fa-franc-sign::before {\n content: \"\\e18f\";\n}\n\n.fa-volume-off::before {\n content: \"\\f026\";\n}\n\n.fa-hands-asl-interpreting::before {\n content: \"\\f2a3\";\n}\n\n.fa-american-sign-language-interpreting::before {\n content: \"\\f2a3\";\n}\n\n.fa-asl-interpreting::before {\n content: \"\\f2a3\";\n}\n\n.fa-hands-american-sign-language-interpreting::before {\n content: \"\\f2a3\";\n}\n\n.fa-gear::before {\n content: \"\\f013\";\n}\n\n.fa-cog::before {\n content: \"\\f013\";\n}\n\n.fa-droplet-slash::before {\n content: \"\\f5c7\";\n}\n\n.fa-tint-slash::before {\n content: \"\\f5c7\";\n}\n\n.fa-mosque::before {\n content: \"\\f678\";\n}\n\n.fa-mosquito::before {\n content: \"\\e52b\";\n}\n\n.fa-star-of-david::before {\n content: \"\\f69a\";\n}\n\n.fa-person-military-rifle::before {\n content: \"\\e54b\";\n}\n\n.fa-cart-shopping::before {\n content: \"\\f07a\";\n}\n\n.fa-shopping-cart::before {\n content: \"\\f07a\";\n}\n\n.fa-vials::before {\n content: \"\\f493\";\n}\n\n.fa-plug-circle-plus::before {\n content: \"\\e55f\";\n}\n\n.fa-place-of-worship::before {\n content: \"\\f67f\";\n}\n\n.fa-grip-vertical::before {\n content: \"\\f58e\";\n}\n\n.fa-arrow-turn-up::before {\n content: \"\\f148\";\n}\n\n.fa-level-up::before {\n content: \"\\f148\";\n}\n\n.fa-u::before {\n content: \"U\";\n}\n\n.fa-square-root-variable::before {\n content: \"\\f698\";\n}\n\n.fa-square-root-alt::before {\n content: \"\\f698\";\n}\n\n.fa-clock::before {\n content: \"\\f017\";\n}\n\n.fa-clock-four::before {\n content: \"\\f017\";\n}\n\n.fa-backward-step::before {\n content: \"\\f048\";\n}\n\n.fa-step-backward::before {\n content: \"\\f048\";\n}\n\n.fa-pallet::before {\n content: \"\\f482\";\n}\n\n.fa-faucet::before {\n content: \"\\e005\";\n}\n\n.fa-baseball-bat-ball::before {\n content: \"\\f432\";\n}\n\n.fa-s::before {\n content: \"S\";\n}\n\n.fa-timeline::before {\n content: \"\\e29c\";\n}\n\n.fa-keyboard::before {\n content: \"\\f11c\";\n}\n\n.fa-caret-down::before {\n content: \"\\f0d7\";\n}\n\n.fa-house-chimney-medical::before {\n content: \"\\f7f2\";\n}\n\n.fa-clinic-medical::before {\n content: \"\\f7f2\";\n}\n\n.fa-temperature-three-quarters::before {\n content: \"\\f2c8\";\n}\n\n.fa-temperature-3::before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-3::before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-three-quarters::before {\n content: \"\\f2c8\";\n}\n\n.fa-mobile-screen::before {\n content: \"\\f3cf\";\n}\n\n.fa-mobile-android-alt::before {\n content: \"\\f3cf\";\n}\n\n.fa-plane-up::before {\n content: \"\\e22d\";\n}\n\n.fa-piggy-bank::before {\n content: \"\\f4d3\";\n}\n\n.fa-battery-half::before {\n content: \"\\f242\";\n}\n\n.fa-battery-3::before {\n content: \"\\f242\";\n}\n\n.fa-mountain-city::before {\n content: \"\\e52e\";\n}\n\n.fa-coins::before {\n content: \"\\f51e\";\n}\n\n.fa-khanda::before {\n content: \"\\f66d\";\n}\n\n.fa-sliders::before {\n content: \"\\f1de\";\n}\n\n.fa-sliders-h::before {\n content: \"\\f1de\";\n}\n\n.fa-folder-tree::before {\n content: \"\\f802\";\n}\n\n.fa-network-wired::before {\n content: \"\\f6ff\";\n}\n\n.fa-map-pin::before {\n content: \"\\f276\";\n}\n\n.fa-hamsa::before {\n content: \"\\f665\";\n}\n\n.fa-cent-sign::before {\n content: \"\\e3f5\";\n}\n\n.fa-flask::before {\n content: \"\\f0c3\";\n}\n\n.fa-person-pregnant::before {\n content: \"\\e31e\";\n}\n\n.fa-wand-sparkles::before {\n content: \"\\f72b\";\n}\n\n.fa-ellipsis-vertical::before {\n content: \"\\f142\";\n}\n\n.fa-ellipsis-v::before {\n content: \"\\f142\";\n}\n\n.fa-ticket::before {\n content: \"\\f145\";\n}\n\n.fa-power-off::before {\n content: \"\\f011\";\n}\n\n.fa-right-long::before {\n content: \"\\f30b\";\n}\n\n.fa-long-arrow-alt-right::before {\n content: \"\\f30b\";\n}\n\n.fa-flag-usa::before {\n content: \"\\f74d\";\n}\n\n.fa-laptop-file::before {\n content: \"\\e51d\";\n}\n\n.fa-tty::before {\n content: \"\\f1e4\";\n}\n\n.fa-teletype::before {\n content: \"\\f1e4\";\n}\n\n.fa-diagram-next::before {\n content: \"\\e476\";\n}\n\n.fa-person-rifle::before {\n content: \"\\e54e\";\n}\n\n.fa-house-medical-circle-exclamation::before {\n content: \"\\e512\";\n}\n\n.fa-closed-captioning::before {\n content: \"\\f20a\";\n}\n\n.fa-person-hiking::before {\n content: \"\\f6ec\";\n}\n\n.fa-hiking::before {\n content: \"\\f6ec\";\n}\n\n.fa-venus-double::before {\n content: \"\\f226\";\n}\n\n.fa-images::before {\n content: \"\\f302\";\n}\n\n.fa-calculator::before {\n content: \"\\f1ec\";\n}\n\n.fa-people-pulling::before {\n content: \"\\e535\";\n}\n\n.fa-n::before {\n content: \"N\";\n}\n\n.fa-cable-car::before {\n content: \"\\f7da\";\n}\n\n.fa-tram::before {\n content: \"\\f7da\";\n}\n\n.fa-cloud-rain::before {\n content: \"\\f73d\";\n}\n\n.fa-building-circle-xmark::before {\n content: \"\\e4d4\";\n}\n\n.fa-ship::before {\n content: \"\\f21a\";\n}\n\n.fa-arrows-down-to-line::before {\n content: \"\\e4b8\";\n}\n\n.fa-download::before {\n content: \"\\f019\";\n}\n\n.fa-face-grin::before {\n content: \"\\f580\";\n}\n\n.fa-grin::before {\n content: \"\\f580\";\n}\n\n.fa-delete-left::before {\n content: \"\\f55a\";\n}\n\n.fa-backspace::before {\n content: \"\\f55a\";\n}\n\n.fa-eye-dropper::before {\n content: \"\\f1fb\";\n}\n\n.fa-eye-dropper-empty::before {\n content: \"\\f1fb\";\n}\n\n.fa-eyedropper::before {\n content: \"\\f1fb\";\n}\n\n.fa-file-circle-check::before {\n content: \"\\e5a0\";\n}\n\n.fa-forward::before {\n content: \"\\f04e\";\n}\n\n.fa-mobile::before {\n content: \"\\f3ce\";\n}\n\n.fa-mobile-android::before {\n content: \"\\f3ce\";\n}\n\n.fa-mobile-phone::before {\n content: \"\\f3ce\";\n}\n\n.fa-face-meh::before {\n content: \"\\f11a\";\n}\n\n.fa-meh::before {\n content: \"\\f11a\";\n}\n\n.fa-align-center::before {\n content: \"\\f037\";\n}\n\n.fa-book-skull::before {\n content: \"\\f6b7\";\n}\n\n.fa-book-dead::before {\n content: \"\\f6b7\";\n}\n\n.fa-id-card::before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license::before {\n content: \"\\f2c2\";\n}\n\n.fa-outdent::before {\n content: \"\\f03b\";\n}\n\n.fa-dedent::before {\n content: \"\\f03b\";\n}\n\n.fa-heart-circle-exclamation::before {\n content: \"\\e4fe\";\n}\n\n.fa-house::before {\n content: \"\\f015\";\n}\n\n.fa-home::before {\n content: \"\\f015\";\n}\n\n.fa-home-alt::before {\n content: \"\\f015\";\n}\n\n.fa-home-lg-alt::before {\n content: \"\\f015\";\n}\n\n.fa-calendar-week::before {\n content: \"\\f784\";\n}\n\n.fa-laptop-medical::before {\n content: \"\\f812\";\n}\n\n.fa-b::before {\n content: \"B\";\n}\n\n.fa-file-medical::before {\n content: \"\\f477\";\n}\n\n.fa-dice-one::before {\n content: \"\\f525\";\n}\n\n.fa-kiwi-bird::before {\n content: \"\\f535\";\n}\n\n.fa-arrow-right-arrow-left::before {\n content: \"\\f0ec\";\n}\n\n.fa-exchange::before {\n content: \"\\f0ec\";\n}\n\n.fa-rotate-right::before {\n content: \"\\f2f9\";\n}\n\n.fa-redo-alt::before {\n content: \"\\f2f9\";\n}\n\n.fa-rotate-forward::before {\n content: \"\\f2f9\";\n}\n\n.fa-utensils::before {\n content: \"\\f2e7\";\n}\n\n.fa-cutlery::before {\n content: \"\\f2e7\";\n}\n\n.fa-arrow-up-wide-short::before {\n content: \"\\f161\";\n}\n\n.fa-sort-amount-up::before {\n content: \"\\f161\";\n}\n\n.fa-mill-sign::before {\n content: \"\\e1ed\";\n}\n\n.fa-bowl-rice::before {\n content: \"\\e2eb\";\n}\n\n.fa-skull::before {\n content: \"\\f54c\";\n}\n\n.fa-tower-broadcast::before {\n content: \"\\f519\";\n}\n\n.fa-broadcast-tower::before {\n content: \"\\f519\";\n}\n\n.fa-truck-pickup::before {\n content: \"\\f63c\";\n}\n\n.fa-up-long::before {\n content: \"\\f30c\";\n}\n\n.fa-long-arrow-alt-up::before {\n content: \"\\f30c\";\n}\n\n.fa-stop::before {\n content: \"\\f04d\";\n}\n\n.fa-code-merge::before {\n content: \"\\f387\";\n}\n\n.fa-upload::before {\n content: \"\\f093\";\n}\n\n.fa-hurricane::before {\n content: \"\\f751\";\n}\n\n.fa-mound::before {\n content: \"\\e52d\";\n}\n\n.fa-toilet-portable::before {\n content: \"\\e583\";\n}\n\n.fa-compact-disc::before {\n content: \"\\f51f\";\n}\n\n.fa-file-arrow-down::before {\n content: \"\\f56d\";\n}\n\n.fa-file-download::before {\n content: \"\\f56d\";\n}\n\n.fa-caravan::before {\n content: \"\\f8ff\";\n}\n\n.fa-shield-cat::before {\n content: \"\\e572\";\n}\n\n.fa-bolt::before {\n content: \"\\f0e7\";\n}\n\n.fa-zap::before {\n content: \"\\f0e7\";\n}\n\n.fa-glass-water::before {\n content: \"\\e4f4\";\n}\n\n.fa-oil-well::before {\n content: \"\\e532\";\n}\n\n.fa-vault::before {\n content: \"\\e2c5\";\n}\n\n.fa-mars::before {\n content: \"\\f222\";\n}\n\n.fa-toilet::before {\n content: \"\\f7d8\";\n}\n\n.fa-plane-circle-xmark::before {\n content: \"\\e557\";\n}\n\n.fa-yen-sign::before {\n content: \"\\f157\";\n}\n\n.fa-cny::before {\n content: \"\\f157\";\n}\n\n.fa-jpy::before {\n content: \"\\f157\";\n}\n\n.fa-rmb::before {\n content: \"\\f157\";\n}\n\n.fa-yen::before {\n content: \"\\f157\";\n}\n\n.fa-ruble-sign::before {\n content: \"\\f158\";\n}\n\n.fa-rouble::before {\n content: \"\\f158\";\n}\n\n.fa-rub::before {\n content: \"\\f158\";\n}\n\n.fa-ruble::before {\n content: \"\\f158\";\n}\n\n.fa-sun::before {\n content: \"\\f185\";\n}\n\n.fa-guitar::before {\n content: \"\\f7a6\";\n}\n\n.fa-face-laugh-wink::before {\n content: \"\\f59c\";\n}\n\n.fa-laugh-wink::before {\n content: \"\\f59c\";\n}\n\n.fa-horse-head::before {\n content: \"\\f7ab\";\n}\n\n.fa-bore-hole::before {\n content: \"\\e4c3\";\n}\n\n.fa-industry::before {\n content: \"\\f275\";\n}\n\n.fa-circle-down::before {\n content: \"\\f358\";\n}\n\n.fa-arrow-alt-circle-down::before {\n content: \"\\f358\";\n}\n\n.fa-arrows-turn-to-dots::before {\n content: \"\\e4c1\";\n}\n\n.fa-florin-sign::before {\n content: \"\\e184\";\n}\n\n.fa-arrow-down-short-wide::before {\n content: \"\\f884\";\n}\n\n.fa-sort-amount-desc::before {\n content: \"\\f884\";\n}\n\n.fa-sort-amount-down-alt::before {\n content: \"\\f884\";\n}\n\n.fa-less-than::before {\n content: \"\\<\";\n}\n\n.fa-angle-down::before {\n content: \"\\f107\";\n}\n\n.fa-car-tunnel::before {\n content: \"\\e4de\";\n}\n\n.fa-head-side-cough::before {\n content: \"\\e061\";\n}\n\n.fa-grip-lines::before {\n content: \"\\f7a4\";\n}\n\n.fa-thumbs-down::before {\n content: \"\\f165\";\n}\n\n.fa-user-lock::before {\n content: \"\\f502\";\n}\n\n.fa-arrow-right-long::before {\n content: \"\\f178\";\n}\n\n.fa-long-arrow-right::before {\n content: \"\\f178\";\n}\n\n.fa-anchor-circle-xmark::before {\n content: \"\\e4ac\";\n}\n\n.fa-ellipsis::before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-h::before {\n content: \"\\f141\";\n}\n\n.fa-chess-pawn::before {\n content: \"\\f443\";\n}\n\n.fa-kit-medical::before {\n content: \"\\f479\";\n}\n\n.fa-first-aid::before {\n content: \"\\f479\";\n}\n\n.fa-person-through-window::before {\n content: \"\\e5a9\";\n}\n\n.fa-toolbox::before {\n content: \"\\f552\";\n}\n\n.fa-hands-holding-circle::before {\n content: \"\\e4fb\";\n}\n\n.fa-bug::before {\n content: \"\\f188\";\n}\n\n.fa-credit-card::before {\n content: \"\\f09d\";\n}\n\n.fa-credit-card-alt::before {\n content: \"\\f09d\";\n}\n\n.fa-car::before {\n content: \"\\f1b9\";\n}\n\n.fa-automobile::before {\n content: \"\\f1b9\";\n}\n\n.fa-hand-holding-hand::before {\n content: \"\\e4f7\";\n}\n\n.fa-book-open-reader::before {\n content: \"\\f5da\";\n}\n\n.fa-book-reader::before {\n content: \"\\f5da\";\n}\n\n.fa-mountain-sun::before {\n content: \"\\e52f\";\n}\n\n.fa-arrows-left-right-to-line::before {\n content: \"\\e4ba\";\n}\n\n.fa-dice-d20::before {\n content: \"\\f6cf\";\n}\n\n.fa-truck-droplet::before {\n content: \"\\e58c\";\n}\n\n.fa-file-circle-xmark::before {\n content: \"\\e5a1\";\n}\n\n.fa-temperature-arrow-up::before {\n content: \"\\e040\";\n}\n\n.fa-temperature-up::before {\n content: \"\\e040\";\n}\n\n.fa-medal::before {\n content: \"\\f5a2\";\n}\n\n.fa-bed::before {\n content: \"\\f236\";\n}\n\n.fa-square-h::before {\n content: \"\\f0fd\";\n}\n\n.fa-h-square::before {\n content: \"\\f0fd\";\n}\n\n.fa-podcast::before {\n content: \"\\f2ce\";\n}\n\n.fa-temperature-full::before {\n content: \"\\f2c7\";\n}\n\n.fa-temperature-4::before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-4::before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-full::before {\n content: \"\\f2c7\";\n}\n\n.fa-bell::before {\n content: \"\\f0f3\";\n}\n\n.fa-superscript::before {\n content: \"\\f12b\";\n}\n\n.fa-plug-circle-xmark::before {\n content: \"\\e560\";\n}\n\n.fa-star-of-life::before {\n content: \"\\f621\";\n}\n\n.fa-phone-slash::before {\n content: \"\\f3dd\";\n}\n\n.fa-paint-roller::before {\n content: \"\\f5aa\";\n}\n\n.fa-handshake-angle::before {\n content: \"\\f4c4\";\n}\n\n.fa-hands-helping::before {\n content: \"\\f4c4\";\n}\n\n.fa-location-dot::before {\n content: \"\\f3c5\";\n}\n\n.fa-map-marker-alt::before {\n content: \"\\f3c5\";\n}\n\n.fa-file::before {\n content: \"\\f15b\";\n}\n\n.fa-greater-than::before {\n content: \"\\>\";\n}\n\n.fa-person-swimming::before {\n content: \"\\f5c4\";\n}\n\n.fa-swimmer::before {\n content: \"\\f5c4\";\n}\n\n.fa-arrow-down::before {\n content: \"\\f063\";\n}\n\n.fa-droplet::before {\n content: \"\\f043\";\n}\n\n.fa-tint::before {\n content: \"\\f043\";\n}\n\n.fa-eraser::before {\n content: \"\\f12d\";\n}\n\n.fa-earth-americas::before {\n content: \"\\f57d\";\n}\n\n.fa-earth::before {\n content: \"\\f57d\";\n}\n\n.fa-earth-america::before {\n content: \"\\f57d\";\n}\n\n.fa-globe-americas::before {\n content: \"\\f57d\";\n}\n\n.fa-person-burst::before {\n content: \"\\e53b\";\n}\n\n.fa-dove::before {\n content: \"\\f4ba\";\n}\n\n.fa-battery-empty::before {\n content: \"\\f244\";\n}\n\n.fa-battery-0::before {\n content: \"\\f244\";\n}\n\n.fa-socks::before {\n content: \"\\f696\";\n}\n\n.fa-inbox::before {\n content: \"\\f01c\";\n}\n\n.fa-section::before {\n content: \"\\e447\";\n}\n\n.fa-gauge-high::before {\n content: \"\\f625\";\n}\n\n.fa-tachometer-alt::before {\n content: \"\\f625\";\n}\n\n.fa-tachometer-alt-fast::before {\n content: \"\\f625\";\n}\n\n.fa-envelope-open-text::before {\n content: \"\\f658\";\n}\n\n.fa-hospital::before {\n content: \"\\f0f8\";\n}\n\n.fa-hospital-alt::before {\n content: \"\\f0f8\";\n}\n\n.fa-hospital-wide::before {\n content: \"\\f0f8\";\n}\n\n.fa-wine-bottle::before {\n content: \"\\f72f\";\n}\n\n.fa-chess-rook::before {\n content: \"\\f447\";\n}\n\n.fa-bars-staggered::before {\n content: \"\\f550\";\n}\n\n.fa-reorder::before {\n content: \"\\f550\";\n}\n\n.fa-stream::before {\n content: \"\\f550\";\n}\n\n.fa-dharmachakra::before {\n content: \"\\f655\";\n}\n\n.fa-hotdog::before {\n content: \"\\f80f\";\n}\n\n.fa-person-walking-with-cane::before {\n content: \"\\f29d\";\n}\n\n.fa-blind::before {\n content: \"\\f29d\";\n}\n\n.fa-drum::before {\n content: \"\\f569\";\n}\n\n.fa-ice-cream::before {\n content: \"\\f810\";\n}\n\n.fa-heart-circle-bolt::before {\n content: \"\\e4fc\";\n}\n\n.fa-fax::before {\n content: \"\\f1ac\";\n}\n\n.fa-paragraph::before {\n content: \"\\f1dd\";\n}\n\n.fa-check-to-slot::before {\n content: \"\\f772\";\n}\n\n.fa-vote-yea::before {\n content: \"\\f772\";\n}\n\n.fa-star-half::before {\n content: \"\\f089\";\n}\n\n.fa-boxes-stacked::before {\n content: \"\\f468\";\n}\n\n.fa-boxes::before {\n content: \"\\f468\";\n}\n\n.fa-boxes-alt::before {\n content: \"\\f468\";\n}\n\n.fa-link::before {\n content: \"\\f0c1\";\n}\n\n.fa-chain::before {\n content: \"\\f0c1\";\n}\n\n.fa-ear-listen::before {\n content: \"\\f2a2\";\n}\n\n.fa-assistive-listening-systems::before {\n content: \"\\f2a2\";\n}\n\n.fa-tree-city::before {\n content: \"\\e587\";\n}\n\n.fa-play::before {\n content: \"\\f04b\";\n}\n\n.fa-font::before {\n content: \"\\f031\";\n}\n\n.fa-table-cells-row-lock::before {\n content: \"\\e67a\";\n}\n\n.fa-rupiah-sign::before {\n content: \"\\e23d\";\n}\n\n.fa-magnifying-glass::before {\n content: \"\\f002\";\n}\n\n.fa-search::before {\n content: \"\\f002\";\n}\n\n.fa-table-tennis-paddle-ball::before {\n content: \"\\f45d\";\n}\n\n.fa-ping-pong-paddle-ball::before {\n content: \"\\f45d\";\n}\n\n.fa-table-tennis::before {\n content: \"\\f45d\";\n}\n\n.fa-person-dots-from-line::before {\n content: \"\\f470\";\n}\n\n.fa-diagnoses::before {\n content: \"\\f470\";\n}\n\n.fa-trash-can-arrow-up::before {\n content: \"\\f82a\";\n}\n\n.fa-trash-restore-alt::before {\n content: \"\\f82a\";\n}\n\n.fa-naira-sign::before {\n content: \"\\e1f6\";\n}\n\n.fa-cart-arrow-down::before {\n content: \"\\f218\";\n}\n\n.fa-walkie-talkie::before {\n content: \"\\f8ef\";\n}\n\n.fa-file-pen::before {\n content: \"\\f31c\";\n}\n\n.fa-file-edit::before {\n content: \"\\f31c\";\n}\n\n.fa-receipt::before {\n content: \"\\f543\";\n}\n\n.fa-square-pen::before {\n content: \"\\f14b\";\n}\n\n.fa-pen-square::before {\n content: \"\\f14b\";\n}\n\n.fa-pencil-square::before {\n content: \"\\f14b\";\n}\n\n.fa-suitcase-rolling::before {\n content: \"\\f5c1\";\n}\n\n.fa-person-circle-exclamation::before {\n content: \"\\e53f\";\n}\n\n.fa-chevron-down::before {\n content: \"\\f078\";\n}\n\n.fa-battery-full::before {\n content: \"\\f240\";\n}\n\n.fa-battery::before {\n content: \"\\f240\";\n}\n\n.fa-battery-5::before {\n content: \"\\f240\";\n}\n\n.fa-skull-crossbones::before {\n content: \"\\f714\";\n}\n\n.fa-code-compare::before {\n content: \"\\e13a\";\n}\n\n.fa-list-ul::before {\n content: \"\\f0ca\";\n}\n\n.fa-list-dots::before {\n content: \"\\f0ca\";\n}\n\n.fa-school-lock::before {\n content: \"\\e56f\";\n}\n\n.fa-tower-cell::before {\n content: \"\\e585\";\n}\n\n.fa-down-long::before {\n content: \"\\f309\";\n}\n\n.fa-long-arrow-alt-down::before {\n content: \"\\f309\";\n}\n\n.fa-ranking-star::before {\n content: \"\\e561\";\n}\n\n.fa-chess-king::before {\n content: \"\\f43f\";\n}\n\n.fa-person-harassing::before {\n content: \"\\e549\";\n}\n\n.fa-brazilian-real-sign::before {\n content: \"\\e46c\";\n}\n\n.fa-landmark-dome::before {\n content: \"\\f752\";\n}\n\n.fa-landmark-alt::before {\n content: \"\\f752\";\n}\n\n.fa-arrow-up::before {\n content: \"\\f062\";\n}\n\n.fa-tv::before {\n content: \"\\f26c\";\n}\n\n.fa-television::before {\n content: \"\\f26c\";\n}\n\n.fa-tv-alt::before {\n content: \"\\f26c\";\n}\n\n.fa-shrimp::before {\n content: \"\\e448\";\n}\n\n.fa-list-check::before {\n content: \"\\f0ae\";\n}\n\n.fa-tasks::before {\n content: \"\\f0ae\";\n}\n\n.fa-jug-detergent::before {\n content: \"\\e519\";\n}\n\n.fa-circle-user::before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle::before {\n content: \"\\f2bd\";\n}\n\n.fa-user-shield::before {\n content: \"\\f505\";\n}\n\n.fa-wind::before {\n content: \"\\f72e\";\n}\n\n.fa-car-burst::before {\n content: \"\\f5e1\";\n}\n\n.fa-car-crash::before {\n content: \"\\f5e1\";\n}\n\n.fa-y::before {\n content: \"Y\";\n}\n\n.fa-person-snowboarding::before {\n content: \"\\f7ce\";\n}\n\n.fa-snowboarding::before {\n content: \"\\f7ce\";\n}\n\n.fa-truck-fast::before {\n content: \"\\f48b\";\n}\n\n.fa-shipping-fast::before {\n content: \"\\f48b\";\n}\n\n.fa-fish::before {\n content: \"\\f578\";\n}\n\n.fa-user-graduate::before {\n content: \"\\f501\";\n}\n\n.fa-circle-half-stroke::before {\n content: \"\\f042\";\n}\n\n.fa-adjust::before {\n content: \"\\f042\";\n}\n\n.fa-clapperboard::before {\n content: \"\\e131\";\n}\n\n.fa-circle-radiation::before {\n content: \"\\f7ba\";\n}\n\n.fa-radiation-alt::before {\n content: \"\\f7ba\";\n}\n\n.fa-baseball::before {\n content: \"\\f433\";\n}\n\n.fa-baseball-ball::before {\n content: \"\\f433\";\n}\n\n.fa-jet-fighter-up::before {\n content: \"\\e518\";\n}\n\n.fa-diagram-project::before {\n content: \"\\f542\";\n}\n\n.fa-project-diagram::before {\n content: \"\\f542\";\n}\n\n.fa-copy::before {\n content: \"\\f0c5\";\n}\n\n.fa-volume-xmark::before {\n content: \"\\f6a9\";\n}\n\n.fa-volume-mute::before {\n content: \"\\f6a9\";\n}\n\n.fa-volume-times::before {\n content: \"\\f6a9\";\n}\n\n.fa-hand-sparkles::before {\n content: \"\\e05d\";\n}\n\n.fa-grip::before {\n content: \"\\f58d\";\n}\n\n.fa-grip-horizontal::before {\n content: \"\\f58d\";\n}\n\n.fa-share-from-square::before {\n content: \"\\f14d\";\n}\n\n.fa-share-square::before {\n content: \"\\f14d\";\n}\n\n.fa-child-combatant::before {\n content: \"\\e4e0\";\n}\n\n.fa-child-rifle::before {\n content: \"\\e4e0\";\n}\n\n.fa-gun::before {\n content: \"\\e19b\";\n}\n\n.fa-square-phone::before {\n content: \"\\f098\";\n}\n\n.fa-phone-square::before {\n content: \"\\f098\";\n}\n\n.fa-plus::before {\n content: \"\\+\";\n}\n\n.fa-add::before {\n content: \"\\+\";\n}\n\n.fa-expand::before {\n content: \"\\f065\";\n}\n\n.fa-computer::before {\n content: \"\\e4e5\";\n}\n\n.fa-xmark::before {\n content: \"\\f00d\";\n}\n\n.fa-close::before {\n content: \"\\f00d\";\n}\n\n.fa-multiply::before {\n content: \"\\f00d\";\n}\n\n.fa-remove::before {\n content: \"\\f00d\";\n}\n\n.fa-times::before {\n content: \"\\f00d\";\n}\n\n.fa-arrows-up-down-left-right::before {\n content: \"\\f047\";\n}\n\n.fa-arrows::before {\n content: \"\\f047\";\n}\n\n.fa-chalkboard-user::before {\n content: \"\\f51c\";\n}\n\n.fa-chalkboard-teacher::before {\n content: \"\\f51c\";\n}\n\n.fa-peso-sign::before {\n content: \"\\e222\";\n}\n\n.fa-building-shield::before {\n content: \"\\e4d8\";\n}\n\n.fa-baby::before {\n content: \"\\f77c\";\n}\n\n.fa-users-line::before {\n content: \"\\e592\";\n}\n\n.fa-quote-left::before {\n content: \"\\f10d\";\n}\n\n.fa-quote-left-alt::before {\n content: \"\\f10d\";\n}\n\n.fa-tractor::before {\n content: \"\\f722\";\n}\n\n.fa-trash-arrow-up::before {\n content: \"\\f829\";\n}\n\n.fa-trash-restore::before {\n content: \"\\f829\";\n}\n\n.fa-arrow-down-up-lock::before {\n content: \"\\e4b0\";\n}\n\n.fa-lines-leaning::before {\n content: \"\\e51e\";\n}\n\n.fa-ruler-combined::before {\n content: \"\\f546\";\n}\n\n.fa-copyright::before {\n content: \"\\f1f9\";\n}\n\n.fa-equals::before {\n content: \"\\=\";\n}\n\n.fa-blender::before {\n content: \"\\f517\";\n}\n\n.fa-teeth::before {\n content: \"\\f62e\";\n}\n\n.fa-shekel-sign::before {\n content: \"\\f20b\";\n}\n\n.fa-ils::before {\n content: \"\\f20b\";\n}\n\n.fa-shekel::before {\n content: \"\\f20b\";\n}\n\n.fa-sheqel::before {\n content: \"\\f20b\";\n}\n\n.fa-sheqel-sign::before {\n content: \"\\f20b\";\n}\n\n.fa-map::before {\n content: \"\\f279\";\n}\n\n.fa-rocket::before {\n content: \"\\f135\";\n}\n\n.fa-photo-film::before {\n content: \"\\f87c\";\n}\n\n.fa-photo-video::before {\n content: \"\\f87c\";\n}\n\n.fa-folder-minus::before {\n content: \"\\f65d\";\n}\n\n.fa-store::before {\n content: \"\\f54e\";\n}\n\n.fa-arrow-trend-up::before {\n content: \"\\e098\";\n}\n\n.fa-plug-circle-minus::before {\n content: \"\\e55e\";\n}\n\n.fa-sign-hanging::before {\n content: \"\\f4d9\";\n}\n\n.fa-sign::before {\n content: \"\\f4d9\";\n}\n\n.fa-bezier-curve::before {\n content: \"\\f55b\";\n}\n\n.fa-bell-slash::before {\n content: \"\\f1f6\";\n}\n\n.fa-tablet::before {\n content: \"\\f3fb\";\n}\n\n.fa-tablet-android::before {\n content: \"\\f3fb\";\n}\n\n.fa-school-flag::before {\n content: \"\\e56e\";\n}\n\n.fa-fill::before {\n content: \"\\f575\";\n}\n\n.fa-angle-up::before {\n content: \"\\f106\";\n}\n\n.fa-drumstick-bite::before {\n content: \"\\f6d7\";\n}\n\n.fa-holly-berry::before {\n content: \"\\f7aa\";\n}\n\n.fa-chevron-left::before {\n content: \"\\f053\";\n}\n\n.fa-bacteria::before {\n content: \"\\e059\";\n}\n\n.fa-hand-lizard::before {\n content: \"\\f258\";\n}\n\n.fa-notdef::before {\n content: \"\\e1fe\";\n}\n\n.fa-disease::before {\n content: \"\\f7fa\";\n}\n\n.fa-briefcase-medical::before {\n content: \"\\f469\";\n}\n\n.fa-genderless::before {\n content: \"\\f22d\";\n}\n\n.fa-chevron-right::before {\n content: \"\\f054\";\n}\n\n.fa-retweet::before {\n content: \"\\f079\";\n}\n\n.fa-car-rear::before {\n content: \"\\f5de\";\n}\n\n.fa-car-alt::before {\n content: \"\\f5de\";\n}\n\n.fa-pump-soap::before {\n content: \"\\e06b\";\n}\n\n.fa-video-slash::before {\n content: \"\\f4e2\";\n}\n\n.fa-battery-quarter::before {\n content: \"\\f243\";\n}\n\n.fa-battery-2::before {\n content: \"\\f243\";\n}\n\n.fa-radio::before {\n content: \"\\f8d7\";\n}\n\n.fa-baby-carriage::before {\n content: \"\\f77d\";\n}\n\n.fa-carriage-baby::before {\n content: \"\\f77d\";\n}\n\n.fa-traffic-light::before {\n content: \"\\f637\";\n}\n\n.fa-thermometer::before {\n content: \"\\f491\";\n}\n\n.fa-vr-cardboard::before {\n content: \"\\f729\";\n}\n\n.fa-hand-middle-finger::before {\n content: \"\\f806\";\n}\n\n.fa-percent::before {\n content: \"\\%\";\n}\n\n.fa-percentage::before {\n content: \"\\%\";\n}\n\n.fa-truck-moving::before {\n content: \"\\f4df\";\n}\n\n.fa-glass-water-droplet::before {\n content: \"\\e4f5\";\n}\n\n.fa-display::before {\n content: \"\\e163\";\n}\n\n.fa-face-smile::before {\n content: \"\\f118\";\n}\n\n.fa-smile::before {\n content: \"\\f118\";\n}\n\n.fa-thumbtack::before {\n content: \"\\f08d\";\n}\n\n.fa-thumb-tack::before {\n content: \"\\f08d\";\n}\n\n.fa-trophy::before {\n content: \"\\f091\";\n}\n\n.fa-person-praying::before {\n content: \"\\f683\";\n}\n\n.fa-pray::before {\n content: \"\\f683\";\n}\n\n.fa-hammer::before {\n content: \"\\f6e3\";\n}\n\n.fa-hand-peace::before {\n content: \"\\f25b\";\n}\n\n.fa-rotate::before {\n content: \"\\f2f1\";\n}\n\n.fa-sync-alt::before {\n content: \"\\f2f1\";\n}\n\n.fa-spinner::before {\n content: \"\\f110\";\n}\n\n.fa-robot::before {\n content: \"\\f544\";\n}\n\n.fa-peace::before {\n content: \"\\f67c\";\n}\n\n.fa-gears::before {\n content: \"\\f085\";\n}\n\n.fa-cogs::before {\n content: \"\\f085\";\n}\n\n.fa-warehouse::before {\n content: \"\\f494\";\n}\n\n.fa-arrow-up-right-dots::before {\n content: \"\\e4b7\";\n}\n\n.fa-splotch::before {\n content: \"\\f5bc\";\n}\n\n.fa-face-grin-hearts::before {\n content: \"\\f584\";\n}\n\n.fa-grin-hearts::before {\n content: \"\\f584\";\n}\n\n.fa-dice-four::before {\n content: \"\\f524\";\n}\n\n.fa-sim-card::before {\n content: \"\\f7c4\";\n}\n\n.fa-transgender::before {\n content: \"\\f225\";\n}\n\n.fa-transgender-alt::before {\n content: \"\\f225\";\n}\n\n.fa-mercury::before {\n content: \"\\f223\";\n}\n\n.fa-arrow-turn-down::before {\n content: \"\\f149\";\n}\n\n.fa-level-down::before {\n content: \"\\f149\";\n}\n\n.fa-person-falling-burst::before {\n content: \"\\e547\";\n}\n\n.fa-award::before {\n content: \"\\f559\";\n}\n\n.fa-ticket-simple::before {\n content: \"\\f3ff\";\n}\n\n.fa-ticket-alt::before {\n content: \"\\f3ff\";\n}\n\n.fa-building::before {\n content: \"\\f1ad\";\n}\n\n.fa-angles-left::before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-left::before {\n content: \"\\f100\";\n}\n\n.fa-qrcode::before {\n content: \"\\f029\";\n}\n\n.fa-clock-rotate-left::before {\n content: \"\\f1da\";\n}\n\n.fa-history::before {\n content: \"\\f1da\";\n}\n\n.fa-face-grin-beam-sweat::before {\n content: \"\\f583\";\n}\n\n.fa-grin-beam-sweat::before {\n content: \"\\f583\";\n}\n\n.fa-file-export::before {\n content: \"\\f56e\";\n}\n\n.fa-arrow-right-from-file::before {\n content: \"\\f56e\";\n}\n\n.fa-shield::before {\n content: \"\\f132\";\n}\n\n.fa-shield-blank::before {\n content: \"\\f132\";\n}\n\n.fa-arrow-up-short-wide::before {\n content: \"\\f885\";\n}\n\n.fa-sort-amount-up-alt::before {\n content: \"\\f885\";\n}\n\n.fa-house-medical::before {\n content: \"\\e3b2\";\n}\n\n.fa-golf-ball-tee::before {\n content: \"\\f450\";\n}\n\n.fa-golf-ball::before {\n content: \"\\f450\";\n}\n\n.fa-circle-chevron-left::before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-left::before {\n content: \"\\f137\";\n}\n\n.fa-house-chimney-window::before {\n content: \"\\e00d\";\n}\n\n.fa-pen-nib::before {\n content: \"\\f5ad\";\n}\n\n.fa-tent-arrow-turn-left::before {\n content: \"\\e580\";\n}\n\n.fa-tents::before {\n content: \"\\e582\";\n}\n\n.fa-wand-magic::before {\n content: \"\\f0d0\";\n}\n\n.fa-magic::before {\n content: \"\\f0d0\";\n}\n\n.fa-dog::before {\n content: \"\\f6d3\";\n}\n\n.fa-carrot::before {\n content: \"\\f787\";\n}\n\n.fa-moon::before {\n content: \"\\f186\";\n}\n\n.fa-wine-glass-empty::before {\n content: \"\\f5ce\";\n}\n\n.fa-wine-glass-alt::before {\n content: \"\\f5ce\";\n}\n\n.fa-cheese::before {\n content: \"\\f7ef\";\n}\n\n.fa-yin-yang::before {\n content: \"\\f6ad\";\n}\n\n.fa-music::before {\n content: \"\\f001\";\n}\n\n.fa-code-commit::before {\n content: \"\\f386\";\n}\n\n.fa-temperature-low::before {\n content: \"\\f76b\";\n}\n\n.fa-person-biking::before {\n content: \"\\f84a\";\n}\n\n.fa-biking::before {\n content: \"\\f84a\";\n}\n\n.fa-broom::before {\n content: \"\\f51a\";\n}\n\n.fa-shield-heart::before {\n content: \"\\e574\";\n}\n\n.fa-gopuram::before {\n content: \"\\f664\";\n}\n\n.fa-earth-oceania::before {\n content: \"\\e47b\";\n}\n\n.fa-globe-oceania::before {\n content: \"\\e47b\";\n}\n\n.fa-square-xmark::before {\n content: \"\\f2d3\";\n}\n\n.fa-times-square::before {\n content: \"\\f2d3\";\n}\n\n.fa-xmark-square::before {\n content: \"\\f2d3\";\n}\n\n.fa-hashtag::before {\n content: \"\\#\";\n}\n\n.fa-up-right-and-down-left-from-center::before {\n content: \"\\f424\";\n}\n\n.fa-expand-alt::before {\n content: \"\\f424\";\n}\n\n.fa-oil-can::before {\n content: \"\\f613\";\n}\n\n.fa-t::before {\n content: \"T\";\n}\n\n.fa-hippo::before {\n content: \"\\f6ed\";\n}\n\n.fa-chart-column::before {\n content: \"\\e0e3\";\n}\n\n.fa-infinity::before {\n content: \"\\f534\";\n}\n\n.fa-vial-circle-check::before {\n content: \"\\e596\";\n}\n\n.fa-person-arrow-down-to-line::before {\n content: \"\\e538\";\n}\n\n.fa-voicemail::before {\n content: \"\\f897\";\n}\n\n.fa-fan::before {\n content: \"\\f863\";\n}\n\n.fa-person-walking-luggage::before {\n content: \"\\e554\";\n}\n\n.fa-up-down::before {\n content: \"\\f338\";\n}\n\n.fa-arrows-alt-v::before {\n content: \"\\f338\";\n}\n\n.fa-cloud-moon-rain::before {\n content: \"\\f73c\";\n}\n\n.fa-calendar::before {\n content: \"\\f133\";\n}\n\n.fa-trailer::before {\n content: \"\\e041\";\n}\n\n.fa-bahai::before {\n content: \"\\f666\";\n}\n\n.fa-haykal::before {\n content: \"\\f666\";\n}\n\n.fa-sd-card::before {\n content: \"\\f7c2\";\n}\n\n.fa-dragon::before {\n content: \"\\f6d5\";\n}\n\n.fa-shoe-prints::before {\n content: \"\\f54b\";\n}\n\n.fa-circle-plus::before {\n content: \"\\f055\";\n}\n\n.fa-plus-circle::before {\n content: \"\\f055\";\n}\n\n.fa-face-grin-tongue-wink::before {\n content: \"\\f58b\";\n}\n\n.fa-grin-tongue-wink::before {\n content: \"\\f58b\";\n}\n\n.fa-hand-holding::before {\n content: \"\\f4bd\";\n}\n\n.fa-plug-circle-exclamation::before {\n content: \"\\e55d\";\n}\n\n.fa-link-slash::before {\n content: \"\\f127\";\n}\n\n.fa-chain-broken::before {\n content: \"\\f127\";\n}\n\n.fa-chain-slash::before {\n content: \"\\f127\";\n}\n\n.fa-unlink::before {\n content: \"\\f127\";\n}\n\n.fa-clone::before {\n content: \"\\f24d\";\n}\n\n.fa-person-walking-arrow-loop-left::before {\n content: \"\\e551\";\n}\n\n.fa-arrow-up-z-a::before {\n content: \"\\f882\";\n}\n\n.fa-sort-alpha-up-alt::before {\n content: \"\\f882\";\n}\n\n.fa-fire-flame-curved::before {\n content: \"\\f7e4\";\n}\n\n.fa-fire-alt::before {\n content: \"\\f7e4\";\n}\n\n.fa-tornado::before {\n content: \"\\f76f\";\n}\n\n.fa-file-circle-plus::before {\n content: \"\\e494\";\n}\n\n.fa-book-quran::before {\n content: \"\\f687\";\n}\n\n.fa-quran::before {\n content: \"\\f687\";\n}\n\n.fa-anchor::before {\n content: \"\\f13d\";\n}\n\n.fa-border-all::before {\n content: \"\\f84c\";\n}\n\n.fa-face-angry::before {\n content: \"\\f556\";\n}\n\n.fa-angry::before {\n content: \"\\f556\";\n}\n\n.fa-cookie-bite::before {\n content: \"\\f564\";\n}\n\n.fa-arrow-trend-down::before {\n content: \"\\e097\";\n}\n\n.fa-rss::before {\n content: \"\\f09e\";\n}\n\n.fa-feed::before {\n content: \"\\f09e\";\n}\n\n.fa-draw-polygon::before {\n content: \"\\f5ee\";\n}\n\n.fa-scale-balanced::before {\n content: \"\\f24e\";\n}\n\n.fa-balance-scale::before {\n content: \"\\f24e\";\n}\n\n.fa-gauge-simple-high::before {\n content: \"\\f62a\";\n}\n\n.fa-tachometer::before {\n content: \"\\f62a\";\n}\n\n.fa-tachometer-fast::before {\n content: \"\\f62a\";\n}\n\n.fa-shower::before {\n content: \"\\f2cc\";\n}\n\n.fa-desktop::before {\n content: \"\\f390\";\n}\n\n.fa-desktop-alt::before {\n content: \"\\f390\";\n}\n\n.fa-m::before {\n content: \"M\";\n}\n\n.fa-table-list::before {\n content: \"\\f00b\";\n}\n\n.fa-th-list::before {\n content: \"\\f00b\";\n}\n\n.fa-comment-sms::before {\n content: \"\\f7cd\";\n}\n\n.fa-sms::before {\n content: \"\\f7cd\";\n}\n\n.fa-book::before {\n content: \"\\f02d\";\n}\n\n.fa-user-plus::before {\n content: \"\\f234\";\n}\n\n.fa-check::before {\n content: \"\\f00c\";\n}\n\n.fa-battery-three-quarters::before {\n content: \"\\f241\";\n}\n\n.fa-battery-4::before {\n content: \"\\f241\";\n}\n\n.fa-house-circle-check::before {\n content: \"\\e509\";\n}\n\n.fa-angle-left::before {\n content: \"\\f104\";\n}\n\n.fa-diagram-successor::before {\n content: \"\\e47a\";\n}\n\n.fa-truck-arrow-right::before {\n content: \"\\e58b\";\n}\n\n.fa-arrows-split-up-and-left::before {\n content: \"\\e4bc\";\n}\n\n.fa-hand-fist::before {\n content: \"\\f6de\";\n}\n\n.fa-fist-raised::before {\n content: \"\\f6de\";\n}\n\n.fa-cloud-moon::before {\n content: \"\\f6c3\";\n}\n\n.fa-briefcase::before {\n content: \"\\f0b1\";\n}\n\n.fa-person-falling::before {\n content: \"\\e546\";\n}\n\n.fa-image-portrait::before {\n content: \"\\f3e0\";\n}\n\n.fa-portrait::before {\n content: \"\\f3e0\";\n}\n\n.fa-user-tag::before {\n content: \"\\f507\";\n}\n\n.fa-rug::before {\n content: \"\\e569\";\n}\n\n.fa-earth-europe::before {\n content: \"\\f7a2\";\n}\n\n.fa-globe-europe::before {\n content: \"\\f7a2\";\n}\n\n.fa-cart-flatbed-suitcase::before {\n content: \"\\f59d\";\n}\n\n.fa-luggage-cart::before {\n content: \"\\f59d\";\n}\n\n.fa-rectangle-xmark::before {\n content: \"\\f410\";\n}\n\n.fa-rectangle-times::before {\n content: \"\\f410\";\n}\n\n.fa-times-rectangle::before {\n content: \"\\f410\";\n}\n\n.fa-window-close::before {\n content: \"\\f410\";\n}\n\n.fa-baht-sign::before {\n content: \"\\e0ac\";\n}\n\n.fa-book-open::before {\n content: \"\\f518\";\n}\n\n.fa-book-journal-whills::before {\n content: \"\\f66a\";\n}\n\n.fa-journal-whills::before {\n content: \"\\f66a\";\n}\n\n.fa-handcuffs::before {\n content: \"\\e4f8\";\n}\n\n.fa-triangle-exclamation::before {\n content: \"\\f071\";\n}\n\n.fa-exclamation-triangle::before {\n content: \"\\f071\";\n}\n\n.fa-warning::before {\n content: \"\\f071\";\n}\n\n.fa-database::before {\n content: \"\\f1c0\";\n}\n\n.fa-share::before {\n content: \"\\f064\";\n}\n\n.fa-mail-forward::before {\n content: \"\\f064\";\n}\n\n.fa-bottle-droplet::before {\n content: \"\\e4c4\";\n}\n\n.fa-mask-face::before {\n content: \"\\e1d7\";\n}\n\n.fa-hill-rockslide::before {\n content: \"\\e508\";\n}\n\n.fa-right-left::before {\n content: \"\\f362\";\n}\n\n.fa-exchange-alt::before {\n content: \"\\f362\";\n}\n\n.fa-paper-plane::before {\n content: \"\\f1d8\";\n}\n\n.fa-road-circle-exclamation::before {\n content: \"\\e565\";\n}\n\n.fa-dungeon::before {\n content: \"\\f6d9\";\n}\n\n.fa-align-right::before {\n content: \"\\f038\";\n}\n\n.fa-money-bill-1-wave::before {\n content: \"\\f53b\";\n}\n\n.fa-money-bill-wave-alt::before {\n content: \"\\f53b\";\n}\n\n.fa-life-ring::before {\n content: \"\\f1cd\";\n}\n\n.fa-hands::before {\n content: \"\\f2a7\";\n}\n\n.fa-sign-language::before {\n content: \"\\f2a7\";\n}\n\n.fa-signing::before {\n content: \"\\f2a7\";\n}\n\n.fa-calendar-day::before {\n content: \"\\f783\";\n}\n\n.fa-water-ladder::before {\n content: \"\\f5c5\";\n}\n\n.fa-ladder-water::before {\n content: \"\\f5c5\";\n}\n\n.fa-swimming-pool::before {\n content: \"\\f5c5\";\n}\n\n.fa-arrows-up-down::before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-v::before {\n content: \"\\f07d\";\n}\n\n.fa-face-grimace::before {\n content: \"\\f57f\";\n}\n\n.fa-grimace::before {\n content: \"\\f57f\";\n}\n\n.fa-wheelchair-move::before {\n content: \"\\e2ce\";\n}\n\n.fa-wheelchair-alt::before {\n content: \"\\e2ce\";\n}\n\n.fa-turn-down::before {\n content: \"\\f3be\";\n}\n\n.fa-level-down-alt::before {\n content: \"\\f3be\";\n}\n\n.fa-person-walking-arrow-right::before {\n content: \"\\e552\";\n}\n\n.fa-square-envelope::before {\n content: \"\\f199\";\n}\n\n.fa-envelope-square::before {\n content: \"\\f199\";\n}\n\n.fa-dice::before {\n content: \"\\f522\";\n}\n\n.fa-bowling-ball::before {\n content: \"\\f436\";\n}\n\n.fa-brain::before {\n content: \"\\f5dc\";\n}\n\n.fa-bandage::before {\n content: \"\\f462\";\n}\n\n.fa-band-aid::before {\n content: \"\\f462\";\n}\n\n.fa-calendar-minus::before {\n content: \"\\f272\";\n}\n\n.fa-circle-xmark::before {\n content: \"\\f057\";\n}\n\n.fa-times-circle::before {\n content: \"\\f057\";\n}\n\n.fa-xmark-circle::before {\n content: \"\\f057\";\n}\n\n.fa-gifts::before {\n content: \"\\f79c\";\n}\n\n.fa-hotel::before {\n content: \"\\f594\";\n}\n\n.fa-earth-asia::before {\n content: \"\\f57e\";\n}\n\n.fa-globe-asia::before {\n content: \"\\f57e\";\n}\n\n.fa-id-card-clip::before {\n content: \"\\f47f\";\n}\n\n.fa-id-card-alt::before {\n content: \"\\f47f\";\n}\n\n.fa-magnifying-glass-plus::before {\n content: \"\\f00e\";\n}\n\n.fa-search-plus::before {\n content: \"\\f00e\";\n}\n\n.fa-thumbs-up::before {\n content: \"\\f164\";\n}\n\n.fa-user-clock::before {\n content: \"\\f4fd\";\n}\n\n.fa-hand-dots::before {\n content: \"\\f461\";\n}\n\n.fa-allergies::before {\n content: \"\\f461\";\n}\n\n.fa-file-invoice::before {\n content: \"\\f570\";\n}\n\n.fa-window-minimize::before {\n content: \"\\f2d1\";\n}\n\n.fa-mug-saucer::before {\n content: \"\\f0f4\";\n}\n\n.fa-coffee::before {\n content: \"\\f0f4\";\n}\n\n.fa-brush::before {\n content: \"\\f55d\";\n}\n\n.fa-mask::before {\n content: \"\\f6fa\";\n}\n\n.fa-magnifying-glass-minus::before {\n content: \"\\f010\";\n}\n\n.fa-search-minus::before {\n content: \"\\f010\";\n}\n\n.fa-ruler-vertical::before {\n content: \"\\f548\";\n}\n\n.fa-user-large::before {\n content: \"\\f406\";\n}\n\n.fa-user-alt::before {\n content: \"\\f406\";\n}\n\n.fa-train-tram::before {\n content: \"\\e5b4\";\n}\n\n.fa-user-nurse::before {\n content: \"\\f82f\";\n}\n\n.fa-syringe::before {\n content: \"\\f48e\";\n}\n\n.fa-cloud-sun::before {\n content: \"\\f6c4\";\n}\n\n.fa-stopwatch-20::before {\n content: \"\\e06f\";\n}\n\n.fa-square-full::before {\n content: \"\\f45c\";\n}\n\n.fa-magnet::before {\n content: \"\\f076\";\n}\n\n.fa-jar::before {\n content: \"\\e516\";\n}\n\n.fa-note-sticky::before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note::before {\n content: \"\\f249\";\n}\n\n.fa-bug-slash::before {\n content: \"\\e490\";\n}\n\n.fa-arrow-up-from-water-pump::before {\n content: \"\\e4b6\";\n}\n\n.fa-bone::before {\n content: \"\\f5d7\";\n}\n\n.fa-user-injured::before {\n content: \"\\f728\";\n}\n\n.fa-face-sad-tear::before {\n content: \"\\f5b4\";\n}\n\n.fa-sad-tear::before {\n content: \"\\f5b4\";\n}\n\n.fa-plane::before {\n content: \"\\f072\";\n}\n\n.fa-tent-arrows-down::before {\n content: \"\\e581\";\n}\n\n.fa-exclamation::before {\n content: \"\\!\";\n}\n\n.fa-arrows-spin::before {\n content: \"\\e4bb\";\n}\n\n.fa-print::before {\n content: \"\\f02f\";\n}\n\n.fa-turkish-lira-sign::before {\n content: \"\\e2bb\";\n}\n\n.fa-try::before {\n content: \"\\e2bb\";\n}\n\n.fa-turkish-lira::before {\n content: \"\\e2bb\";\n}\n\n.fa-dollar-sign::before {\n content: \"\\$\";\n}\n\n.fa-dollar::before {\n content: \"\\$\";\n}\n\n.fa-usd::before {\n content: \"\\$\";\n}\n\n.fa-x::before {\n content: \"X\";\n}\n\n.fa-magnifying-glass-dollar::before {\n content: \"\\f688\";\n}\n\n.fa-search-dollar::before {\n content: \"\\f688\";\n}\n\n.fa-users-gear::before {\n content: \"\\f509\";\n}\n\n.fa-users-cog::before {\n content: \"\\f509\";\n}\n\n.fa-person-military-pointing::before {\n content: \"\\e54a\";\n}\n\n.fa-building-columns::before {\n content: \"\\f19c\";\n}\n\n.fa-bank::before {\n content: \"\\f19c\";\n}\n\n.fa-institution::before {\n content: \"\\f19c\";\n}\n\n.fa-museum::before {\n content: \"\\f19c\";\n}\n\n.fa-university::before {\n content: \"\\f19c\";\n}\n\n.fa-umbrella::before {\n content: \"\\f0e9\";\n}\n\n.fa-trowel::before {\n content: \"\\e589\";\n}\n\n.fa-d::before {\n content: \"D\";\n}\n\n.fa-stapler::before {\n content: \"\\e5af\";\n}\n\n.fa-masks-theater::before {\n content: \"\\f630\";\n}\n\n.fa-theater-masks::before {\n content: \"\\f630\";\n}\n\n.fa-kip-sign::before {\n content: \"\\e1c4\";\n}\n\n.fa-hand-point-left::before {\n content: \"\\f0a5\";\n}\n\n.fa-handshake-simple::before {\n content: \"\\f4c6\";\n}\n\n.fa-handshake-alt::before {\n content: \"\\f4c6\";\n}\n\n.fa-jet-fighter::before {\n content: \"\\f0fb\";\n}\n\n.fa-fighter-jet::before {\n content: \"\\f0fb\";\n}\n\n.fa-square-share-nodes::before {\n content: \"\\f1e1\";\n}\n\n.fa-share-alt-square::before {\n content: \"\\f1e1\";\n}\n\n.fa-barcode::before {\n content: \"\\f02a\";\n}\n\n.fa-plus-minus::before {\n content: \"\\e43c\";\n}\n\n.fa-video::before {\n content: \"\\f03d\";\n}\n\n.fa-video-camera::before {\n content: \"\\f03d\";\n}\n\n.fa-graduation-cap::before {\n content: \"\\f19d\";\n}\n\n.fa-mortar-board::before {\n content: \"\\f19d\";\n}\n\n.fa-hand-holding-medical::before {\n content: \"\\e05c\";\n}\n\n.fa-person-circle-check::before {\n content: \"\\e53e\";\n}\n\n.fa-turn-up::before {\n content: \"\\f3bf\";\n}\n\n.fa-level-up-alt::before {\n content: \"\\f3bf\";\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: \"Font Awesome 6 Free\";\n --fa-font-solid: normal 900 1em/1 \"Font Awesome 6 Free\";\n}\n\n@font-face {\n font-family: \"Font Awesome 6 Free\";\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\");\n}\n.fas,\n.fa-solid {\n font-weight: 900;\n}\n\n/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: \"Font Awesome 6 Free\";\n --fa-font-regular: normal 400 1em/1 \"Font Awesome 6 Free\";\n}\n\n@font-face {\n font-family: \"Font Awesome 6 Free\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\");\n}\n.far,\n.fa-regular {\n font-weight: 400;\n}\n\n/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-brands: \"Font Awesome 6 Brands\";\n --fa-font-brands: normal 400 1em/1 \"Font Awesome 6 Brands\";\n}\n\n@font-face {\n font-family: \"Font Awesome 6 Brands\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\");\n}\n.fab,\n.fa-brands {\n font-weight: 400;\n}\n\n.fa-monero:before {\n content: \"\\f3d0\";\n}\n\n.fa-hooli:before {\n content: \"\\f427\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-shopware:before {\n content: \"\\f5b5\";\n}\n\n.fa-creative-commons-nc:before {\n content: \"\\f4e8\";\n}\n\n.fa-aws:before {\n content: \"\\f375\";\n}\n\n.fa-redhat:before {\n content: \"\\f7bc\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-cloudflare:before {\n content: \"\\e07d\";\n}\n\n.fa-ups:before {\n content: \"\\f7e0\";\n}\n\n.fa-pixiv:before {\n content: \"\\e640\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-dyalog:before {\n content: \"\\f399\";\n}\n\n.fa-bity:before {\n content: \"\\f37a\";\n}\n\n.fa-stackpath:before {\n content: \"\\f842\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-guilded:before {\n content: \"\\e07e\";\n}\n\n.fa-vnv:before {\n content: \"\\f40b\";\n}\n\n.fa-square-js:before {\n content: \"\\f3b9\";\n}\n\n.fa-js-square:before {\n content: \"\\f3b9\";\n}\n\n.fa-microsoft:before {\n content: \"\\f3ca\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-orcid:before {\n content: \"\\f8d2\";\n}\n\n.fa-java:before {\n content: \"\\f4e4\";\n}\n\n.fa-invision:before {\n content: \"\\f7b0\";\n}\n\n.fa-creative-commons-pd-alt:before {\n content: \"\\f4ed\";\n}\n\n.fa-centercode:before {\n content: \"\\f380\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-jxl:before {\n content: \"\\e67b\";\n}\n\n.fa-hire-a-helper:before {\n content: \"\\f3b0\";\n}\n\n.fa-creative-commons-by:before {\n content: \"\\f4e7\";\n}\n\n.fa-unity:before {\n content: \"\\e049\";\n}\n\n.fa-whmcs:before {\n content: \"\\f40d\";\n}\n\n.fa-rocketchat:before {\n content: \"\\f3e8\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-untappd:before {\n content: \"\\f405\";\n}\n\n.fa-mailchimp:before {\n content: \"\\f59e\";\n}\n\n.fa-css3-alt:before {\n content: \"\\f38b\";\n}\n\n.fa-square-reddit:before {\n content: \"\\f1a2\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-vimeo-v:before {\n content: \"\\f27d\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-square-font-awesome:before {\n content: \"\\e5ad\";\n}\n\n.fa-deskpro:before {\n content: \"\\f38f\";\n}\n\n.fa-brave:before {\n content: \"\\e63c\";\n}\n\n.fa-sistrix:before {\n content: \"\\f3ee\";\n}\n\n.fa-square-instagram:before {\n content: \"\\e055\";\n}\n\n.fa-instagram-square:before {\n content: \"\\e055\";\n}\n\n.fa-battle-net:before {\n content: \"\\f835\";\n}\n\n.fa-the-red-yeti:before {\n content: \"\\f69d\";\n}\n\n.fa-square-hacker-news:before {\n content: \"\\f3af\";\n}\n\n.fa-hacker-news-square:before {\n content: \"\\f3af\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-threads:before {\n content: \"\\e618\";\n}\n\n.fa-napster:before {\n content: \"\\f3d2\";\n}\n\n.fa-square-snapchat:before {\n content: \"\\f2ad\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-google-plus-g:before {\n content: \"\\f0d5\";\n}\n\n.fa-artstation:before {\n content: \"\\f77a\";\n}\n\n.fa-markdown:before {\n content: \"\\f60f\";\n}\n\n.fa-sourcetree:before {\n content: \"\\f7d3\";\n}\n\n.fa-google-plus:before {\n content: \"\\f2b3\";\n}\n\n.fa-diaspora:before {\n content: \"\\f791\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-phoenix-squadron:before {\n content: \"\\f511\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-algolia:before {\n content: \"\\f36c\";\n}\n\n.fa-red-river:before {\n content: \"\\f3e3\";\n}\n\n.fa-creative-commons-sa:before {\n content: \"\\f4ef\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-square-font-awesome-stroke:before {\n content: \"\\f35c\";\n}\n\n.fa-font-awesome-alt:before {\n content: \"\\f35c\";\n}\n\n.fa-atlassian:before {\n content: \"\\f77b\";\n}\n\n.fa-linkedin-in:before {\n content: \"\\f0e1\";\n}\n\n.fa-digital-ocean:before {\n content: \"\\f391\";\n}\n\n.fa-nimblr:before {\n content: \"\\f5a8\";\n}\n\n.fa-chromecast:before {\n content: \"\\f838\";\n}\n\n.fa-evernote:before {\n content: \"\\f839\";\n}\n\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-creative-commons-sampling:before {\n content: \"\\f4f0\";\n}\n\n.fa-adversal:before {\n content: \"\\f36a\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-watchman-monitoring:before {\n content: \"\\e087\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-git-alt:before {\n content: \"\\f841\";\n}\n\n.fa-lyft:before {\n content: \"\\f3c3\";\n}\n\n.fa-rev:before {\n content: \"\\f5b2\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-wizards-of-the-coast:before {\n content: \"\\f730\";\n}\n\n.fa-square-viadeo:before {\n content: \"\\f2aa\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.fa-centos:before {\n content: \"\\f789\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-cloudsmith:before {\n content: \"\\f384\";\n}\n\n.fa-opensuse:before {\n content: \"\\e62b\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-square-dribbble:before {\n content: \"\\f397\";\n}\n\n.fa-dribbble-square:before {\n content: \"\\f397\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-node:before {\n content: \"\\f419\";\n}\n\n.fa-mix:before {\n content: \"\\f3cb\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-cc-apple-pay:before {\n content: \"\\f416\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-debian:before {\n content: \"\\e60b\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-instalod:before {\n content: \"\\e081\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-sellcast:before {\n content: \"\\f2da\";\n}\n\n.fa-square-twitter:before {\n content: \"\\f081\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-r-project:before {\n content: \"\\f4f7\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-freebsd:before {\n content: \"\\f3a4\";\n}\n\n.fa-vuejs:before {\n content: \"\\f41f\";\n}\n\n.fa-accusoft:before {\n content: \"\\f369\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-fonticons-fi:before {\n content: \"\\f3a2\";\n}\n\n.fa-app-store:before {\n content: \"\\f36f\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-itunes-note:before {\n content: \"\\f3b5\";\n}\n\n.fa-golang:before {\n content: \"\\e40f\";\n}\n\n.fa-kickstarter:before {\n content: \"\\f3bb\";\n}\n\n.fa-square-kickstarter:before {\n content: \"\\f3bb\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-uncharted:before {\n content: \"\\e084\";\n}\n\n.fa-firstdraft:before {\n content: \"\\f3a1\";\n}\n\n.fa-square-youtube:before {\n content: \"\\f431\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f431\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-wpressr:before {\n content: \"\\f3e4\";\n}\n\n.fa-rendact:before {\n content: \"\\f3e4\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-galactic-republic:before {\n content: \"\\f50c\";\n}\n\n.fa-nfc-directional:before {\n content: \"\\e530\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-joget:before {\n content: \"\\f3b7\";\n}\n\n.fa-fedora:before {\n content: \"\\f798\";\n}\n\n.fa-stripe-s:before {\n content: \"\\f42a\";\n}\n\n.fa-meta:before {\n content: \"\\e49b\";\n}\n\n.fa-laravel:before {\n content: \"\\f3bd\";\n}\n\n.fa-hotjar:before {\n content: \"\\f3b1\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-square-letterboxd:before {\n content: \"\\e62e\";\n}\n\n.fa-sticker-mule:before {\n content: \"\\f3f7\";\n}\n\n.fa-creative-commons-zero:before {\n content: \"\\f4f3\";\n}\n\n.fa-hips:before {\n content: \"\\f452\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-discord:before {\n content: \"\\f392\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-app-store-ios:before {\n content: \"\\f370\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-confluence:before {\n content: \"\\f78d\";\n}\n\n.fa-shoelace:before {\n content: \"\\e60c\";\n}\n\n.fa-mdb:before {\n content: \"\\f8ca\";\n}\n\n.fa-dochub:before {\n content: \"\\f394\";\n}\n\n.fa-accessible-icon:before {\n content: \"\\f368\";\n}\n\n.fa-ebay:before {\n content: \"\\f4f4\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-unsplash:before {\n content: \"\\e07c\";\n}\n\n.fa-yarn:before {\n content: \"\\f7e3\";\n}\n\n.fa-square-steam:before {\n content: \"\\f1b7\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-square-vimeo:before {\n content: \"\\f194\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-asymmetrik:before {\n content: \"\\f372\";\n}\n\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-font-awesome-flag:before {\n content: \"\\f2b4\";\n}\n\n.fa-font-awesome-logo-full:before {\n content: \"\\f2b4\";\n}\n\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-hive:before {\n content: \"\\e07f\";\n}\n\n.fa-gitkraken:before {\n content: \"\\f3a6\";\n}\n\n.fa-keybase:before {\n content: \"\\f4f5\";\n}\n\n.fa-apple-pay:before {\n content: \"\\f415\";\n}\n\n.fa-padlet:before {\n content: \"\\e4a0\";\n}\n\n.fa-amazon-pay:before {\n content: \"\\f42c\";\n}\n\n.fa-square-github:before {\n content: \"\\f092\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-fedex:before {\n content: \"\\f797\";\n}\n\n.fa-phoenix-framework:before {\n content: \"\\f3dc\";\n}\n\n.fa-shopify:before {\n content: \"\\e057\";\n}\n\n.fa-neos:before {\n content: \"\\f612\";\n}\n\n.fa-square-threads:before {\n content: \"\\e619\";\n}\n\n.fa-hackerrank:before {\n content: \"\\f5f7\";\n}\n\n.fa-researchgate:before {\n content: \"\\f4f8\";\n}\n\n.fa-swift:before {\n content: \"\\f8e1\";\n}\n\n.fa-angular:before {\n content: \"\\f420\";\n}\n\n.fa-speakap:before {\n content: \"\\f3f3\";\n}\n\n.fa-angrycreative:before {\n content: \"\\f36e\";\n}\n\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-google-scholar:before {\n content: \"\\e63b\";\n}\n\n.fa-square-gitlab:before {\n content: \"\\e5ae\";\n}\n\n.fa-gitlab-square:before {\n content: \"\\e5ae\";\n}\n\n.fa-studiovinari:before {\n content: \"\\f3f8\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-goodreads:before {\n content: \"\\f3a8\";\n}\n\n.fa-square-odnoklassniki:before {\n content: \"\\f264\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-sith:before {\n content: \"\\f512\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-page4:before {\n content: \"\\f3d7\";\n}\n\n.fa-hashnode:before {\n content: \"\\e499\";\n}\n\n.fa-react:before {\n content: \"\\f41b\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-squarespace:before {\n content: \"\\f5be\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-creative-commons-share:before {\n content: \"\\f4f2\";\n}\n\n.fa-bitcoin:before {\n content: \"\\f379\";\n}\n\n.fa-keycdn:before {\n content: \"\\f3ba\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-itch-io:before {\n content: \"\\f83a\";\n}\n\n.fa-umbraco:before {\n content: \"\\f8e8\";\n}\n\n.fa-galactic-senate:before {\n content: \"\\f50d\";\n}\n\n.fa-ubuntu:before {\n content: \"\\f7df\";\n}\n\n.fa-draft2digital:before {\n content: \"\\f396\";\n}\n\n.fa-stripe:before {\n content: \"\\f429\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-dhl:before {\n content: \"\\f790\";\n}\n\n.fa-square-pinterest:before {\n content: \"\\f0d3\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-blackberry:before {\n content: \"\\f37b\";\n}\n\n.fa-creative-commons-pd:before {\n content: \"\\f4ec\";\n}\n\n.fa-playstation:before {\n content: \"\\f3df\";\n}\n\n.fa-quinscape:before {\n content: \"\\f459\";\n}\n\n.fa-less:before {\n content: \"\\f41d\";\n}\n\n.fa-blogger-b:before {\n content: \"\\f37d\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-signal-messenger:before {\n content: \"\\e663\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-typo3:before {\n content: \"\\f42b\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-dailymotion:before {\n content: \"\\e052\";\n}\n\n.fa-affiliatetheme:before {\n content: \"\\f36b\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-bootstrap:before {\n content: \"\\f836\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-nfc-symbol:before {\n content: \"\\e531\";\n}\n\n.fa-mintbit:before {\n content: \"\\e62f\";\n}\n\n.fa-ethereum:before {\n content: \"\\f42e\";\n}\n\n.fa-speaker-deck:before {\n content: \"\\f83c\";\n}\n\n.fa-creative-commons-nc-eu:before {\n content: \"\\f4e9\";\n}\n\n.fa-patreon:before {\n content: \"\\f3d9\";\n}\n\n.fa-avianex:before {\n content: \"\\f374\";\n}\n\n.fa-ello:before {\n content: \"\\f5f1\";\n}\n\n.fa-gofore:before {\n content: \"\\f3a7\";\n}\n\n.fa-bimobject:before {\n content: \"\\f378\";\n}\n\n.fa-brave-reverse:before {\n content: \"\\e63d\";\n}\n\n.fa-facebook-f:before {\n content: \"\\f39e\";\n}\n\n.fa-square-google-plus:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-web-awesome:before {\n content: \"\\e682\";\n}\n\n.fa-mandalorian:before {\n content: \"\\f50f\";\n}\n\n.fa-first-order-alt:before {\n content: \"\\f50a\";\n}\n\n.fa-osi:before {\n content: \"\\f41a\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-d-and-d-beyond:before {\n content: \"\\f6ca\";\n}\n\n.fa-periscope:before {\n content: \"\\f3da\";\n}\n\n.fa-fulcrum:before {\n content: \"\\f50b\";\n}\n\n.fa-cloudscale:before {\n content: \"\\f383\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-mizuni:before {\n content: \"\\f3cc\";\n}\n\n.fa-schlix:before {\n content: \"\\f3ea\";\n}\n\n.fa-square-xing:before {\n content: \"\\f169\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-cloudversify:before {\n content: \"\\f385\";\n}\n\n.fa-usps:before {\n content: \"\\f7e1\";\n}\n\n.fa-megaport:before {\n content: \"\\f5a3\";\n}\n\n.fa-magento:before {\n content: \"\\f3c4\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-fly:before {\n content: \"\\f417\";\n}\n\n.fa-aviato:before {\n content: \"\\f421\";\n}\n\n.fa-itunes:before {\n content: \"\\f3b4\";\n}\n\n.fa-cuttlefish:before {\n content: \"\\f38c\";\n}\n\n.fa-blogger:before {\n content: \"\\f37c\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-viber:before {\n content: \"\\f409\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-letterboxd:before {\n content: \"\\e62d\";\n}\n\n.fa-symfony:before {\n content: \"\\f83d\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-facebook-messenger:before {\n content: \"\\f39f\";\n}\n\n.fa-audible:before {\n content: \"\\f373\";\n}\n\n.fa-think-peaks:before {\n content: \"\\f731\";\n}\n\n.fa-bilibili:before {\n content: \"\\e3d9\";\n}\n\n.fa-erlang:before {\n content: \"\\f39d\";\n}\n\n.fa-x-twitter:before {\n content: \"\\e61b\";\n}\n\n.fa-cotton-bureau:before {\n content: \"\\f89e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-42-group:before {\n content: \"\\e080\";\n}\n\n.fa-innosoft:before {\n content: \"\\e080\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-elementor:before {\n content: \"\\f430\";\n}\n\n.fa-square-pied-piper:before {\n content: \"\\e01e\";\n}\n\n.fa-pied-piper-square:before {\n content: \"\\e01e\";\n}\n\n.fa-creative-commons-nd:before {\n content: \"\\f4eb\";\n}\n\n.fa-palfed:before {\n content: \"\\f3d8\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-resolving:before {\n content: \"\\f3e7\";\n}\n\n.fa-xbox:before {\n content: \"\\f412\";\n}\n\n.fa-square-web-awesome-stroke:before {\n content: \"\\e684\";\n}\n\n.fa-searchengin:before {\n content: \"\\f3eb\";\n}\n\n.fa-tiktok:before {\n content: \"\\e07b\";\n}\n\n.fa-square-facebook:before {\n content: \"\\f082\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-linkedin:before {\n content: \"\\f08c\";\n}\n\n.fa-hubspot:before {\n content: \"\\f3b2\";\n}\n\n.fa-deploydog:before {\n content: \"\\f38e\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-mixer:before {\n content: \"\\e056\";\n}\n\n.fa-square-lastfm:before {\n content: \"\\f203\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-vimeo:before {\n content: \"\\f40a\";\n}\n\n.fa-mendeley:before {\n content: \"\\f7b3\";\n}\n\n.fa-uniregistry:before {\n content: \"\\f404\";\n}\n\n.fa-figma:before {\n content: \"\\f799\";\n}\n\n.fa-creative-commons-remix:before {\n content: \"\\f4ee\";\n}\n\n.fa-cc-amazon-pay:before {\n content: \"\\f42d\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-cmplid:before {\n content: \"\\e360\";\n}\n\n.fa-upwork:before {\n content: \"\\e641\";\n}\n\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-gripfire:before {\n content: \"\\f3ac\";\n}\n\n.fa-jedi-order:before {\n content: \"\\f50e\";\n}\n\n.fa-uikit:before {\n content: \"\\f403\";\n}\n\n.fa-fort-awesome-alt:before {\n content: \"\\f3a3\";\n}\n\n.fa-phabricator:before {\n content: \"\\f3db\";\n}\n\n.fa-ussunnah:before {\n content: \"\\f407\";\n}\n\n.fa-earlybirds:before {\n content: \"\\f39a\";\n}\n\n.fa-trade-federation:before {\n content: \"\\f513\";\n}\n\n.fa-autoprefixer:before {\n content: \"\\f41c\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-square-upwork:before {\n content: \"\\e67c\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-google-play:before {\n content: \"\\f3ab\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-line:before {\n content: \"\\f3c0\";\n}\n\n.fa-google-drive:before {\n content: \"\\f3aa\";\n}\n\n.fa-servicestack:before {\n content: \"\\f3ec\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-deezer:before {\n content: \"\\e077\";\n}\n\n.fa-raspberry-pi:before {\n content: \"\\f7bb\";\n}\n\n.fa-jira:before {\n content: \"\\f7b1\";\n}\n\n.fa-docker:before {\n content: \"\\f395\";\n}\n\n.fa-screenpal:before {\n content: \"\\e570\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-gitter:before {\n content: \"\\f426\";\n}\n\n.fa-d-and-d:before {\n content: \"\\f38d\";\n}\n\n.fa-microblog:before {\n content: \"\\e01a\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-pied-piper-hat:before {\n content: \"\\f4e5\";\n}\n\n.fa-kickstarter-k:before {\n content: \"\\f3bc\";\n}\n\n.fa-yandex:before {\n content: \"\\f413\";\n}\n\n.fa-readme:before {\n content: \"\\f4d5\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-square-web-awesome:before {\n content: \"\\e683\";\n}\n\n.fa-sass:before {\n content: \"\\f41e\";\n}\n\n.fa-wirsindhandwerk:before {\n content: \"\\e2d0\";\n}\n\n.fa-wsh:before {\n content: \"\\e2d0\";\n}\n\n.fa-buromobelexperte:before {\n content: \"\\f37f\";\n}\n\n.fa-salesforce:before {\n content: \"\\f83b\";\n}\n\n.fa-octopus-deploy:before {\n content: \"\\e082\";\n}\n\n.fa-medapps:before {\n content: \"\\f3c6\";\n}\n\n.fa-ns8:before {\n content: \"\\f3d5\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-apper:before {\n content: \"\\f371\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-waze:before {\n content: \"\\f83f\";\n}\n\n.fa-bluesky:before {\n content: \"\\e671\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ab\";\n}\n\n.fa-fantasy-flight-games:before {\n content: \"\\f6dc\";\n}\n\n.fa-rust:before {\n content: \"\\e07a\";\n}\n\n.fa-wix:before {\n content: \"\\f5cf\";\n}\n\n.fa-square-behance:before {\n content: \"\\f1b5\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-supple:before {\n content: \"\\f3f9\";\n}\n\n.fa-webflow:before {\n content: \"\\e65c\";\n}\n\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-staylinked:before {\n content: \"\\f3f5\";\n}\n\n.fa-kaggle:before {\n content: \"\\f5fa\";\n}\n\n.fa-space-awesome:before {\n content: \"\\e5ac\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-cpanel:before {\n content: \"\\f388\";\n}\n\n.fa-goodreads-g:before {\n content: \"\\f3a9\";\n}\n\n.fa-square-git:before {\n content: \"\\f1d2\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-square-tumblr:before {\n content: \"\\f174\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-creative-commons-nc-jp:before {\n content: \"\\f4ea\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-perbyte:before {\n content: \"\\e083\";\n}\n\n.fa-grunt:before {\n content: \"\\f3ad\";\n}\n\n.fa-weebly:before {\n content: \"\\f5cc\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-themeco:before {\n content: \"\\f5c6\";\n}\n\n.fa-python:before {\n content: \"\\f3e2\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-bots:before {\n content: \"\\e340\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-hornbill:before {\n content: \"\\f592\";\n}\n\n.fa-js:before {\n content: \"\\f3b8\";\n}\n\n.fa-ideal:before {\n content: \"\\e013\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-dev:before {\n content: \"\\f6cc\";\n}\n\n.fa-sketch:before {\n content: \"\\f7c6\";\n}\n\n.fa-yandex-international:before {\n content: \"\\f414\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-uber:before {\n content: \"\\f402\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-php:before {\n content: \"\\f457\";\n}\n\n.fa-alipay:before {\n content: \"\\f642\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-firefox-browser:before {\n content: \"\\e007\";\n}\n\n.fa-replyd:before {\n content: \"\\f3e6\";\n}\n\n.fa-suse:before {\n content: \"\\f7d6\";\n}\n\n.fa-jenkins:before {\n content: \"\\f3b6\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-rockrms:before {\n content: \"\\f3e9\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-buffer:before {\n content: \"\\f837\";\n}\n\n.fa-npm:before {\n content: \"\\f3d4\";\n}\n\n.fa-yammer:before {\n content: \"\\f840\";\n}\n\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-stubber:before {\n content: \"\\e5c7\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-telegram-plane:before {\n content: \"\\f2c6\";\n}\n\n.fa-old-republic:before {\n content: \"\\f510\";\n}\n\n.fa-odysee:before {\n content: \"\\e5c6\";\n}\n\n.fa-square-whatsapp:before {\n content: \"\\f40c\";\n}\n\n.fa-whatsapp-square:before {\n content: \"\\f40c\";\n}\n\n.fa-node-js:before {\n content: \"\\f3d3\";\n}\n\n.fa-edge-legacy:before {\n content: \"\\e078\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-slack-hash:before {\n content: \"\\f198\";\n}\n\n.fa-medrt:before {\n content: \"\\f3c8\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-vaadin:before {\n content: \"\\f408\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-square-x-twitter:before {\n content: \"\\e61a\";\n}\n\n.fa-reacteurope:before {\n content: \"\\f75d\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-medium-m:before {\n content: \"\\f23a\";\n}\n\n.fa-amilia:before {\n content: \"\\f36d\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-flipboard:before {\n content: \"\\f44d\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-critical-role:before {\n content: \"\\f6c9\";\n}\n\n.fa-sitrox:before {\n content: \"\\e44a\";\n}\n\n.fa-discourse:before {\n content: \"\\f393\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-mastodon:before {\n content: \"\\f4f6\";\n}\n\n.fa-airbnb:before {\n content: \"\\f834\";\n}\n\n.fa-wolf-pack-battalion:before {\n content: \"\\f514\";\n}\n\n.fa-buy-n-large:before {\n content: \"\\f8a6\";\n}\n\n.fa-gulp:before {\n content: \"\\f3ae\";\n}\n\n.fa-creative-commons-sampling-plus:before {\n content: \"\\f4f1\";\n}\n\n.fa-strava:before {\n content: \"\\f428\";\n}\n\n.fa-ember:before {\n content: \"\\f423\";\n}\n\n.fa-canadian-maple-leaf:before {\n content: \"\\f785\";\n}\n\n.fa-teamspeak:before {\n content: \"\\f4f9\";\n}\n\n.fa-pushed:before {\n content: \"\\f3e1\";\n}\n\n.fa-wordpress-simple:before {\n content: \"\\f411\";\n}\n\n.fa-nutritionix:before {\n content: \"\\f3d6\";\n}\n\n.fa-wodu:before {\n content: \"\\e088\";\n}\n\n.fa-google-pay:before {\n content: \"\\e079\";\n}\n\n.fa-intercom:before {\n content: \"\\f7af\";\n}\n\n.fa-zhihu:before {\n content: \"\\f63f\";\n}\n\n.fa-korvue:before {\n content: \"\\f42f\";\n}\n\n.fa-pix:before {\n content: \"\\e43a\";\n}\n\n.fa-steam-symbol:before {\n content: \"\\f3f6\";\n}\n\nhtml {\n /*****************************************************************************\n * Overall Layout Variables\n */\n --pst-header-height: 4rem;\n --pst-header-article-height: calc(var(--pst-header-height) * 2 / 3);\n --pst-sidebar-secondary: 17rem;\n}\n\n/*******************************************************************************\n* Breakpoints that trigger UI changes\n*\n* Note that media-breakpoint-down begins at the next highest level!\n* So we should choose a media-breakpoint-down one *lower* than when we want to start\n* example: media-breakpoint-up(md) and media-breakpoint-down(sm) trigger at the same time\n* ref: https://github.com/twbs/bootstrap/issues/31214\n*/\n/*******************************************************************************\n* Define the animation behaviour\n*/\n/*******************************************************************************\n* UI shaping and padding\n*/\nhtml {\n /*****************************************************************************\n * Font features used in this theme\n */\n --pst-font-size-base: 1rem;\n --pst-font-size-h1: 2.625rem;\n --pst-font-size-h2: 2.125rem;\n --pst-font-size-h3: 1.75rem;\n --pst-font-size-h4: 1.5rem;\n --pst-font-size-h5: 1.25rem;\n --pst-font-size-h6: 1rem;\n --pst-font-size-milli: 0.9rem;\n --pst-sidebar-font-size: 0.9rem;\n --pst-sidebar-font-size-mobile: 1.1rem;\n --pst-sidebar-header-font-size: 1.2rem;\n --pst-sidebar-header-font-weight: 600;\n --pst-admonition-font-weight-heading: 600;\n --pst-font-weight-caption: 300;\n --pst-font-weight-heading: 600;\n --pst-font-family-base-system: -apple-system, \"BlinkMacSystemFont\", \"Segoe UI\",\n \"Helvetica Neue\", \"Arial\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\";\n --pst-font-family-monospace-system: \"SFMono-Regular\", \"Menlo\", \"Consolas\",\n \"Monaco\", \"Liberation Mono\", \"Lucida Console\", monospace;\n --pst-font-family-base: var(--pst-font-family-base-system);\n --pst-font-family-heading: var(--pst-font-family-base-system);\n --pst-font-family-monospace: var(--pst-font-family-monospace-system);\n}\n\nhtml {\n /*****************************************************************************\n * Icon\n */\n --pst-font-size-icon: 1.5rem;\n --pst-icon-check-circle: \"\";\n --pst-icon-info-circle: \"\";\n --pst-icon-exclamation-triangle: \"\";\n --pst-icon-exclamation-circle: \"\";\n --pst-icon-times-circle: \"\";\n --pst-icon-lightbulb: \"\";\n --pst-icon-download: \"\";\n --pst-icon-angle-left: \"\";\n --pst-icon-angle-right: \"\";\n --pst-icon-external-link: \"\";\n --pst-icon-search-minus: \"\";\n --pst-icon-github: \"\";\n --pst-icon-gitlab: \"\";\n --pst-icon-share: \"\";\n --pst-icon-bell: \"\";\n --pst-icon-pencil: \"\";\n --pst-breadcrumb-divider: \"\";\n}\n\nhtml {\n /*****************************************************************************\n * Admonitions\n **/\n --pst-icon-admonition-default: var(--pst-icon-bell);\n --pst-icon-admonition-note: var(--pst-icon-info-circle);\n --pst-icon-admonition-attention: var(--pst-icon-exclamation-circle);\n --pst-icon-admonition-caution: var(--pst-icon-exclamation-triangle);\n --pst-icon-admonition-warning: var(--pst-icon-exclamation-triangle);\n --pst-icon-admonition-danger: var(--pst-icon-exclamation-triangle);\n --pst-icon-admonition-error: var(--pst-icon-times-circle);\n --pst-icon-admonition-hint: var(--pst-icon-lightbulb);\n --pst-icon-admonition-tip: var(--pst-icon-lightbulb);\n --pst-icon-admonition-important: var(--pst-icon-exclamation-circle);\n --pst-icon-admonition-seealso: var(--pst-icon-share);\n --pst-icon-admonition-todo: var(--pst-icon-pencil);\n}\n\nhtml {\n /*****************************************************************************\n * versionmodified\n **/\n --pst-icon-versionmodified-default: var(--pst-icon-exclamation-circle);\n --pst-icon-versionmodified-added: var(--pst-icon-exclamation-circle);\n --pst-icon-versionmodified-changed: var(--pst-icon-exclamation-circle);\n --pst-icon-versionmodified-deprecated: var(--pst-icon-exclamation-circle);\n}\n\n/*******************************************************************************\n* master color map. Only the colors that actually differ between light and dark\n* themes are specified separately.\n*\n* To see the full list of colors see https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1234%3A765&t=ifcFT1JtnrSshGfi-1\n*/\n/**\n* Function to get items from nested maps\n*/\n/* Assign base colors for the PyData theme */\n:root {\n --pst-teal-50: #f4fbfc;\n --pst-teal-100: #e9f6f8;\n --pst-teal-200: #d0ecf1;\n --pst-teal-300: #abdde6;\n --pst-teal-400: #3fb1c5;\n --pst-teal-500: #0a7d91;\n --pst-teal-600: #085d6c;\n --pst-teal-700: #064752;\n --pst-teal-800: #042c33;\n --pst-teal-900: #021b1f;\n --pst-violet-50: #f4eefb;\n --pst-violet-100: #e0c7ff;\n --pst-violet-200: #d5b4fd;\n --pst-violet-300: #b780ff;\n --pst-violet-400: #9c5ffd;\n --pst-violet-500: #8045e5;\n --pst-violet-600: #6432bd;\n --pst-violet-700: #4b258f;\n --pst-violet-800: #341a61;\n --pst-violet-900: #1e0e39;\n --pst-gray-50: #f9f9fa;\n --pst-gray-100: #f3f4f5;\n --pst-gray-200: #e5e7ea;\n --pst-gray-300: #d1d5da;\n --pst-gray-400: #9ca4af;\n --pst-gray-500: #677384;\n --pst-gray-600: #48566b;\n --pst-gray-700: #29313d;\n --pst-gray-800: #222832;\n --pst-gray-900: #14181e;\n --pst-pink-50: #fcf8fd;\n --pst-pink-100: #fcf0fa;\n --pst-pink-200: #f8dff5;\n --pst-pink-300: #f3c7ee;\n --pst-pink-400: #e47fd7;\n --pst-pink-500: #c132af;\n --pst-pink-600: #912583;\n --pst-pink-700: #6e1c64;\n --pst-pink-800: #46123f;\n --pst-pink-900: #2b0b27;\n --pst-foundation-white: #ffffff;\n --pst-foundation-black: #14181e;\n}\n\n/*******************************************************************************\n* write the color rules for each theme (light/dark)\n*/\n/* NOTE:\n * Mixins enable us to reuse the same definitions for the different modes\n * https://sass-lang.com/documentation/at-rules/mixin\n * something inserts a variable into a CSS selector or property name\n * https://sass-lang.com/documentation/interpolation\n */\n/* Defaults to light mode if data-theme is not set */\nhtml:not([data-theme]) {\n --pst-color-primary: #0a7d91;\n --pst-color-primary-bg: #d0ecf1;\n --pst-color-secondary: #8045e5;\n --pst-color-secondary-bg: #e0c7ff;\n --pst-color-accent: #c132af;\n --pst-color-accent-bg: #f8dff5;\n --pst-color-info: #276be9;\n --pst-color-info-bg: #dce7fc;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-bg: #f8e3d0;\n --pst-color-success: #00843f;\n --pst-color-success-bg: #d6ece1;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #d72d47;\n --pst-color-danger-bg: #f9e1e4;\n --pst-color-text-base: #222832;\n --pst-color-text-muted: #48566b;\n --pst-color-shadow: rgba(0, 0, 0, 0.1);\n --pst-color-border: #d1d5da;\n --pst-color-border-muted: rgba(23, 23, 26, 0.2);\n --pst-color-blockquote-notch: #677384;\n --pst-color-inline-code: #912583;\n --pst-color-inline-code-links: #085d6c;\n --pst-color-target: #f3cf95;\n --pst-color-table: #14181e;\n --pst-color-table-row-hover-bg: #d5b4fd;\n --pst-color-table-inner-border: #e5e7ea;\n --pst-color-background: #ffffff;\n --pst-color-on-background: #ffffff;\n --pst-color-surface: #f3f4f5;\n --pst-color-on-surface: #222832;\n}\nhtml:not([data-theme]) {\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n}\nhtml:not([data-theme]) .only-dark,\nhtml:not([data-theme]) .only-dark ~ figcaption {\n display: none !important;\n}\n\n/* NOTE: @each {...} is like a for-loop\n * https://sass-lang.com/documentation/at-rules/control/each\n */\nhtml[data-theme=light] {\n --pst-color-primary: #0a7d91;\n --pst-color-primary-bg: #d0ecf1;\n --pst-color-secondary: #8045e5;\n --pst-color-secondary-bg: #e0c7ff;\n --pst-color-accent: #c132af;\n --pst-color-accent-bg: #f8dff5;\n --pst-color-info: #276be9;\n --pst-color-info-bg: #dce7fc;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-bg: #f8e3d0;\n --pst-color-success: #00843f;\n --pst-color-success-bg: #d6ece1;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #d72d47;\n --pst-color-danger-bg: #f9e1e4;\n --pst-color-text-base: #222832;\n --pst-color-text-muted: #48566b;\n --pst-color-shadow: rgba(0, 0, 0, 0.1);\n --pst-color-border: #d1d5da;\n --pst-color-border-muted: rgba(23, 23, 26, 0.2);\n --pst-color-blockquote-notch: #677384;\n --pst-color-inline-code: #912583;\n --pst-color-inline-code-links: #085d6c;\n --pst-color-target: #f3cf95;\n --pst-color-table: #14181e;\n --pst-color-table-row-hover-bg: #d5b4fd;\n --pst-color-table-inner-border: #e5e7ea;\n --pst-color-background: #ffffff;\n --pst-color-on-background: #ffffff;\n --pst-color-surface: #f3f4f5;\n --pst-color-on-surface: #222832;\n color-scheme: light;\n}\nhtml[data-theme=light] {\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n}\nhtml[data-theme=light] .only-dark,\nhtml[data-theme=light] .only-dark ~ figcaption {\n display: none !important;\n}\n\nhtml[data-theme=dark] {\n --pst-color-primary: #3fb1c5;\n --pst-color-primary-bg: #042c33;\n --pst-color-secondary: #9c5ffd;\n --pst-color-secondary-bg: #341a61;\n --pst-color-accent: #e47fd7;\n --pst-color-accent-bg: #46123f;\n --pst-color-info: #79a3f2;\n --pst-color-info-bg: #06245d;\n --pst-color-warning: #ff9245;\n --pst-color-warning-bg: #652a02;\n --pst-color-success: #5fb488;\n --pst-color-success-bg: #002f17;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #e78894;\n --pst-color-danger-bg: #4e111b;\n --pst-color-text-base: #ced6dd;\n --pst-color-text-muted: #9ca4af;\n --pst-color-shadow: rgba(0, 0, 0, 0.2);\n --pst-color-border: #48566b;\n --pst-color-border-muted: #29313d;\n --pst-color-blockquote-notch: #9ca4af;\n --pst-color-inline-code: #f3c7ee;\n --pst-color-inline-code-links: #3fb1c5;\n --pst-color-target: #675c04;\n --pst-color-table: #ffffff;\n --pst-color-table-row-hover-bg: #4b258f;\n --pst-color-table-inner-border: #364150;\n --pst-color-background: #14181e;\n --pst-color-on-background: #222832;\n --pst-color-surface: #29313d;\n --pst-color-on-surface: #f3f4f5;\n /* Adjust images in dark mode (unless they have class .only-dark or\n * .dark-light, in which case assume they're already optimized for dark\n * mode).\n */\n /* Give images a light background in dark mode in case they have\n * transparency and black text (unless they have class .only-dark or .dark-light, in\n * which case assume they're already optimized for dark mode).\n */\n color-scheme: dark;\n}\nhtml[data-theme=dark] {\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n}\nhtml[data-theme=dark] .only-light,\nhtml[data-theme=dark] .only-light ~ figcaption {\n display: none !important;\n}\nhtml[data-theme=dark] img:not(.only-dark, .dark-light) {\n filter: brightness(0.8) contrast(1.2);\n}\nhtml[data-theme=dark] .bd-content img:not(.only-dark, .dark-light) {\n background-color: rgb(255, 255, 255);\n border-radius: 0.25rem;\n}\nhtml[data-theme=dark] .MathJax_SVG * {\n fill: var(--pst-color-text-base);\n}\n\n.pst-color-primary {\n color: var(--pst-color-primary);\n}\n\n.pst-color-secondary {\n color: var(--pst-color-secondary);\n}\n\n.pst-color-accent {\n color: var(--pst-color-accent);\n}\n\n.pst-color-info {\n color: var(--pst-color-info);\n}\n\n.pst-color-warning {\n color: var(--pst-color-warning);\n}\n\n.pst-color-success {\n color: var(--pst-color-success);\n}\n\n.pst-color-attention {\n color: var(--pst-color-attention);\n}\n\n.pst-color-danger {\n color: var(--pst-color-danger);\n}\n\n.pst-color-text-base {\n color: var(--pst-color-text-base);\n}\n\n.pst-color-text-muted {\n color: var(--pst-color-text-muted);\n}\n\n.pst-color-shadow {\n color: var(--pst-color-shadow);\n}\n\n.pst-color-border {\n color: var(--pst-color-border);\n}\n\n.pst-color-border-muted {\n color: var(--pst-color-border-muted);\n}\n\n.pst-color-blockquote-notch {\n color: var(--pst-color-blockquote-notch);\n}\n\n.pst-color-inline-code {\n color: var(--pst-color-inline-code);\n}\n\n.pst-color-inline-code-links {\n color: var(--pst-color-inline-code-links);\n}\n\n.pst-color-target {\n color: var(--pst-color-target);\n}\n\n.pst-color-table {\n color: var(--pst-color-table);\n}\n\n.pst-color-table-row-hover {\n color: var(--pst-color-table-row-hover);\n}\n\n.pst-color-table-inner-border {\n color: var(--pst-color-table-inner-border);\n}\n\n.pst-color-background {\n color: var(--pst-color-background);\n}\n\n.pst-color-on-background {\n color: var(--pst-color-on-background);\n}\n\n.pst-color-surface {\n color: var(--pst-color-surface);\n}\n\n.pst-color-on-surface {\n color: var(--pst-color-on-surface);\n}\n\n/**\n * Miscellaneous color functions and mixins\n**/\n/**\n* Function to get items from nested maps\n*/\n/**\n * Function to check if the color needs converting to a \"color\" type\n * if it is a string we cannot use other color manipulation functions\n * It is used to create the sphinx-design colours as these are often interpolated\n */\n/**\n * Function to convert the string representation of a color to a color type (hex)\n */\n/*********************************************\n* SASS Mixins\n*********************************************/\n/**\n * A consistent box shadow style we apply across elements.\n */\n/**\n * Set background of some cell outputs to white-ish to make sure colors work\n * This is because many libraries make output that only looks good on white\n */\nhtml {\n font-size: var(--pst-font-size-base);\n scroll-padding-top: calc(var(--pst-header-height) + 1rem);\n}\n\nbody {\n background-color: var(--pst-color-background);\n font-family: var(--pst-font-family-base);\n font-weight: 400;\n line-height: 1.65;\n color: var(--pst-color-text-base);\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n}\nbody::-webkit-scrollbar-track {\n background-color: var(--pst-color-background);\n}\n\np {\n margin-bottom: 1.15rem;\n font-size: 1em;\n /* section header in docstring pages */\n}\np.rubric {\n border-bottom: 1px solid var(--pst-color-border);\n}\np.centered {\n text-align: center;\n}\n\na {\n word-wrap: break-word;\n color: var(--pst-color-link);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\na:hover {\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\na:active {\n color: var(--pst-color-link);\n}\na:visited {\n color: var(--pst-color-link);\n}\na:visited:hover {\n color: var(--pst-color-link-hover);\n}\na.headerlink {\n color: var(--pst-color-secondary);\n font-size: 0.8em;\n padding: 0 4px;\n margin-left: 0.2em;\n text-decoration: none;\n user-select: none;\n}\na.github::before, a.gitlab::before {\n color: var(--pst-color-text-muted);\n font: var(--fa-font-brands);\n margin-right: 0.25rem;\n}\na.github::before {\n content: var(--pst-icon-github);\n}\na.gitlab::before {\n content: var(--pst-icon-gitlab);\n}\n\nh6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {\n margin: 2.75rem 0 1.05rem;\n font-family: var(--pst-font-family-heading);\n font-weight: var(--pst-font-weight-heading);\n line-height: 1.15;\n}\n\nh1, .h1 {\n margin-top: 0;\n font-size: var(--pst-font-size-h1);\n color: var(--pst-color-heading);\n}\n\nh2, .h2 {\n font-size: var(--pst-font-size-h2);\n color: var(--pst-color-heading);\n}\n\nh3, .h3 {\n font-size: var(--pst-font-size-h3);\n color: var(--pst-color-heading);\n}\n\nh4, .h4 {\n font-size: var(--pst-font-size-h4);\n color: var(--pst-color-heading);\n}\n\nh5, .h5 {\n font-size: var(--pst-font-size-h5);\n color: var(--pst-color-text-base);\n}\n\nh6, .h6 {\n font-size: var(--pst-font-size-h6);\n color: var(--pst-color-text-base);\n}\n\nsmall, .small,\n.text_small {\n font-size: var(--pst-font-size-milli);\n}\n\nhr {\n border: 0;\n border-top: 1px solid var(--pst-color-border);\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--pst-font-family-monospace);\n}\n\nkbd {\n background-color: var(--pst-color-on-background);\n color: var(--pst-color-text-muted);\n}\nkbd:not(.compound) {\n border: 1px solid var(--pst-color-border);\n margin: 0 0.1rem;\n padding: 0.1rem 0.4rem;\n box-shadow: 1px 1px 1px var(--pst-color-shadow);\n}\n\ncode {\n color: var(--pst-color-inline-code);\n}\n\npre {\n margin: 1.5em 0;\n padding: 1rem;\n background-color: var(--pst-color-surface);\n color: var(--pst-color-text-base);\n line-height: 1.2em;\n border: 1px solid var(--pst-color-border);\n border-radius: 0.25rem;\n}\npre .linenos {\n opacity: 0.8;\n padding-right: 10px;\n}\n\n#pst-back-to-top {\n z-index: 1080;\n position: fixed;\n display: none;\n top: 90vh;\n left: 50vw;\n transform: translate(-50%);\n color: var(--pst-color-secondary-text);\n background-color: var(--pst-color-secondary);\n border: none;\n}\n#pst-back-to-top .fa-arrow-up {\n margin-inline-end: 0.5em;\n}\n#pst-back-to-top:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: 1px;\n background-color: var(--pst-color-secondary-highlight);\n color: var(--pst-color-secondary-highlight-text);\n}\n#pst-back-to-top:focus-visible {\n box-shadow: none;\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-color: var(--pst-color-secondary);\n outline-offset: 0.1875rem;\n}\n\n:focus-visible {\n outline: var(--pst-color-accent) solid 0.1875rem;\n box-shadow: none;\n}\n\n/***\n * Rules for the UX/UI of skip navigation link btn.\n * It's only visible to people\n * navigating with keyboard for accessibility purposes\n * ref: https://www.youtube.com/watch?v=VUR0I5mqq7I\n ***/\n.skip-link {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n text-align: center;\n background-color: var(--pst-color-warning);\n padding: 0.5rem;\n z-index: 1055;\n border-bottom: 1px solid var(--pst-color-border);\n transform: translateY(-100%);\n transition: transform 150ms ease-in-out;\n}\n.skip-link:focus-within {\n transform: translateY(0%);\n}\n.skip-link a {\n color: var(--pst-color-warning-text) !important;\n}\n.skip-link a:focus-visible {\n outline-color: #14181e;\n}\n\n.bd-container {\n flex-grow: 1;\n display: flex;\n justify-content: center;\n}\n.bd-container .bd-container__inner {\n display: flex;\n}\n\n.bd-page-width {\n width: 100%;\n}\n@media (min-width: 960px) {\n .bd-page-width {\n max-width: 88rem;\n }\n}\n\n.pst-async-banner-revealer {\n height: 0;\n overflow: hidden;\n transition: height 300ms ease-in-out;\n}\n@media (prefers-reduced-motion) {\n .pst-async-banner-revealer {\n transition: none;\n }\n}\n\n#bd-header-version-warning,\n.bd-header-announcement {\n min-height: 3rem;\n width: 100%;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 0.5rem 12.5%;\n}\n@media (max-width: 959.98px) {\n #bd-header-version-warning,\n .bd-header-announcement {\n padding: 0.5rem 2%;\n }\n}\n#bd-header-version-warning p,\n.bd-header-announcement p {\n font-weight: bold;\n margin: 0;\n}\n#bd-header-version-warning a,\n.bd-header-announcement a {\n color: var(--pst-color-inline-code-links);\n}\n#bd-header-version-warning .pst-button-link-to-stable-version,\n.bd-header-announcement .pst-button-link-to-stable-version {\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n background-color: var(--pst-color-danger);\n border-color: var(--pst-color-danger);\n color: var(--pst-color-danger-text);\n border-radius: 0.25rem;\n}\n#bd-header-version-warning .pst-button-link-to-stable-version:hover,\n.bd-header-announcement .pst-button-link-to-stable-version:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: 1px;\n background-color: var(--pst-color-danger-highlight);\n border-color: var(--pst-color-danger-highlight);\n color: var(--pst-color-danger-highlight-text);\n}\n#bd-header-version-warning .pst-button-link-to-stable-version:focus-visible,\n.bd-header-announcement .pst-button-link-to-stable-version:focus-visible {\n outline: 0.1875rem solid var(--pst-color-danger);\n outline-offset: 0.1875rem;\n}\n\n.bd-header-announcement {\n background-color: var(--pst-color-secondary-bg);\n}\n\n#bd-header-version-warning {\n background-color: var(--pst-color-danger-bg);\n}\n\n/**\n * Main content area\n */\n.bd-main {\n flex-grow: 1;\n flex-direction: column;\n display: flex;\n min-width: 0;\n}\n.bd-main .bd-content {\n display: flex;\n justify-content: center;\n height: 100%;\n}\n.bd-main .bd-content .bd-article-container {\n justify-content: start;\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 60em;\n overflow-x: auto;\n padding: 1rem;\n}\n@media (min-width: 1200px) {\n .bd-main .bd-content .bd-article-container .bd-article {\n padding-top: 1.5rem;\n padding-left: 2rem;\n }\n}\n\n.bd-footer {\n width: 100%;\n border-top: 1px solid var(--pst-color-border);\n}\n.bd-footer .bd-footer__inner {\n display: flex;\n flex-grow: 1;\n padding: 1rem;\n margin: auto;\n}\n.bd-footer .footer-items__start,\n.bd-footer .footer-items__center,\n.bd-footer .footer-items__end {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n justify-content: center;\n flex-grow: 1;\n}\n.bd-footer .footer-items__center {\n text-align: center;\n}\n.bd-footer .footer-items__end {\n text-align: end;\n}\n.bd-footer .footer-item p {\n margin-bottom: 0;\n}\n\n.bd-footer-article {\n margin-top: auto;\n}\n.bd-footer-article .footer-article-items {\n display: flex;\n flex-direction: column;\n}\n\n.bd-footer-content .footer-content-items {\n display: flex;\n flex-direction: column;\n margin-top: auto;\n}\n\n/**\n * Header at the top of the page\n * It includes the announcement bar and the navigation bar.\n */\n.bd-header {\n position: sticky;\n top: 0;\n z-index: 1030;\n background-color: var(--pst-color-on-background) !important;\n box-shadow: 0 0.125rem 0.25rem 0 var(--pst-color-shadow);\n width: 100%;\n padding: 0;\n max-width: 100vw;\n justify-content: center;\n}\n.bd-header .bd-header__inner {\n display: flex;\n align-items: center;\n height: fit-content;\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.bd-header :focus-visible {\n border-radius: 0.125rem;\n}\n.bd-header .navbar-item {\n height: var(--pst-header-height);\n max-height: var(--pst-header-height);\n display: flex;\n align-items: center;\n}\n.bd-header .navbar-header-items {\n display: none;\n flex-shrink: 1;\n}\n@media (min-width: 960px) {\n .bd-header .navbar-header-items {\n display: inherit;\n flex-grow: 1;\n padding: 0 0 0 0.5rem;\n }\n}\n.bd-header .navbar-header-items__end,\n.bd-header .navbar-header-items__center,\n.bd-header .navbar-header-items__start {\n display: flex;\n align-items: center;\n flex-flow: wrap;\n row-gap: 0;\n}\n.bd-header .navbar-header-items__end,\n.bd-header .navbar-header-items__center {\n column-gap: 1.12rem;\n}\n.bd-header .navbar-header-items__start {\n flex-shrink: 0;\n margin-right: auto;\n gap: 0.5rem;\n}\n.bd-header .navbar-header-items__end {\n justify-content: end;\n}\n.bd-header ul.navbar-nav {\n display: flex;\n}\n@media (min-width: 960px) {\n .bd-header ul.navbar-nav {\n align-items: baseline;\n }\n}\n.bd-header ul.navbar-nav > li.nav-item {\n margin-inline: 2px;\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link {\n color: var(--pst-color-text-muted);\n position: relative;\n padding-inline: 6px;\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0;\n background-color: transparent;\n bottom: calc(-1 * max(3px, .1875rem, .12em));\n margin: max(3px, .1875rem, .12em) 0;\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link:hover {\n color: var(--pst-color-secondary);\n text-decoration: none;\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link:hover::before {\n border-bottom: max(3px, .1875rem, .12em) solid var(--pst-color-secondary);\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link:focus-visible {\n box-shadow: none;\n outline: 3px solid var(--pst-color-accent);\n outline-offset: 0.1875rem;\n}\n.bd-header ul.navbar-nav > li.nav-item.current > .nav-link {\n color: var(--pst-color-primary);\n}\n.bd-header ul.navbar-nav > li.nav-item.current > .nav-link::before {\n border-bottom: 3px solid var(--pst-color-primary);\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown {\n margin-inline: 4px;\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown button {\n padding-inline: 8px;\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown > .dropdown-toggle {\n border-radius: 0.125rem;\n color: var(--pst-color-text-muted);\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown > .dropdown-toggle:focus-visible {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown > .dropdown-toggle:hover {\n text-decoration: none;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-link-hover);\n color: var(--pst-color-text-base);\n}\n.bd-header ul.navbar-nav li a.nav-link.dropdown-item {\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\n.bd-header ul.navbar-nav li a.nav-link.dropdown-item:hover {\n color: var(--pst-color-link-hover);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n.bd-header ul.navbar-nav .dropdown button {\n display: unset;\n border: none;\n}\n.bd-header ul.navbar-nav .dropdown button:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu {\n z-index: 1070;\n border: 1px solid var(--pst-color-border);\n box-shadow: 0 0 0.3rem 0.1rem var(--pst-color-shadow);\n background-color: var(--pst-color-on-background);\n padding: 0.5rem 0;\n margin: 0.5rem 0;\n min-width: 20rem;\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item {\n padding: 0.25rem 1.5rem;\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus:not(:hover, :active) {\n background-color: inherit;\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus-visible {\n z-index: 10;\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu:not(.show) {\n display: none;\n}\n.bd-header button.sidebar-toggle {\n font-size: var(--pst-font-size-icon);\n color: var(--pst-color-muted);\n margin-bottom: 0;\n background-color: inherit;\n padding: 0.5rem;\n}\n.bd-header button.primary-toggle {\n margin-right: 1rem;\n}\n@media (min-width: 960px) {\n .bd-header button.primary-toggle {\n display: none;\n }\n}\n.bd-header button.secondary-toggle {\n margin-left: 1rem;\n}\n@media (min-width: 1200px) {\n .bd-header button.secondary-toggle {\n display: none;\n }\n}\n\n@media (min-width: 960px) {\n .navbar-center-items .navbar-item {\n display: inline-block;\n }\n}\n.nav-link {\n transition: none;\n}\n.nav-link:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n}\n.nav-link.nav-external::after {\n font: var(--fa-font-solid);\n content: var(--pst-icon-external-link);\n font-size: 0.75em;\n margin-left: 0.3em;\n}\n\n.bd-navbar-elements li.nav-item i {\n font-size: 0.7rem;\n padding-left: 2px;\n vertical-align: middle;\n}\n\n.navbar-persistent--mobile {\n margin-left: auto;\n}\n@media (min-width: 960px) {\n .navbar-persistent--mobile {\n display: none;\n }\n}\n\n.navbar-persistent--container {\n display: none;\n}\n@media (min-width: 960px) {\n .navbar-persistent--container {\n display: flex;\n }\n}\n\n.header-article__inner {\n padding: 0 0.5rem;\n}\n.header-article__inner .header-article-item {\n min-height: var(--pst-header-article-height);\n}\n.header-article__inner .header-article-items__end {\n margin-left: auto;\n}\n\n/**\n * The primary sidebar on the left.\n * e.g., between-pages navigation.\n */\n.bd-sidebar-primary {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n max-height: calc(100vh - var(--pst-header-height));\n position: sticky;\n top: var(--pst-header-height);\n flex: 0 0 auto;\n width: 25%;\n padding: 2rem 1rem 1rem 1rem;\n border-right: 1px solid var(--pst-color-border);\n background-color: var(--pst-color-background);\n overflow-y: auto;\n font-size: var(--pst-sidebar-font-size-mobile);\n}\n@media (min-width: 960px) {\n .bd-sidebar-primary {\n font-size: var(--pst-sidebar-font-size);\n }\n}\n.bd-sidebar-primary :focus-visible {\n border-radius: 0.125rem;\n}\n.bd-sidebar-primary .nav-link {\n font-size: var(--pst-sidebar-font-size-mobile);\n}\n.bd-sidebar-primary.no-sidebar {\n border-right: 0;\n}\n@media (min-width: 960px) {\n .bd-sidebar-primary.hide-on-wide {\n display: none;\n }\n}\n.bd-sidebar-primary h1, .bd-sidebar-primary .h1,\n.bd-sidebar-primary h2,\n.bd-sidebar-primary .h2,\n.bd-sidebar-primary h3,\n.bd-sidebar-primary .h3,\n.bd-sidebar-primary h4,\n.bd-sidebar-primary .h4 {\n color: var(--pst-color-text-base);\n}\n.bd-sidebar-primary .sidebar-primary-items__start .sidebar-primary-item,\n.bd-sidebar-primary .sidebar-primary-items__end .sidebar-primary-item {\n padding: 0.5rem 0;\n}\n.bd-sidebar-primary .sidebar-header-items {\n display: flex;\n flex-direction: column;\n}\n.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__title {\n font-weight: var(--pst-sidebar-header-font-weight);\n font-size: var(--pst-sidebar-header-font-size);\n color: var(--pst-color-text-base);\n margin-bottom: 0.5rem;\n}\n.bd-sidebar-primary .sidebar-header-items .bd-navbar-elements .nav-link:focus-visible {\n box-shadow: none;\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-offset: 0.1875rem;\n}\n.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__center {\n display: flex;\n flex-direction: column;\n}\n.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__end {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n@media (min-width: 960px) {\n .bd-sidebar-primary .sidebar-header-items {\n display: none;\n }\n}\n.bd-sidebar-primary .sidebar-primary-items__start {\n border-top: 1px solid var(--pst-color-border);\n}\n@media (min-width: 960px) {\n .bd-sidebar-primary .sidebar-primary-items__start {\n border-top: none;\n }\n}\n.bd-sidebar-primary .sidebar-primary-items__end {\n margin-top: auto;\n margin-bottom: 1em;\n}\n.bd-sidebar-primary .list-caption {\n list-style: none;\n padding-left: 0;\n}\n.bd-sidebar-primary .list-caption li.toctree-l0.has-children > details > summary {\n position: relative;\n height: auto;\n width: auto;\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n}\n.bd-sidebar-primary .list-caption li.toctree-l0.has-children > details > summary .toctree-toggle {\n flex: 0 0 auto;\n}\n.bd-sidebar-primary .list-caption li.toctree-l0.has-children > details > summary .toctree-toggle .fa-chevron-down {\n font-size: 1rem;\n}\n.bd-sidebar-primary li.has-children {\n position: relative;\n}\n.bd-sidebar-primary li.has-children > .reference,\n.bd-sidebar-primary li.has-children .caption {\n margin-right: calc(30px + 0.1875rem);\n padding-top: 0.25rem;\n}\n.bd-sidebar-primary li.has-children > details > summary {\n list-style: none;\n}\n.bd-sidebar-primary li.has-children > details > summary::-webkit-details-marker {\n display: none;\n}\n.bd-sidebar-primary li.has-children > details > summary:focus-visible {\n outline: none;\n}\n.bd-sidebar-primary li.has-children > details > summary:focus-visible > .toctree-toggle {\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-offset: -0.1875rem;\n}\n.bd-sidebar-primary li.has-children > details > summary .toctree-toggle {\n cursor: pointer;\n position: absolute;\n top: 0;\n right: 0;\n width: 30px;\n height: 30px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n}\n.bd-sidebar-primary li.has-children > details > summary .toctree-toggle .fa-chevron-down {\n font-size: 0.75rem;\n}\n.bd-sidebar-primary li.has-children > details[open] > summary .fa-chevron-down {\n transform: rotate(180deg);\n}\n\n/* Between-page links and captions */\nnav.bd-links {\n margin-right: -1rem;\n}\n@media (min-width: 960px) {\n nav.bd-links {\n display: block;\n }\n}\nnav.bd-links ul {\n display: block;\n list-style: none;\n}\nnav.bd-links ul ul {\n padding: 0 0 0 1rem;\n}\nnav.bd-links li > a {\n display: block;\n padding: 0.25rem 0.65rem;\n color: var(--pst-color-text-muted);\n text-decoration: none;\n box-shadow: none;\n margin-right: 0.1875rem;\n}\nnav.bd-links li > a:hover {\n text-decoration: underline;\n background-color: transparent;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\nnav.bd-links li > a:active {\n color: var(--pst-color-link-hover);\n}\nnav.bd-links li > a:focus-visible {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n z-index: 10;\n}\nnav.bd-links li > a.reference.external::after {\n font: var(--fa-font-solid);\n content: var(--pst-icon-external-link);\n font-size: 0.75em;\n margin-left: 0.3em;\n}\nnav.bd-links .current > a {\n font-weight: 600;\n color: var(--pst-color-primary);\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);\n background-color: transparent;\n}\nnav.bd-links .current > a:focus-visible {\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary), 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n}\nnav.bd-links p.bd-links__title {\n font-size: var(--pst-sidebar-header-font-size);\n font-weight: var(--pst-sidebar-header-font-weight);\n margin-bottom: 0.5rem;\n}\nnav.bd-links p.caption {\n font-weight: var(--pst-sidebar-header-font-weight);\n position: relative;\n margin-top: 1.25rem;\n margin-bottom: 0.5rem;\n color: var(--pst-color-text-base);\n font-size: var(--pst-sidebar-font-size-mobile);\n}\nnav.bd-links p.caption:first-child {\n margin-top: 0;\n}\n@media (min-width: 960px) {\n nav.bd-links p.caption {\n font-size: var(--pst-sidebar-font-size);\n }\n}\n\n/**\n * Secondary sidebar on the right.\n * e.g., in-page table of contents.\n */\n.bd-sidebar-secondary {\n display: flex;\n order: 2;\n flex-shrink: 0;\n flex-direction: column;\n position: sticky;\n top: var(--pst-header-height);\n max-height: calc(100vh - var(--pst-header-height));\n padding: 2rem 1rem 1rem;\n width: var(--pst-sidebar-secondary);\n font-size: var(--pst-sidebar-font-size-mobile);\n background-color: var(--pst-color-background);\n overflow-y: auto;\n}\n@media (min-width: 1200px) {\n .bd-sidebar-secondary {\n font-size: var(--pst-sidebar-font-size);\n }\n}\n\n.sidebar-secondary-item {\n padding: 0.5rem;\n}\n@media (min-width: 1200px) {\n .sidebar-secondary-item {\n border-left: 1px solid var(--pst-color-border);\n padding-left: 1rem;\n }\n}\n.sidebar-secondary-item i {\n padding-right: 0.5rem;\n}\n\n/*******************************************************************************\n* Rules for the UX/UI of sidebar sliding drawers on mobile\n* Note that this sheet controls styles across many parts of the theme\n* It is aggregated into this one sheet instead of being split across\n* components in order to keep it easier to debug in one place.\n* It is broken up into major sections below.\n*/\n/*******************************************************************************\n* Sidebar drawer behavior\n*/\n/**\n * NOTE: We use this mixin to define the toggle behavior on narrow screens,\n * And the wide-screen behavior of the sections is defined in their own section\n * .scss files.\n */\n.bd-sidebar::backdrop {\n background-color: black;\n opacity: 0.5;\n}\n\n@media (max-width: 959.98px) {\n .bd-sidebar-primary {\n position: fixed;\n top: 0;\n z-index: 1055;\n height: 100vh;\n max-height: 100vh;\n width: 75%;\n flex-grow: 0.75;\n max-width: 350px;\n transition: visibility 200ms ease-out, margin 200ms ease-out;\n visibility: hidden;\n border: 0;\n margin-left: -75%;\n left: 0;\n }\n}\n.bd-sidebar-primary[open] {\n margin-left: 0;\n visibility: visible;\n}\n\n@media (max-width: 1199.98px) {\n .bd-sidebar-secondary {\n position: fixed;\n top: 0;\n z-index: 1055;\n height: 100vh;\n max-height: 100vh;\n width: 75%;\n flex-grow: 0.75;\n max-width: 350px;\n transition: visibility 200ms ease-out, margin 200ms ease-out;\n visibility: hidden;\n border: 0;\n margin-right: -75%;\n right: 0;\n }\n}\n.bd-sidebar-secondary[open] {\n margin-right: 0;\n visibility: visible;\n}\n\n/**\n * Breadcrumbs for parent pages meant for the article header\n */\nul.bd-breadcrumbs {\n list-style: none;\n padding-left: 0;\n display: flex;\n flex-wrap: wrap;\n font-size: 0.8rem;\n}\nul.bd-breadcrumbs li.breadcrumb-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow-x: hidden;\n font-weight: bold;\n}\nul.bd-breadcrumbs li.breadcrumb-item a,\nul.bd-breadcrumbs li.breadcrumb-item .ellipsis {\n overflow-x: hidden;\n text-overflow: ellipsis;\n margin: 0.1875rem;\n}\nul.bd-breadcrumbs li.breadcrumb-item a {\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\nul.bd-breadcrumbs li.breadcrumb-item a:hover {\n color: var(--pst-color-link-hover);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\nul.bd-breadcrumbs li.breadcrumb-item:not(.breadcrumb-home)::before {\n font: var(--fa-font-solid);\n font-size: 0.8rem;\n content: var(--pst-breadcrumb-divider);\n color: var(--pst-color-text-muted);\n padding: 0 0.5rem;\n}\n\n/**\n * Icon links in the navbar\n */\nhtml .pst-navbar-icon {\n box-sizing: border-box;\n min-width: 24px;\n min-height: 24px;\n color: var(--pst-color-text-muted);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 0;\n border: none;\n font-size: 1rem;\n line-height: 1.65;\n padding: 0.25rem 0;\n height: 2.15rem;\n}\nhtml .pst-navbar-icon::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0;\n background-color: transparent;\n bottom: calc(-1 * max(3px, .1875rem, .12em));\n margin: max(3px, .1875rem, .12em) 0;\n}\nhtml .pst-navbar-icon:hover {\n color: var(--pst-color-secondary);\n text-decoration: none;\n}\nhtml .pst-navbar-icon:hover::before {\n border-bottom: max(3px, .1875rem, .12em) solid var(--pst-color-secondary);\n}\nhtml .pst-navbar-icon:focus-visible {\n box-shadow: none;\n outline: 3px solid var(--pst-color-accent);\n outline-offset: 0.1875rem;\n}\n\nul.navbar-icon-links {\n display: flex;\n flex-flow: row wrap;\n column-gap: 1.12rem;\n justify-content: space-evenly;\n align-items: center;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\nul.navbar-icon-links i {\n /* Social media buttons hard-code the brand color */\n}\nul.navbar-icon-links i.fa-brands, ul.navbar-icon-links i.fa-regular, ul.navbar-icon-links i.fa-solid {\n vertical-align: middle;\n font-style: normal;\n font-size: var(--pst-font-size-icon);\n}\nul.navbar-icon-links i.fa-square-twitter::before {\n color: #55acee;\n}\nul.navbar-icon-links i.fa-square-gitlab::before {\n color: #548;\n}\nul.navbar-icon-links i.fa-bitbucket::before {\n color: #0052cc;\n}\nul.navbar-icon-links img.icon-link-image {\n height: 1.5em;\n border-radius: 0.2rem;\n}\nul.navbar-icon-links .fa-pydata {\n stroke: var(--pst-color-background);\n stroke-linejoin: round;\n stroke-width: 0.35;\n}\n\n/**\n * Logo in the navbar\n */\n.navbar-brand {\n position: relative;\n height: var(--pst-header-height);\n max-height: var(--pst-header-height);\n padding: 0.5rem 0;\n width: auto;\n margin: 0;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n}\n.navbar-brand p {\n color: var(--pst-color-text-base);\n margin-bottom: 0;\n}\n.navbar-brand img {\n max-width: 100%;\n height: 100%;\n width: auto;\n}\n.navbar-brand:hover, .navbar-brand:visited:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n color: var(--pst-color-text-base);\n}\n\n/**\n * Navigation links in the navbar and icon links\n */\nul.navbar-nav ul {\n padding: 0 0 0 1rem;\n}\nul.navbar-nav li {\n display: flex;\n flex-direction: column;\n}\nul.navbar-nav li a {\n display: flex;\n align-items: center;\n height: 100%;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\nul.navbar-nav li a:hover {\n color: var(--pst-color-link-hover);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n\n/**\n * The list of in-page TOC links\n */\n.page-toc .section-nav {\n padding-left: 0;\n border-bottom: none;\n}\n.page-toc .section-nav ul {\n padding-left: 1rem;\n}\n.page-toc .nav-link {\n font-size: var(--pst-sidebar-font-size-mobile);\n}\n@media (min-width: 1200px) {\n .page-toc .nav-link {\n font-size: var(--pst-sidebar-font-size);\n }\n}\n.page-toc .onthispage {\n color: var(--pst-color-text-base);\n font-weight: var(--pst-sidebar-header-font-weight);\n margin-bottom: 0.5rem;\n}\n\n/**\n* Previous / Next navigation buttons\n**/\n.prev-next-area {\n width: 100%;\n}\n.prev-next-area p {\n color: var(--pst-color-text-muted);\n margin: 0 0.3em;\n line-height: 1.3em;\n}\n.prev-next-area i {\n font-size: 1.2em;\n}\n.prev-next-area a {\n display: flex;\n align-items: center;\n border: none;\n padding: 10px;\n max-width: 45%;\n overflow-x: hidden;\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\n.prev-next-area a p.prev-next-title {\n word-wrap: break-word;\n color: var(--pst-color-link);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n font-weight: var(--pst-admonition-font-weight-heading);\n font-size: 1.1em;\n}\n.prev-next-area a p.prev-next-title:hover {\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n.prev-next-area a p.prev-next-title:active {\n color: var(--pst-color-link);\n}\n.prev-next-area a p.prev-next-title:visited {\n color: var(--pst-color-link);\n}\n.prev-next-area a p.prev-next-title:visited:hover {\n color: var(--pst-color-link-hover);\n}\n.prev-next-area a:hover p.prev-next-title, .prev-next-area a:visited:hover p.prev-next-title {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n}\n.prev-next-area a .prev-next-info {\n flex-direction: column;\n margin: 0 0.5em;\n}\n.prev-next-area a .prev-next-info .prev-next-subtitle {\n text-transform: capitalize;\n}\n.prev-next-area a.left-prev {\n float: left;\n}\n.prev-next-area a.right-next {\n float: right;\n}\n.prev-next-area a.right-next div.prev-next-info {\n text-align: right;\n}\n\n/**\n * Search field\n **/\n.bd-search {\n position: relative;\n padding-left: 0.5rem;\n gap: 0.5rem;\n background-color: var(--pst-color-background);\n border-radius: 0.25rem;\n border: 1px solid var(--pst-color-border);\n color: var(--pst-color-text-base);\n}\n.bd-search:active {\n background-color: var(--pst-color-background);\n color: var(--pst-color-text-muted);\n}\n.bd-search:focus-within {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.bd-search:focus-within input:focus {\n box-shadow: none;\n}\n.bd-search .icon {\n position: absolute;\n color: var(--pst-color-border);\n left: 25px;\n}\n.bd-search .fa-solid.fa-magnifying-glass {\n position: absolute;\n left: calc((2.5rem - 0.7em) / 2);\n color: var(--pst-color-text-muted);\n}\n.bd-search input.form-control {\n background-color: var(--pst-color-background);\n color: var(--pst-color-text-base);\n border: none;\n}\n.bd-search input.form-control::placeholder {\n color: var(--pst-color-text-muted);\n}\n.bd-search input.form-control::-webkit-search-cancel-button, .bd-search input.form-control::-webkit-search-decoration {\n appearance: none;\n}\n.bd-search input.form-control:focus, .bd-search input.form-control:focus-visible {\n color: var(--pst-color-text-muted);\n}\n.bd-search .search-button__kbd-shortcut {\n display: none;\n margin-inline-end: 0.5rem;\n color: var(--pst-color-border);\n}\n@media (min-width: 720px) {\n .bd-search .search-button__kbd-shortcut {\n display: flex;\n }\n}\n\n/**\n * Search button - located in the navbar\n */\n.search-button i {\n font-size: 1.3rem;\n}\n\n/**\n * The search modal \n */\n#pst-search-dialog {\n display: none;\n}\n#pst-search-dialog[open] {\n display: flex;\n position: fixed;\n z-index: 1055;\n top: 30%;\n left: 50%;\n transform: translate(-50%, -50%);\n right: 1rem;\n margin-top: 0.5rem;\n width: 90%;\n max-width: 800px;\n background-color: transparent;\n padding: 0.1875rem;\n border: none;\n}\n#pst-search-dialog[open]::backdrop {\n background-color: black;\n opacity: 0.5;\n}\n#pst-search-dialog[open] form.bd-search {\n flex-grow: 1;\n}\n#pst-search-dialog[open] form.bd-search svg,\n#pst-search-dialog[open] form.bd-search input {\n font-size: var(--pst-font-size-icon);\n}\n\n/**\n * The search button component that looks like a field.\n * Lives at components/search-button-field.html\n */\n.search-button-field {\n display: inline-flex;\n align-items: center;\n border: var(--pst-color-border) solid 1px;\n border-radius: 1.5em;\n color: var(--pst-color-text-muted);\n padding: 0.5em;\n background-color: var(--pst-color-surface);\n}\n.search-button-field:hover {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-link-hover);\n}\n.search-button-field:focus-visible {\n border-radius: 1.5em;\n}\n.search-button-field .search-button__default-text {\n font-size: var(--bs-nav-link-font-size);\n font-weight: var(--bs-nav-link-font-weight);\n margin-right: 0.5em;\n margin-left: 0.5em;\n}\n.search-button-field .kbd-shortcut__modifier {\n font-size: 0.75em;\n}\n.search-button-field > * {\n align-items: center;\n}\n.search-button-field > :not(svg) {\n display: none;\n}\n@media (min-width: 960px) {\n .search-button-field > :not(svg) {\n display: flex;\n }\n}\n\n/**\n * The 'Hide Search Matches' button.\n * This only shows up when a person lands on a page after clicking a search result.\n * Clicking it removes the highlighting of the search term from the page.\n * We want it to behave like a button.\n */\ndiv#searchbox p.highlight-link {\n margin: 1rem 0;\n width: fit-content;\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n}\n@media (min-width: 1200px) {\n div#searchbox p.highlight-link {\n margin-left: 2rem;\n }\n}\ndiv#searchbox p.highlight-link a {\n border-radius: 0.25rem;\n font-size: 1.25rem;\n padding: 0.75rem;\n background-color: var(--pst-color-primary);\n color: var(--pst-color-primary-text);\n text-decoration: none;\n transition: box-shadow 0.25s ease-out;\n}\ndiv#searchbox p.highlight-link a:hover {\n box-shadow: inset 0 0 50px 50px rgba(0, 0, 0, 0.25);\n}\ndiv#searchbox p.highlight-link a::before {\n content: var(--pst-icon-search-minus);\n color: unset;\n font: var(--fa-font-solid);\n margin-right: 0.5rem;\n}\n\n/**\n * Light/dark theme switcher\n */\n.theme-switch-button .theme-switch {\n display: none;\n}\n.theme-switch-button .theme-switch:active {\n text-decoration: none;\n color: var(--pst-color-link-hover);\n}\n.theme-switch-button .theme-switch .fa-lg {\n aspect-ratio: 1/1;\n}\n\nhtml[data-mode=auto] .theme-switch-button .theme-switch[data-mode=auto] {\n display: inline;\n}\n\nhtml[data-mode=light] .theme-switch-button .theme-switch[data-mode=light] {\n display: inline;\n}\n\nhtml[data-mode=dark] .theme-switch-button .theme-switch[data-mode=dark] {\n display: inline;\n}\n\nbutton.btn.version-switcher__button {\n border-color: var(--pst-color-border);\n color: var(--pst-color-text-base);\n margin-bottom: 1em;\n}\n@media (min-width: 960px) {\n button.btn.version-switcher__button {\n margin-bottom: unset;\n }\n}\nbutton.btn.version-switcher__button:hover {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-secondary);\n border-color: transparent;\n}\nbutton.btn.version-switcher__button:active {\n color: var(--pst-color-text-base);\n border-color: var(--pst-color-border);\n}\nbutton.btn.version-switcher__button:focus-visible {\n border-color: transparent;\n}\n\n.version-switcher__menu {\n border-color: var(--pst-color-border);\n border-radius: var(--bs-dropdown-border-radius);\n}\n.version-switcher__menu a.list-group-item {\n background-color: var(--pst-color-on-background);\n color: var(--pst-color-text-base);\n padding: 0.75rem 1.25rem;\n}\n.version-switcher__menu a.list-group-item:not(:last-child) {\n border-bottom: 1px solid var(--pst-color-border);\n}\n.version-switcher__menu a.list-group-item:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n background-color: var(--pst-color-surface);\n}\n.version-switcher__menu a.list-group-item.active {\n font-weight: 600;\n color: var(--pst-color-primary);\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);\n position: relative;\n z-index: 1;\n}\n.version-switcher__menu a.list-group-item.active:focus-visible {\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary), 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n}\n.version-switcher__menu a.list-group-item.active span::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: -1;\n left: 0;\n top: 0;\n}\n.version-switcher__menu a.list-group-item:focus-visible {\n z-index: 10;\n}\n\nbutton.version-switcher__button,\n.version-switcher__menu {\n font-size: 1.1em;\n z-index: 1055;\n box-sizing: border-box;\n min-width: 24px;\n min-height: 24px;\n}\n@media (min-width: 960px) {\n button.version-switcher__button,\n .version-switcher__menu {\n font-size: unset;\n }\n}\n\n/* Collapsing of the TOC sidebar while scrolling */\n/* Nav: hide second level (shown on .active) */\nnav.page-toc {\n margin-bottom: 1rem;\n}\n\n.bd-toc .nav .nav {\n display: none;\n}\n.bd-toc .nav .nav.visible {\n display: block;\n}\n.bd-toc .nav > .active > ul {\n display: block;\n}\n\n.toc-entry {\n display: block;\n}\n.toc-entry a > code {\n color: var(--pst-color-text-muted);\n}\n.toc-entry a.nav-link {\n display: block;\n padding: 0.25rem 0;\n padding-left: 1rem;\n margin-left: -1rem;\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\n.toc-entry a.nav-link:hover {\n text-decoration: underline;\n background-color: transparent;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n.toc-entry a.nav-link:active {\n color: var(--pst-color-link-hover);\n}\n.toc-entry a.nav-link:focus-visible {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n z-index: 10;\n}\n.toc-entry a.nav-link.active {\n font-weight: 600;\n color: var(--pst-color-primary);\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);\n background-color: transparent;\n}\n.toc-entry a.nav-link.active:focus-visible {\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary), 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n}\n.toc-entry a.nav-link.active:hover {\n color: var(--pst-color-link-hover);\n}\n.toc-entry a.nav-link:focus-visible {\n border-radius: 0.125rem;\n}\n\ndiv.versionadded,\ndiv.versionchanged,\ndiv.deprecated {\n vertical-align: middle;\n margin: 1.5625em auto;\n padding: 0 0.6rem;\n overflow: hidden;\n /* break-inside has replaced page-break-inside and is widely usable since 2019 */\n page-break-inside: avoid;\n break-inside: avoid;\n border-left: 0.2rem solid;\n border-color: var(--pst-color-info);\n border-radius: 0.25rem;\n background-color: var(--pst-color-on-background);\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n position: relative;\n}\ndiv.versionadded > p,\ndiv.versionchanged > p,\ndiv.deprecated > p {\n margin-bottom: 0.6rem;\n margin-top: 0.6rem;\n}\n\ndiv.versionadded {\n border-color: var(--pst-color-success);\n background-color: var(--pst-color-success-bg);\n}\n\ndiv.versionchanged {\n border-color: var(--pst-color-warning);\n background-color: var(--pst-color-warning-bg);\n}\n\ndiv.deprecated {\n border-color: var(--pst-color-danger);\n background-color: var(--pst-color-danger-bg);\n}\n\nspan.versionmodified {\n font-weight: 600;\n}\nspan.versionmodified::before {\n margin-right: 0.6rem;\n color: var(--pst-color-info);\n font: var(--fa-font-solid);\n content: var(--pst-icon-versionmodified-default);\n}\n\nspan.versionmodified.added::before {\n color: var(--pst-color-success);\n content: var(--pst-icon-versionmodified-added);\n}\n\nspan.versionmodified.changed::before {\n color: var(--pst-color-warning);\n content: var(--pst-icon-versionmodified-changed);\n}\n\nspan.versionmodified.deprecated::before {\n color: var(--pst-color-danger);\n content: var(--pst-icon-versionmodified-deprecated);\n}\n\n.sidebar-indices-items {\n display: flex;\n flex-direction: column;\n border-top: 1px solid var(--pst-color-border);\n}\n@media (min-width: 960px) {\n .sidebar-indices-items {\n border-top: none;\n }\n}\n.sidebar-indices-items .sidebar-indices-items__title {\n font-weight: var(--pst-sidebar-header-font-weight);\n font-size: var(--pst-sidebar-header-font-size);\n color: var(--pst-color-text-base);\n margin-bottom: 0.5rem;\n}\n.sidebar-indices-items ul.indices-link {\n margin-right: -1rem;\n list-style: none;\n padding: 0;\n}\n.sidebar-indices-items ul.indices-link li > a {\n display: block;\n padding: 0.25rem 0;\n color: var(--pst-color-text-muted);\n}\n.sidebar-indices-items ul.indices-link li > a:hover {\n color: var(--pst-color-primary);\n text-decoration: none;\n background-color: transparent;\n}\n\n/**\n * Admonitions and blocks of styled content.\n * Admonitions CSS originally inspired by https://squidfunk.github.io/mkdocs-material/getting-started/\n */\ndiv.admonition,\n.admonition {\n margin: 1.5625em auto;\n padding: 0 0.6rem 0.8rem;\n overflow: hidden;\n /* break-inside has replaced page-break-inside and is widely usable since 2019 */\n page-break-inside: avoid;\n break-inside: avoid;\n border-left: 0.2rem solid;\n border-color: var(--pst-color-info);\n border-radius: 0.25rem;\n background-color: var(--pst-color-on-background);\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n /**\n * Special-case for a `sidebar` class that makes the admonition float to\n * the right like the {sidebar} directive.\n */\n}\ndiv.admonition *:last-child,\n.admonition *:last-child {\n margin-bottom: 0;\n}\ndiv.admonition p.admonition-title ~ *,\n.admonition p.admonition-title ~ * {\n margin-left: 1.4rem;\n margin-right: 1.4rem;\n}\ndiv.admonition > ol,\ndiv.admonition > ul,\n.admonition > ol,\n.admonition > ul {\n margin-left: 1em;\n}\ndiv.admonition > .admonition-title,\n.admonition > .admonition-title {\n margin: 0 -0.6rem;\n padding: 0.4rem 0.6rem 0.4rem 2rem;\n font-weight: var(--pst-admonition-font-weight-heading);\n position: relative;\n background-color: var(--pst-color-info-bg);\n z-index: 1;\n}\ndiv.admonition > .admonition-title::before,\n.admonition > .admonition-title::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: -1;\n pointer-events: none;\n}\ndiv.admonition > .admonition-title::after,\n.admonition > .admonition-title::after {\n position: absolute;\n left: 0.5rem;\n width: 1rem;\n height: 1rem;\n color: var(--pst-color-info);\n font: var(--fa-font-solid);\n line-height: inherit;\n content: var(--pst-icon-admonition-default);\n opacity: 1;\n}\ndiv.admonition > .admonition-title + *,\n.admonition > .admonition-title + * {\n margin-top: 0.4em;\n}\ndiv.admonition.attention,\n.admonition.attention {\n border-color: var(--pst-color-attention);\n}\ndiv.admonition.attention > .admonition-title,\n.admonition.attention > .admonition-title {\n background-color: var(--pst-color-attention-bg);\n}\ndiv.admonition.attention > .admonition-title::after,\n.admonition.attention > .admonition-title::after {\n color: var(--pst-color-attention);\n content: var(--pst-icon-admonition-attention);\n}\ndiv.admonition.caution,\n.admonition.caution {\n border-color: var(--pst-color-warning);\n}\ndiv.admonition.caution > .admonition-title,\n.admonition.caution > .admonition-title {\n background-color: var(--pst-color-warning-bg);\n}\ndiv.admonition.caution > .admonition-title::after,\n.admonition.caution > .admonition-title::after {\n color: var(--pst-color-warning);\n content: var(--pst-icon-admonition-caution);\n}\ndiv.admonition.warning,\n.admonition.warning {\n border-color: var(--pst-color-warning);\n}\ndiv.admonition.warning > .admonition-title,\n.admonition.warning > .admonition-title {\n background-color: var(--pst-color-warning-bg);\n}\ndiv.admonition.warning > .admonition-title::after,\n.admonition.warning > .admonition-title::after {\n color: var(--pst-color-warning);\n content: var(--pst-icon-admonition-warning);\n}\ndiv.admonition.danger,\n.admonition.danger {\n border-color: var(--pst-color-danger);\n}\ndiv.admonition.danger > .admonition-title,\n.admonition.danger > .admonition-title {\n background-color: var(--pst-color-danger-bg);\n}\ndiv.admonition.danger > .admonition-title::after,\n.admonition.danger > .admonition-title::after {\n color: var(--pst-color-danger);\n content: var(--pst-icon-admonition-danger);\n}\ndiv.admonition.error,\n.admonition.error {\n border-color: var(--pst-color-danger);\n}\ndiv.admonition.error > .admonition-title,\n.admonition.error > .admonition-title {\n background-color: var(--pst-color-danger-bg);\n}\ndiv.admonition.error > .admonition-title::after,\n.admonition.error > .admonition-title::after {\n color: var(--pst-color-danger);\n content: var(--pst-icon-admonition-error);\n}\ndiv.admonition.hint,\n.admonition.hint {\n border-color: var(--pst-color-success);\n}\ndiv.admonition.hint > .admonition-title,\n.admonition.hint > .admonition-title {\n background-color: var(--pst-color-success-bg);\n}\ndiv.admonition.hint > .admonition-title::after,\n.admonition.hint > .admonition-title::after {\n color: var(--pst-color-success);\n content: var(--pst-icon-admonition-hint);\n}\ndiv.admonition.tip,\n.admonition.tip {\n border-color: var(--pst-color-success);\n}\ndiv.admonition.tip > .admonition-title,\n.admonition.tip > .admonition-title {\n background-color: var(--pst-color-success-bg);\n}\ndiv.admonition.tip > .admonition-title::after,\n.admonition.tip > .admonition-title::after {\n color: var(--pst-color-success);\n content: var(--pst-icon-admonition-tip);\n}\ndiv.admonition.important,\n.admonition.important {\n border-color: var(--pst-color-attention);\n}\ndiv.admonition.important > .admonition-title,\n.admonition.important > .admonition-title {\n background-color: var(--pst-color-attention-bg);\n}\ndiv.admonition.important > .admonition-title::after,\n.admonition.important > .admonition-title::after {\n color: var(--pst-color-attention);\n content: var(--pst-icon-admonition-important);\n}\ndiv.admonition.note,\n.admonition.note {\n border-color: var(--pst-color-info);\n}\ndiv.admonition.note > .admonition-title,\n.admonition.note > .admonition-title {\n background-color: var(--pst-color-info-bg);\n}\ndiv.admonition.note > .admonition-title::after,\n.admonition.note > .admonition-title::after {\n color: var(--pst-color-info);\n content: var(--pst-icon-admonition-note);\n}\ndiv.admonition.seealso,\n.admonition.seealso {\n border-color: var(--pst-color-success);\n}\ndiv.admonition.seealso > .admonition-title,\n.admonition.seealso > .admonition-title {\n background-color: var(--pst-color-success-bg);\n}\ndiv.admonition.seealso > .admonition-title::after,\n.admonition.seealso > .admonition-title::after {\n color: var(--pst-color-success);\n content: var(--pst-icon-admonition-seealso);\n}\ndiv.admonition.admonition-todo,\n.admonition.admonition-todo {\n border-color: var(--pst-color-secondary);\n}\ndiv.admonition.admonition-todo > .admonition-title,\n.admonition.admonition-todo > .admonition-title {\n background-color: var(--pst-color-secondary-bg);\n}\ndiv.admonition.admonition-todo > .admonition-title::after,\n.admonition.admonition-todo > .admonition-title::after {\n color: var(--pst-color-secondary);\n content: var(--pst-icon-admonition-todo);\n}\ndiv.admonition.sidebar,\n.admonition.sidebar {\n max-width: 40%;\n float: right;\n clear: both;\n margin-left: 0.5rem;\n margin-top: 0;\n border-width: 0 0 0 0.2rem;\n}\ndiv.admonition.sidebar.attention, div.admonition.sidebar.important,\n.admonition.sidebar.attention,\n.admonition.sidebar.important {\n border-color: var(--pst-color-attention);\n}\ndiv.admonition.sidebar.caution, div.admonition.sidebar.warning,\n.admonition.sidebar.caution,\n.admonition.sidebar.warning {\n border-color: var(--pst-color-warning);\n}\ndiv.admonition.sidebar.danger, div.admonition.sidebar.error,\n.admonition.sidebar.danger,\n.admonition.sidebar.error {\n border-color: var(--pst-color-danger);\n}\ndiv.admonition.sidebar.hint, div.admonition.sidebar.tip, div.admonition.sidebar.seealso,\n.admonition.sidebar.hint,\n.admonition.sidebar.tip,\n.admonition.sidebar.seealso {\n border-color: var(--pst-color-success);\n}\ndiv.admonition.sidebar.note, div.admonition.sidebar.todo,\n.admonition.sidebar.note,\n.admonition.sidebar.todo {\n border-color: var(--pst-color-info);\n}\ndiv.admonition.sidebar p.admonition-title ~ *,\n.admonition.sidebar p.admonition-title ~ * {\n margin-left: 0;\n margin-right: 0;\n}\n\n/**************************************************************\n * Similar content blocks that are not technically admonitions.\n */\n/**\n * Topics and the {contents} directive\n */\ndiv.topic,\ndiv.topic.contents,\nnav.contents,\naside.topic {\n display: flex;\n flex-direction: column;\n background-color: var(--pst-color-surface);\n border-color: var(--pst-color-border);\n border-radius: 0.25rem;\n padding: 1rem 1.25rem;\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n}\ndiv.topic .topic-title,\ndiv.topic.contents .topic-title,\nnav.contents .topic-title,\naside.topic .topic-title {\n margin: 0 0 0.5rem;\n}\ndiv.topic p,\ndiv.topic.contents p,\nnav.contents p,\naside.topic p {\n color: var(--pst-color-on-surface) !important;\n}\ndiv.topic ul.simple,\ndiv.topic.contents ul.simple,\nnav.contents ul.simple,\naside.topic ul.simple {\n padding-left: 1rem;\n}\ndiv.topic ul.simple ul,\ndiv.topic.contents ul.simple ul,\nnav.contents ul.simple ul,\naside.topic ul.simple ul {\n padding-left: 2em;\n}\n\n/**\n * Sidebar directive\n */\naside.sidebar {\n border: 1px solid var(--pst-color-border);\n background-color: var(--pst-color-surface);\n border-radius: 0.25rem;\n margin-left: 0.5rem;\n padding: 0;\n}\naside.sidebar > *:last-child {\n padding-bottom: 1rem;\n}\naside.sidebar p.sidebar-title {\n position: relative;\n margin-bottom: 0;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n border-bottom: 1px solid var(--pst-color-border);\n font-family: var(--pst-font-family-heading);\n font-weight: var(--pst-admonition-font-weight-heading);\n}\naside.sidebar > *:not(.sidebar-title):first-child,\naside.sidebar > p.sidebar-title + * {\n margin-top: 1rem;\n}\naside.sidebar > * {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n/**\n * Rubrics look kind of like section headers\n */\np.rubric {\n display: flex;\n flex-direction: column;\n}\n\n/**\n * Seealso is kind of like a vertically-collapsed admonition\n */\n.seealso dd {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n/*******************************************************************************\n* Styling for field lists\n*/\n/* grey highlighting of 'parameter' and 'returns' field */\ntable.field-list {\n border-collapse: separate;\n border-spacing: 10px;\n margin-left: 1px;\n /* italic font for parameter types */\n}\ntable.field-list th.field-name {\n padding: 1px 8px 1px 5px;\n white-space: nowrap;\n background-color: var(--pst-color-surface);\n}\ntable.field-list td.field-body {\n /* reduced space around parameter description */\n}\ntable.field-list td.field-body p {\n font-style: italic;\n}\ntable.field-list td.field-body p > strong {\n font-style: normal;\n}\ntable.field-list td.field-body blockquote {\n border-left: none;\n margin: 0 0 0.3em;\n padding-left: 30px;\n}\n\n/*******************************************************************************\n* Styling for autosummary tables\n*/\n.table.autosummary td:first-child {\n white-space: nowrap;\n}\n\n/* overriding basic.css to use our own monospace font */\n.sig {\n font-family: var(--pst-font-family-monospace);\n}\n\n/* C++ specific styling - overriding the basic.css to avoid custom colors */\n.sig-inline.c-texpr,\n.sig-inline.cpp-texpr {\n font-family: unset;\n}\n\n.sig.c .k,\n.sig.c .kt,\n.sig.cpp .k,\n.sig.cpp .kt {\n color: var(--pst-color-text-base);\n}\n\n.sig.c .m,\n.sig.cpp .m {\n color: var(--pst-color-text-base);\n}\n\n.sig.c .s,\n.sig.c .sc,\n.sig.cpp .s,\n.sig.cpp .sc {\n color: var(--pst-color-text-base);\n}\n\n.sig-name {\n color: var(--pst-color-inline-code);\n}\n\n.sig-param .o,\n.sig-param .default_value {\n color: var(--pst-color-text-muted);\n font-weight: normal;\n}\n\ndt:target,\nspan.highlighted {\n background-color: var(--pst-color-target);\n}\n\n.viewcode-back {\n font-family: var(--pst-font-family-base);\n}\n\n.viewcode-block:target {\n border-top: 1px solid var(--pst-color-border);\n border-bottom: 1px solid var(--pst-color-border);\n position: relative;\n background-color: var(--pst-color-target);\n}\n\ndl > dt > a:has(.viewcode-link) {\n float: right;\n}\ndl > dt > a:has(.viewcode-link) .viewcode-link {\n float: none;\n}\n\n/*******************************************************************************\n* Styling for autosummary titles like \"parameters\" and \"returns\"\n*/\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) {\n margin-bottom: 3rem;\n}\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dd {\n margin-left: 2rem;\n}\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dd > dl.simple > dt {\n display: flex;\n}\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dl.field-list {\n display: grid;\n grid-template-columns: unset;\n}\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dt.field-odd,\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dt.field-even {\n margin-top: 0.2rem;\n margin-bottom: 0.1rem;\n background-color: var(--pst-color-surface);\n}\n\n/**\n * Code block styling\n * Note that we inherit a lot of styling from Bootstrap so not many rules here.\n */\ndiv[class*=highlight-],\ndiv.highlight,\ndiv.literal-block-wrapper {\n display: flex;\n flex-direction: column;\n width: unset;\n border-radius: 0.25rem;\n break-inside: avoid;\n}\n\ndiv.literal-block-wrapper {\n border: 1px solid var(--pst-color-border);\n border-radius: 0.25rem;\n}\ndiv.literal-block-wrapper div.code-block-caption {\n margin: 0;\n border-bottom: 1px solid var(--pst-color-border);\n padding: 0.5rem;\n font-size: 1rem;\n font-weight: var(--pst-font-weight-caption);\n}\ndiv.literal-block-wrapper div.code-block-caption a.headerlink {\n font-size: inherit;\n}\ndiv.literal-block-wrapper div[class*=highlight-] {\n margin: 0;\n border-radius: 0;\n}\ndiv.literal-block-wrapper div[class*=highlight-] pre {\n border: none;\n box-shadow: none;\n}\n\n/**\n * In-line code\n */\ncode.literal {\n padding: 0.1rem 0.25rem;\n background-color: var(--pst-color-surface);\n border: 1px solid var(--pst-color-border);\n border-radius: 0.25rem;\n}\n\na > code {\n color: var(--pst-color-inline-code-links);\n}\na > code:hover {\n color: var(--pst-color-link-hover);\n}\n\nspan.linenos {\n opacity: 0.8 !important;\n}\n\nfigure > a,\nfigure > a > img,\nfigure > img,\nfigure > video {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\nfigure a.headerlink {\n position: absolute;\n font-size: inherit;\n}\nfigure:hover a.headerlink {\n visibility: visible;\n}\nfigure figcaption {\n font-family: var(--pst-font-family-heading);\n font-weight: var(--pst-font-weight-caption);\n color: var(--pst-color-text-muted);\n margin-left: auto;\n margin-right: auto;\n margin-top: 0.3rem;\n text-align: center;\n}\nfigure figcaption > p:last-child {\n margin-bottom: 0;\n}\nfigure figcaption p {\n text-align: start;\n display: inline-block;\n}\nfigure figcaption table.table {\n width: fit-content;\n margin-left: auto;\n margin-right: auto;\n}\n\ndt.label > span.brackets:not(:only-child)::before {\n content: \"[\";\n}\n\ndt.label > span.brackets:not(:only-child)::after {\n content: \"]\";\n}\n\na.footnote-reference {\n vertical-align: super;\n font-size: small;\n}\n\naside.footnote {\n margin-bottom: 0.5rem;\n}\naside.footnote:last-child {\n margin-bottom: 1rem;\n}\naside.footnote span.label,\naside.footnote span.backrefs {\n font-weight: bold;\n}\naside.footnote:target {\n background-color: var(--pst-color-target);\n}\n\n/**\n * Hacky fixes that don't fit cleanly into other sections\n */\ntable.highlighttable td.linenos,\nspan.linenos,\ndiv.doctest > div.highlight span.gp {\n /* gp: Generic.Prompt */\n user-select: none;\n}\n\ndd {\n margin-top: 3px;\n margin-bottom: 10px;\n margin-left: 30px;\n}\n\nol,\nul {\n padding-inline-start: 2rem;\n}\nol li > p:first-child,\nul li > p:first-child {\n margin-bottom: 0.25rem;\n margin-top: 0.25rem;\n}\n\nblockquote {\n padding: 1em;\n color: var(--pst-color-text-muted);\n border-left: 0.25em solid var(--pst-color-blockquote-notch);\n border-radius: 0.25rem;\n position: relative;\n background-color: var(--pst-color-surface);\n}\nblockquote p {\n color: var(--pst-color-text-base);\n}\nblockquote .line-block {\n margin: 0;\n}\nblockquote p:last-child {\n margin-bottom: 0;\n}\nblockquote::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: -1;\n pointer-events: none;\n}\nblockquote a {\n color: var(--pst-color-inline-code-links);\n}\nblockquote::before {\n z-index: -1;\n}\n\n/**\n * Span-level styling within content\n */\nspan.guilabel {\n border: 1px solid var(--pst-color-info);\n font-size: 80%;\n font-weight: 700;\n border-radius: 4px;\n padding: 2.4px 6px;\n margin: auto 2px;\n position: relative;\n background-color: var(--pst-color-info-bg);\n}\nspan.guilabel::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: -1;\n pointer-events: none;\n}\n\na.reference.download::before {\n content: var(--pst-icon-download);\n font: var(--fa-font-solid);\n font-size: 0.8em;\n padding: 0 0.25em;\n color: var(--pst-color-text-muted);\n}\n\n/**\n * Tables\n */\ntable {\n margin-left: auto;\n margin-right: auto;\n}\ntable.table-right {\n margin-right: 0;\n}\ntable.table-left {\n margin-left: 0;\n}\n\ntable caption {\n text-align: center;\n caption-side: top;\n color: var(--pst-color-text-muted);\n}\n\nth.text-left,\ntd.text-left {\n text-align: left;\n}\nth.text-right,\ntd.text-right {\n text-align: right;\n}\nth.text-center,\ntd.text-center {\n text-align: center;\n}\n\n.table {\n color: var(--pst-color-table);\n border: 1px solid var(--pst-color-table-outer-border);\n --bs-table-bg: transparent;\n --bs-table-color: var(\n --pst-color-text-base\n );\n}\n.table th ~ th,\n.table th ~ td,\n.table td ~ th,\n.table td ~ td {\n border-left: 1px solid var(--pst-color-table-inner-border);\n}\n.table thead tr {\n background-color: var(--pst-color-table-heading-bg);\n border-bottom: 2px solid var(--pst-color-primary);\n}\n.table tbody tr:nth-child(odd) {\n background-color: var(--pst-color-table-row-zebra-low-bg);\n}\n.table tbody tr:nth-child(even) {\n background-color: var(--pst-color-table-row-zebra-high-bg);\n}\n\n.pst-scrollable-table-container {\n overflow-x: auto;\n}\n\n/**\n * Style the toctree component in pages (avoid modifying the navbars)\n */\n.toctree-wrapper p.caption {\n font-size: 1.5em;\n margin-bottom: 0;\n}\n.toctree-wrapper > ul {\n padding-left: 0;\n}\n.toctree-wrapper li[class^=toctree-l] {\n list-style: none;\n margin-bottom: 0.2em;\n}\n.toctree-wrapper li[class^=toctree-l] > a {\n list-style: none;\n font-size: 1.1em;\n}\n.toctree-wrapper li[class^=toctree-l] > ul {\n list-style: none;\n padding-inline-start: 1.5em;\n}\n.toctree-wrapper .toctree-l1 > a {\n font-size: 1.3em;\n}\n\ndiv.topic.contents ul.simple,\nnav.contents ul.simple {\n list-style: none;\n padding-left: 0;\n}\n\n/**\n * Mathematics via MathJax.\n *\n * This is designed for MathJax v3\n * ref: https://www.sphinx-doc.org/en/master/usage/extensions/math.html#module-sphinx.ext.mathjax\n */\nspan.math,\ndiv.math {\n align-items: center;\n display: flex;\n max-width: 100%;\n overflow: hidden;\n}\n\nspan.math {\n display: inline-flex;\n}\n\ndiv.math {\n gap: 0.5em;\n flex-direction: row-reverse;\n}\ndiv.math span.eqno a.headerlink {\n position: relative;\n font-size: 1em;\n}\ndiv.math mjx-container {\n flex-grow: 1;\n padding-bottom: 0.2rem;\n overflow: auto;\n}\ndiv.math mjx-container mjx-assistive-mml {\n height: 0;\n}\n\n/**\n * ABlog\n * ref: https://ablog.readthedocs.io/\n */\n/**\n * Sidebar template components\n */\n.ablog-sidebar-item h2, .ablog-sidebar-item .h2,\n.ablog-sidebar-item h3,\n.ablog-sidebar-item .h3 {\n font-size: var(--pst-sidebar-header-font-size);\n margin-top: 0.5rem;\n}\n.ablog-sidebar-item h2 a, .ablog-sidebar-item .h2 a,\n.ablog-sidebar-item h3 a,\n.ablog-sidebar-item .h3 a {\n color: var(--pst-color-text-base);\n}\n.ablog-sidebar-item ul {\n list-style: none;\n padding-left: 0;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n gap: 0.5em;\n margin-bottom: 0;\n}\n.ablog-sidebar-item ul.ablog-cloud {\n flex-flow: row wrap;\n gap: 0.5rem;\n}\n.ablog-sidebar-item ul.ablog-cloud li {\n display: flex;\n align-items: center;\n}\n\n/**\n * Previous / next buttons at the bottom\n */\n.ablog__prev-next {\n font-size: 1.2em;\n display: flex;\n padding: 1rem 0;\n}\n.ablog__prev-next > span {\n display: flex;\n max-width: 45%;\n}\n.ablog__prev-next > span a {\n display: flex;\n align-items: center;\n margin-left: auto;\n gap: 1rem;\n line-height: 1.5rem;\n}\n.ablog__prev-next > span a i::before {\n color: var(--pst-color-text-base);\n}\n.ablog__prev-next span.ablog__prev i.fa-arrow-circle-left::before {\n content: var(--pst-icon-angle-left);\n}\n.ablog__prev-next span.ablog__spacer {\n display: none;\n}\n.ablog__prev-next span.ablog__next {\n margin-left: auto;\n text-align: right;\n}\n.ablog__prev-next span.ablog__next i.fa-arrow-circle-right::before {\n content: var(--pst-icon-angle-right);\n}\n\n/**\n * {postlist} directive and posts page\n */\n.ablog__collection,\n.postlist {\n padding-left: 0;\n}\n.ablog__collection .ablog-post,\n.postlist .ablog-post {\n list-style: none;\n}\n.ablog__collection .ablog-post .ablog-archive,\n.postlist .ablog-post .ablog-archive {\n display: flex;\n flex-flow: row wrap;\n gap: 1rem;\n list-style: none;\n font-size: 0.75rem;\n padding-left: 0;\n}\n.ablog__collection .ablog-post .ablog-post-title,\n.postlist .ablog-post .ablog-post-title {\n margin-top: 0;\n font-size: 1.25rem;\n}\n.ablog__collection .ablog-post .ablog-post-title a,\n.postlist .ablog-post .ablog-post-title a {\n font-weight: bold;\n}\n.ablog__collection .ablog-post .ablog-post-expand,\n.postlist .ablog-post .ablog-post-expand {\n margin-bottom: 0.5rem;\n}\n\n/**\n * Special cases for Bootstrap functionality\n */\n.docutils.container {\n padding-left: unset;\n padding-right: unset;\n margin-left: unset;\n margin-right: unset;\n max-width: unset;\n width: unset;\n}\n\n.btn {\n --bs-btn-focus-box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n\n/**\n * Sphinx Copybutton\n * ref: https://sphinx-copybutton.readthedocs.io/\n */\ndiv.highlight button.copybtn {\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background-color: var(--pst-color-surface);\n}\ndiv.highlight button.copybtn:not(.success) {\n color: var(--pst-color-muted);\n}\ndiv.highlight button.copybtn:hover:not(.success) {\n color: var(--pst-color-text);\n background-color: var(--pst-color-shadow);\n}\ndiv.highlight button.copybtn.o-tooltip--left::after {\n color: var(--pst-color-text);\n background-color: var(--pst-color-surface);\n}\ndiv.highlight button.copybtn:focus {\n opacity: 1;\n}\ndiv.highlight button.copybtn:focus-visible {\n outline: var(--pst-color-accent) solid 0.1875rem;\n}\n\ndiv.highlight:has(button.copybtn) {\n min-height: 2em;\n}\n\n#ethical-ad-placement .ethical-sidebar a,\n#ethical-ad-placement .ethical-sidebar a:visited,\n#ethical-ad-placement .ethical-sidebar a:hover,\n#ethical-ad-placement .ethical-sidebar a:active,\n#ethical-ad-placement .ethical-footer a,\n#ethical-ad-placement .ethical-footer a:visited,\n#ethical-ad-placement .ethical-footer a:hover,\n#ethical-ad-placement .ethical-footer a:active {\n color: var(--pst-color-text-base);\n}\n#ethical-ad-placement .ethical-sidebar,\n#ethical-ad-placement .ethical-footer {\n background-color: var(--pst-color-background);\n border: 1px solid var(--pst-color-border);\n border-radius: 5px;\n color: var(--pst-color-text-base);\n font-size: 14px;\n line-height: 20px;\n}\n\n/**\n * Styles for various Sphinx execution libraries.\n * For now, where these define output sections, we simply revert their background\n * to be a \"light theme\" background. This ensures that inputs/outputs behave similarly,\n * because the CSS is often controlled by each package.\n * In the future, we might add dark theme support for specific packages.\n */\n/******************************************************************************\n * Jupyter Sphinx\n */\n.bd-content div.jupyter_container {\n border: none;\n background-color: unset;\n box-shadow: none;\n}\n.bd-content div.jupyter_container div.output,\n.bd-content div.jupyter_container div.highlight {\n border-radius: 0.25rem;\n}\n.bd-content div.jupyter_container div.highlight {\n background-color: var(--pst-color-surface);\n}\n.bd-content div.jupyter_container .cell_input,\n.bd-content div.jupyter_container .cell_output {\n border-radius: 0.25rem;\n}\n.bd-content div.jupyter_container .cell_input pre,\n.bd-content div.jupyter_container .cell_output pre {\n padding: 1rem;\n}\n\n/* Styles for graphviz generated output from Sphinx */\n/* Style the inheritance diagram such that it has a dark mode */\nhtml[data-theme=dark] div.graphviz > object.inheritance {\n filter: brightness(0.8) invert(0.82) contrast(1.2);\n color-scheme: normal;\n}\n\n/**\n * Special-cases for packages in the PyData ecosystem\n */\n.xr-wrap[hidden] {\n display: block !important;\n}\n\n.jp-OutputArea-output.lm-Widget {\n overflow: auto;\n}\n\n/*******************************************************************************\n* master color map. Only the colors that actually differ between light and dark\n* themes are specified separately.\n*\n* To see the full list of colors see https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1234%3A765&t=ifcFT1JtnrSshGfi-1\n*/\n/**\n* Function to get items from nested maps\n*/\n/* Assign base colors for the PyData theme */\n:root {\n --pst-teal-50: #f4fbfc;\n --pst-teal-100: #e9f6f8;\n --pst-teal-200: #d0ecf1;\n --pst-teal-300: #abdde6;\n --pst-teal-400: #3fb1c5;\n --pst-teal-500: #0a7d91;\n --pst-teal-600: #085d6c;\n --pst-teal-700: #064752;\n --pst-teal-800: #042c33;\n --pst-teal-900: #021b1f;\n --pst-violet-50: #f4eefb;\n --pst-violet-100: #e0c7ff;\n --pst-violet-200: #d5b4fd;\n --pst-violet-300: #b780ff;\n --pst-violet-400: #9c5ffd;\n --pst-violet-500: #8045e5;\n --pst-violet-600: #6432bd;\n --pst-violet-700: #4b258f;\n --pst-violet-800: #341a61;\n --pst-violet-900: #1e0e39;\n --pst-gray-50: #f9f9fa;\n --pst-gray-100: #f3f4f5;\n --pst-gray-200: #e5e7ea;\n --pst-gray-300: #d1d5da;\n --pst-gray-400: #9ca4af;\n --pst-gray-500: #677384;\n --pst-gray-600: #48566b;\n --pst-gray-700: #29313d;\n --pst-gray-800: #222832;\n --pst-gray-900: #14181e;\n --pst-pink-50: #fcf8fd;\n --pst-pink-100: #fcf0fa;\n --pst-pink-200: #f8dff5;\n --pst-pink-300: #f3c7ee;\n --pst-pink-400: #e47fd7;\n --pst-pink-500: #c132af;\n --pst-pink-600: #912583;\n --pst-pink-700: #6e1c64;\n --pst-pink-800: #46123f;\n --pst-pink-900: #2b0b27;\n --pst-foundation-white: #ffffff;\n --pst-foundation-black: #14181e;\n}\n\n/*******************************************************************************\n* write the color rules for each theme (light/dark)\n*/\n/* NOTE:\n * Mixins enable us to reuse the same definitions for the different modes\n * https://sass-lang.com/documentation/at-rules/mixin\n * something inserts a variable into a CSS selector or property name\n * https://sass-lang.com/documentation/interpolation\n */\n/* Defaults to light mode if data-theme is not set */\nhtml:not([data-theme]) {\n --pst-color-primary: #0a7d91;\n --pst-color-primary-bg: #d0ecf1;\n --pst-color-secondary: #8045e5;\n --pst-color-secondary-bg: #e0c7ff;\n --pst-color-accent: #c132af;\n --pst-color-accent-bg: #f8dff5;\n --pst-color-info: #276be9;\n --pst-color-info-bg: #dce7fc;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-bg: #f8e3d0;\n --pst-color-success: #00843f;\n --pst-color-success-bg: #d6ece1;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #d72d47;\n --pst-color-danger-bg: #f9e1e4;\n --pst-color-text-base: #222832;\n --pst-color-text-muted: #48566b;\n --pst-color-shadow: rgba(0, 0, 0, 0.1);\n --pst-color-border: #d1d5da;\n --pst-color-border-muted: rgba(23, 23, 26, 0.2);\n --pst-color-blockquote-notch: #677384;\n --pst-color-inline-code: #912583;\n --pst-color-inline-code-links: #085d6c;\n --pst-color-target: #f3cf95;\n --pst-color-table: #14181e;\n --pst-color-table-row-hover-bg: #d5b4fd;\n --pst-color-table-inner-border: #e5e7ea;\n --pst-color-background: #ffffff;\n --pst-color-on-background: #ffffff;\n --pst-color-surface: #f3f4f5;\n --pst-color-on-surface: #222832;\n}\n\nhtml:not([data-theme]) {\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n}\n\nhtml:not([data-theme]) .only-dark,\nhtml:not([data-theme]) .only-dark ~ figcaption {\n display: none !important;\n}\n\n/* NOTE: @each {...} is like a for-loop\n * https://sass-lang.com/documentation/at-rules/control/each\n */\nhtml[data-theme=light] {\n --pst-color-primary: #0a7d91;\n --pst-color-primary-bg: #d0ecf1;\n --pst-color-secondary: #8045e5;\n --pst-color-secondary-bg: #e0c7ff;\n --pst-color-accent: #c132af;\n --pst-color-accent-bg: #f8dff5;\n --pst-color-info: #276be9;\n --pst-color-info-bg: #dce7fc;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-bg: #f8e3d0;\n --pst-color-success: #00843f;\n --pst-color-success-bg: #d6ece1;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #d72d47;\n --pst-color-danger-bg: #f9e1e4;\n --pst-color-text-base: #222832;\n --pst-color-text-muted: #48566b;\n --pst-color-shadow: rgba(0, 0, 0, 0.1);\n --pst-color-border: #d1d5da;\n --pst-color-border-muted: rgba(23, 23, 26, 0.2);\n --pst-color-blockquote-notch: #677384;\n --pst-color-inline-code: #912583;\n --pst-color-inline-code-links: #085d6c;\n --pst-color-target: #f3cf95;\n --pst-color-table: #14181e;\n --pst-color-table-row-hover-bg: #d5b4fd;\n --pst-color-table-inner-border: #e5e7ea;\n --pst-color-background: #ffffff;\n --pst-color-on-background: #ffffff;\n --pst-color-surface: #f3f4f5;\n --pst-color-on-surface: #222832;\n color-scheme: light;\n}\n\nhtml[data-theme=light] {\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n}\n\nhtml[data-theme=light] .only-dark,\nhtml[data-theme=light] .only-dark ~ figcaption {\n display: none !important;\n}\n\nhtml[data-theme=dark] {\n --pst-color-primary: #3fb1c5;\n --pst-color-primary-bg: #042c33;\n --pst-color-secondary: #9c5ffd;\n --pst-color-secondary-bg: #341a61;\n --pst-color-accent: #e47fd7;\n --pst-color-accent-bg: #46123f;\n --pst-color-info: #79a3f2;\n --pst-color-info-bg: #06245d;\n --pst-color-warning: #ff9245;\n --pst-color-warning-bg: #652a02;\n --pst-color-success: #5fb488;\n --pst-color-success-bg: #002f17;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #e78894;\n --pst-color-danger-bg: #4e111b;\n --pst-color-text-base: #ced6dd;\n --pst-color-text-muted: #9ca4af;\n --pst-color-shadow: rgba(0, 0, 0, 0.2);\n --pst-color-border: #48566b;\n --pst-color-border-muted: #29313d;\n --pst-color-blockquote-notch: #9ca4af;\n --pst-color-inline-code: #f3c7ee;\n --pst-color-inline-code-links: #3fb1c5;\n --pst-color-target: #675c04;\n --pst-color-table: #ffffff;\n --pst-color-table-row-hover-bg: #4b258f;\n --pst-color-table-inner-border: #364150;\n --pst-color-background: #14181e;\n --pst-color-on-background: #222832;\n --pst-color-surface: #29313d;\n --pst-color-on-surface: #f3f4f5;\n /* Adjust images in dark mode (unless they have class .only-dark or\n * .dark-light, in which case assume they're already optimized for dark\n * mode).\n */\n /* Give images a light background in dark mode in case they have\n * transparency and black text (unless they have class .only-dark or .dark-light, in\n * which case assume they're already optimized for dark mode).\n */\n color-scheme: dark;\n}\n\nhtml[data-theme=dark] {\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n}\n\nhtml[data-theme=dark] .only-light,\nhtml[data-theme=dark] .only-light ~ figcaption {\n display: none !important;\n}\n\nhtml[data-theme=dark] img:not(.only-dark, .dark-light) {\n filter: brightness(0.8) contrast(1.2);\n}\n\nhtml[data-theme=dark] .bd-content img:not(.only-dark, .dark-light) {\n background-color: rgb(255, 255, 255);\n border-radius: 0.25rem;\n}\n\nhtml[data-theme=dark] .MathJax_SVG * {\n fill: var(--pst-color-text-base);\n}\n\n.pst-color-primary {\n color: var(--pst-color-primary);\n}\n\n.pst-color-secondary {\n color: var(--pst-color-secondary);\n}\n\n.pst-color-accent {\n color: var(--pst-color-accent);\n}\n\n.pst-color-info {\n color: var(--pst-color-info);\n}\n\n.pst-color-warning {\n color: var(--pst-color-warning);\n}\n\n.pst-color-success {\n color: var(--pst-color-success);\n}\n\n.pst-color-attention {\n color: var(--pst-color-attention);\n}\n\n.pst-color-danger {\n color: var(--pst-color-danger);\n}\n\n.pst-color-text-base {\n color: var(--pst-color-text-base);\n}\n\n.pst-color-text-muted {\n color: var(--pst-color-text-muted);\n}\n\n.pst-color-shadow {\n color: var(--pst-color-shadow);\n}\n\n.pst-color-border {\n color: var(--pst-color-border);\n}\n\n.pst-color-border-muted {\n color: var(--pst-color-border-muted);\n}\n\n.pst-color-blockquote-notch {\n color: var(--pst-color-blockquote-notch);\n}\n\n.pst-color-inline-code {\n color: var(--pst-color-inline-code);\n}\n\n.pst-color-inline-code-links {\n color: var(--pst-color-inline-code-links);\n}\n\n.pst-color-target {\n color: var(--pst-color-target);\n}\n\n.pst-color-table {\n color: var(--pst-color-table);\n}\n\n.pst-color-table-row-hover {\n color: var(--pst-color-table-row-hover);\n}\n\n.pst-color-table-inner-border {\n color: var(--pst-color-table-inner-border);\n}\n\n.pst-color-background {\n color: var(--pst-color-background);\n}\n\n.pst-color-on-background {\n color: var(--pst-color-on-background);\n}\n\n.pst-color-surface {\n color: var(--pst-color-surface);\n}\n\n.pst-color-on-surface {\n color: var(--pst-color-on-surface);\n}\n\n/*******************************************************************************\n * Color and variables\n *\n * This is a list of the semantic color names from sphinx-design (we only\n * need to override variables that sphinx-design has actually defined).\n * https://github.com/executablebooks/sphinx-design/blob/9226a12a/style/_colors.scss#L31-L43\n */\n/**\n * Here we create some extra --pst-color-* variables and use\n * them to override the value of the corresponding sphinx-design variables.\n * This is easier than re-writing the sphinx-design rules. Even easier would be\n * directly assigning our values to the --sd-color-* variables, but then our\n * downstream users couldn't override *our* colors and have it affect buttons\n * and badges.\n *\n * First, define the extra keys needed to cover the full range of semantic\n * color names used in sphinx-design, then merge them with the names we\n * already define for our own needs.\n * see https://sphinx-design.readthedocs.io/en/latest/css_variables.html\n */\nhtml[data-theme=light] {\n --pst-color-primary: rgb(10, 125, 145);\n --pst-color-primary-text: #fff;\n --pst-color-primary-highlight: #086b7c;\n --sd-color-primary: var(--pst-color-primary);\n --sd-color-primary-text: var(--pst-color-primary-text);\n --sd-color-primary-highlight: var(--pst-color-primary-highlight);\n --pst-color-primary-highlight-text: #fff;\n --sd-color-primary-bg: #d0ecf1;\n --sd-color-primary-bg-text: #14181e;\n --pst-color-secondary: rgb(128, 69, 229);\n --pst-color-secondary-text: #fff;\n --pst-color-secondary-highlight: #651ee0;\n --sd-color-secondary: var(--pst-color-secondary);\n --sd-color-secondary-text: var(--pst-color-secondary-text);\n --sd-color-secondary-highlight: var(--pst-color-secondary-highlight);\n --pst-color-secondary-highlight-text: #fff;\n --sd-color-secondary-bg: #e0c7ff;\n --sd-color-secondary-bg-text: #14181e;\n --pst-color-success: #00843f;\n --pst-color-success-text: #fff;\n --pst-color-success-highlight: #007036;\n --sd-color-success: var(--pst-color-success);\n --sd-color-success-text: var(--pst-color-success-text);\n --sd-color-success-highlight: var(--pst-color-success-highlight);\n --pst-color-success-highlight-text: #fff;\n --sd-color-success-bg: #d6ece1;\n --sd-color-success-bg-text: #14181e;\n --pst-color-info: #276be9;\n --pst-color-info-text: #fff;\n --pst-color-info-highlight: #1457d3;\n --sd-color-info: var(--pst-color-info);\n --sd-color-info-text: var(--pst-color-info-text);\n --sd-color-info-highlight: var(--pst-color-info-highlight);\n --pst-color-info-highlight-text: #fff;\n --sd-color-info-bg: #dce7fc;\n --sd-color-info-bg-text: #14181e;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-text: #14181e;\n --pst-color-warning-highlight: #d25a07;\n --sd-color-warning: var(--pst-color-warning);\n --sd-color-warning-text: var(--pst-color-warning-text);\n --sd-color-warning-highlight: var(--pst-color-warning-highlight);\n --pst-color-warning-highlight-text: #14181e;\n --sd-color-warning-bg: #f8e3d0;\n --sd-color-warning-bg-text: #14181e;\n --pst-color-danger: #d72d47;\n --pst-color-danger-text: #fff;\n --pst-color-danger-highlight: #bb2239;\n --sd-color-danger: var(--pst-color-danger);\n --sd-color-danger-text: var(--pst-color-danger-text);\n --sd-color-danger-highlight: var(--pst-color-danger-highlight);\n --pst-color-danger-highlight-text: #fff;\n --sd-color-danger-bg: #f9e1e4;\n --sd-color-danger-bg-text: #14181e;\n --pst-color-light: #f3f4f5;\n --pst-color-light-text: #14181e;\n --pst-color-light-highlight: #c9cfd6;\n --sd-color-light: var(--pst-color-light);\n --sd-color-light-text: var(--pst-color-light-text);\n --sd-color-light-highlight: var(--pst-color-light-highlight);\n --pst-color-light-highlight-text: #14181e;\n --sd-color-light-bg: #f7f7f8;\n --sd-color-light-bg-text: #14181e;\n --pst-color-muted: #29313d;\n --pst-color-muted-text: #fff;\n --pst-color-muted-highlight: #212936;\n --sd-color-muted: var(--pst-color-muted);\n --sd-color-muted-text: var(--pst-color-muted-text);\n --sd-color-muted-highlight: var(--pst-color-muted-highlight);\n --pst-color-muted-highlight-text: #fff;\n --sd-color-muted-bg: #5a6c86;\n --sd-color-muted-bg-text: #fff;\n --pst-color-dark: #222832;\n --pst-color-dark-text: #fff;\n --pst-color-dark-highlight: #1b222c;\n --sd-color-dark: var(--pst-color-dark);\n --sd-color-dark-text: var(--pst-color-dark-text);\n --sd-color-dark-highlight: var(--pst-color-dark-highlight);\n --pst-color-dark-highlight-text: #fff;\n --pst-color-black: #14181e;\n --pst-color-black-text: #fff;\n --pst-color-black-highlight: #10141a;\n --sd-color-black: var(--pst-color-black);\n --sd-color-black-text: var(--pst-color-black-text);\n --sd-color-black-highlight: var(--pst-color-black-highlight);\n --pst-color-black-highlight-text: #fff;\n --pst-color-white: #fff;\n --pst-color-white-text: #14181e;\n --pst-color-white-highlight: #dbd7d7;\n --sd-color-white: var(--pst-color-white);\n --sd-color-white-text: var(--pst-color-white-text);\n --sd-color-white-highlight: var(--pst-color-white-highlight);\n --pst-color-white-highlight-text: #14181e;\n}\n\nhtml[data-theme=dark] {\n --pst-color-primary: rgb(63, 177, 197);\n --pst-color-primary-text: #14181e;\n --pst-color-primary-highlight: #319aac;\n --sd-color-primary: var(--pst-color-primary);\n --sd-color-primary-text: var(--pst-color-primary-text);\n --sd-color-primary-highlight: var(--pst-color-primary-highlight);\n --pst-color-primary-highlight-text: #14181e;\n --sd-color-primary-bg: #042c33;\n --sd-color-primary-bg-text: #fff;\n --pst-color-secondary: rgb(156, 95, 253);\n --pst-color-secondary-text: #14181e;\n --pst-color-secondary-highlight: #7c2bfc;\n --sd-color-secondary: var(--pst-color-secondary);\n --sd-color-secondary-text: var(--pst-color-secondary-text);\n --sd-color-secondary-highlight: var(--pst-color-secondary-highlight);\n --pst-color-secondary-highlight-text: #fff;\n --sd-color-secondary-bg: #341a61;\n --sd-color-secondary-bg-text: #fff;\n --pst-color-success: #5fb488;\n --pst-color-success-text: #14181e;\n --pst-color-success-highlight: #47a373;\n --sd-color-success: var(--pst-color-success);\n --sd-color-success-text: var(--pst-color-success-text);\n --sd-color-success-highlight: var(--pst-color-success-highlight);\n --pst-color-success-highlight-text: #14181e;\n --sd-color-success-bg: #002f17;\n --sd-color-success-bg-text: #fff;\n --pst-color-info: #79a3f2;\n --pst-color-info-text: #14181e;\n --pst-color-info-highlight: #4681ee;\n --sd-color-info: var(--pst-color-info);\n --sd-color-info-text: var(--pst-color-info-text);\n --sd-color-info-highlight: var(--pst-color-info-highlight);\n --pst-color-info-highlight-text: #14181e;\n --sd-color-info-bg: #06245d;\n --sd-color-info-bg-text: #fff;\n --pst-color-warning: #ff9245;\n --pst-color-warning-text: #14181e;\n --pst-color-warning-highlight: #ff7614;\n --sd-color-warning: var(--pst-color-warning);\n --sd-color-warning-text: var(--pst-color-warning-text);\n --sd-color-warning-highlight: var(--pst-color-warning-highlight);\n --pst-color-warning-highlight-text: #14181e;\n --sd-color-warning-bg: #652a02;\n --sd-color-warning-bg-text: #fff;\n --pst-color-danger: #e78894;\n --pst-color-danger-text: #14181e;\n --pst-color-danger-highlight: #df596a;\n --sd-color-danger: var(--pst-color-danger);\n --sd-color-danger-text: var(--pst-color-danger-text);\n --sd-color-danger-highlight: var(--pst-color-danger-highlight);\n --pst-color-danger-highlight-text: #14181e;\n --sd-color-danger-bg: #4e111b;\n --sd-color-danger-bg-text: #fff;\n --pst-color-light: #f3f4f5;\n --pst-color-light-text: #14181e;\n --pst-color-light-highlight: #c9cfd6;\n --sd-color-light: var(--pst-color-light);\n --sd-color-light-text: var(--pst-color-light-text);\n --sd-color-light-highlight: var(--pst-color-light-highlight);\n --pst-color-light-highlight-text: #14181e;\n --sd-color-light-bg: #a3abb2;\n --sd-color-light-bg-text: #14181e;\n --pst-color-muted: #f3f4f5;\n --pst-color-muted-text: #14181e;\n --pst-color-muted-highlight: #c9cfd6;\n --sd-color-muted: var(--pst-color-muted);\n --sd-color-muted-text: var(--pst-color-muted-text);\n --sd-color-muted-highlight: var(--pst-color-muted-highlight);\n --pst-color-muted-highlight-text: #14181e;\n --sd-color-muted-bg: #1d222b;\n --sd-color-muted-bg-text: #fff;\n --pst-color-dark: #222832;\n --pst-color-dark-text: #fff;\n --pst-color-dark-highlight: #1b222c;\n --sd-color-dark: var(--pst-color-dark);\n --sd-color-dark-text: var(--pst-color-dark-text);\n --sd-color-dark-highlight: var(--pst-color-dark-highlight);\n --pst-color-dark-highlight-text: #fff;\n --pst-color-black: #14181e;\n --pst-color-black-text: #fff;\n --pst-color-black-highlight: #10141a;\n --sd-color-black: var(--pst-color-black);\n --sd-color-black-text: var(--pst-color-black-text);\n --sd-color-black-highlight: var(--pst-color-black-highlight);\n --pst-color-black-highlight-text: #fff;\n --pst-color-white: #fff;\n --pst-color-white-text: #14181e;\n --pst-color-white-highlight: #dbd7d7;\n --sd-color-white: var(--pst-color-white);\n --sd-color-white-text: var(--pst-color-white-text);\n --sd-color-white-highlight: var(--pst-color-white-highlight);\n --pst-color-white-highlight-text: #14181e;\n}\n\nhtml[data-theme=light] {\n --sd-color-card-border: var(--pst-color-border);\n}\n\nhtml[data-theme=dark] {\n --sd-color-card-border: var(--pst-color-border);\n}\n\n/*******************************************************************************\n * shadows\n */\nhtml[data-theme=light] .sd-shadow-xs,\nhtml[data-theme=light] .sd-shadow-sm,\nhtml[data-theme=light] .sd-shadow-md,\nhtml[data-theme=light] .sd-shadow-lg {\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n}\n\n/*******************************************************************************\n * cards\n */\n.bd-content .sd-card {\n border: 1px solid var(--pst-color-border);\n}\n.bd-content .sd-card .sd-card-header {\n background-color: var(--pst-color-on-background);\n border-bottom: 1px solid var(--pst-color-border);\n}\n.bd-content .sd-card .sd-card-footer {\n background-color: var(--pst-color-on-background);\n border-top: 1px solid var(--pst-color-border);\n}\n.bd-content .sd-card .sd-card-body {\n background-color: var(--pst-color-on-background);\n}\n.bd-content .sd-card .sd-stretched-link:focus-visible {\n outline: none;\n}\n.bd-content .sd-card .sd-stretched-link:focus-visible::after {\n outline: var(--pst-color-accent) solid 0.1875rem;\n border-radius: 0.25rem;\n}\n.bd-content .sd-card.sd-card-hover:hover {\n border-color: var(--pst-color-link-hover);\n}\n\n/*******************************************************************************\n * tabs\n */\n.bd-content .sd-tab-set > input:checked + label {\n border-style: solid solid none;\n border-color: var(--pst-color-primary) var(--pst-color-primary) transparent;\n border-width: 0.125rem 0.125rem 0;\n border-radius: 0.125rem 0.125rem 0 0;\n background-color: var(--pst-color-on-background);\n transform: translateY(0.125rem);\n color: var(--pst-color-primary);\n}\n.bd-content .sd-tab-set > input:focus-visible + label {\n border: 0.125rem solid var(--pst-color-accent);\n border-radius: 0.125rem;\n background-color: var(--pst-color-accent-bg);\n color: var(--pst-color-on-surface);\n}\n.bd-content .sd-tab-set > input:not(:checked, :focus-visible) + label:hover {\n border-color: transparent;\n color: var(--pst-color-secondary);\n text-decoration-line: underline;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n}\n.bd-content .sd-tab-set > label {\n color: var(--pst-color-on-surface);\n border: 0.125rem solid transparent;\n border-radius: 0.125rem 0.125rem 0 0;\n background-color: var(--pst-color-surface);\n padding: 0 0.75em;\n margin-inline-end: 0.25rem;\n line-height: 1.95;\n}\nhtml[data-theme=dark] .bd-content .sd-tab-set > label {\n background-color: var(--pst-color-on-background);\n}\n.bd-content .sd-tab-set .sd-tab-content {\n border: 0.125rem solid var(--pst-color-primary);\n border-radius: 0.1875rem;\n box-shadow: unset;\n padding: 0.625rem;\n background-color: var(--pst-color-on-background);\n}\n\n/*******************************************************************************\n* Dropdowns\n*/\ndetails.sd-dropdown {\n border: 0 !important;\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n}\ndetails.sd-dropdown summary.sd-card-header {\n border: 0 !important;\n display: flex;\n align-items: center;\n position: relative;\n font-weight: 600;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n --pst-sd-dropdown-color: var(--pst-gray-500);\n --pst-sd-dropdown-bg-color: var(--pst-color-surface);\n background-color: var(--pst-sd-dropdown-bg-color) !important;\n border-left: 0.2rem solid var(--pst-sd-dropdown-color) !important;\n}\ndetails.sd-dropdown summary.sd-card-header + div.sd-summary-content {\n border: 0;\n --pst-sd-dropdown-color: var(--sd-color-card-border);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-primary {\n --pst-sd-dropdown-color: var(--sd-color-primary);\n --pst-sd-dropdown-bg-color: var(--sd-color-primary-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-primary + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-primary);\n --pst-sd-dropdown-bg-color: var(--sd-color-primary-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-primary {\n color: var(--sd-color-primary-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-secondary {\n --pst-sd-dropdown-color: var(--sd-color-secondary);\n --pst-sd-dropdown-bg-color: var(--sd-color-secondary-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-secondary + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-secondary);\n --pst-sd-dropdown-bg-color: var(--sd-color-secondary-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-secondary {\n color: var(--sd-color-secondary-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-success {\n --pst-sd-dropdown-color: var(--sd-color-success);\n --pst-sd-dropdown-bg-color: var(--sd-color-success-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-success + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-success);\n --pst-sd-dropdown-bg-color: var(--sd-color-success-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-success {\n color: var(--sd-color-success-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-info {\n --pst-sd-dropdown-color: var(--sd-color-info);\n --pst-sd-dropdown-bg-color: var(--sd-color-info-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-info + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-info);\n --pst-sd-dropdown-bg-color: var(--sd-color-info-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-info {\n color: var(--sd-color-info-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-warning {\n --pst-sd-dropdown-color: var(--sd-color-warning);\n --pst-sd-dropdown-bg-color: var(--sd-color-warning-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-warning + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-warning);\n --pst-sd-dropdown-bg-color: var(--sd-color-warning-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-warning {\n color: var(--sd-color-warning-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-danger {\n --pst-sd-dropdown-color: var(--sd-color-danger);\n --pst-sd-dropdown-bg-color: var(--sd-color-danger-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-danger + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-danger);\n --pst-sd-dropdown-bg-color: var(--sd-color-danger-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-danger {\n color: var(--sd-color-danger-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-light {\n --pst-sd-dropdown-color: var(--sd-color-light);\n --pst-sd-dropdown-bg-color: var(--sd-color-light-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-light + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-light);\n --pst-sd-dropdown-bg-color: var(--sd-color-light-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-light {\n color: var(--sd-color-light-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-muted {\n --pst-sd-dropdown-color: var(--sd-color-muted);\n --pst-sd-dropdown-bg-color: var(--sd-color-muted-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-muted + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-muted);\n --pst-sd-dropdown-bg-color: var(--sd-color-muted-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-muted {\n color: var(--sd-color-muted-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-dark {\n --pst-sd-dropdown-color: var(--sd-color-dark);\n --pst-sd-dropdown-bg-color: var(--sd-color-dark-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-dark + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-dark);\n --pst-sd-dropdown-bg-color: var(--sd-color-dark-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-dark {\n color: var(--sd-color-dark-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-black {\n --pst-sd-dropdown-color: var(--sd-color-black);\n --pst-sd-dropdown-bg-color: var(--sd-color-black-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-black + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-black);\n --pst-sd-dropdown-bg-color: var(--sd-color-black-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-black {\n color: var(--sd-color-black-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-white {\n --pst-sd-dropdown-color: var(--sd-color-white);\n --pst-sd-dropdown-bg-color: var(--sd-color-white-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-white + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-white);\n --pst-sd-dropdown-bg-color: var(--sd-color-white-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-white {\n color: var(--sd-color-white-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: -1;\n pointer-events: none;\n}\ndetails.sd-dropdown summary.sd-card-header + div.sd-summary-content {\n border-left: 0.2rem solid var(--pst-sd-dropdown-color) !important;\n border-bottom-left-radius: calc(0.25rem - 1px);\n background-color: var(--pst-color-on-background);\n}\ndetails.sd-dropdown summary.sd-card-header span.sd-summary-icon {\n display: inline-flex;\n align-items: center;\n color: var(--pst-sd-dropdown-color) !important;\n}\ndetails.sd-dropdown summary.sd-card-header span.sd-summary-icon svg {\n opacity: 1;\n}\ndetails.sd-dropdown summary.sd-card-header .sd-summary-up,\ndetails.sd-dropdown summary.sd-card-header .sd-summary-down {\n top: 0.7rem;\n}\ndetails.sd-dropdown summary.sd-card-header:hover {\n filter: brightness(0.9);\n}\nhtml[data-theme=dark] details.sd-dropdown summary.sd-card-header:hover {\n filter: brightness(1.1);\n}\ndetails.sd-dropdown summary.sd-card-header:focus:focus-visible {\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n}\ndetails.sd-dropdown[open] summary.sd-card-header:focus:focus-visible {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n/*******************************************************************************\n* Buttons (which in Sphinx Design are actually links that look like buttons)\n* ref: https://sphinx-design.readthedocs.io/en/pydata-theme/badges_buttons.html#buttons\n*/\nhtml .sd-btn {\n min-width: 2.25rem;\n padding: 0.3125rem 0.75rem 0.4375rem;\n}\nhtml .sd-btn:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: 1px;\n}\nhtml .sd-btn-primary:hover {\n color: var(--pst-color-primary-highlight-text) !important;\n}\nhtml .sd-btn-secondary:hover {\n color: var(--pst-color-secondary-highlight-text) !important;\n}\nhtml .sd-btn-success:hover {\n color: var(--pst-color-success-highlight-text) !important;\n}\nhtml .sd-btn-info:hover {\n color: var(--pst-color-info-highlight-text) !important;\n}\nhtml .sd-btn-warning:hover {\n color: var(--pst-color-warning-highlight-text) !important;\n}\nhtml .sd-btn-danger:hover {\n color: var(--pst-color-danger-highlight-text) !important;\n}\nhtml .sd-btn-light:hover {\n color: var(--pst-color-light-highlight-text) !important;\n}\nhtml .sd-btn-muted:hover {\n color: var(--pst-color-muted-highlight-text) !important;\n}\nhtml .sd-btn-dark:hover {\n color: var(--pst-color-dark-highlight-text) !important;\n}\nhtml .sd-btn-black:hover {\n color: var(--pst-color-black-highlight-text) !important;\n}\nhtml .sd-btn-white:hover {\n color: var(--pst-color-white-highlight-text) !important;\n}\nhtml .sd-btn-primary:focus-visible,\nhtml .sd-btn-outline-primary:focus-visible {\n outline: var(--sd-color-primary) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-primary) !important;\n border-color: var(--sd-color-primary) !important;\n}\nhtml .sd-btn-secondary:focus-visible,\nhtml .sd-btn-outline-secondary:focus-visible {\n outline: var(--sd-color-secondary) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-secondary) !important;\n border-color: var(--sd-color-secondary) !important;\n}\nhtml .sd-btn-success:focus-visible,\nhtml .sd-btn-outline-success:focus-visible {\n outline: var(--sd-color-success) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-success) !important;\n border-color: var(--sd-color-success) !important;\n}\nhtml .sd-btn-info:focus-visible,\nhtml .sd-btn-outline-info:focus-visible {\n outline: var(--sd-color-info) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-info) !important;\n border-color: var(--sd-color-info) !important;\n}\nhtml .sd-btn-warning:focus-visible,\nhtml .sd-btn-outline-warning:focus-visible {\n outline: var(--sd-color-warning) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-warning) !important;\n border-color: var(--sd-color-warning) !important;\n}\nhtml .sd-btn-danger:focus-visible,\nhtml .sd-btn-outline-danger:focus-visible {\n outline: var(--sd-color-danger) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-danger) !important;\n border-color: var(--sd-color-danger) !important;\n}\nhtml .sd-btn-light:focus-visible,\nhtml .sd-btn-outline-light:focus-visible {\n outline: var(--sd-color-light) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-light) !important;\n border-color: var(--sd-color-light) !important;\n}\nhtml .sd-btn-muted:focus-visible,\nhtml .sd-btn-outline-muted:focus-visible {\n outline: var(--sd-color-muted) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-muted) !important;\n border-color: var(--sd-color-muted) !important;\n}\nhtml .sd-btn-dark:focus-visible,\nhtml .sd-btn-outline-dark:focus-visible {\n outline: var(--sd-color-dark) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-dark) !important;\n border-color: var(--sd-color-dark) !important;\n}\nhtml .sd-btn-black:focus-visible,\nhtml .sd-btn-outline-black:focus-visible {\n outline: var(--sd-color-black) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-black) !important;\n border-color: var(--sd-color-black) !important;\n}\nhtml .sd-btn-white:focus-visible,\nhtml .sd-btn-outline-white:focus-visible {\n outline: var(--sd-color-white) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-white) !important;\n border-color: var(--sd-color-white) !important;\n}\n\n/**\n * Sphinx togglebutton\n *\n * The rules in this style sheet are meant to tweak the\n * [sphinx-togglebutton](https://sphinx-togglebutton.readthedocs.io/en/latest/index.html)\n * extension so that it matches the look and feel of this theme.\n */\n.bd-content .dropdown.admonition.toggle .admonition-title:hover .tb-icon {\n opacity: 1;\n scale: 1.1;\n}\n.bd-content .dropdown.admonition.toggle .admonition-title .tb-icon {\n opacity: 0.6;\n}\n.bd-content .dropdown.admonition.toggle .admonition-title:hover {\n filter: brightness(0.9);\n}\nhtml[data-theme=dark] .bd-content .dropdown.admonition.toggle .admonition-title:hover {\n filter: brightness(1.1);\n}\n.bd-content .dropdown.admonition.toggle .admonition-title:hover {\n box-shadow: none;\n}\n.bd-content .dropdown.admonition.toggle button.toggle-button {\n color: inherit;\n}\n.bd-content .dropdown.admonition.toggle button.toggle-button.toggle-button-hidden .toggle-chevron-right {\n transform: rotate(90deg);\n transition: none;\n}\n.bd-content .dropdown.admonition.toggle button.toggle-button .toggle-chevron-right {\n transform: rotate(-90deg);\n transition: none;\n}\n.bd-content .dropdown.admonition.toggle:has(:focus-visible) {\n /* Override Sphinx Toggle Button. Make the overflow visible, otherwise the\n focus ring is hidden. */\n overflow: visible;\n /*\n Why not just do the following?\n\n ```\n .admonition-title {\n outline: $focus-ring-outline;\n }\n ```\n\n Why use ::before? If we put the focus ring on the ::before pseudo-element,\n we can reposition the focus ring by repositioning the pseudo-element.\n\n Why reposition? The left edge of the admonition title box does not align\n with the left edge of the overall admonition box. There is a left border\n that belongs to the overall box. The border is outside of the admonition\n title, which means it is also outside of a focus ring around the title. We\n can make the focus ring bigger, with `outline-offset`, but this will\n result in a ring that looks off-centered. So we have to pull the ring left\n and stretch it right. That's what the pseudo-element allows us to do.\n\n Note: we do not have to do this for collapsible admonitions made with\n Sphinx Design (as opposed to sphinx-togglebutton).\n */\n}\n.bd-content .dropdown.admonition.toggle:has(:focus-visible) .admonition-title::before {\n content: \"\";\n left: -0.2rem;\n width: calc(100% + 0.2rem);\n height: 100%;\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n}\n.bd-content .dropdown.admonition.toggle:has(:focus-visible):not(.toggle-hidden) .admonition-title::before {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n.bd-content details.toggle-details summary {\n border-left: 3px solid var(--pst-color-primary);\n}\n.bd-content details.toggle-details summary .toggle-chevron-right {\n transform: rotate(90deg);\n transition: none;\n}\n.bd-content details.toggle-details summary:hover .tb-icon {\n opacity: 1;\n scale: 1.1;\n}\n.bd-content details.toggle-details summary .tb-icon {\n opacity: 0.6;\n}\n.bd-content details.toggle-details summary:hover {\n filter: brightness(0.9);\n}\nhtml[data-theme=dark] .bd-content details.toggle-details summary:hover {\n filter: brightness(1.1);\n}\n.bd-content details.toggle-details summary:hover {\n box-shadow: none;\n}\n.bd-content details.toggle-details summary:focus-visible {\n outline-offset: 0.125rem;\n}\n.bd-content details.toggle-details[open] .toggle-chevron-right {\n transform: rotate(-90deg);\n transition: none;\n}\n.bd-content details.toggle-details[open] :focus-visible {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n/**\n * Styles for various Sphinx execution libraries to display pre-executed notebooks.\n * For now, where these define output sections, we simply revert their background\n * to be a \"light theme\" background. This ensures that inputs/outputs behave similarly,\n * because the CSS is often controlled by each package.\n * In the future, we might add dark theme support for specific packages.\n */\n/*******************************************************************************\n * nbsphinx\n */\nhtml div.rendered_html,\nhtml .jp-RenderedHTMLCommon {\n margin: 0.1875rem;\n}\nhtml div.rendered_html table,\nhtml .jp-RenderedHTMLCommon table {\n table-layout: auto;\n}\n\n.bd-content .nboutput .output_area.rendered_html table.dataframe,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe {\n color: var(--pst-color-table);\n border: 1px solid var(--pst-color-table-outer-border);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe th ~ th,\n.bd-content .nboutput .output_area.rendered_html table.dataframe th ~ td,\n.bd-content .nboutput .output_area.rendered_html table.dataframe td ~ th,\n.bd-content .nboutput .output_area.rendered_html table.dataframe td ~ td,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th ~ th,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th ~ td,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td ~ th,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td ~ td {\n border-left: 1px solid var(--pst-color-table-inner-border);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe thead tr,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe thead tr {\n background-color: var(--pst-color-table-heading-bg);\n border-bottom: 2px solid var(--pst-color-primary);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(odd),\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(odd) {\n background-color: var(--pst-color-table-row-zebra-low-bg);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(even),\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(even) {\n background-color: var(--pst-color-table-row-zebra-high-bg);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:hover,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:hover {\n background-color: var(--pst-color-table-row-hover-bg);\n}\nhtml[data-theme=dark] .bd-content .nboutput .output_area.rendered_html:not(:has(table.dataframe)),\nhtml[data-theme=dark] .bd-content .nboutput .output_area .widget-subarea {\n color: var(--pst-color-on-background);\n background-color: var(--pst-color-text-base);\n border-radius: 0.25rem;\n padding: 0.5rem;\n}\nhtml[data-theme=dark] .bd-content .nboutput .output_area.stderr {\n background-color: var(--pst-color-danger);\n}\n\ndiv.nblast.container {\n margin-bottom: 1rem;\n}\n\nhtml[data-theme=light] .nbinput.container .prompt pre {\n color: #005b82;\n}\nhtml[data-theme=dark] .nbinput.container .prompt pre {\n color: #00e0e0;\n}\n\nhtml[data-theme=light] .nboutput.container .prompt pre {\n color: #a12236;\n}\nhtml[data-theme=dark] .nboutput.container .prompt pre {\n color: #ffa07a;\n}\n\n/*******************************************************************************\n * myst NB\n */\ndiv.cell_output .output {\n max-width: 100%;\n overflow-x: auto;\n}\n\n.bd-content div.cell_output table.dataframe {\n color: var(--pst-color-table);\n border: 1px solid var(--pst-color-table-outer-border);\n}\n.bd-content div.cell_output table.dataframe th ~ th,\n.bd-content div.cell_output table.dataframe th ~ td,\n.bd-content div.cell_output table.dataframe td ~ th,\n.bd-content div.cell_output table.dataframe td ~ td {\n border-left: 1px solid var(--pst-color-table-inner-border);\n}\n.bd-content div.cell_output table.dataframe thead tr {\n background-color: var(--pst-color-table-heading-bg);\n border-bottom: 2px solid var(--pst-color-primary);\n}\n.bd-content div.cell_output table.dataframe tbody tr:nth-child(odd) {\n background-color: var(--pst-color-table-row-zebra-low-bg);\n}\n.bd-content div.cell_output table.dataframe tbody tr:nth-child(even) {\n background-color: var(--pst-color-table-row-zebra-high-bg);\n}\n.bd-content div.cell_output table.dataframe tbody tr:hover {\n background-color: var(--pst-color-table-row-hover-bg);\n}\nhtml[data-theme=dark] .bd-content div.cell_output img,\nhtml[data-theme=dark] .bd-content div.cell_output .text_html:not(:has(table.dataframe)),\nhtml[data-theme=dark] .bd-content div.cell_output .widget-subarea {\n color: var(--pst-color-on-background);\n background-color: var(--pst-color-text-base);\n border-radius: 0.25rem;\n padding: 0.5rem;\n}\n\n.bd-content div.cell_input {\n display: flex;\n flex-direction: column;\n justify-content: stretch;\n}\n.bd-content div.cell_input,\n.bd-content div.output {\n border-radius: 0.25rem;\n}\n.bd-content div.output table {\n table-layout: auto;\n}\n\n/**\n * style for the various mapping libs based on leaflet (folium, geemap, ipyleaflet)\n * mainly ensure the good display of the maps in both themes and avoid the customization\n * of the tiles\n */\n/**\n * avoid border override from pydata-sphinx-theme\n * minimal selctor to get the priority\n */\nhtml[data-theme=dark] .bd-content img.leaflet-tile.leaflet-tile-loaded {\n border-radius: 0;\n padding: 0;\n}\n\n/**\n * /search.html page special-cases\n */\n.bd-search-container {\n /*******************************************\n * Search results\n */\n}\n.bd-search-container div#search-results > h2, .bd-search-container div#search-results > .h2 {\n font-size: var(--pst-font-size-icon);\n margin-top: 1rem;\n}\n.bd-search-container div#search-results p.search-summary {\n color: var(--pst-color-text-muted);\n}\n.bd-search-container ul.search {\n margin: 0;\n list-style: none;\n}\n.bd-search-container ul.search li {\n background-image: none;\n padding: 1rem 0;\n margin: 1rem 0;\n border-top: 1px solid var(--pst-color-text-muted);\n}\n.bd-search-container ul.search li > a {\n font-size: 1.2em;\n}\n.bd-search-container ul.search li div.context,\n.bd-search-container ul.search li p.context {\n color: var(--pst-color-text-base);\n margin: 0.5em 0 0;\n}\n.bd-search-container ul.search li div.context a::before,\n.bd-search-container ul.search li p.context a::before {\n content: \"#\";\n padding-right: 0.2em;\n color: var(--pst-color-text-muted);\n}","@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n",":root,\n[data-bs-theme=\"light\"] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, ``-`` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on ` `s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `
` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n}\n\n// Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n// See https://stackoverflow.com/a/54997118\n\n[list]:not([type=\"date\"]):not([type=\"datetime-local\"]):not([type=\"month\"]):not([type=\"week\"]):not([type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\n// 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\n// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\ntextarea {\n resize: vertical; // 1\n}\n\n// 1. Browsers set a default `min-width: min-content;` on fieldsets,\n// unlike e.g. `
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/assignment-2/dapp-using-walletconnect.html b/pr-preview-academy/pr-1250/assignment-2/dapp-using-walletconnect.html
deleted file mode 100644
index c437edca10..0000000000
--- a/pr-preview-academy/pr-1250/assignment-2/dapp-using-walletconnect.html
+++ /dev/null
@@ -1,825 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Assignment 2: dApp using WalletConnect — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Assignment 2: dApp using WalletConnect
-Create a simple dApp using WalletConnect for Sign and Auth that stores a signed message on a smart contract and can transfer CCDs between accounts.
-When you have completed the assignment, you can claim your mid-level NFT badge by submitting your assignment information here .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/assignment-3/full-stack-dapp.html b/pr-preview-academy/pr-1250/assignment-3/full-stack-dapp.html
deleted file mode 100644
index a491754b84..0000000000
--- a/pr-preview-academy/pr-1250/assignment-3/full-stack-dapp.html
+++ /dev/null
@@ -1,800 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Assignment 3: dApp using WalletConnect — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Assignment 3: dApp using WalletConnect
-Submit a full dApp that allows people to participate in an ongoing auction if they are from an EU country. Auction participation tickets should be in CIS-2 tokens and burned when someone exits the auction.
-When you have completed the assignment, you can claim your advanced-level NFT badge by submitting your assignment information here .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/beg-tutorials.html b/pr-preview-academy/pr-1250/beg-tutorials.html
deleted file mode 100644
index fd4036b847..0000000000
--- a/pr-preview-academy/pr-1250/beg-tutorials.html
+++ /dev/null
@@ -1,819 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Beginner level tutorials and assignment — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Beginner level tutorials and assignment
-In this section, you will find a set of beginner level tutorials that will allow you to gain some experience before diving into more heavy tasks. They may include a combination of command line tools, smart contract development, and decentralized applications (dApps) development to increase your familiarity with Concordium.
-When you have completed the tutorials, you can attempt the beginner level assignment to obtain your beginner-level NFT badge !
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/custom-errors.html b/pr-preview-academy/pr-1250/custom-errors.html
deleted file mode 100644
index f8003f62e4..0000000000
--- a/pr-preview-academy/pr-1250/custom-errors.html
+++ /dev/null
@@ -1,946 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Custom errors — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Custom errors
-This guide shows how to return custom errors from your Rust smart contract.
-
-Defining and deriving
-Custom error codes help communicate why a contract rejects and can be returned
-both during initialization and during updates.
-On-chain, smart contracts return a numeric error code and an optional serialized
-return value when rejecting . This is also the case when using a custom error type.
-Therefore, a mapping from the custom error type to Reject
, in the
-form of an implementation of From<MyError> for Reject
, is needed.
-You can derive the implementation automatically with #[derive(Reject)] if
-the type also implements Serial
(also derivable). The Serial
instance is
-needed because the whole data type is serialized and included as the optional
-return value.
-Here is a typical example:
-#[derive(Serial, Reject)]
-enum MyError {
- ErrOne ,
- ErrTwo ,
-}
-
-
-
-
Note
-
The valid range of error codes is i32::MIN..-1
. When deriving
-Reject
, each variant is assigned an error code as determined by the
-ordering. First variant (ErrOne
in example) gets -1
, second variant
-(ErrTwo
in example) gets -2
, and so on.
-
-
-
-
-Using custom errors
-Return custom errors, as you would with any other error type:
-#[init(contract = "my_contract" )]
-fn contract_init_my (
- _ctx : & InitContext ,
- _state_builder : & mut StateBuilder ,
-) -> Result < State , MyError > { Err ( MyError :: ErrOne ) }
-
-#[receive(contract = "my_contract" , name = "my_receive" )]
-fn contract_receive_my (
- _ctx : & ReceiveContext ,
- _host : & Host < State >
-) -> Result < MyReturnValue , MyError > { Err ( MyError :: ErrTwo ) }
-
-
-
-
Note
-
Adding schemas to your errors makes them more useful in
-concordium-client
and cargo-concordium
.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/genindex.html b/pr-preview-academy/pr-1250/genindex.html
deleted file mode 100644
index 315008126f..0000000000
--- a/pr-preview-academy/pr-1250/genindex.html
+++ /dev/null
@@ -1,761 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- Index — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Index
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/index.html b/pr-preview-academy/pr-1250/index.html
deleted file mode 100644
index d94112c2f9..0000000000
--- a/pr-preview-academy/pr-1250/index.html
+++ /dev/null
@@ -1,264 +0,0 @@
-
-
-
-
-
-
-
- Concordium Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/intro.html b/pr-preview-academy/pr-1250/intro.html
deleted file mode 100644
index 509cdfc8d9..0000000000
--- a/pr-preview-academy/pr-1250/intro.html
+++ /dev/null
@@ -1,894 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Getting started — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Getting started
-Concordium is focused on strengthening the valuable community’s power and aiming to empower the ecosystem with talented developers.
-Concordium Academy’s vision: Our aim is to give you a verified learning path with good quality materials in your journey towards Web3, help to onboard in a gamified fashion, and motivate you while building on Concordium.
-Throughout this journey, you will find a set of tutorials to follow and get more experienced with Concordium. Whether an absolute beginner or an expert, you will find good material that teaches you about smart contract development, dApps, wallets, and ID 2.0.
-There are three different difficulty levels and each will have a couple of tutorials for that category where each is followed by an assignment section. You are expected to submit your assignments from the related section to gain a Soul-Bound Token minted by Concordium to verify you are a skilled developer.
-
-What is Concordium?
-Concordium is a public-layer 1, science-backed blockchain, designed to balance privacy with accountability through its ID layer.
-Concordium’s vision: Concordium emphasizes true trust in this disrupting technology through the ID Layer.
-The Concordium blockchain is a compliance-ready blockchain backed by science that enables private and public transactions. It offers high throughput, fast transactions, and predictable fees, allowing businesses, developers, and traders to harness blockchain’s true power and potential.
-The protocol level ID ensures that every wallet is associated with a real-world identity that has been verified through a third-party ID provider so that people and companies can trust one another, while remaining private, with zero-knowledge proof.
-You can read more about Identities, Accounts, Staking, and other concepts of Concordium in the documentation .
-
-The ID layer
-Concordium’s ID Layer is a unique identity management system that is integrated into the Concordium blockchain. It allows individuals and entities to establish a digital identity on the network and interact with each other securely and privately.
-The ID Layer is designed to provide strong authentication, privacy protection, and regulatory compliance. It uses advanced cryptographic techniques such as zero-knowledge proofs, threshold signatures, and ring signatures to ensure the security and privacy of user data.
-One of the key features of Concordium’s ID Layer is that it allows users to control their own identity and personal data. Users can choose what information they share with others and can revoke access to their data at any time. This gives users more control over their digital identity and helps protect them from identity theft and other types of fraud.
-Overall, Concordium’s ID Layer is an important component of the Concordium blockchain and helps make it a secure, reliable, and privacy-focused platform for conducting business and exchanging value.
-
-
-CIS-2 token types
-In this section, you will learn more about Concordium Interoperability Standard tokens. (CIS-2) Unlike some other Layer-1 token standards, CIS-2 represents more than one type of token with one standard including fungible tokens, non-fungible tokens, semi-fungible tokens, and soulbound tokens. You can read more information about the CIS-2 standard library at this link.
-
-Concordium Interoperability Standard (CIS-2)
-A standard interface for both fungible and non-fungible tokens is implemented in a smart contract. The interface provides functions for transferring token ownership, allowing other addresses to transfer tokens, and querying token balances, operators, and token metadata. It allows off-chain applications to track token balances and the location of token metadata using logged events. Read more about CIS-2 at this link.
-
-
-
In this section you will learn about the fungibility of the tokens, Layer-1 blockchain coins, cryptourrencies and fiat money. Fungible tokens are tokens that can change interchangeably without causing any effect on the owner’s account. This term is not only for cryptocurrencies or tokens but also accurate for fiat money as well. A banknote of 100 Euro is equal to two banknotes worth 50. Basically, if you switch your 100 euros with two 50s your account is not affected. The total value would remain the same. This comes from fungibility.
-
Layer-1 Coin
-
Like fiat money, there are fungible cryptocurrencies exist such as BTC (Bitcoin), ETH (Ethereum), or CCD (Concordium). These are examples of Layer-1 blockchains coins, owners can divide them into smaller parts, transfer them, trade them, and exchange them but all of these assets are one of a kind and they are interchangeable. 1 CCD will always be equal to 1 CCD. A Layer-1 can use this for allowing monetary transactions, covering transaction costs known as transaction fees, rewarding bakers or miners, etc. Depending on the total supply you can consider a coin deflationary or inflationary.
-
Token
-
A token is a form of a digital asset that represents a share of some either digital or physical asset. It has to be implemented on a Layer-1 blockchain like Concordium. A fungible token is like fiat money or coin of a Layer-1, an owner can divide it into smaller parts transfer it, trade it, and exchange it but all of these assets are one of a kind and they are interchangeable. 1 TKN will always be equal to 1 TKN.
-
-
-
-
A Non-Fungible Token (NFT) is a special type of token that represents a digital or physical asset’s ownership. An NFT can be an on-chain proof of artwork, a game asset, music, real estate, digital or physical any kind of data, documents, etc. Anything can become an NFT as the NFT itself holds a link to the asset data itself.
-
One of the key drivers of this type of crypto asset is uniqueness. When you create an NFT you simply create a unique asset that is stored on-chain with a specific token ID on a contract. This is not possible for anyone else and your asset remains unique forever on-chain. This brings scarcity, and this is what artists need for their masterpieces.
-
Use Cases
-
But the use cases of NFTs are not limited to only art or some animal pictures. You can find a lot of use cases developing on Concordium in the following:
-
-Carbon Credits and Carbon Marketplaces
-Real Asset-Backed & Redeemable NFTs and Marketplaces
-In-Game Assets and Item Markets
-Token Gated Metaverses
-Music NFTs and IP Rights
-Esports and Game Tournaments
-
-
-
-
-
When do you need a semi-fungible token or why do you need them in the first place? Of course, depending on your use case they can really add more value to your project as they bring both fungibility and non-fungibility, and not to mention that it may be as a significantly cheaper option than minting non-fungible tokens for everything. This article has more information.
-
Have you ever been to a rock concert, one with people screaming, jumping and acting crazy? Thousands of people stand on a pitch in a stadium, for example? Or a new year’s party in a nice, cozy and cool pub? Or visited any ancient cities like this one that requires hours of walking to explore? If the answer is yes, then you know that you need a ticket to do that. For example, let’s say you pay for them for your family or friends and buy 4 tickets. Now let’s take a look at each example with your tickets. Think about that concert. Does it really matter the number on that ticket as everybody is standing and having fun? Or when you are sitting at a table in a pub with your friends does it matter which chair you are sitting in?
-
The only thing that matters to the owner is you have that ticket to enter the place. You can change your ticket with your friends or anyone else, or you can buy that ticket from someone who cannot attend. There is no difference in that sense because you still have a ticket that allows you to join the event. So you have to have at least one of them but it doesn’t really matter which one. This is a perfect use case for a semi-fungible token! It utilizes both fungibility and non-fungibility.
-
Let’s dive deeper. What if there are different groups of tickets like bronze and gold ones, for example? Gold ones have a limited amount of direct access backstage. Then you will need to mint 2 types of semi-fungible tokens like 1000 bronze concert tickets and 40 exclusive fun tickets. You can implement your use case with regular NFTs with a 1040 minting process and it will exactly give you the same functionality. But that will come with some additional costs. On the other hand, minting two semi-fungible tokens (with a 1000 + 40 supply) is cheaper than minting 1040 NFTs.
-
One of the best use cases of semi-fungible tokens is in gaming and the metaverse. They are widely used in online gaming today. In-game items, characters, gold, and coins are perfect examples of it. You can push your imagination, the possibilities are endless. An example is the idea of Steve Jobs’s semi-fungible figure on the Sandbox. As you can see it’s minted as 100 and that indicates 100 different owners could have a right to use it in their game basically. (Or only one owner can use it 100 times of course; it’s some sort of licensing in that sense.)
-
-
-
-
A Soul Bound Token (SBT) is a special type of NFT that is publicly verifiable and represents an individual’s credentials and affiliations. It is a unique, non-transferrable type of token created by an issuer. It could represent the authenticity of furniture, a graduation diploma or a certificate issued by a university, a subscription-based membership proof like a golf club, a level or profession about something for example an eSports game like League of Legends, etc.
-
Concordium’s Web3 ID will be effectively combining SBTs and its ID Layer with Zero Knowledge Proofs.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/mid-tutorials.html b/pr-preview-academy/pr-1250/mid-tutorials.html
deleted file mode 100644
index 715e1a3f3d..0000000000
--- a/pr-preview-academy/pr-1250/mid-tutorials.html
+++ /dev/null
@@ -1,828 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Mid-level tutorials — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Mid-level tutorials
-Congrats! If you are started with Mid-Level tutorials that means you have completed the first section and its assignment. Don’t forget to claim your NFT Badge .
-In the second section, we assume you know Concordium better: you can implement, deploy and interact with your contract and get the basics well. So in this section, the difficulty of the tutorials will be slightly higher but still doable by a great talent like you!
-When you have completed the tutorials, you can attempt the mid-level assignment to obtain your next NFT badge!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/objects.inv b/pr-preview-academy/pr-1250/objects.inv
deleted file mode 100644
index c9652824ba..0000000000
Binary files a/pr-preview-academy/pr-1250/objects.inv and /dev/null differ
diff --git a/pr-preview-academy/pr-1250/search.html b/pr-preview-academy/pr-1250/search.html
deleted file mode 100644
index b639aad1ad..0000000000
--- a/pr-preview-academy/pr-1250/search.html
+++ /dev/null
@@ -1,784 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Search - Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Search
-
-
-
Error
-
Please activate JavaScript to enable the search functionality.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/searchindex.js b/pr-preview-academy/pr-1250/searchindex.js
deleted file mode 100644
index e9394ba6c9..0000000000
--- a/pr-preview-academy/pr-1250/searchindex.js
+++ /dev/null
@@ -1 +0,0 @@
-Search.setIndex({"alltitles": {"Advanced level": [[6, null]], "Advanced level tutorials": [[0, null]], "App.tsx": [[16, "app-tsx"]], "Assignment 1": [[6, null]], "Assignment 1: Basic smart contract": [[1, null]], "Assignment 2": [[6, null]], "Assignment 2: dApp using WalletConnect": [[2, null]], "Assignment 3": [[6, null]], "Assignment 3: dApp using WalletConnect": [[3, null]], "Beginner level": [[6, null]], "Beginner level tutorials and assignment": [[4, null]], "Build smart contract": [[14, "build-smart-contract"]], "Build, deploy, and initialize the contract": [[10, "build-deploy-and-initialize-the-contract"]], "Build, deploy, and initialize the fractionalizer smart contract": [[14, null]], "Burn and unlock fractionalized NFTs": [[11, null]], "CIS-2 token types": [[7, "cis-2-token-types"]], "Concordium Academy": [[6, null]], "Concordium Interoperability Standard (CIS-2)": [[7, "concordium-interoperability-standard-cis-2"]], "Concordium Rust-SDK": [[20, "concordium-rust-sdk"]], "Concordium counter smart contract": [[10, null]], "Concordium node on Testnet": [[9, "concordium-node-on-testnet"]], "Constants.ts": [[16, "constants-ts"]], "Contract Client": [[16, "contract-client"]], "Contract interactions with Concordium-Rust-SDK": [[21, null]], "Contract.rs": [[15, "contract-rs"]], "Custom errors": [[5, null]], "Defining and deriving": [[5, "defining-and-deriving"]], "Deploy contract": [[21, "deploy-contract"]], "Deploy smart contract": [[14, "deploy-smart-contract"]], "Download and run Concordium Client": [[9, "download-and-run-concordium-client"]], "Error.rs": [[15, "error-rs"]], "Fractionalized NFT smart contract": [[15, null]], "Fractionalized NFT tutorial": [[12, null]], "Frontend development": [[16, null]], "Generate a smart contract with the Concordium VSCode extension": [[23, null]], "Get Challenge": [[20, "get-challenge"]], "Get Statement": [[20, "get-statement"]], "Getting started": [[6, null], [7, null]], "Getting the Signature": [[16, "getting-the-signature"]], "Handlers.rs": [[20, "handlers-rs"]], "Header component": [[24, "header-component"], [25, "header-component"]], "Header.tsx": [[16, "header-tsx"]], "How it works": [[17, null]], "Implementation": [[20, "implementation"]], "Import the key": [[9, "import-the-key"]], "Init component": [[16, "init-component"]], "Initialize Component": [[25, "initialize-component"]], "Initialize contract": [[21, "initialize-contract"]], "Initialize smart contract": [[14, "initialize-smart-contract"]], "Interact with the contract": [[10, "interact-with-the-contract"]], "Main.rs": [[20, "main-rs"]], "Mid level": [[6, null]], "Mid-level tutorials": [[8, null]], "Mint Function": [[15, "mint-function"]], "Mint a regular NFT (to be collateralized)": [[13, "mint-a-regular-nft-to-be-collateralized"]], "Mint component": [[16, "mint-component"]], "Mint fractionalized NFTs": [[13, null]], "Mint fractions": [[13, "mint-fractions"]], "Mint function": [[21, "mint-function"]], "Minting Component": [[25, "minting-component"]], "Minting with ID 2.0": [[20, "minting-with-id-2-0"]], "NFT minting tutorial with Rust-SDK": [[22, null]], "NFT minting with ID 2.0": [[18, null]], "Params.rs": [[15, "params-rs"]], "Prove": [[20, "prove"]], "React Project": [[24, "react-project"]], "React project": [[25, "react-project"]], "Register Data On-Chain": [[24, null]], "Register component": [[24, "register-component"]], "Run the dApp and request a proof": [[17, "run-the-dapp-and-request-a-proof"]], "Setup a wallet": [[9, "setup-a-wallet"]], "Setup the development environment": [[6, null], [9, null]], "Simple minting dApp": [[25, null]], "Standard error codes": [[5, "standard-error-codes"]], "State burn function": [[15, "state-burn-function"]], "State mint function": [[15, "state-mint-function"]], "State.rs": [[15, "state-rs"]], "The ID layer": [[7, "the-id-layer"]], "The minting contract": [[19, null]], "The verifier backend": [[20, null]], "Token supply helpers": [[15, "token-supply-helpers"]], "TokenMetadata function": [[21, "tokenmetadata-function"]], "Transfer CIS-2 NFT": [[13, "transfer-cis-2-nft"]], "Transfer function": [[15, "transfer-function"]], "Transfer to another person": [[11, "transfer-to-another-person"]], "Unlock NFT": [[11, "unlock-nft"]], "Update counter": [[10, "update-counter"]], "Update function": [[10, "update-function"]], "Using custom errors": [[5, "using-custom-errors"]], "Using schema in view and state changing functions": [[21, "using-schema-in-view-and-state-changing-functions"]], "Verifier backend": [[17, "verifier-backend"], [20, "verifier-backend"]], "View function": [[10, "view-function"], [10, "id1"], [21, "view-function"]], "What is Concordium?": [[7, "what-is-concordium"]], "Zero-knowledge proofs (ZKP) and ID proofs": [[20, "zero-knowledge-proofs-zkp-and-id-proofs"]], "cis2_client.rs": [[15, "cis2-client-rs"]]}, "docnames": ["adv-tutorials", "assignment-1/basic-smart-contract", "assignment-2/dapp-using-walletconnect", "assignment-3/full-stack-dapp", "beg-tutorials", "custom-errors", "index", "intro", "mid-tutorials", "setup-env", "tutorials/counter-contract", "tutorials/fractionalized-nft/burn", "tutorials/fractionalized-nft/index", "tutorials/fractionalized-nft/mint", "tutorials/fractionalized-nft/sc-actions", "tutorials/fractionalized-nft/smart-contract", "tutorials/nft-minting-w-id/frontend", "tutorials/nft-minting-w-id/how-it-works", "tutorials/nft-minting-w-id/index", "tutorials/nft-minting-w-id/minting-sc", "tutorials/nft-minting-w-id/verifier-backend", "tutorials/nft-minting/contract-interactions", "tutorials/nft-minting/index", "tutorials/nft-minting/smart-contract-template", "tutorials/register-data", "tutorials/simple-nft-dapp"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2}, "filenames": ["adv-tutorials.rst", "assignment-1/basic-smart-contract.rst", "assignment-2/dapp-using-walletconnect.rst", "assignment-3/full-stack-dapp.rst", "beg-tutorials.rst", "custom-errors.rst", "index.rst", "intro.rst", "mid-tutorials.rst", "setup-env.rst", "tutorials/counter-contract.rst", "tutorials/fractionalized-nft/burn.rst", "tutorials/fractionalized-nft/index.rst", "tutorials/fractionalized-nft/mint.rst", "tutorials/fractionalized-nft/sc-actions.rst", "tutorials/fractionalized-nft/smart-contract.rst", "tutorials/nft-minting-w-id/frontend.rst", "tutorials/nft-minting-w-id/how-it-works.rst", "tutorials/nft-minting-w-id/index.rst", "tutorials/nft-minting-w-id/minting-sc.rst", "tutorials/nft-minting-w-id/verifier-backend.rst", "tutorials/nft-minting/contract-interactions.rst", "tutorials/nft-minting/index.rst", "tutorials/nft-minting/smart-contract-template.rst", "tutorials/register-data.rst", "tutorials/simple-nft-dapp.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [7, 9, 10, 11, 13, 15, 16, 17, 19, 20, 21, 23, 24, 25], "0": [5, 6, 7, 9, 10, 11, 13, 15, 16, 17, 19, 21, 24, 25], "01": [13, 16, 25], "04af7e6a68fa79b3f7a035a5cd75f916ee67c4a71fc990fe9ba2b2e1fb54dd7cdc950a73b5a4adf52ea95df16f5c17602090f639f0d35a760e34afae7cbd60792b": [5, 9, 10, 16, 17, 18, 20, 24, 25], "0_amd64": [5, 9, 10, 16, 17, 18, 20, 24, 25], "0u8": 20, "1": [5, 7, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 24, 25], "10": [5, 16], "100": [7, 10, 11, 16], "1000": [7, 11, 13, 16], "1000000": [16, 21], "10000u64": 21, "1024": 20, "1040": 7, "10px": 16, "11": [5, 20, 21], "12": 5, "13": 5, "14": 5, "15": [5, 24, 25], "16": 5, "17": 5, "18": [5, 16, 17, 18, 19, 20], "19": [5, 20, 21], "19000327": 17, "1a": 20, "1b": 20, "1fb19a983281fbfd3585849f7c9e93051389214460dc2d917c87fc6533c38958": [5, 9, 10, 16, 17, 18, 20, 24, 25], "2": [1, 3, 5, 9, 10, 11, 15, 16, 17, 21, 22, 24, 25], "20": [1, 5, 11], "2000": 9, "20000": [9, 10, 11, 13, 14, 20, 21], "20001": [9, 10], "20050327": 17, "2059": [5, 9, 10, 16, 17, 18, 20, 24, 25], "21": 5, "2147483622": 5, "2147483623": 5, "2147483624": 5, "2147483625": 5, "2147483626": 5, "2147483627": 5, "2147483628": 5, "2147483629": 5, "2147483630": 5, "2147483631": 5, "2147483632": 5, "2147483633": 5, "2147483634": 5, "2147483635": 5, "2147483636": 5, "2147483637": 5, "2147483638": 5, "2147483639": 5, "2147483640": 5, "2147483641": 5, "2147483642": 5, "2147483643": 5, "2147483644": 5, "2147483645": 5, "2147483646": 5, "2147483647": 5, "22": 5, "23": 5, "24": [5, 9, 21], "25": 5, "256": 24, "26": [5, 21], "27b813fa34babde7a7e337f05a9cc031f81db60f8b88b0200c234e8b48cb7fa3": 16, "2860af2631e03643a101380ba02808ae88f64e1dc82ab450dee43a0440ccff36": [5, 9, 10, 16, 17, 18, 20, 24, 25], "3": [5, 10, 20, 21], "300": 21, "30000": [10, 14], "312f99d6406868e647359ea816e450eac0ecc4281c2665a24936e6793535c9f6": 25, "32": [15, 20], "3rem": 16, "4": [5, 7, 9, 10, 16, 17, 18, 20, 21, 24, 25], "40": 7, "400": 11, "4168": 17, "42": 10, "42bb05409561bc30917d87a3479d3b76d9a3f17fa46bb2aee7475e7f7fa1df5d": [5, 9, 10, 16, 17, 18, 20, 24, 25], "4px": 16, "5": [5, 9, 10, 16, 17, 18, 20, 24, 25], "50": [7, 20], "500": 11, "5fe6a62824d5b0dba6143243e90987ddf3e15cca079f21992de04d078d9ea6dc": [5, 9, 10, 16, 17, 18, 20, 24, 25], "5min": 21, "6": 5, "600": [11, 20], "6000": [10, 11, 13], "7": [5, 9, 10, 16, 17, 18, 20, 24, 25], "700": 16, "73": 9, "8": [5, 9, 10, 16, 17, 18, 20, 24, 25], "8000": 20, "81": 9, "8100": [16, 17, 20], "87055b6f6dc19c4d22460e87697801021606e4248bed1908f9bc808776cd0bec": [5, 9, 10, 16, 17, 18, 20, 24, 25], "9": [5, 20, 21], "9354": [5, 9, 10, 16, 17, 18, 20, 24, 25], "999": [11, 16], "9999": [16, 25], "A": [7, 9, 15, 16, 19, 20, 25], "And": [16, 18, 19, 20, 21, 24, 25], "As": [7, 9, 11, 13, 15, 17, 20, 21, 24], "At": 15, "Be": 10, "But": [7, 11, 20, 21], "By": [11, 16, 23], "For": [7, 9, 10, 14, 15, 17, 20, 21, 25], "If": [0, 7, 8, 9, 10, 14, 15, 16, 17, 20, 21, 24, 25], "In": [4, 7, 8, 10, 11, 13, 15, 16, 17, 18, 20, 21, 22, 24, 25], "It": [1, 7, 9, 10, 11, 12, 15, 16, 17, 20, 21, 24, 25], "No": [20, 21], "Not": 20, "Of": 7, "On": [5, 6, 7, 9, 20], "One": [7, 9, 15], "Or": [7, 10], "TO": [11, 13, 17], "That": 13, "The": [5, 6, 9, 10, 11, 12, 13, 15, 16, 17, 18, 21, 24, 25], "Then": [7, 10, 13, 15, 16, 20, 21, 23, 24, 25], "There": [7, 9, 15, 20, 24], "These": [7, 20], "To": [1, 9, 10, 13, 16, 20, 21, 24, 25], "_": [15, 16, 19, 20, 21, 24, 25], "_blank": [16, 24, 25], "_ctx": [5, 10], "_e": 15, "_host": 5, "_index": 13, "_mint": 20, "_paramjson": 25, "_state_build": [5, 10], "_txnhash": 24, "_wait": 16, "abil": 21, "abl": [1, 11, 12, 14, 15, 16, 17, 20, 25], "about": [7, 9, 10, 15, 17, 18, 20, 21, 22, 24, 25], "abov": [10, 13, 20, 25], "absolut": 7, "abstract": 15, "academi": 7, "acc_info": [20, 21], "accept": [1, 17, 19, 20], "access": [7, 9, 20], "accord": [15, 19, 20], "accordingli": 21, "account": [2, 7, 9, 10, 11, 13, 15, 16, 17, 19, 20, 21, 24, 25], "account_address": 20, "account_credenti": 20, "account_nonc": 21, "accountaddress": [15, 16, 19, 20, 21], "accountchang": [16, 24, 25], "accountcr": 21, "accountcredentialwithoutproof": 20, "accountdisconnect": [16, 24, 25], "accountinfo": 21, "accountonli": 19, "accountsonli": 15, "accounttransact": [16, 21], "accounttransactioneffect": 21, "accounttransactiontyp": [16, 24, 25], "accur": 7, "achiev": [9, 19], "acquir": 20, "act": 7, "action": 21, "activ": [20, 25], "actual": 11, "ad": [5, 10, 19, 20, 21], "add": [1, 7, 9, 10, 15, 16, 19, 20, 21, 23, 24, 25], "add_collater": 15, "addit": [7, 15, 19], "additionaldata": 15, "addr": 11, "address": [7, 9, 10, 11, 13, 14, 15, 16, 19, 20, 21, 25], "address_st": 15, "addressst": [15, 19], "adjust": [9, 15], "advanc": [3, 7, 9], "advantag": 9, "affect": 7, "affili": 7, "after": [9, 11, 15, 20, 21, 25], "ag": [17, 20], "again": [9, 10, 11, 15, 16, 20, 21, 23], "agre": 20, "aim": 7, "alert": [16, 17, 24, 25], "alia": 9, "all": [7, 11, 13, 14, 15, 16, 17, 19, 20, 21, 24, 25], "alloc": 25, "allow": [1, 3, 4, 7, 9, 14, 15, 16, 18, 20, 23, 24, 25], "allow_any_origin": 20, "allow_head": 20, "allow_method": 20, "almost": [15, 16, 17, 20, 25], "alongsid": 20, "alreadi": [9, 10, 15, 20, 21, 24, 25], "alreadycollater": 15, "also": [5, 7, 9, 10, 13, 17, 20, 21, 25], "altern": 9, "alwai": [7, 20, 21], "amount": [7, 9, 11, 13, 15, 16, 19, 21, 25], "amounttoolarg": 5, "an": [3, 5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "analogi": 20, "ancient": 7, "and_then": 20, "ani": [5, 7, 10, 15, 16, 20, 21, 22, 24, 25], "anim": 7, "annot": 9, "anoth": [6, 7, 9, 10, 13, 15, 16, 17, 20, 21, 24, 25], "answer": [7, 20], "anyhow": [20, 21], "anyon": [7, 9], "anyth": [7, 9, 13, 20], "anywai": 9, "api": [9, 16, 20, 24, 25], "app": [6, 20, 21, 24, 25], "appbar": [16, 24, 25], "appear": 25, "appimag": [5, 9, 10, 16, 17, 18, 20, 24, 25], "appli": 13, "applic": [4, 7, 9, 16, 17, 18, 20, 23, 24, 25], "approach": 20, "appset": 21, "ar": [0, 3, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 24, 25], "arc": 20, "architectur": 20, "arcurv": 20, "area": 20, "arg_required_else_help": 20, "argument": [20, 21], "around": 9, "arrai": [15, 20], "art": 7, "articl": 7, "artifact": 13, "artist": 7, "artwork": 7, "as_entrypoint_nam": 15, "as_ref": 20, "as_slic": [15, 20], "ask": [10, 16, 18, 19, 20, 25], "asset": [7, 11, 12, 14, 15, 16], "assign": [0, 5, 7, 8], "associ": 7, "assum": [8, 15, 19, 20, 24, 25], "async": [16, 20, 21, 24, 25], "asynchron": 20, "atom": 20, "attempt": [4, 8], "attend": 7, "attribut": [1, 10, 20], "attributeinrang": 17, "attributekind": 20, "attributetag": 17, "auction": 3, "auth": [2, 16], "authent": [7, 15], "author": [15, 16, 20], "autocomplet": [16, 24, 25], "automat": 5, "avail": [9, 13, 19, 20], "awai": 15, "await": [16, 20, 21, 24, 25], "b": [9, 15, 21], "back": [7, 11, 15, 17, 20, 24], "backend": [6, 16, 18, 19], "backstag": 7, "bad": 16, "badg": [0, 1, 2, 3, 4, 8], "bail": [15, 19], "baker": 7, "balanc": [7, 11, 15], "balanceof": 15, "balanceofqueryparam": 15, "balanceofqueryrespons": 15, "banknot": 7, "base": [7, 9, 13, 15, 20, 21, 25], "base16": 20, "base16_encode_str": 20, "base64": [16, 21, 25], "basic": [6, 7, 8, 10, 11, 15, 20, 24, 25], "beautifi": 16, "becaus": [5, 7, 9, 12, 16, 17, 20, 21, 25], "becom": 7, "been": [7, 15], "befor": [4, 9, 10, 20], "beforehand": 9, "begin": 15, "beginn": [1, 7, 9], "behavior": 11, "being": [10, 15, 18, 20], "belong": 19, "below": [9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25], "best": [7, 9, 16, 21], "better": [8, 20, 21], "between": [2, 9, 15], "beyond": 20, "bf50e3777ddaefe865b3765401e23da7ab39530a109c16b75bc3871127eae83c": [5, 9, 10, 16, 17, 18, 20, 24, 25], "bh": 21, "bigint": [16, 25], "bin": [9, 11, 13, 14], "binari": 9, "birth": 20, "bit": [11, 16, 20, 21, 25], "bitcoin": 7, "block": [9, 16, 20, 21, 24], "blockchain": [7, 9, 24, 25], "blockhash": 16, "blockidentifi": [20, 21], "blockitem": 21, "blockitemsummarydetail": 21, "blocksummarydetail": 21, "bodi": [16, 20], "body1": 16, "bool": 15, "boolean": 16, "bootstrap": [24, 25], "bordercolor": 16, "borderradiu": 16, "both": [5, 7, 9, 11, 13, 20, 21], "bound": [7, 20], "box": [16, 24], "br": [24, 25], "brand": 25, "brew": 20, "brilliant": 24, "bring": 7, "bronz": 7, "browser": [9, 16, 24, 25], "bs64": 21, "btc": 7, "btreemap": [15, 19], "buff": 16, "buffer": [16, 20, 24, 25], "bui": 7, "build": [6, 7, 9, 13, 20, 21, 23], "builder": [15, 19, 20], "burn": [1, 3, 6, 13, 16, 21], "burnev": 15, "busi": [7, 9], "button": [16, 24, 25], "byte": [20, 21], "c": 15, "calcul": [9, 24], "call": [9, 10, 11, 13, 14, 15, 16, 19, 20, 21, 23, 24, 25], "callcontracterror": 5, "can": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25], "cannot": [7, 9, 10, 21], "cant": 15, "carbon": 7, "care": [24, 25], "cargo": [5, 9, 10, 14, 16, 17, 18, 19, 20, 21, 24, 25], "case": [5, 7, 9, 14, 20, 21, 24], "catch": [16, 24, 25], "categori": 7, "caus": [7, 10, 21], "ccc7b73e381125ccc7dbd82f2ccef80c2877ae2eacbd57c536a67a767e94395c": 16, "ccd": [1, 2, 7, 9, 10, 16], "ccdamount": [16, 25], "ccdscan": 24, "cd": 21, "cdylib": 19, "center": 16, "certain": [17, 20], "certif": 7, "chain": [5, 6, 7, 9, 16, 20, 21, 25], "chainchang": [16, 24, 25], "chair": 7, "challeng": [6, 16, 17, 19], "challenge_expiry_second": 20, "challenge_st": 20, "challengedproof": 20, "challengerespons": 20, "challengestatu": 20, "chang": [6, 7, 10, 11, 13, 15, 16, 17, 20, 24, 25], "channel": 20, "charact": 7, "cheaper": 7, "check": [9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 24, 25], "check_proof_work": 20, "checked_add": 10, "chmod": 9, "choos": [7, 10], "chromium": 9, "chrono": [20, 21], "ci": [1, 3, 6, 11, 15, 21, 22, 25], "cis2": [11, 13, 14, 15, 16, 17, 19, 21, 23, 25], "cis2_client": 6, "cis2_multi_contract_info": 16, "cis2client": 15, "cis2clienterror": 15, "cis2contractcli": 16, "cis2contracthelp": 16, "cis2contractinfo": 16, "cis2error": 15, "cis2ev": [15, 19], "cis2init": 16, "citi": 7, "claim": [0, 1, 2, 3, 8, 9, 20], "clap": [20, 21], "classnam": [16, 24, 25], "clean_interval_second": 20, "cli": 10, "click": [9, 17, 18, 23, 24, 25], "client": [1, 5, 6, 10, 11, 13, 14, 15, 20, 21, 25], "client_7": [5, 9, 10, 16, 17, 18, 20, 24, 25], "clone": [15, 20], "cloud": 9, "club": 7, "cmp": 15, "code": [10, 13, 15, 16, 19, 20, 21, 24, 25], "codegen": 19, "coin": 7, "collater": [6, 11, 15], "collateral_amount": 15, "collateral_kei": 15, "collateralkei": 15, "collateralst": 15, "collect": [15, 16, 19, 20], "color": [16, 24, 25], "coloredhelp": 21, "com": [9, 10, 11, 13, 14, 17, 21, 24, 25], "combin": [4, 7, 15, 20], "come": [7, 19, 21], "command": [4, 9, 10, 11, 13, 14, 16, 17, 20, 21, 23, 24, 25], "commit": 20, "common": [16, 20, 21], "commun": [0, 5, 7, 15, 16, 17, 18, 20], "compani": 7, "compar": 24, "compil": [9, 10, 14, 15, 21], "complet": [0, 1, 2, 3, 4, 8, 11, 16, 21, 24, 25], "complianc": 7, "complic": 20, "compon": [6, 7, 21], "compos": 20, "comput": 9, "concept": 7, "concert": 7, "concordium": [0, 1, 4, 5, 8, 11, 13, 14, 15, 16, 17, 18, 19, 22, 24, 25], "concordium_2": [5, 9, 10, 16, 17, 18, 20, 24, 25], "concordium_cis2": 15, "concordium_rust_sdk": [20, 21], "concordium_std": [15, 21], "condit": [10, 20], "conduct": 7, "config": 9, "configur": [9, 20, 21], "confirm": [11, 25], "confus": 13, "congrat": [0, 8, 13, 21], "congratul": [10, 11], "connclient": 16, "connect": [9, 14, 16, 20, 21, 24, 25], "consid": 7, "consol": [16, 24, 25], "const": [15, 16, 24, 25], "constant": [6, 20], "construct": 19, "consum": 20, "contact": 14, "contain": [9, 10, 16, 18, 20, 24, 25], "contains_token": [15, 19], "containsdot": 5, "content": [15, 16, 20, 21], "content_length_limit": 20, "context": [20, 21], "continu": [9, 14, 15, 21, 23], "contract": [2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 17, 20, 22, 24, 25], "contract_address": 15, "contract_init_mi": 5, "contract_mint": [15, 19], "contract_receive_mi": 5, "contract_transf": 15, "contractaddress": [15, 16, 19, 21], "contractbalanceofqueryparam": 15, "contractbalanceofqueryrespons": 15, "contractcontext": 21, "contracterror": [15, 19], "contractindex": [16, 25], "contractinfo": 16, "contractiniti": [16, 21], "contractnam": 16, "contractonli": 15, "contractresult": [15, 19], "contractsubindex": [16, 25], "contracttokenamount": [15, 19], "contracttokenid": [15, 19], "control": [7, 15, 24, 25], "conveni": 21, "convert": [15, 20, 24], "cool": [7, 13], "copi": [9, 13, 15, 20, 21], "copypast": 19, "cor": 20, "core": 15, "correct": [9, 20, 24], "correctli": [9, 10], "correspond": 10, "cost": [7, 9], "could": [7, 11, 14, 15, 16, 19, 21, 24, 25], "counter": 6, "countri": [3, 17, 20], "coupl": 7, "cours": 7, "cover": [7, 9], "cozi": 7, "crate": [15, 19, 20, 21], "crazi": 7, "creat": [1, 2, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "created_at": 20, "creation": [16, 20], "cred_id": 20, "credenti": [7, 20], "credential_id": 20, "credentialdeploymentcommit": 20, "credentialregistrationid": 20, "credit": 7, "criteria": 20, "crypto": 7, "crypto_common": 20, "crypto_primit": 19, "cryptocurr": 7, "cryptograph": [7, 18, 20], "cryptourr": 7, "cryptox": [5, 9, 10, 16, 17, 18, 20, 24, 25], "css": [16, 24, 25], "ctrl": 23, "ctx": [10, 15, 19], "curr_suppli": 15, "current": [9, 10, 20, 21], "currenttarget": [16, 24, 25], "cursor": 21, "custom": [10, 15, 17, 19, 20], "custom_state_field": 10, "customcontracterror": [15, 19], "d": [10, 25], "dalek": 20, "dapp": [4, 6, 7, 9, 19, 20, 24], "dashboard": [24, 25], "dat": [5, 9, 10, 16, 17, 18, 20, 24, 25], "data": [5, 6, 7, 9, 11, 13, 15, 20, 21, 25], "datablob": 24, "date": 20, "deb": [5, 9, 10, 16, 17, 18, 20, 24, 25], "debug": [10, 15, 20, 21], "decentr": [4, 24, 25], "decid": [20, 21], "decod": [15, 20, 21], "decrease_suppli": 15, "deeper": [7, 11], "default": [9, 10, 16, 19, 20, 21, 23, 24, 25], "default_valu": [20, 21], "defaultvalu": [16, 25], "defin": 20, "definit": [20, 25], "deflationari": 7, "demonstr": [15, 18], "dep": 20, "depend": [7, 10, 16, 19, 20, 21, 24, 25], "deploi": [6, 8, 9, 13, 16, 17, 22, 25], "deploy": 10, "deploy_contract": 21, "deploy_modul": 21, "deriv": [10, 15, 19, 20, 21], "describ": 15, "descript": [9, 15, 23], "deseri": [15, 19, 20, 21], "deserialwithst": [15, 19], "design": [7, 11], "desktop": [5, 9, 10, 16, 17, 18, 20, 24, 25], "detail": [15, 20, 21], "detectconcordiumprovid": [16, 24, 25], "determin": 5, "develop": [0, 4, 7, 10, 15, 18, 19, 20, 21, 22, 24, 25], "devic": 9, "differ": [7, 9, 10, 11, 15, 21], "difficulti": [7, 8], "digit": 7, "diploma": 7, "direct": [7, 23], "directli": [19, 20], "directori": [9, 10, 13, 17, 21, 24, 25], "disabl": [16, 24, 25], "disablegutt": 16, "disadvantag": 9, "discrimin": 5, "displai": [9, 16, 21], "disrupt": 7, "dist": [10, 11, 13, 14], "distinguish": 21, "distribut": 9, "div": [16, 24, 25], "dive": [4, 7], "divid": [7, 16], "do": [7, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 24, 25], "doabl": 8, "dob": 17, "doc": 5, "docker": 9, "document": [5, 7, 9, 15, 16], "doe": [7, 9, 10, 13, 15, 19, 24, 25], "doesn": [1, 7, 20, 21], "don": [0, 8, 9, 11, 13, 14, 15, 20, 25], "done": [9, 16, 19, 24, 25], "doubl": [9, 11], "down": [10, 19], "download": [6, 16, 24, 25], "driver": 7, "due": 10, "dummi": 10, "dure": [5, 9], "e": [9, 10, 15, 16, 20], "ea3f603e2a921181cdf323604066444378a955c55e82b206a7d169bf636fa75d": [5, 9, 10, 16, 17, 18, 20, 24, 25], "each": [1, 5, 7, 12, 21], "easi": [20, 25], "easili": 23, "echo": 10, "ecosystem": 7, "ed25519": 20, "ed25519_dalek": 20, "editor": [9, 24, 25], "effect": [7, 9, 21], "effici": [15, 19], "either": [7, 11, 13, 14, 21], "element": 20, "els": [7, 10, 15, 20], "emb": [10, 23], "emit": [10, 15], "emot": [16, 24, 25], "emphas": 7, "empow": 7, "empti": [14, 15, 19, 20, 21, 24, 25], "en": 16, "enabl": [7, 9, 10, 15, 23], "enable_logg": [15, 19], "encod": [20, 21], "encode_upp": 20, "encodedpayload": 21, "encourag": 25, "encrypt": 20, "end": 15, "endless": 7, "endpoint": [14, 16, 20, 21], "energi": [10, 11, 13, 14, 16, 21], "engin": 21, "ensur": [7, 10, 15, 19], "ensurevalidoutcom": 16, "entail": 24, "enter": [7, 9], "entiti": 7, "entri": 15, "entrypoint": [10, 11, 13, 16], "entrypoint_nam": 15, "entrypointnam": 15, "enum": [5, 10, 15, 16, 20, 21], "enumstr": 21, "env": 25, "env_logg": [20, 21], "envelop": 20, "environ": [10, 25], "eq": [10, 15, 19, 20], "equal": 7, "err": [5, 10, 15, 16, 20], "erron": 5, "error": [6, 10, 16, 19, 20, 21, 24, 25], "errorrespons": 20, "errtwo": 5, "escap": 21, "esport": 7, "establish": 7, "estat": 7, "estim": 9, "etc": [7, 21], "eth": 7, "ethereum": 7, "eu": 3, "euro": 7, "even": [13, 24], "event": [7, 15, 16, 19, 24, 25], "ever": 7, "everi": [7, 20, 21], "everybodi": [7, 24], "everyth": [7, 9, 10, 15, 16, 17, 24, 25], "exact": 13, "exactli": 7, "exampl": [5, 7, 10, 14, 15, 19, 20, 21, 22, 24], "exce": 21, "excel": 14, "exchang": 7, "exclus": 7, "execut": [9, 16, 17, 19, 20, 21], "exist": [5, 7, 15, 20], "exit": [3, 9, 21], "expand": 10, "expect": [7, 10, 11, 15, 16, 17, 19, 21, 24, 25], "expens": 9, "experi": 4, "experienc": [7, 20], "expert": 7, "expiri": 21, "explain": [9, 20], "explan": [18, 22, 25], "explor": [7, 9, 24], "export": [9, 16, 20, 21, 24, 25], "extens": [6, 9, 22], "extract": [14, 16, 20], "f": 21, "face": 20, "fail": [10, 15, 16], "failur": [10, 16], "fals": [16, 19, 24, 25], "famili": 7, "familiar": [4, 9], "far": [10, 14], "fashion": 7, "fast": 7, "faucet": 9, "featur": [7, 9, 19, 20, 21], "fee": [1, 7, 9, 10], "fetch": [16, 24, 25], "few": 20, "ffff02010000000a000000434953322d4d756c7469000a0000000900000062616c616e63654f6606100114000200000008000000746f6b656e5f69641d0007000000616464726573731502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c10011b2500000015040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f7202040000006d696e7404140002000000050000006f776e65721502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c06000000746f6b656e7312021d000f1400020000000300000075726c1601040000006861736816011b2500000015040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f72020f0000006f6e526563656976696e67434953320315040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f72020a0000006f70657261746f724f66061001140002000000050000006f776e65721502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c07000000616464726573731502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c10010115040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f72020f000000736574496d706c656d656e746f72730414000200000002000000696416000c000000696d706c656d656e746f727310020c15040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f720208000000737570706f727473061001160010011503000000090000004e6f537570706f72740207000000537570706f72740209000000537570706f72744279010100000010000c15040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f72020d000000746f6b656e4d657461646174610610011d0010011400020000000300000075726c160104000000686173681502000000040000004e6f6e650204000000536f6d65010100000013200000000215040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f7202080000007472616e7366657204100114000500000008000000746f6b656e5f69641d0006000000616d6f756e741b250000000400000066726f6d1502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c02000000746f1502000000070000004163636f756e7401010000000b08000000436f6e747261637401020000000c160104000000646174611d0115040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f72020e0000007570646174654f70657261746f720410011400020000000600000075706461746515020000000600000052656d6f7665020300000041646402080000006f70657261746f721502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c15040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015060000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c790213000000496e766f6b65436f6e74726163744572726f720204000000766965770114000200000005000000737461746510020f1502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c1400020000000800000062616c616e63657310020f1d001b25000000090000006f70657261746f727310021502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c06000000746f6b656e7310021d00": 25, "ffff02010000000a000000434953322d4d756c746901001400010000000a0000007665726966795f6b65791e200000000a0000000900000062616c616e63654f6606100114000200000008000000746f6b656e5f69641d0007000000616464726573731502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c10011b2500000015040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e74656402040000006d696e7404140003000000050000006f776e65721502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c06000000746f6b656e7312021d000f1400020000000300000075726c1601040000006861736816011b25000000090000007369676e61747572651e4000000015040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e746564020f0000006f6e526563656976696e67434953320315040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e746564020a0000006f70657261746f724f66061001140002000000050000006f776e65721502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c07000000616464726573731502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c10010115040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e746564020f000000736574496d706c656d656e746f72730414000200000002000000696416000c000000696d706c656d656e746f727310020c15040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e7465640208000000737570706f727473061001160010011503000000090000004e6f537570706f72740207000000537570706f72740209000000537570706f72744279010100000010000c15040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e746564020d000000746f6b656e4d657461646174610610011d0010011400020000000300000075726c160104000000686173681502000000040000004e6f6e650204000000536f6d65010100000013200000000215040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e74656402080000007472616e7366657204100114000500000008000000746f6b656e5f69641d0006000000616d6f756e741b250000000400000066726f6d1502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c02000000746f1502000000070000004163636f756e7401010000000b08000000436f6e747261637401020000000c160104000000646174611d0115040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e746564020e0000007570646174654f70657261746f720410011400020000000600000075706461746515020000000600000052656d6f7665020300000041646402080000006f70657261746f721502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c15040000000e000000496e76616c6964546f6b656e49640211000000496e73756666696369656e7446756e6473020c000000556e617574686f72697a65640206000000437573746f6d010100000015080000000b0000005061727365506172616d7302070000004c6f6746756c6c020c0000004c6f674d616c666f726d65640213000000496e76616c6964436f6e74726163744e616d65020c000000436f6e74726163744f6e6c79020b0000004163636f756e744f6e6c790213000000496e766f6b65436f6e74726163744572726f720212000000546f6b656e416c72656164794d696e7465640204000000766965770114000200000005000000737461746510020f1502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c1400020000000800000062616c616e63657310020f1d001b25000000090000006f70657261746f727310021502000000070000004163636f756e7401010000000b08000000436f6e747261637401010000000c06000000746f6b656e7310021d00": 16, "fiat": 7, "field": 20, "figur": 7, "file": [9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25], "filezilla": 9, "fill": [20, 24, 25], "filter": [16, 20], "filter_level": 20, "filter_modul": 20, "final": [9, 10, 11, 15, 16, 17, 19, 20, 21], "find": [4, 7, 9, 13, 16, 20, 22, 23, 24, 25], "find_collater": 15, "fine": [20, 25], "first": [5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 24, 25], "five": 15, "fix": 16, "flag": 10, "flavor": 21, "flex": 16, "flexdirect": 16, "flexgrow": [16, 24, 25], "flow": 20, "fn": [5, 10, 15, 19, 20, 21], "focus": 7, "folder": [9, 10, 13, 14, 16, 20, 21, 23], "follow": [5, 7, 9, 10, 13, 14, 15, 16, 17, 19, 21, 24], "fontfamili": 16, "fontweight": 16, "footer": 16, "forev": 7, "forget": [0, 8, 11, 25], "form": [5, 7, 15, 16, 20, 21, 24, 25], "format": [14, 20], "formdata": [16, 24, 25], "formev": [16, 24, 25], "formvalu": [16, 24, 25], "forward": 9, "found": [20, 21, 24], "four": 15, "fourth": 15, "fraction": 6, "framework": 20, "fraud": 7, "free": [17, 25], "fresh": 10, "friend": 7, "from": [3, 5, 7, 9, 10, 11, 13, 15, 16, 17, 19, 20, 21, 24, 25], "from_byt": [20, 21], "from_ccd": 15, "from_clap": 21, "from_json_fil": 21, "from_second": 21, "from_slic": 21, "from_str": 20, "frontend": [6, 18, 19], "full": [3, 5, 13, 15, 20, 21, 24], "fullwidth": [16, 24, 25], "fun": 7, "function": [6, 7, 11, 13, 16, 19, 20, 22, 24, 25], "fundament": 10, "fungibl": [7, 12, 13, 15], "furnitur": 7, "futur": 9, "g": 9, "gain": [4, 7], "game": 7, "gamifi": 7, "gate": 7, "gener": [6, 20], "general_purpos": 21, "genesi": [5, 9, 10, 16, 17, 18, 20, 24, 25], "get": [5, 8, 9, 10, 12, 13, 15, 17, 19, 21, 24, 25], "get_account_info": [20, 21], "get_challeng": 20, "get_challenge_work": 20, "get_cryptographic_paramet": 20, "get_hash_byt": 15, "get_match": 21, "get_mut": 15, "get_receive_param_schema": 21, "get_receive_return_value_schema": 21, "get_stat": 20, "get_suppli": 15, "getchalleng": 16, "getjsonrpccli": 16, "getmostrecentlyselectedaccount": 16, "getsignatur": 16, "getstat": 16, "gettransactionstatu": 16, "gif": 10, "github": [20, 22, 25], "give": [7, 9, 10, 13, 16, 17, 20, 21, 23, 24, 25], "given": [10, 15, 16, 17, 19, 20], "glanc": 25, "global": 20, "global_context": 20, "global_set": 21, "globalcontext": 20, "go": [9, 13, 14, 16, 19, 20, 21, 24, 25], "goe": [17, 20, 25], "gold": 7, "golf": 7, "good": [7, 14, 20], "gracefulli": 21, "graduat": 7, "great": [8, 20], "greater": 9, "grep": 9, "group": 7, "grpc": [9, 10, 11, 13, 14, 20, 21], "grpcv2": [9, 20], "guarante": 9, "guid": [5, 10], "h6": [16, 24, 25], "ha": [7, 9, 10, 11, 12, 13, 15, 19, 20, 21, 23], "had": 21, "hand": 7, "handl": [15, 16, 20, 21, 24, 25], "handle_clean_st": 20, "handle_get_challang": 20, "handle_get_challeng": 20, "handle_provide_proof": 20, "handle_reject": 20, "handler": [6, 16, 21], "har": 7, "has_collater": 15, "has_fract": 15, "hascryptoprimit": 19, "hash": [10, 13, 14, 15, 16, 20, 24, 25], "hashmap": 20, "hashost": [15, 19], "haslogg": [15, 19], "hasreceivecontext": [15, 19], "hasstateapi": [15, 19], "have": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25], "header": 6, "headerbutton": 16, "heavi": 4, "height": 16, "help": [5, 7, 9, 20, 21, 25], "helper": [6, 16, 20, 24, 25], "her": 19, "here": [1, 2, 3, 5, 9, 12, 13, 15, 18, 20, 21, 24], "hex": [10, 15, 16, 19, 20, 25], "hi": 19, "high": [7, 10], "higher": 8, "highlight": 9, "hold": [7, 14, 16, 20], "home": 9, "host": [5, 9, 10, 15, 19], "hour": 7, "hover": 16, "how": [5, 6, 9, 13, 15, 18, 19, 22, 25], "href": [16, 24, 25], "html": [15, 16], "htmlformel": [16, 24, 25], "http": [15, 16, 17, 20, 21, 24, 25], "human": 21, "i": [5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "i32": 5, "i8": 10, "icdv": 20, "icon": [16, 24, 25], "id": [1, 6, 9, 11, 13, 15, 16, 19, 21, 24, 25], "id_proof_typ": 20, "idea": [7, 12], "ident": [7, 9, 15, 20], "identifi": 15, "idproofoutput": 16, "idstat": 16, "idverifierconfig": 20, "ignor": 10, "imagin": 7, "immedi": 9, "impl": [15, 19, 20], "implement": [5, 6, 7, 8, 14, 15, 16, 18, 19, 24, 25], "implementor": [15, 19], "import": [6, 7, 10, 15, 16, 24, 25], "imposs": 15, "includ": [4, 5, 7, 10, 15, 16, 18, 20, 21, 23, 24, 25], "incompat": 21, "increas": [4, 12, 20], "increase_suppli": 15, "index": [10, 11, 13, 16, 17, 21, 25], "indic": [7, 11], "individu": [7, 21], "infal": 20, "infinit": 12, "inflationari": 7, "info": [16, 17, 20, 21], "inform": [1, 2, 3, 7, 10, 14, 15, 16, 19, 20, 25], "inherit": [16, 24, 25], "init": [5, 6, 10, 14, 19, 20, 21, 25], "init_contract": 21, "init_nam": 21, "init_rust_sdk_minting_tutori": 21, "initcontext": [5, 10], "initcontract": [16, 25], "initcontractpayload": [16, 21, 25], "initi": [5, 6, 15, 16, 17, 20, 22, 23], "initialcredentialdeploymentvalu": 20, "initnam": [16, 25], "initparam": [16, 19], "initresult": 10, "injectstatementerror": 20, "input": [10, 13, 15, 16, 19, 20, 21, 24, 25], "insert": [15, 20], "insid": [16, 17, 20, 24, 25], "instal": [9, 16, 20, 23, 24, 25], "instanc": [5, 9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 25], "instead": [19, 25], "instruct": [9, 10], "intact": 11, "integr": [7, 18, 24], "interact": [6, 7, 8, 9, 16, 22, 24], "interchang": 7, "interfac": [7, 16, 20, 21, 24, 25], "intermediatori": 15, "intern": [20, 21], "interoper": 6, "invalid": [15, 16, 20, 24, 25], "invalidcharact": 5, "invalidcollater": 15, "invalidcontractnam": 15, "invalidproof": 20, "investor": 12, "invoc": 21, "invok": [1, 10, 11, 13, 14, 15, 16, 20, 21, 22, 25], "invoke_contract": 15, "invoke_contract_r": 15, "invoke_contract_read_onli": 15, "invoke_contract_result": 15, "invoke_inst": 21, "invokecontracterror": 15, "invokecontractresult": 21, "io": [20, 21], "ip": [7, 9, 10, 11, 13, 14, 17], "is_eq": 15, "is_g": 15, "is_non": 15, "is_oper": 15, "is_som": 15, "isconnect": [16, 24, 25], "isconnectedvar": 16, "isselect": 16, "issu": [7, 20], "issuer": 7, "istokenamount": 15, "istokenid": 15, "isvalidtokenid": 16, "item": [7, 21], "iter": 15, "its": [0, 7, 8, 10, 13, 15, 19, 20, 21, 24, 25], "itself": [7, 15, 20, 21], "job": 7, "join": [7, 16], "journei": 7, "json": [9, 10, 11, 13, 16, 17, 20, 21, 24, 25], "jsonxf": 21, "jump": 7, "just": [9, 10, 15, 16, 20, 21], "k": [16, 20], "keep": [10, 13, 15, 16, 17, 19, 24], "kei": [6, 7, 10, 15, 16, 17, 19, 20, 21], "kept": 15, "key_pair": 20, "keypair": 20, "keys_path": 21, "keyword": 21, "kill": 0, "kind": 7, "know": [7, 8, 9, 15, 20], "knowledg": [6, 7], "known": [7, 21, 25], "kp": 20, "l": 9, "label": [16, 24, 25], "languag": [15, 20], "larg": [16, 24, 25], "last": [0, 15, 17, 18, 19, 20, 21], "lastfin": 20, "later": [9, 16, 24], "latest": [9, 15, 20], "layer": [6, 15, 19], "lead": 20, "leagu": 7, "learn": [7, 12, 17, 18, 25], "least": 7, "left": 11, "legaci": [5, 9, 10, 16, 17, 18, 20, 24, 25], "legend": 7, "let": [7, 10, 15, 16, 19, 20, 21, 24, 25], "letterspac": 16, "level": [1, 2, 3, 7, 17, 19, 20], "levelfilt": 20, "lib": [15, 19], "librari": [5, 7, 16, 21, 24, 25], "licens": 7, "like": [7, 8, 9, 10, 11, 13, 15, 19, 20, 21, 22, 24, 25], "limit": [7, 12, 14, 15, 21], "line": [4, 9, 20, 21], "link": [7, 9, 14, 15, 16, 20, 24, 25], "linux": [9, 23], "list": [5, 15, 20, 21, 23], "listen": 20, "littl": 15, "ll": [10, 18], "load": 21, "local": [9, 14], "localhost": [9, 16, 17, 20], "locat": [7, 9, 20], "lock": [9, 12, 13, 15, 20], "lockingerror": 20, "log": [7, 15, 16, 17, 19, 20, 21], "log_build": 20, "log_level": 20, "logerror": 5, "logful": 15, "logger": [15, 19, 20], "logic": [13, 15, 16, 19, 25], "logicreject": 5, "logmalform": 15, "logo": 16, "long": [10, 16, 20, 21], "longer": 25, "look": [7, 10, 11, 15, 16, 20, 21, 24, 25], "lookup": [24, 25], "lot": [7, 18], "lower": 17, "mac": [9, 20], "machin": 9, "maco": [9, 23], "macro": [1, 20], "made": [10, 20], "mai": [4, 7, 10, 20, 25], "main": [6, 15, 21, 24], "mainnet": [5, 9, 10, 16, 17, 18, 20, 24, 25], "maintain": 9, "major": 15, "make": [5, 7, 9, 10, 15, 16, 20, 21, 24, 25], "malform": [5, 15], "manag": [7, 20], "mani": [10, 13, 21, 22], "manipul": [20, 21], "manner": 19, "manual": 20, "map": [5, 15, 16, 19, 20], "map_err": [15, 20], "market": 7, "marketplac": [7, 13], "master": 15, "masterpiec": 7, "match": [10, 15, 19, 20, 21, 24], "matches_account": 10, "matches_contract": 15, "materi": [7, 16, 24, 25], "matter": 7, "maxcontractexecutionenergi": [16, 25], "maxenergi": 16, "maximum": [16, 20], "maxwidth": 16, "mean": [0, 8, 9, 10, 11, 15, 16, 20], "meant": 9, "meet": [18, 20], "membership": 7, "mention": [7, 13, 20], "messag": [2, 16, 20, 21, 24, 25], "messagefail": 5, "metadata": [7, 13, 15, 16, 17, 19, 21, 23, 25], "metadata_url": [15, 19], "metadataurl": [15, 16, 19, 25], "metavers": 7, "method": [9, 14, 15, 16, 21], "methodnam": 16, "micro_ccd_in_ccd": 16, "mid": 2, "might": [14, 16, 20], "min": 5, "miner": 7, "minimum": 9, "mint": [1, 6, 7, 9, 12, 17], "minted_token_id": 15, "minter": [16, 18], "mintev": [15, 19], "mintpag": 16, "mintparam": [15, 16, 19], "minut": 23, "mismatch": 21, "missingaccount": 5, "missingcontract": 5, "missingdotsepar": 5, "missingentrypoint": 5, "missinginitprefix": 5, "missingmodul": 5, "mixtur": 17, "mobil": [5, 9, 10, 16, 17, 18, 20, 24, 25], "mod": 20, "mod_ref": 21, "model": 16, "modif": [15, 19, 20], "modifi": [11, 15], "modul": [10, 14, 16, 20, 21, 23, 25], "module_path": [20, 21], "module_ref": 21, "module_refer": 21, "moduledeploi": 21, "moduleref": [16, 25], "modulerefer": [16, 21, 25], "monei": 7, "monetari": 7, "monospac": 16, "more": [4, 5, 7, 10, 14, 15, 19, 20, 21, 25], "most": [19, 25], "motiv": 7, "mouseev": 16, "move": [16, 20], "mr": 16, "mt": [24, 25], "much": 20, "mui": [16, 24, 25], "multi": [11, 13, 15, 16, 17, 19, 21, 25], "multi_contract_module_ref": 16, "multi_contract_schema": 16, "multi_thread": 21, "multipl": 21, "music": 7, "must": [9, 10, 20], "mut": [5, 10, 15, 19, 20, 21], "mutabl": [10, 15, 19, 20], "mutat": 10, "mutex": 20, "my": 16, "my_contract": 5, "my_rec": 5, "myerror": 5, "myreturnvalu": 5, "name": [5, 9, 10, 14, 15, 16, 17, 19, 20, 23, 24, 25], "nation": 20, "navig": 9, "necessari": [10, 11, 12, 16, 21, 24, 25], "necessarili": 21, "need": [5, 7, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 24, 25], "network": [7, 24], "new": [7, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 24, 25], "new_map": 19, "new_uncheck": 21, "newcontractnameerror": 5, "newli": [15, 19], "newreceivenameerror": 5, "next": [8, 9, 10, 15, 16, 20], "nft": [0, 1, 2, 3, 4, 6, 7, 8, 16, 17, 20, 21, 23, 25], "nft_contract_address": 15, "nftcontractaddress": 16, "nice": [7, 11, 13, 16, 19, 20], "nicer": 13, "nl": 9, "nobalancetoburn": 15, "node": [6, 10, 11, 13, 14, 17, 20, 21, 24], "node_7": [5, 9, 10, 16, 17, 18, 20, 24, 25], "nodeaccess": 20, "non": [7, 20], "nonc": 21, "none": [15, 16, 21], "normal": 20, "notallow": 20, "note": [9, 10, 15, 19, 20, 21, 23], "notic": 17, "notifi": 17, "notpayableerror": 5, "now": [7, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 23, 24, 25], "nowrap": 16, "npx": [16, 25], "nt": 21, "null": 16, "num": 16, "number": [7, 9, 10, 15, 16, 19, 25], "numer": 5, "object": [16, 20], "obtain": [4, 8], "obviou": 19, "occupi": 15, "off": 7, "offer": 7, "often": 9, "ok": [10, 15, 16, 19, 20], "ok_or": [15, 20], "old": 18, "older": [16, 17, 18, 19, 20], "omit": 9, "onboard": [7, 21], "onc": [10, 15, 16, 24, 25], "onclick": [16, 24, 25], "onconnect": [24, 25], "ondisconnect": [24, 25], "ondon": 16, "one": [7, 11, 13, 14, 15, 16, 17, 19, 20, 21, 24, 25], "ones": [7, 15], "ongo": 3, "onli": [7, 9, 10, 13, 15, 20, 21], "onlin": [7, 24], "onreceivingcis2": 13, "onreceivingcis2param": 15, "onsign": 16, "onsubmit": [16, 24, 25], "op": 15, "open": [9, 16, 20, 23, 24, 25], "oper": [1, 7, 9, 14, 15, 16, 20], "opt": 19, "option": [5, 7, 9, 10, 15, 23], "or_insert": 15, "or_insert_with": 15, "ord": 20, "order": [5, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 25], "organ": 15, "orient": 22, "origin": [12, 15], "other": [5, 7, 15, 20, 21, 22, 25], "our": [7, 10, 13, 16, 20, 24], "out": [10, 14, 20, 21, 23, 25], "outcom": [16, 21], "outlin": [16, 25], "output": [9, 15, 16, 21], "outsid": 9, "over": [7, 20], "overal": 7, "overflow": 10, "overflowerror": 10, "own": [7, 9, 10, 11, 14, 17, 25], "ownedcontractnam": 21, "ownedparam": 21, "ownedparamet": 21, "ownedreceivenam": 21, "owner": [7, 10, 11, 12, 13, 15, 16, 19, 20, 21, 25], "owner_bal": 15, "owner_st": 15, "ownererror": 10, "ownership": 7, "p": [15, 16, 23], "packag": [9, 16, 24, 25], "pad": 21, "page": 9, "pai": [7, 10], "pair": 20, "palett": 23, "paper": 16, "param": [6, 16, 19, 21, 25], "param_schema": 21, "paramet": [10, 11, 13, 15, 16, 17, 19, 20, 21, 24, 25], "parameter_cursor": [10, 15, 19], "paramjson": [16, 25], "parent": 21, "pars": [10, 15, 16, 19, 20, 21], "parsecontractaddress": 16, "parsed_r": 15, "parsedtokenidhex": 16, "parseerror": [5, 10, 15], "parseint": [16, 25], "parseparam": [10, 15], "parser": [20, 21], "parseresult": 20, "part": [7, 10, 13, 15, 16, 18, 19, 20, 21, 24, 25], "partciular": 24, "parti": 7, "partialeq": [10, 15, 20], "partialord": 20, "particip": 3, "particular": [15, 20], "password": [9, 10], "past": [9, 13, 21, 24, 25], "path": [7, 9, 17, 20, 21], "pathbuf": 21, "payabl": 1, "payload": [20, 21], "payment": 21, "peopl": [3, 7, 15, 18, 20], "perfect": 7, "perform": [10, 15, 21], "permiss": [9, 20], "person": [6, 7, 17, 19], "phrase": 9, "physic": 7, "pictur": 7, "piec": 20, "pitch": 7, "place": [7, 9, 15], "platform": [7, 9, 18], "pleas": [15, 16, 24, 25], "point": [10, 12, 15, 20, 25], "pop": 25, "port": [9, 10, 11, 13, 14, 17, 20], "portal": [10, 21], "posit": 16, "possibl": [7, 12, 20], "post": [16, 17, 20], "potenti": 7, "power": [7, 9], "practic": 15, "predict": 7, "prefer": 9, "prepar": 9, "prepend": 9, "preserv": 24, "pretty_print": 21, "preventdefault": [16, 24, 25], "previou": [11, 15, 16, 21], "previous": [9, 13], "primari": [11, 15], "primarili": 20, "print": [21, 24], "println": 21, "privaci": 7, "privat": [7, 17, 20], "process": [7, 13, 15, 16, 25], "produc": 20, "profess": 7, "profil": 19, "program": [15, 20, 21], "project": [6, 7, 10, 13, 15, 16, 19, 20, 23], "promis": 16, "prompt": [9, 10], "proof": [6, 7, 16, 18, 19, 24], "proofwithcontext": 20, "prop": [16, 24, 25], "proper": 16, "properli": 11, "propos": 15, "protect": [7, 9, 20], "protector": 20, "protobuf": 20, "protocol": 7, "prove": [0, 6, 16, 19], "prove_st": 20, "proven": 17, "provid": [7, 9, 10, 14, 15, 16, 17, 19, 20, 21, 24, 25], "provide_proof": 20, "pt": 16, "pub": [7, 10, 15, 20], "public": [7, 9, 14, 19, 20, 25], "publickei": 20, "publickeyed25519": 19, "publicli": [7, 25], "publish": 20, "purpos": [9, 10, 15], "push": [7, 25], "put": 20, "qualiti": 7, "quantiti": [16, 25], "queri": [7, 14, 20], "queryaccountbalanceerror": 5, "querycontractbalanceerror": 5, "queryerror": 20, "quickli": 10, "r": [5, 6, 19, 21], "rand": 20, "random": 20, "randomli": 20, "rang": 5, "rather": 10, "re": [10, 16, 20], "react": [6, 16, 20], "react_app_contract_nam": 25, "react_app_contract_schema": 25, "react_app_module_ref": 25, "read": [7, 10, 17, 21, 25], "readabl": 21, "readbytesext": 20, "readi": [7, 9, 10, 13, 14, 16, 25], "real": 7, "realli": [7, 19, 20], "reason": [16, 21, 25], "receiv": [1, 5, 10, 11, 15, 16, 19, 20], "receive_nam": 21, "receivecontext": [5, 10], "received_token_amount": [13, 15], "receivenam": [16, 25], "receiveresult": 10, "recipi": 9, "record": 16, "recov": 20, "recoveri": 9, "redeem": 7, "redirect": 24, "reduc": [12, 15], "ref": [9, 21], "refer": [10, 14, 16, 21, 25], "regist": 6, "registerdata": 24, "registerdatapayload": 24, "registr": 20, "regular": [6, 7, 11, 19], "regulatori": 7, "rej": 16, "reject": [5, 10, 15, 16, 20, 21], "reject_reason": 21, "rejectreason": 16, "relai": 15, "relat": [7, 20], "releas": 19, "reliabl": [7, 20], "remain": [7, 11, 15, 20], "remaining_amount": 15, "remaining_suppli": 15, "rememb": [9, 13, 15, 16, 19, 25], "remind": 15, "remot": 9, "remov": [15, 16, 20], "removealllisten": [16, 24, 25], "renam": [9, 10], "replaceal": 16, "repli": 20, "repo": [20, 25], "repositori": [9, 10, 22], "repres": [7, 10, 13, 21], "request": [6, 16, 20, 21], "requestidproof": 16, "requir": [1, 7, 9, 12, 15, 16, 18, 19, 20, 21], "resid": 20, "resolv": 16, "respond": [10, 20], "respons": [15, 16, 20, 21], "rest": [9, 11, 13, 19], "restrict": 10, "result": [5, 10, 15, 16, 20, 21], "ret": 15, "return": [5, 10, 15, 16, 20, 21, 24, 25], "return_valu": [10, 21], "returnvalu": 21, "reus": 20, "reusabl": 16, "reveal": 20, "revers": 16, "revok": 7, "reward": 7, "rfc1738": 15, "right": [7, 16], "ring": 7, "rlib": 19, "rng": 20, "rock": 7, "row": 16, "rpcerror": 20, "rpm": [5, 9, 10, 16, 17, 18, 20, 24, 25], "rule": 9, "run": [6, 10, 11, 13, 14, 16, 19, 20, 21, 24, 25], "runtim": [9, 20, 21], "rust": [5, 6, 9, 10, 25], "rust_sdk_minting_tutori": 21, "rustup": 9, "rv_schema": 21, "safe": 25, "sai": [7, 9, 15], "sake": [13, 20, 21], "same": [1, 7, 9, 11, 13, 15, 19, 20, 21], "sampl": 13, "sandbox": 7, "save": 9, "saw": 11, "sbt": 7, "scarciti": 7, "scenario": [17, 19, 20], "schema": [5, 6, 9, 10, 11, 13, 14, 16, 23], "schema_glob": 21, "schema_sourc": 21, "schemab64": 21, "schemabuff": [16, 25], "schematyp": [10, 15, 19], "scienc": 7, "scratch": [24, 25], "scream": 7, "screenshot": [9, 13], "sdk": [6, 16, 18, 24, 25], "seal": 20, "search": [9, 23], "second": [0, 5, 8, 10, 11, 14, 15, 16, 18, 20, 24, 25], "secret": [9, 20], "secretkei": 20, "section": [0, 4, 7, 8, 9, 10, 13, 14, 16, 17, 21], "secur": [7, 9, 10, 25], "see": [7, 9, 10, 11, 13, 15, 16, 20, 21, 23, 24, 25], "select": [9, 10, 23], "self": [15, 19, 20, 21], "self_address": 15, "sell": 13, "semi": [7, 12, 13, 15], "send": [15, 16, 17, 19, 20, 21], "send_block_item": 21, "sender": [10, 11, 13, 14, 15, 19, 21], "sendtransact": [16, 24, 25], "sens": 7, "sensit": 25, "sent": 20, "separ": 15, "serd": [20, 21], "serde_json": [20, 21], "serdebase16seri": 20, "serdedeseri": [20, 21], "serdeseri": [20, 21], "serial": [5, 10, 15, 16, 19, 20, 21], "serial_valu": 21, "serialized_paramet": 21, "serializedparam": [16, 25], "serializeinitcontractparamet": 16, "serializeparam": 16, "serializeupdatecontractparamet": [16, 25], "serv": 20, "server": [9, 16, 19, 20], "servic": 20, "session": 20, "set": [4, 7, 9, 10, 13, 20, 21, 23, 24, 25], "setconnect": [24, 25], "sethash": 25, "setimplementor": 15, "setimplementorsparam": 15, "setsignatur": 16, "setstat": [16, 24, 25], "settimeout": 16, "setup": [10, 21], "sex": 20, "sftp": 9, "sha": 24, "sha256": 24, "share": [7, 9, 10, 12, 15, 19, 20], "shell": 9, "shift": 23, "short": [10, 20], "shortcut": 23, "should": [1, 3, 9, 10, 11, 12, 15, 18, 19, 20, 24, 25], "show": [5, 9, 10, 13, 20, 22], "shown": [9, 10, 13, 14, 15, 19, 21, 24], "sig": 20, "sign": [2, 16, 17, 19, 20], "sign_kei": 20, "signatur": [6, 7, 17, 19, 20], "signatureed25519": 19, "signer": 20, "significantli": 7, "signkei": [9, 17], "similar": [9, 16, 17, 21, 24, 25], "similarli": [15, 20, 21, 22], "simliar": 25, "simpl": [2, 6, 10, 16, 24], "simplest": 24, "simpli": [7, 10, 15, 21], "simplic": 21, "simultan": 21, "sinc": [9, 10, 16, 17, 20, 21, 22], "sit": 7, "six": 15, "size": [16, 21, 24, 25], "size_length": 15, "skeleton": 10, "skill": [0, 7], "slice": 15, "slightli": [8, 11, 15], "slim": 20, "slow": 19, "sm": 20, "small": 10, "smaller": 7, "smart": [2, 4, 5, 6, 7, 9, 11, 13, 16, 19, 20, 21, 22, 24, 25], "smart_contract": 21, "snippet": 20, "so": [5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 19, 20, 21, 25], "softwar": [9, 15, 16], "solut": [16, 19, 20], "some": [4, 7, 9, 10, 11, 13, 14, 15, 16, 20, 24, 25], "somehow": 20, "someon": [3, 7, 15, 20], "someth": [7, 9, 15, 16, 20, 24, 25], "sort": 7, "soul": 7, "soulbound": 7, "sound": 20, "sovereign": 20, "space": [15, 16, 19, 24, 25], "spawn": 20, "special": [7, 15, 24], "specif": [7, 15, 16, 19, 20, 21, 22, 24], "specifi": [10, 13, 15, 16, 19, 20, 21, 23, 24, 25], "speed": 20, "ssh": 9, "stack": [16, 24, 25], "stadium": 7, "stake": 7, "stand": 7, "standard": [6, 15, 16, 19, 20, 24, 25], "standard_no_pad": 21, "standardidentifierown": [15, 19], "start": [0, 8, 9, 10, 13, 15, 17, 18, 19, 20, 21, 23, 24, 25], "state": [5, 6, 10, 11, 13, 14, 16, 19, 20, 24, 25], "state_and_build": [15, 19], "state_build": [15, 19], "state_mut": 10, "state_paramet": [15, 19], "stateapityp": [15, 19], "statebuild": [5, 10, 15, 19], "statechang": 21, "statemap": [15, 19], "statement": [6, 15, 16, 17, 19, 21], "static": [16, 20], "statu": [9, 16, 20], "statuscod": 20, "std": [15, 19, 20, 21], "step": [9, 10, 11, 12, 13, 15, 16, 20, 21, 24, 25], "steve": 7, "still": [7, 8], "stolen": 20, "store": [2, 7, 9, 10, 15, 16, 19, 20, 24, 25], "str": 15, "stream": 20, "strengthen": 7, "string": [10, 15, 16, 20, 24, 25], "stringifi": 16, "strong": 7, "strongli": 25, "struct": [10, 15, 16, 19, 20, 21], "structopt": [20, 21], "structur": [15, 19, 20, 21, 25], "strum": 21, "strum_macro": 21, "style": [16, 24, 25], "sub": [15, 16, 25], "subarrai": 16, "subcommand": 21, "subindex": [11, 13, 16, 21, 25], "submit": [1, 2, 3, 7, 16, 21, 24, 25], "subscript": 7, "subset": 15, "succesfulli": 21, "success": [10, 16, 17, 20, 21], "successfulli": [9, 10, 11, 13, 21, 24, 25], "successtxnsummari": 16, "suggest": 25, "super": [10, 13, 20], "suppli": [6, 7, 12], "support": [5, 9, 14], "sure": [9, 10, 15, 20, 24, 25], "svg": 16, "switch": [7, 21], "sx": [16, 24, 25], "sync": 20, "synchron": 20, "system": [7, 9, 16, 24], "systemtim": 20, "t": [0, 1, 6, 7, 8, 9, 11, 13, 14, 15, 20, 21, 25], "tabl": 7, "tag": 16, "take": [7, 10, 15, 16, 19, 20, 24, 25], "talent": [7, 8], "talk": 9, "tamper": 24, "target": [9, 16, 21, 24, 25], "task": [4, 9], "teach": 7, "team": 20, "technic": [15, 20], "techniqu": 7, "technologi": [7, 20], "templat": [10, 16, 22, 23, 24, 25], "term": [7, 9], "termin": [9, 17, 21], "terribl": 16, "test": [9, 10, 11, 25], "testnet": [6, 10, 11, 13, 14, 17, 21, 24, 25], "text": [9, 10, 16, 24, 25], "textalign": 16, "textbox": 9, "textdecor": 16, "textfield": [16, 24, 25], "than": [7, 10, 11, 15, 16, 17, 18, 19, 20, 21, 25], "theft": 7, "thei": [3, 4, 7, 15, 16, 19, 20, 21], "them": [5, 7, 9, 11, 13, 15, 17, 20], "therefor": 5, "thi": [4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "thing": [7, 9, 10, 20, 21], "think": [7, 24], "third": [7, 10, 14, 15, 25], "thiserror": [20, 21], "those": [9, 15, 16, 24, 25], "thousand": 7, "thread": 21, "thread_rng": 20, "three": [7, 15, 18, 25], "threshold": 7, "through": [7, 10, 20], "throughout": 7, "throughput": 7, "throw": [15, 16], "ticket": [3, 7], "time": [7, 12, 16, 19, 20, 21, 24, 25], "timestamp": 21, "tkn": 7, "to_address": 15, "to_byt": 20, "to_json_string_pretti": 21, "to_metadata_url": [15, 19], "to_own": 15, "to_str": [15, 21], "tobigint": 16, "toccd": 16, "todai": 7, "todo": 20, "token": [1, 3, 6, 11, 12, 13, 16, 17, 19, 20, 21, 22, 23, 25], "token_id": [11, 13, 15, 19, 21], "token_info": [15, 19], "token_metadata": 15, "token_suppli": 15, "tokenalreadymint": [15, 19], "tokenamount": 15, "tokenid": [15, 16, 25], "tokenidbytes": 16, "tokenidhex": 16, "tokenmetadata": [6, 15, 16, 19, 22], "tokenmetadataev": [15, 19], "tokenmintparam": 15, "tokio": [20, 21], "toml": [19, 20, 21], "tool": [4, 9, 10, 20, 24], "toolbar": [16, 24, 25], "toolchain": 9, "toolong": 5, "topic": 9, "tostr": [16, 24, 25], "total": [7, 15], "touch": 10, "tournament": 7, "toward": 7, "trace": 20, "track": [7, 24], "trade": 7, "trader": 7, "trait": 20, "transact": [1, 7, 9, 10, 16, 17, 19, 21, 24, 25], "transaction_hash": 21, "transaction_typ": 21, "transaction_type_": 21, "transactionresult": 21, "transactionstatusenum": 16, "transactionsummari": 16, "transactiontim": 21, "transactiontyp": 21, "transfer": [1, 2, 6, 7, 9, 16, 21, 22], "transfer_entrypoint_nam": 15, "transfererror": 5, "transferev": 15, "transferparam": 15, "transferparamet": 15, "transferr": 7, "transform": 20, "transpar": 25, "trap": 5, "treat": 21, "trigger": 10, "true": [7, 15, 16, 20, 24, 25], "trust": 7, "try": [10, 16, 17, 24, 25], "try_from": 21, "try_into": 15, "tryinto": 15, "tsx": [6, 24, 25], "tutori": [6, 7, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 24, 25], "twice": [1, 15], "two": [7, 9, 11, 15, 16, 23, 24, 25], "tx": 21, "txn": 16, "txnhash": [16, 24, 25], "txnstatu": 16, "type": [5, 6, 9, 15, 16, 17, 19, 20, 21, 23, 24, 25], "typescript": [16, 24, 25], "typic": 5, "typographi": [16, 24, 25], "u": [10, 20], "u16": 20, "u64": [20, 21], "u8": [15, 20], "ubuntu": 9, "ui": [16, 17, 24, 25], "unabl": [16, 21], "unauthor": [15, 19], "undefin": 16, "under": 21, "understand": [16, 20], "uniqu": [7, 15, 25], "unit": 19, "univers": 7, "unknown": [9, 20], "unknownsess": 20, "unlik": [7, 19], "unlock": [6, 9, 15], "unsupportedmodulevers": 5, "unsurprisingli": 11, "until": 20, "unwrap": [20, 21], "unwrap_abort": 15, "up": [9, 10, 20, 23, 24, 25], "updat": [5, 6, 11, 13, 15, 16, 19, 21, 25], "update_collateral_token": 15, "update_contract": 21, "updatecontract": 16, "updatecontractpayload": [16, 21, 25], "upgradeerror": 5, "upload": 21, "upper": 17, "url": [13, 14, 15, 16, 19, 21, 23, 25], "us": [6, 7, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25], "usag": 15, "useeffect": 16, "user": [7, 9, 10, 11, 16, 19, 20, 24], "usernam": 9, "usest": [16, 24, 25], "usr": 9, "usual": [9, 11, 15], "utc": 21, "util": 7, "v": 15, "v1": [10, 14, 21], "v2": [9, 20, 21], "vacant": 15, "valid": [5, 10, 16, 19, 20, 25], "valu": [5, 7, 9, 10, 13, 16, 20, 21, 24, 25], "valuabl": 7, "var": [16, 24, 25], "variabl": [9, 15, 19, 20, 25], "variant": [5, 10, 16, 24, 25], "vec": [15, 19], "veri": [20, 24, 25], "verif": [17, 20], "verifi": [6, 7, 9, 10, 16, 18, 19, 24], "verifier_url": 16, "verifierbackendcli": 16, "verifiergetsignatur": 16, "verifierurl": 16, "verify_ed25519_signatur": 19, "verify_kei": [16, 17, 19, 20], "verifykei": [9, 16], "version": [9, 16, 19, 20, 21, 24], "versionedmoduleschema": 21, "via": 9, "video": 9, "view": [6, 11, 13, 15, 20, 24, 25], "viewaddressst": 15, "viewstat": 15, "violat": 15, "vision": 7, "visit": 7, "void": [16, 24, 25], "vscode": [6, 22, 24, 25], "wa": [15, 19], "wai": [13, 15, 16, 19, 20], "wait": [16, 17, 21], "wait_until_fin": 21, "waitfortransact": 16, "walk": 7, "wallet": [5, 6, 7, 10, 16, 17, 18, 19, 20, 21, 24, 25], "walletaccount": 21, "walletapi": [16, 24, 25], "walletconnect": 6, "want": [9, 10, 11, 13, 15, 16, 19, 20, 21, 24], "warn": [9, 10, 20], "warp": [20, 21], "wasm": [9, 10, 14, 21], "wasm32": 9, "wasmmodul": 21, "watch": 9, "we": [8, 10, 15, 17, 20], "web": [5, 9, 10, 16, 17, 18, 20, 21, 24, 25], "web3": [0, 7], "websit": 20, "well": [7, 8, 9, 16, 17, 20, 25], "weyou": 20, "what": [6, 10, 16, 19, 20, 24], "whatev": 10, "when": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 19, 20, 21, 24, 25], "where": [7, 9, 10, 15, 16, 24], "whether": [7, 9, 15, 16, 20, 21, 25], "which": [7, 9, 10, 11, 14, 15, 16, 18, 19, 20, 21, 25], "while": [7, 9, 15, 19, 20, 21, 25], "white": 16, "who": [7, 9, 15, 20, 24], "whole": [0, 5, 25], "whom": 20, "why": [5, 7, 13], "wide": 7, "window": [9, 23, 25], "wish": 9, "withaccountaddress": 20, "within": [9, 23, 25], "without": [7, 9, 10, 19, 20, 21, 24], "withschema": 21, "won": 21, "word": [9, 15], "work": [6, 10, 18, 24, 25], "world": 7, "worth": 7, "would": [5, 7, 10, 12, 15, 19, 20, 21, 24], "wrapper": 21, "write": 20, "x": 9, "xl": 16, "yarn": [16, 17, 24, 25], "ye": 7, "year": [7, 18], "you": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "your": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25], "zero": [6, 7, 10, 11, 15, 21], "zk": 20, "zkp": 6, "zoom": 24}, "titles": ["Advanced level tutorials", "Assignment 1: Basic smart contract", "Assignment 2: dApp using WalletConnect", "Assignment 3: dApp using WalletConnect", "Beginner level tutorials and assignment", "Custom errors", "Concordium Academy", "Getting started", "Mid-level tutorials", "Setup the development environment", "Concordium counter smart contract", "Burn and unlock fractionalized NFTs", "Fractionalized NFT tutorial", "Mint fractionalized NFTs", "Build, deploy, and initialize the fractionalizer smart contract", "Fractionalized NFT smart contract", "Frontend development", "How it works", "NFT minting with ID 2.0", "The minting contract", "The verifier backend", "Contract interactions with Concordium-Rust-SDK", "NFT minting tutorial with Rust-SDK", "Generate a smart contract with the Concordium VSCode extension", "Register Data On-Chain", "Simple minting dApp"], "titleterms": {"0": [18, 20], "1": [1, 6], "2": [2, 6, 7, 13, 18, 20], "3": [3, 6], "On": 24, "The": [7, 19, 20], "academi": 6, "advanc": [0, 6], "anoth": 11, "app": 16, "assign": [1, 2, 3, 4, 6], "backend": [17, 20], "basic": 1, "beginn": [4, 6], "build": [10, 14], "burn": [11, 15], "chain": 24, "challeng": 20, "chang": 21, "ci": [7, 13], "cis2_client": 15, "client": [9, 16], "code": 5, "collater": 13, "compon": [16, 24, 25], "concordium": [6, 7, 9, 10, 20, 21, 23], "constant": 16, "contract": [1, 10, 14, 15, 16, 19, 21, 23], "counter": 10, "custom": 5, "dapp": [2, 3, 17, 25], "data": 24, "defin": 5, "deploi": [10, 14, 21], "deriv": 5, "develop": [6, 9, 16], "download": 9, "environ": [6, 9], "error": [5, 15], "extens": 23, "fraction": [11, 12, 13, 14, 15], "frontend": 16, "function": [10, 15, 21], "gener": 23, "get": [6, 7, 16, 20], "handler": 20, "header": [16, 24, 25], "helper": 15, "how": 17, "i": 7, "id": [7, 18, 20], "implement": 20, "import": 9, "init": 16, "initi": [10, 14, 21, 25], "interact": [10, 21], "interoper": 7, "kei": 9, "knowledg": 20, "layer": 7, "level": [0, 4, 6, 8], "main": 20, "mid": [6, 8], "mint": [13, 15, 16, 18, 19, 20, 21, 22, 25], "nft": [11, 12, 13, 15, 18, 22], "node": 9, "param": 15, "person": 11, "project": [24, 25], "proof": [17, 20], "prove": 20, "r": [15, 20], "react": [24, 25], "regist": 24, "regular": 13, "request": 17, "run": [9, 17], "rust": [20, 21, 22], "schema": 21, "sdk": [20, 21, 22], "setup": [6, 9], "signatur": 16, "simpl": 25, "smart": [1, 10, 14, 15, 23], "standard": [5, 7], "start": [6, 7], "state": [15, 21], "statement": 20, "suppli": 15, "t": 16, "testnet": 9, "token": [7, 15], "tokenmetadata": 21, "transfer": [11, 13, 15], "tsx": 16, "tutori": [0, 4, 8, 12, 22], "type": 7, "unlock": 11, "updat": 10, "us": [2, 3, 5, 21], "verifi": [17, 20], "view": [10, 21], "vscode": 23, "wallet": 9, "walletconnect": [2, 3], "what": 7, "work": 17, "zero": 20, "zkp": 20}})
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/setup-env.html b/pr-preview-academy/pr-1250/setup-env.html
deleted file mode 100644
index 4c81eeb3b7..0000000000
--- a/pr-preview-academy/pr-1250/setup-env.html
+++ /dev/null
@@ -1,990 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Setup the development environment — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Setup the development environment
-Before starting the smart contract tutorials, you must prepare your development environment by installing a number of tools. This topic covers the setup required for the tutorials.
-
-
Note
-
You can also watch a video about installing the smart contract tools.
-
VIDEO
-First, you need to install rustup
which installs Rust and Cargo to your computer. Go to Rustup to install rustup
for your platform.
-Type 1 to continue the installation.
-
-
-Finally, when Rust and Cargo are successfully installed in your system, you should see something similar to below.
-
-
-
-
Note
-
Currently, Rust toolchain versions up to 1.81
are supported. To set version 1.81
as the default, run these commands:
-
$ rustup toolchain install 1 .81
-$ rustup default 1 .81
-
-
-
The minimum supported rust version is currently version 1.73
-
-Copy and paste the commands in a terminal to install Wasm which will be used for building contracts.
-rustup target add wasm32-unknown-unknown
-
-
-During Wasm installation in your system you should see something similar to below.
-
-
-Now you need to install the Concordium software package. cargo-concordium
is the tool for developing smart contracts for the Concordium blockchain. It can be used for compiling and testing smart contracts, and enables features such as building contract schemas .:ref:Click here<cargo-concordium-testnet> and download the version 2.2.0 or greater of cargo-concordium
for your operating system. The tool is the same for both testnet and mainnet.
-
-
Note
-
If you are not using Ubuntu/Linux as your operating system, the following screenshots and commands will be different.
-Remember to adjust the following commands based on your operating system.
-
-To install cargo-concordium
run:
-$ cargo install --locked cargo-concordium
-
-
-For a description of how to use the cargo-concordium
run:
-$ cargo concordium --help
-
-
-To use verifiable builds with cargo-concordium a container runtime such as Docker is required.
-
-
-
-
Note
-
If you have a warning on a Mac device that says “cargo-concordium cannot be opened because the developer cannot be verified” that means it requires permission to run and you should go to System Preferences → Security and unlock it with your password and click Allow Anyway .
-
-
-
-
-Download and run Concordium Client
-The concordium-client
tool allows you to interact with a Concordium node. The tutorials use concordium-client
as a command line tool to deploy, mint, and transfer. The tools is available for Windows, Mac, and Linux. Download it for your operating system here . You find documentation of important commands that the concordium-client
tool provides here .
-Rename the package to concordium-client
in case it has some version annotation. Go to the folder where you downloaded the concordium-client
. You can check if you are in the correct folder when you see the output concordium-client
from the command:
-$ ls | grep 'concordium-client'
-
-
-
-
-
-
Note
-
Alternatively, if you don’t want to navigate around in the folders, you can add the folder where the concordium-client
tool is located to your PATH variable with the command:
-export PATH="$HOME/path/to/your/concordium-client:$PATH"
.
-This allows you to use the following commands (such as concordium-client --help
)
-without prepending them with ./
. Effectively, prepending with ./
-searches for the executable package in the current directory while
-omitting ./
searches for the executable package in the PATH variable.
-The macOS distribution is an installer that places an alias to the binary into the folder /usr/local/bin
. So after installing, you should have concordium-client
on your path.
-
-On MacOS or Linux, access the command line with the Terminal application. On Windows, use the Power Shell or Command Prompt application. If you run it outside of the command line (e.g., by double clicking in Windows Explorer), then the Concordium Client will exit immediately without doing anything useful.
-Before you can use the downloaded Concordium Client on Linux you have to make the downloaded file executable. Run the following command to make the file you download executable:
-$ chmod +x concordium-client
-
-
-
-
-Check whether you can execute the concordium-client
tool.
-$ ./concordium-client --help
-
-
-You should see some output that will help you in getting familiar with the concordium-client
tool.
-
-
-Your next task enables the concordium-client
tool to talk to a testnet node. There are two options to achieve this:
-
-
-
This option explains how to transfer the concordium-client
tool to your instance and execute commands from within the instance.
-
Advantage : You can execute the commands within your instance.
-
Disadvantage : You have to transfer files between your local machine and your instance.
-
Transfer the concordium-client
package from your machine via a file-sharing tool (such as FileZilla or the sftp
command) to your instance.
-
Connect to your instance and make your package executable again as you have done previously already:
-
$ chmod +x concordium-client
-
-
-
Check if everything is connected correctly by displaying the best/latest block.
-
$ ./concordium-client block show --grpc-port 20001
-
-
-
You should see some block data output.
-
-
-
-
Note
-
Port 20001 is open by default on your testnet node to interact with it.
-
-
-
-
-
This option explains how you can use the concordium-client
tool locally on your machine and connect remotely to your node running on the server.
-
Advantage : You don’t have to transfer files between your local machine and your instance later in the tutorial.
-
Disadvantage : You have to use ssh with port forwarding when you run a command locally.
-
Since you have a remote server your cloud provider usually gives you an option to ssh into it. Add the following port forwarding rule to your method to ssh into your instance in terminal A. The port 20001 on your localhost is forwarded to the port 20001 on your instance.
-
$ ssh -NL localhost:20001:<IP-address-of-your-instance>:20001 <username>@<host>
-
-
-
-
-
-
Note
-
Port 20001 is open by default on your testnet node to interact with it. Cloud providers often use ubuntu
as the default <username> and the <IP-address-of-your-instance> as the default <host>.
-
-
Go in another terminal B to the folder where you downloaded the concordium-client
. Check if everything is connected correctly by displaying the best/latest block.
-
$ ./concordium-client block show --grpc-port 20001
-
-
-
You should see some block data output.
-
-
-
-
-
-Concordium node on Testnet
-For the purposes of these tutorials and for testing, a node is available on testnet to use when testing smart contracts and dApps so you do not need to run your own node. You can use this node for API calls of chain methods only with gRPC v2 and gRPC web. The address is grpc.testnet.concordium.com
on port 20000 (gRPCv2 and gRPC-web). You can use this node for API calls of chain methods only . This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the Testnet status page .
-If you wish to run your own node, see Run a node on Concordium .
-
-
-Setup a wallet
-Now you need a Concordium wallet. Use the Concordium Wallet for Web. The Concordium Wallet for Web uses a 24 word secret recovery phrase to secure your wallet. Make sure to protect your 24 word secret recovery phrase and store it in a secure place. Anyone who knows the secret recovery phrase can access your wallet.
-Use this link to install a Concordium Wallet for Web in a chromium web browser. Follow these instructions to install the extension. Configure it to run on testnet with an identity created from the Concordium testnet IP (shown below) and an account based on that identity. You don’t have to provide an ID to create an identity on testnet when selecting Concordium testnet IP
. Test identities are meant for testnet testing only.
-
-
-Use the Testnet faucet in your account to claim 2000 CCDs for testing purposes.
-
-
-One thing to note is that if you click , you enter a transaction window. This allows you to transfer CCDs. You can type the amount of CCD and the recipient’s address in this section. As you can see just below those textboxes, there is a value highlighting the “Estimated transaction fee” in CCD terms. This allows you to estimate the costs beforehand and it allows helps you to calculate your business expenses in the future.
-
-
-After that step, you need to export the keys for your wallet. Save the file on your local machine in the same folder as the rest of the repository. It will have a name like this <YOUR PUBLIC ADDRESS>.export. You can open it with a text editor and see your signKey, verifyKey in there. Copy signKey and your address. You will use them while deploying and interacting with your contract.
-
-
-When you export the key it creates a file named <YOUR PUBLIC ADDRESS>.export
. Open it with a text editor and find your signKey
, verifyKey
in there. Copy the signKey
and your address. You will use it while deploying and interacting with your contract.
-
-
-
-Import the key
-You are ready to import your key into the concordium-client
configuration. Transfer your wallet key export file to the place where you are running your concordium-client
tool. Navigate to the folder as well.
-Import your key into the concordium-client
configuration:
-concordium-client config account import <Wallet.export> --name <Your-Wallet-Name>.json
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/counter-contract.html b/pr-preview-academy/pr-1250/tutorials/counter-contract.html
deleted file mode 100644
index 40ad8d6887..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/counter-contract.html
+++ /dev/null
@@ -1,1025 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Concordium counter smart contract — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Concordium counter smart contract
-This tutorial guides you through creating a smart contract using the Concordium default contract template that simply keeps a counter value in its state. It is a super simple, fundamental example contract that touches on the following points:
-
-Updating the counter value by a parameter given by the user.
-Reading the current value.
-Returning a custom error if the counter overflows.
-Restricting updating the value to only the owner of the contract.
-
-
-Once you have setup your development environment, you are ready to create your smart contract project. Run the initialization command below to create a new working directory for your smart contract. It will set up the initial project for you, including any necessary Rust dependencies.
-
-
Note
-
The template repository contains short GIFs that show many of these commands.
-
-
-When prompted for which template to expand, select the default
option. You will then be asked for a name for your project. In this example we’ll use “counter”, but you can choose whatever name you want.
-The result is a basic skeleton of a smart contract. Initially, it has a State
struct, an init
function for creating new instances, an Error
enum for custom errors, a view
function to read the state, and a dummy receive
function.
-To build the counter smart contract, rename the custom_state_field
of the State
to counter
. Then add the variants OwnerError
and OverflowError
to the Error
enum, and specify the counter initial value as zero in the init
function, so the counter value starts from zero when you create a new, fresh instance of the contract. The first part of your contract now looks like this:
-/// The state of the smart contract.
-#[derive(Serialize, SchemaType)]
-pub struct State {
- counter : i8 ,
-}
-
-/// Errors that may be emitted by this smart contract.
-#[derive(Debug, PartialEq, Eq, Reject, Serialize, SchemaType)]
-pub enum Error {
- /// Failed parsing the parameter.
- #[from(ParseError)]
- ParseParams ,
- OwnerError ,
- OverflowError ,
-}
-
-/// Creates a new instance of the smart contract.
-#[init(contract = "counter" )]
-fn init ( _ctx : & InitContext , _state_builder : & mut StateBuilder ) -> InitResult < State > {
- Ok ( State { counter : 0 })
-}
-
-
-
-Update counter
-Now let’s add the function to update the counter. Change the receive
function as shown below. If the input cannot be parsed, we return Error::ParseParams
. The function must be triggered by the owner of the contract instance or it will return Error::OwnerError
. Note that the receive
attribute on the function includes the mutable
flag, which makes the host
parameter a mutable reference rather than a shared reference, which enables us to change the state of the contract.
-/// Updates the smart contracts counter by adding the input to the current value. The input parameter is an `i8`.
-///
-/// If the sender does not match the contract owner, this returns [`Error::OwnerError`] without updating the counter.
-///
-/// If the input failed to parse, this returns [`Error::ParseParams`] without updating the counter.
-///
-/// If the counter would overflow due to the update, the update is not performed and this returns [`Error::OverflowError`].
-#[receive(
- contract = "counter" ,
- name = "update" ,
- parameter = "i8" ,
- error = "Error" ,
- mutable
-)]
-fn update ( ctx : & ReceiveContext , host : & mut Host < State > ) -> Result < (), Error > {
- // Return Error::OwnerError if the owner does not match the sender.
- ensure ! (
- ctx . sender (). matches_account ( & ctx . owner ()),
- Error :: OwnerError
- );
-
- // Returns ParseError on failure.
- let input : i8 = ctx . parameter_cursor (). get () ? ;
-
- let state = host . state_mut ();
- let Some ( result ) = state . counter . checked_add ( input ) else {
- return Err ( Error :: OverflowError );
- };
-
- state . counter = result ;
- Ok (())
-}
-
-
-
-View function
-The view function will return only the counter’s value so you need to update its return value as i8
and return it from the host.state()
.
-/// Returns the state of the smart contract.
-#[receive(contract = "counter" , name = "view" , return_value = "i8" )]
-fn view ( _ctx : & ReceiveContext , host : & Host < State > ) -> ReceiveResult < i8 > {
- Ok ( host . state (). counter )
-}
-
-
-
-
-
-Build, deploy, and initialize the contract
-Create a dist
folder for the compiled WASM contract. Then, run the build command.
-$ cargo concordium build --out dist/module.wasm.v1 --schema-embed
-
-
-You may get a warning about the build not being verifiable, which you may ignore.
-Now we can deploy the smart contract using the Concordium client CLI. If you are running your own node, you can use this command:
-$ concordium-client module deploy dist/module.wasm.v1 \
- --sender <YOUR-ADDRESS> \
- --grpc-port 20001
-
-
-Or, if you just want to try things out on testnet, you can use the testing nodes provided by Concordium:
-$ concordium-client module deploy dist/module.wasm.v1 \
- --sender <YOUR-TESTNET-ADDRESS> \
- --grpc-ip grpc.testnet.concordium.com \
- --grpc-port 20000 \
- --secure
-
-
-The client may also ask you for the password you specified when you imported your key into the Concordium client . If successful, the command should respond with Module successfully deployed with reference: <MODULE-HASH>
, where the module hash is a long hex string. Note down this hash, we’ll need it when we initialize a new contract instance below.
-Note that you will also pay a small fee from your account to pay for the deployment. If you followed the environment setup to create a testnet account, you should already have some CCD for testing purposes in that account.
-Finally, let’s initialize a contract instance, so you are ready to invoke the contract functions in the next section. Use this command if you are running your own node:
-$ concordium-client contract init <MODULE-HASH> \
- --sender <YOUR-ADDRESS> \
- --energy 30000 \
- --contract counter \
- --grpc-port 20001
-
-
-Or, use this command to use the Concordium testnet node:
-$ concordium-client contract init <MODULE-HASH> \
- --sender <YOUR-TESTNET-ADDRESS> \
- --energy 30000 \
- --contract counter \
- --grpc-ip grpc.testnet.concordium.com \
- --grpc-port 20000 \
- --secure
-
-
-Be sure to note down the contract index returned by this command. You’ll need the index in the next section to invoke functions for the contract instance.
-Congratulations if you made it this far! You have now successfully deployed and initialized a simple smart contract.
-
-
-Interact with the contract
-
-View function
-First, check the initial state of the contract. Use this command if you’re hosting your own node.
-$ concordium-client contract invoke <CONTRACT-INSTANCE-INDEX> \
- --entrypoint view \
- --grpc-port 20001
-
-
-Or, use this command to use the Concordium testnet node:
-$ concordium-client contract invoke <CONTRACT-INSTANCE-INDEX> \
- --entrypoint view \
- --grpc-ip grpc.testnet.concordium.com \
- --grpc-port 20000 \
- --secure
-
-
-Since you just initialized the contract, you should see that the return value is 0.
-
-
-Update function
-In order to call a function that takes input, like our update function, we’ll need to create a JSON file that represents the input to the function. Since our input in this simple example is just a number, a simple text file with a number will do, since this is also valid JSON. We can quickly make this file with this command:
-
-Now we can invoke the update function with that input by using a contract update transaction. This will mutate the smart contract state and store the new value. If you have your own node, you can invoke the update function like so:
-$ concordium-client contract update <CONTRACT-INSTANCE-INDEX> \
- --entrypoint update \
- --parameter-json input.json \
- --sender <YOUR-ADDRESS> \
- --energy 6000 \
- --grpc-port 20001
-
-
-Or, to use Concordium’s testnet node, use this command:
-$ concordium-client contract update <CONTRACT-INSTANCE-INDEX> \
- --entrypoint update \
- --parameter-json input.json \
- --sender <YOUR-ADDRESS> \
- --energy 6000 \
- --grpc-ip grpc.testnet.concordium.com \
- --grpc-port 20000 \
- --secure
-
-
-Now try calling the view function again using the instructions above. If everything worked as it should, you should see the return value is now 42!
-We can also test that our error conditions work correctly. For instance, you can try updating the counter using another account (i.e. a different --sender
address). If you try, you’d get an error code of -2. You can check the developer portal for more information about custom errors , but basically, -2 means the second variant from your Error
enum, which is OwnerError
, which is what we’d expect.
-You can also try updating the counter with a high value that would cause an overflow error, for instance 100 (since 42 + 100 overflows an i8
). This should give you a -3 error code, which corresponds to the third variant in the Error
enum, namely OverflowError
, just as we would expect.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/burn.html b/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/burn.html
deleted file mode 100644
index f094cf4a91..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/burn.html
+++ /dev/null
@@ -1,911 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Burn and unlock fractionalized NFTs — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Burn and unlock fractionalized NFTs
-
-Unlock NFT
-As the final step of this tutorial, you will unlock the token by burning the fractions. Basically, you designed the transfer function slightly different than regular cis-2 multi contract. It checks if a token is transferring to back the same contract, which indicates that the user wants to burn it.
-You have 1000 tokens in the state, all of them owned by you: In order to test it properly, you will first burn 400 of them, transfer some of them to another account, and then burn the rest from both accounts. Finally, you will check the state.
-In order to transfer it, first create a JSON file with parameters like below.
-[
-{
-"token_id": "<FRACTION-ID>",
-"amount": "<AMOUNT-TO-BURN>",
-"from": {
-"Account": [
- "<YOUR-ADDRES>"
-]
-},
-"to": {
-"Contract": [
- {
- "index": <FRACTIONALIZER-CONTRACT-INDEX>,
- "subindex": 0
- },
- ""
-]
-},
-"data": ""
-}
-]
-
-
-Run the command below after the necessary changes in the parameter JSON.
-concordium-client contract update <YOUR-CONTRACT-INSTANCE> --entrypoint transfer --parameter-json cis2-fractionalizer/burn-20.json --schema dist/schema.bin --sender <YOUR-ADDRESS> --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com
-
-
-As usual, after a change, check the state.
-
-Unsurprisingly, you have successfully burned 400 fractions and the account has 600 left.
-
-
-Transfer to another person
-Now test this a bit deeper by transferring some of it to an actual account. You could either modify the cis2-multi-transfer.json file or create one like below. Call it transfer-account.json and transfer 100 fractions to the second account.
-[
- {
- "token_id": "<FRACTION-ID>",
- "amount": "<AMOUNT-TO-BURN>",
- "from": {
- "Account": [
- "<YOUR-ADDRESS-FROM>"
- ]
- },
- "to": {
- "Account": [
- "<YOUR-ADDRESS-TO>"
- ]
- },
- "data": ""
- }
-]
-
-
-Run the transfer command below.
-concordium-client contract update <YOUR-CONTRACT-INSTANCE> --entrypoint transfer --parameter-json cis2-fractionalizer/transfer-account.json --schema dist/schema.bin --sender <YOUR-ADDRESS> --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com
-
-
-
-Check the state again. You should see two owners with balances 500 and 100.
-
-Nice. Both of the accounts have some assets now. As a final step, burn all of these from them and check both the fractionalizer’s state and the collateralized token’s state.
-First, burn 500 from the first account. View the state if you want to double-check it.
-
-Now burn the remaining 100 from the second account. The expected behavior is to be able to unlock the first asset, meaning in the token’s state you should see your account has it.
-Don’t forget to invoke the function from the second account as it is the owner of the assets.
-
-As the final step, check the token contract state. In the previous steps, you saw that the account has 999 and the fractionalizer contract has 1. But the smart contract is designed to transfer the token back when all of them are burned. So there should be 1000 in the primary account intact.
-
-By looking at the state, you can confirm that the primary account received that token back and the fractionalizer contract has zero balance. Congratulations you have successfully completed this tutorial!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/index.html b/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/index.html
deleted file mode 100644
index ed3188edb9..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/index.html
+++ /dev/null
@@ -1,830 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Fractionalized NFT tutorial — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Fractionalized NFT tutorial
-in this tutorial you learn the necessary steps to fractionalize an NFT. The requirements for doing it are:
-
-The original NFT should be locked in a contract. The idea here is that when you create fractions, it should be limited. It has no point for an investor if infinitely new fractions minting/increasing the supply would be possible because that would reduce your share each time.
-NFT owners should be able to lock their assets and get semi-fungible tokens.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/mint.html b/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/mint.html
deleted file mode 100644
index a027fd6627..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/mint.html
+++ /dev/null
@@ -1,932 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Mint fractionalized NFTs — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Mint fractionalized NFTs
-You have deployed fractionalizer and are ready to mint some NFTs as a fraction of another one. To do that follow these steps:
-
-
-Mint a regular NFT (to be collateralized)
-Remember that your fractionalization logic starts with collateralizing the CIS-2 NFT. In order to mint a CIS-2 NFT you can follow the Mint a Semi-fungible token tutorial . As previously mentioned in this tutorial, you will use cis2-multi smart contract for minting our token and you can find the full code here. The screenshot below shows only the mint()
function. You can find build/deploy processes in the tutorial.
-
-Check the state by calling the view()
function as shown below.
-concordium-client contract invoke <YOUR-TOKEN-CONTRACT-INDEX>--entrypoint view --schema ../cis2-multi/dist/schema.bin --grpc-port 20000 --grpc-ip node.testnet.concordium.com
-
-
-
-
-
-Transfer CIS-2 NFT
-You have successfully minted a CIS-2 NFT and now you can transfer it to the fractionalizer contract. In order to do that, you need to call the transfer()
function from the token’s contract using its index and schema file. Create a JSON file to give the input parameters like the below and specify the fractionalizer contract index value.
-[
-{
-"token_id": "<YOUR-TOKEN-ID>",
-"amount": "<TOKEN-AMOUNT-TO-LOCK>",
-"from": {
-"Account": [
- "<YOUR-ACCOUNT>"
-]
-},
-"to": {
-"Contract": [
- {
- "index": <YOUR-FRACTIONALIZER-CONTRACT-INDEX>,
- "subindex": 0
- },
- "onReceivingCIS2"
-]
-},
-"data": ""
-}
-]
-
-
-Don’t get confused in this part. You need to use the token’s schema to change its state . You want to keep both schemas in the same project folder for the sake of order. That’s why you created a section for the cis2-multi contract’s schema file, so you can either copy the schema file from cis2-multi to your fractionalizer directory´, or you can call it from that file using the JSON above. This tutorial does it the first way, by creating a file and copying/pasting the schema from cis2-multi.
-Run the command below to transfer the token to the fractionalizer.
-concordium-client contract update <YOUR-TOKEN-CONTRACT-INSTANCE> --entrypoint transfer --parameter-json cis2-fractionalizer/cis2-multi-transfer.json --schema multi/dist/schema.bin --sender <YOUR-ADDRESS> --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com
-
-
-
-Nice. Now check the token contract’s state.
-
-Super cool! As you can see, the fractionalizer contract has one token and your account has the rest.
-Now, check the fractionalizer’s state.
-
-Even nicer! As you can see, you have locked the “NFT 01” token as received_token_amount
with token_id:01
from the cis2-multi contract.
-
-
-Mint fractions
-You are ready to mint fractions of the token now. Create a JSON file like the one below. You need to mint new tokens based on the collateralized one, so specify the exact token_id
and contract _index
. amount
sets how many fractions are going to be minted.
-{
-"owner": {
-"Account": ["<YOUR-ACCOUNT>"]
-},
-"tokens": [
-[
-"<YOUR-TOKEN-ID>",
-{
- "metadata": {
- "url": "<METADATA-URL>",
- "hash": "<HASH>"
- },
- "amount": "<FRACTION-AMOUNT>",
- "contract": { "index": <YOUR-TOKEN-CONTRACT-INDEX>, "subindex": 0 },
- "token_id": "<YOUR-TOKEN-ID-COLLATERAL>"
-}
-]
-]
-}
-
-
-Then run the following command to mint the fractions.
-concordium-client contract update <YOUR-CONTRACT-INSTANCE> --entrypoint mint --parameter-json ../sample-artifacts/cis2-fractionalizer/mint.json --schema ../cis2-fractionalizer/schema.bin --sender $ACCOUNT --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com
-
-
-
-Now, check the fractionalizer’s state with the command below.
-concordium-client contract invoke <YOUR-FRACTIONALIZER-CONTRACT-INDEX> --entrypoint view --schema dist/schema.bin --grpc-port 20000 --grpc-ip node.testnet.concordium.com
-
-
-
-Congrats! You have now locked an NFT and created 1000 fractions that represent the token. New fractions are CIS-2 tokens, and you can transfer them or sell them on a marketplace. Anything that can apply to a CIS-2 token is also available for these fractions.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/sc-actions.html b/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/sc-actions.html
deleted file mode 100644
index cb9471a161..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/sc-actions.html
+++ /dev/null
@@ -1,865 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Build, deploy, and initialize the fractionalizer smart contract — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Build, deploy, and initialize the fractionalizer smart contract
-So far so good! You have implemented your smart contract and now you are ready to build, deploy, and create an instance of it.
-
-Build smart contract
-First, build the smart contract into Wasm format. Use the following command to do it. You can extract the schema and Wasm-compiled file into a new folder called dist as shown in this example.
-cargo concordium build --out dist/module.wasm.v1 --schema-out dist/schema.bin
-
-
-
-
-
-Deploy smart contract
-Second, you need to deploy the Wasm-compiled smart contract to testnet. If you don’t have your own node running, you can use the Concordium testnet node to deploy. Using a public URL (node.testnet.concordium.com), you can connect to the Concordium testnet node and will be able to deploy/query nodes. For all operations in this tutorial, you are going to use the public gRPC endpoint that is provided by Concordium.
-For some use cases you might need to run your own local node as there could be some limitations of this one. If you need more information either check this link or contact Concordium support .
-Use the following command to do deploy your smart contract.
-concordium-client module deploy dist/module.wasm.v1 --sender <YOUR-ADDRESS> --name CIS2-Fractionalizer --grpc-port 20000 --grpc-ip node.testnet.concordium.com
-
-
-
-
-
-Initialize smart contract
-Third, you need to create a new instance of this smart contract which will initialize the empty state that holds the assets and allow you to invoke all methods. Run the command below to create an instance of your deployed contract using the module reference.
-concordium-client contract init <YOUR-MODULE-HASH> --sender <YOUR-ADDRESS> --energy 30000 --contract CIS2-Fractionalizer --grpc-port 20000 --grpc-ip node.testnet.concordium.com
-
-
-
-Excellent. Now you can continue to the following section .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/smart-contract.html b/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/smart-contract.html
deleted file mode 100644
index 5edce3df9a..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/fractionalized-nft/smart-contract.html
+++ /dev/null
@@ -1,1495 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Fractionalized NFT smart contract — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Fractionalized NFT smart contract
-The smart contract is organized slightly differently than usual for this tutorial. First, there will be a lib.rs which is basically the main function of your contract like the other programming languages. The compiler starts from this file to compile it. The second file will be the contract.rs which will be your primary CIS-2 contract that includes all the logic provided for the requirements. The State.rs , Params.rs , and Error.rs files have been kept separate just for demonstration purposes, meaning you can keep them all in your lib.rs file. Finally, you will have a cis2_client.rs file which will enable the master contract to do some operations on the CIS-2 token contract. One little reminder: there will be some additions to the CIS2-multi contract. You can check the particular contract in this link .
-
-State.rs
-Start with the state.rs file. As you already know from the previous tutorials, the state will keep the asset’s latest state. The contract has to have an initialization function to create an empty state in the beginning, which includes four maps such as state, tokens, token_supply, implementors, and collaterals . There is one addition which is the collaterals ; practically, the tokens to be locked will be stored in this StateMap<CollateralKey, CollateralState, S>
.
-/// The contract state,
-///
-/// Note: The specification does not specify how to structure the contract state
-/// and this could be structured in a more space-efficient way.
-#[derive(Serial, DeserialWithState)]
-#[concordium(state_parameter = "S" )]
-pub struct State < S > {
- /// The state of addresses.
- pub ( crate ) state : StateMap < Address , AddressState < S > , S > ,
- /// All of the token IDs
- pub ( crate ) tokens : StateMap < ContractTokenId , MetadataUrl , S > ,
- /// Map with tokenId and token amount for the supply
- pub ( crate ) token_supply : StateMap < ContractTokenId , ContractTokenAmount , S > ,
- pub ( crate ) implementors : StateMap < StandardIdentifierOwned , Vec < ContractAddress > , S > ,
- pub ( crate ) collaterals : StateMap < CollateralKey , CollateralState , S > ,
-}
-
-
-You need to create a new state variable for your collateralized token, in other words, the tokens to be locked. You will need to keep the token’s contract address, its ID, and who locked it which all are provided in the CollateralKey
struct below. Then you need the token amounts for the total number of fractions and the new token IDs.
-Basically, when someone sends the fraction token to this contract, you will assume that they want to burn that asset and you will burn it and the new()
function will be invoked when someone wants to add new collateral to mint its fractions.
-#[derive(Serial, Deserial, Clone, SchemaType, Copy)]
-pub struct CollateralKey {
- pub contract : ContractAddress ,
- pub token_id : ContractTokenId ,
- pub owner : AccountAddress ,
-}
-
-#[derive(Serial, Deserial, Clone, Copy, SchemaType)]
-pub struct CollateralState {
- pub received_token_amount : ContractTokenAmount ,
- pub minted_token_id : Option < ContractTokenId > ,
-}
-
-impl CollateralState {
- fn new () -> Self {
- CollateralState {
- received_token_amount : ContractTokenAmount :: from ( 0 ),
- minted_token_id : Option :: None ,
- }
- }
-}
-
-
-There are five additions to the cis2-multi contract state functions for handling the collateral state. The first one is the add_collateral()
function. It expects the token contract address , token_id , owner address , and the token amount to be locked.
-The second one is has_collateral()
, which similarly takes the token contract address , token_id , and owner address as input to create a key in the form of a CollateralKey
struct to look into the StateMap . If someone has already collateralized the token, this will return true and you will use this to make sure that they will not be able to do it again.
-The third one is find_collateral()
which takes token_id (fraction) as a parameter and checks its existence in the minted tokens. If a token with that ID exists, it returns a clone of it.
-The fourth one is has_fractions()
. You will use this to check whether a token is already fractionalized into new ones. You don’t want to allow people to create more and more fractions when they lock their assets once.
-The last one is update_collateral_token()
. You will use this when you have locked the tokens while minting new fractions. Based on the amount of fractions, it will update the state with the new tokens.
-One important note here is that you can lock a semi-fungible token technically with this example. If you would like to limit it you can adjust it simply by checking the amount.
-pub ( crate ) fn add_collateral (
- & mut self ,
- contract : ContractAddress ,
- token_id : ContractTokenId ,
- owner : AccountAddress ,
- received_token_amount : ContractTokenAmount ,
-) {
- let key = CollateralKey {
- contract ,
- token_id ,
- owner ,
- };
-
- let mut cs = match self . collaterals . get ( & key ) {
- Some ( v ) => * v ,
- None => CollateralState :: new (),
- };
-
- cs . received_token_amount += received_token_amount ;
-
- self . collaterals . insert ( key , cs );
-}
-
-pub ( crate ) fn has_collateral (
- & self ,
- contract : & ContractAddress ,
- token_id : & ContractTokenId ,
- owner : & AccountAddress ,
-) -> bool {
- let key = CollateralKey {
- contract : * contract ,
- token_id : * token_id ,
- owner : * owner ,
- };
-
- self . collaterals . get ( & key ). is_some ()
-}
-
-pub ( crate ) fn find_collateral (
- & self ,
- token_id : & ContractTokenId ,
-) -> Option < ( CollateralKey , ContractTokenAmount ) > {
- for c in self . collaterals . iter () {
- match c . 1. minted_token_id {
- Some ( t ) => {
- if t . eq ( token_id ) {
- return Some (( c . 0. clone (), c . 1. received_token_amount ));
- }
- }
- None => continue ,
- };
- }
-
- None
-}
-
-pub ( crate ) fn has_fraction (
- & self ,
- contract : & ContractAddress ,
- token_id : & ContractTokenId ,
- owner : & AccountAddress ,
-) -> Option < ContractTokenId > {
- let key = CollateralKey {
- contract : * contract ,
- token_id : * token_id ,
- owner : * owner ,
- };
-
- self . collaterals . get ( & key ) ? . minted_token_id
-}
-
-pub ( crate ) fn update_collateral_token (
- & mut self ,
- contract : ContractAddress ,
- token_id : ContractTokenId ,
- owner : AccountAddress ,
- minted_token_id : ContractTokenId ,
-) -> ContractResult < () > {
- let key = CollateralKey {
- contract ,
- token_id ,
- owner ,
- };
-
- match self . collaterals . entry ( key ) {
- Entry :: Vacant ( _ ) => bail ! ( Cis2Error :: Custom ( CustomContractError :: InvalidCollateral )),
- Entry :: Occupied ( mut e ) => {
- e . modify ( | s | s . minted_token_id = Some ( minted_token_id ));
- Ok (())
- }
- }
-}
-
-
-
-Token supply helpers
-fn increase_supply ( & mut self , token_id : ContractTokenId , amount : ContractTokenAmount ) {
- let curr_supply = self . get_supply ( & token_id );
- self . token_supply . insert ( token_id , curr_supply + amount );
- }
-fn decrease_supply ( & mut self , token_id : ContractTokenId , amount : ContractTokenAmount ) {
- let curr_supply = self . get_supply ( & token_id );
- let remaining_supply = curr_supply - amount ;
- if remaining_supply . cmp ( & ContractTokenAmount :: from ( 0 )). is_eq () {
- self . token_supply . remove ( & token_id );
- } else {
- self . token_supply . insert ( token_id , curr_supply - amount );
- }
- }
- pub ( crate ) fn get_supply ( & self , token_id : & ContractTokenId ) -> ContractTokenAmount {
- match self . token_supply . get ( token_id ) {
- Some ( amount ) => * amount ,
- None => ContractTokenAmount :: from ( 0 ),
- }
- }
-
-
-
-
-State mint function
-There is only one addition to the existing mint()
function in the cis2-multi contract, which is the increase_supply()
when a token is minted.
-/// Mints an amount of tokens with a given address as the owner.
- pub ( crate ) fn mint (
- & mut self ,
- token_id : & ContractTokenId ,
- token_metadata : & TokenMetadata ,
- amount : ContractTokenAmount ,
- owner : & Address ,
- state_builder : & mut StateBuilder < S > ,
- ) {
- {
- self . tokens
- . insert ( * token_id , token_metadata . to_metadata_url ());
- let mut owner_state = self
- . state
- . entry ( * owner )
- . or_insert_with ( || AddressState :: empty ( state_builder ));
- let mut owner_balance = owner_state . balances . entry ( * token_id ). or_insert ( 0. into ());
- * owner_balance += amount ;
- }
-
- self . increase_supply ( * token_id , amount );
- }
-
-
-
-
-State burn function
-You need to add a burn()
function to the state so that you will be able to burn the fractions. An example is shown below. You will use the decrease_supply()
function to update the state when you burn something.
-pub ( crate ) fn burn (
- & mut self ,
- token_id : & ContractTokenId ,
- amount : ContractTokenAmount ,
- owner : & Address ,
-) -> ContractResult < ContractTokenAmount > {
- let ret = {
- match self . state . get_mut ( owner ) {
- Some ( address_state ) => match address_state . balances . get_mut ( token_id ) {
- Some ( mut b ) => {
- ensure ! (
- b . cmp ( & amount ). is_ge (),
- Cis2Error :: Custom ( CustomContractError :: NoBalanceToBurn )
- );
-
- * b -= amount ;
- Ok ( * b )
- }
- None => Err ( Cis2Error :: Custom ( CustomContractError :: NoBalanceToBurn )),
- },
- None => Err ( Cis2Error :: Custom ( CustomContractError :: NoBalanceToBurn )),
- }
- };
-
- self . decrease_supply ( * token_id , amount );
-
- ret
-}
-
-
-
-
-
-Params.rs
-In this file, you will keep the parameter structs and some implementation for them to mint, for metadata operations, and to view. They are almost identical to the cis2-multi parameters with some additions for collaterals.
-use concordium_cis2 :: * ;
-use concordium_std :: * ;
-use core :: convert :: TryInto ;
-
-use crate ::{
- state ::{ CollateralKey , CollateralState },
- ContractTokenAmount , ContractTokenId ,
-};
-
-#[derive(Serial, Deserial, SchemaType)]
-pub struct TokenMintParams {
- pub metadata : TokenMetadata ,
- pub amount : ContractTokenAmount ,
- pub contract : ContractAddress ,
- pub token_id : ContractTokenId ,
-}
-
-/// The parameter for the contract function `mint` which mints a number of
-/// token types and/or amounts of tokens to a given address.
-#[derive(Serial, Deserial, SchemaType)]
-pub struct MintParams {
- /// Owner of the newly minted tokens.
- pub owner : Address ,
- /// A collection of tokens to mint.
- pub tokens : collections :: BTreeMap < ContractTokenId , TokenMintParams > ,
-}
-
-/// The parameter type for the contract function `setImplementors`.
-/// Takes a standard identifier and a list of contract addresses providing
-/// implementations of this standard.
-#[derive(Debug, Serialize, SchemaType)]
-pub struct SetImplementorsParams {
- /// The identifier for the standard.
- pub id : StandardIdentifierOwned ,
- /// The addresses of the implementors of the standard.
- pub implementors : Vec < ContractAddress > ,
-}
-
-#[derive(Debug, Serialize, Clone, SchemaType)]
-pub struct TokenMetadata {
- /// The URL following the specification RFC1738.
- #[concordium(size_length = 2)]
- pub url : String ,
- /// A optional hash of the content.
- #[concordium(size_length = 2)]
- pub hash : String ,
-}
-
-impl TokenMetadata {
- fn get_hash_bytes ( & self ) -> Option < [ u8 ; 32 ] > {
- match hex :: decode ( self . hash . to_owned ()) {
- Ok ( v ) => {
- let slice = v . as_slice ();
- match slice . try_into () {
- Ok ( array ) => Option :: Some ( array ),
- Err ( _ ) => Option :: None ,
- }
- }
- Err ( _ ) => Option :: None ,
- }
- }
-
- pub ( crate ) fn to_metadata_url ( & self ) -> MetadataUrl {
- MetadataUrl {
- url : self . url . to_string (),
- hash : self . get_hash_bytes (),
- }
- }
-}
-
-#[derive(Serialize, SchemaType)]
-pub struct ViewAddressState {
- pub balances : Vec < ( ContractTokenId , ContractTokenAmount ) > ,
- pub operators : Vec < Address > ,
-}
-
-#[derive(Serialize, SchemaType)]
-pub struct ViewState {
- pub state : Vec < ( Address , ViewAddressState ) > ,
- pub tokens : Vec < ContractTokenId > ,
- pub collaterals : Vec < ( CollateralKey , CollateralState ) > ,
-}
-
-/// Parameter type for the CIS-2 function `balanceOf` specialized to the subset
-/// of TokenIDs used by this contract.
-pub type ContractBalanceOfQueryParams = BalanceOfQueryParams < ContractTokenId > ;
-
-/// Response type for the CIS-2 function `balanceOf` specialized to the subset
-/// of TokenAmounts used by this contract.
-pub type ContractBalanceOfQueryResponse = BalanceOfQueryResponse < ContractTokenAmount > ;
-
-pub type TransferParameter = TransferParams < ContractTokenId , ContractTokenAmount > ;
-
-
-
-
-Error.rs
-You will implement custom errors for this project like the ones below where the last six errors are custom errors. For more information about custom errors in Concordium smart contracts, see Custom errors .
-pub enum CustomContractError {
- /// Failed parsing the parameter.
- #[from(ParseError)]
- ParseParams ,
- /// Failed logging: Log is full.
- LogFull ,
- /// Failed logging: Log is malformed.
- LogMalformed ,
- /// Invalid contract name.
- InvalidContractName ,
- /// Only a smart contract can call this function.
- ContractOnly ,
- /// Failed to invoke a contract.
- InvokeContractError ,
- /// Unique tokenID
- TokenAlreadyMinted ,
- /// Cant be collateralized
- InvalidCollateral ,
- /// Same collateral ID twice
- AlreadyCollateralized ,
- /// Cant burn
- NoBalanceToBurn ,
- /// Contracts are not allowed
- AccountsOnly ,
- /// Cant call another CIS-2 contract
- Cis2ClientError ( Cis2ClientError ),
-}
-
-
-
-
-cis2_client.rs
-In order to call a contract from another smart contract you need to implement a relay layer which is the cis2_client.rs . It implements the transfer function. You will transfer the asset back to the original owner when all fractions are burned. In order to do that, you need to implement this client that will allow you to call the transfer()
function in the NFT contract. Please remember that you should transfer it using the contract that minted the original token in the first place.
-//! CIS2 client is the intermediatory layer between fractionalizer contract and CIS2 contract.
-//!
-//! # Description
-//! It allows Fractionalizer contract to abstract away logic of calling CIS2 contract for the following methods
-//! - `transfer` : Calls [`transfer`](https://proposals.concordium.software/CIS/cis-2.html#transfer)
-
-use std :: vec ;
-
-use concordium_cis2 :: * ;
-use concordium_std :: * ;
-
-use crate :: state :: State ;
-
-pub const TRANSFER_ENTRYPOINT_NAME : & str = "transfer" ;
-
-#[derive(Serialize, Debug, PartialEq, Eq, Reject, SchemaType)]
-pub enum Cis2ClientError {
- InvokeContractError ,
- ParseParams ,
-}
-
-pub struct Cis2Client ;
-
-impl Cis2Client {
- pub ( crate ) fn transfer <
- S ,
- T : IsTokenId + Clone + Copy ,
- A : IsTokenAmount + Clone + Copy + ops :: Sub < Output = A > ,
- > (
- host : & mut impl HasHost < State < S > , StateApiType = S > ,
- token_id : T ,
- nft_contract_address : ContractAddress ,
- amount : A ,
- from : Address ,
- to : Receiver ,
- ) -> Result < (), Cis2ClientError >
- where
- S : HasStateApi ,
- A : IsTokenAmount ,
- {
- let params = TransferParams ( vec! [ Transfer {
- token_id ,
- amount ,
- from ,
- data : AdditionalData :: empty (),
- to ,
- }]);
-
- Cis2Client :: invoke_contract_read_only (
- host ,
- & nft_contract_address ,
- TRANSFER_ENTRYPOINT_NAME ,
- & params ,
- ) ? ;
-
- Ok (())
- }
-
- fn invoke_contract_read_only < S : HasStateApi , R : Deserial , P : Serial > (
- host : & mut impl HasHost < State < S > , StateApiType = S > ,
- contract_address : & ContractAddress ,
- entrypoint_name : & str ,
- params : & P ,
- ) -> Result < R , Cis2ClientError > {
- let invoke_contract_result = host
- . invoke_contract_read_only (
- contract_address ,
- params ,
- EntrypointName :: new ( entrypoint_name ). unwrap_abort (),
- Amount :: from_ccd ( 0 ),
- )
- . map_err ( | _e | Cis2ClientError :: InvokeContractError ) ? ;
- let mut invoke_contract_res = match invoke_contract_result {
- Some ( s ) => s ,
- None => return Result :: Err ( Cis2ClientError :: InvokeContractError ),
- };
- let parsed_res =
- R :: deserial ( & mut invoke_contract_res ). map_err ( | _e | Cis2ClientError :: ParseParams ) ? ;
-
- Ok ( parsed_res )
- }
-}
-
-
-
-
-Contract.rs
-Finally, you need modifications for the fractionalization of NFTs in the contract functions. There are two major changes in the contract_mint()
and contract_transfer()
functions, which are described below. The full code is shared at the end of the tutorial.
-
-Mint Function
-In the contract_mint()
function, there are three additions.
-First, you want to make sure that only accounts can lock and fractionalize the NFTs. You can see the match
statement below that performs this particular control.
-Second, it should be impossible to mint new fractions if the collateral is not locked first. So, you need to ensure that the token exists in the collateral list. The ensure!()
statement checks this, and if violated, throws an InvalidCollateral
custom error.
-As a final addition to the mint()
function, you need to update the state when a token is minted. Basically, you are storing which token from which contract is locked, which token on this contract is minted, and who is the owner. See the usage of the update_collateral_token()
function below.
-#[receive(
- contract = "CIS2-Fractionalizer" ,
- name = "mint" ,
- parameter = "MintParams" ,
- error = "ContractError" ,
- enable_logger,
- mutable
-)]
-fn contract_mint < S : HasStateApi > (
- ctx : & impl HasReceiveContext ,
- host : & mut impl HasHost < State < S > , StateApiType = S > ,
- logger : & mut impl HasLogger ,
-) -> ContractResult < () > {
- let sender = match ctx . sender () {
- Address :: Account ( a ) => a ,
- Address :: Contract ( _ ) => bail ! ( CustomContractError :: AccountsOnly . into ()),
- };
-
- // Parse the parameter.
- let params : MintParams = ctx . parameter_cursor (). get () ? ;
-
- let ( state , builder ) = host . state_and_builder ();
- for ( token_id , token_info ) in params . tokens {
- ensure ! (
- state . contains_token ( & token_id ),
- ContractError :: Custom ( CustomContractError :: TokenAlreadyMinted )
- );
-
- ensure ! (
- state . has_collateral ( & token_info . contract , & token_info . token_id , & sender ),
- concordium_cis2 :: Cis2Error :: Custom ( CustomContractError :: InvalidCollateral )
- );
- // create a fraction only for once for a token
- ensure ! (
- state
- . has_fraction ( & token_info . contract , & token_info . token_id , & sender )
- . is_none (),
- concordium_cis2 :: Cis2Error :: Custom ( CustomContractError :: AlreadyCollateralized )
- );
-
- // Mint the token in the state.
- state . mint (
- & token_id ,
- & token_info . metadata ,
- token_info . amount ,
- & params . owner ,
- builder ,
- );
-
- state . update_collateral_token (
- token_info . contract ,
- token_info . token_id ,
- sender ,
- token_id ,
- ) ? ;
-
- // Event for minted token.
- logger . log ( & Cis2Event :: Mint ( MintEvent {
- token_id ,
- amount : token_info . amount ,
- owner : params . owner ,
- })) ? ;
-
- // Metadata URL for the token.
- logger . log ( & Cis2Event :: TokenMetadata :: < _ , ContractTokenAmount > (
- TokenMetadataEvent {
- token_id ,
- metadata_url : token_info . metadata . to_metadata_url (),
- },
- )) ? ;
- }
- Ok (())
-}
-
-
-
-
-Transfer function
-You are about to finalize contract development after one final step which is the contract_transfer()
function. Basically, when you want to send your tokens to another address, you will invoke this function. In addition to that, you want to combine the burning process into this function.
-According to this logic, when you transfer the fractions (tokens minted on this contract) back to the contract, it assumes you want to burn them. You need to be the owner of the asset when calling it. After you ensure that you are authorized (meaning have some tokens), then it checks that you want to send those tokens to the contract itself. The next step is calling the state’s burn()
function which will reduce the token amount from your balance and the state’s total supply followed by emitting a BurnEvent
. Note that when you call the burn()
function, you need to emit the BurnEvent
. For more detail, check the CIS-2 standard documentation .
-The state’s burn()
function will return the remaining_amount
. If this amount is 0 then you can say that this should be unlocked now as there is no need for the collateral. At this point, you need a client to communicate with this CIS-2 token (the one that was locked as collateral in the beginning) smart contract to invoke the transfer
function. Basically, your contract will be transferring the asset back to the owner by getting their address from the state’s CollateralKey
struct using the token_id
.
-In the else
statement, you are just transferring a token to someone else, so this part is identical to the cis2-multi contract’s transfer()
function.
-#[receive(
- contract = "CIS2-Fractionalizer" ,
- name = "transfer" ,
- parameter = "TransferParameter" ,
- error = "ContractError" ,
- enable_logger,
- mutable
-)]
-fn contract_transfer < S : HasStateApi > (
- ctx : & impl HasReceiveContext ,
- host : & mut impl HasHost < State < S > , StateApiType = S > ,
- logger : & mut impl HasLogger ,
-) -> ContractResult < () > {
- // Parse the parameter.
- let TransferParams ( transfers ): TransferParameter = ctx . parameter_cursor (). get () ? ;
- // Get the sender who invoked this contract function.
- let sender = ctx . sender ();
-
- for Transfer {
- token_id ,
- amount ,
- from ,
- to ,
- data ,
- } in transfers
- {
- let ( state , builder ) = host . state_and_builder ();
- // Authenticate the sender for this transfer
- ensure ! (
- from == sender || state . is_operator ( & sender , & from ),
- ContractError :: Unauthorized
- );
-
- if to . address (). matches_contract ( & ctx . self_address ()) {
- // tokens are being transferred to self
- // burn the tokens
- let remaining_amount : ContractTokenAmount = state . burn ( & token_id , amount , & from ) ? ;
-
- // log burn event
- logger . log ( & Cis2Event :: Burn ( BurnEvent {
- token_id ,
- amount ,
- owner : from ,
- })) ? ;
-
- // Check of there is any remaining amount
- if remaining_amount . eq ( & ContractTokenAmount :: from ( 0 )) {
- // Everything has been burned
- // Transfer collateral back to the original owner
- let ( collateral_key , collateral_amount ) = state
- . find_collateral ( & token_id )
- . ok_or ( Cis2Error :: Custom ( CustomContractError :: InvalidCollateral )) ? ;
-
- // Return back the collateral
- Cis2Client :: transfer (
- host ,
- collateral_key . token_id ,
- collateral_key . contract ,
- collateral_amount ,
- concordium_std :: Address :: Contract ( ctx . self_address ()),
- concordium_cis2 :: Receiver :: Account ( collateral_key . owner ),
- )
- . map_err ( CustomContractError :: Cis2ClientError ) ? ;
- }
- } else {
- let to_address = to . address ();
-
- // Tokens are being transferred to another address
- // Update the contract state
- state . transfer ( & token_id , amount , & from , & to_address , builder ) ? ;
-
- // Log transfer event
- logger . log ( & Cis2Event :: Transfer ( TransferEvent {
- token_id ,
- amount ,
- from ,
- to : to_address ,
- })) ? ;
-
- // If the receiver is a contract we invoke it.
- if let Receiver :: Contract ( address , entrypoint_name ) = to {
- let parameter = OnReceivingCis2Params {
- token_id ,
- amount ,
- from ,
- data ,
- };
- host . invoke_contract (
- & address ,
- & parameter ,
- entrypoint_name . as_entrypoint_name (),
- Amount :: zero (),
- ) ? ;
- }
- }
- }
-
- Ok (())
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/frontend.html b/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/frontend.html
deleted file mode 100644
index f1def003d3..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/frontend.html
+++ /dev/null
@@ -1,1829 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Frontend development — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Frontend development
-The user interface will be a simple React application implemented from the template and material-ui, similar to this tutorial.
-npx create-react-app mint-ui --template typescript
-
-
-It will take some time to fetch and install all packages and dependencies, and when it’s all done you will have something similar to the below.
-
-And when you run it you will see the template application interface.
-
-Then you will add the dependencies for some React components from material-ui, and necessary libraries from concordium-web-sdk and concordium-web-wallet-helper. To do that, run the command below and yarn
will install all specified packages.
-yarn add @mui/material @emotion/react @mui/icons-material @emotion/styled @concordium/web-sdk @concordium/browser-wallet-api-helpers
-
-
-Once you complete that, it will create a package.json file that includes all dependencies in it.
-
-
-
-Contract Client
-In order to interact with a smart contract deployed on-chain you have to use SDKs and the best way is to implement a client using it. Since our project is a React application, the Concordium web-SDK is the one you need. Almost all of the code is reusable for any project (but it might need some changes depending on SDK updates).
-Create another folder called modules and add a file for the client’s helper functions implementation (CIS2ContractHelper.ts ).
-import { WalletApi } from "@concordium/browser-wallet-api-helpers";
-import { Buffer } from "buffer/";
-
-import {
- ContractAddress,
- AccountTransactionType,
- UpdateContractPayload,
- serializeUpdateContractParameters,
- ModuleReference,
- InitContractPayload,
- TransactionStatusEnum,
- TransactionSummary,
- CcdAmount,
-} from "@concordium/web-sdk";
-
-
-/**
-* Waits for the input transaction to Finalize.
-* @param provider Wallet Provider.
-* @param txnHash Hash of Transaction.
-* @returns Transaction outcomes.
-*/
-export function waitForTransaction(
- provider: WalletApi,
- txnHash: string
-): Promise<Record<string, TransactionSummary> | undefined> {
- return new Promise((res, rej) => {
- _wait(provider, txnHash, res, rej);
- });
-}
-
-export function ensureValidOutcome(
- outcomes?: Record<string, TransactionSummary>
-): Record<string, TransactionSummary> {
- if (!outcomes) {
- throw Error("Null Outcome");
- }
-
- let successTxnSummary = Object.keys(outcomes)
- .map((k) => outcomes[k])
- .find((s) => s.result.outcome === "success");
-
- if (!successTxnSummary) {
- let failures = Object.keys(outcomes)
- .map((k) => outcomes[k])
- .filter((s) => s.result.outcome === "reject")
- .map((s) => (s.result as any).rejectReason.tag)
- .join(",");
- throw Error(`Transaction failed, reasons: ${failures}`);
- }
-
- return outcomes;
-}
-
-
-/**
-* Uses Contract Schema to serialize the contract parameters.
-* @param contractName Name of the Contract.
-* @param schema Buffer of Contract Schema.
-* @param methodName Contract method name.
-* @param params Contract Method params in JSON.
-* @returns Serialize buffer of the input params.
-*/
-export function serializeParams<T>(
- contractName: string,
- schema: Buffer,
- methodName: string,
- params: T
-): Buffer {
- return serializeUpdateContractParameters(
- contractName,
- methodName,
- params,
- schema
- );
-}
-
-
-export function _wait(
- provider: WalletApi,
- txnHash: string,
- res: (p: Record<string, TransactionSummary> | undefined) => void,
- rej: (reason: any) => void
-) {
- setTimeout(() => {
- provider
- .getJsonRpcClient()
- .getTransactionStatus(txnHash)
- .then((txnStatus) => {
- if (!txnStatus) {
- return rej("Transaction Status is null");
- }
-
- console.info(`txn : ${txnHash}, status: ${txnStatus?.status}`);
- if (txnStatus?.status === TransactionStatusEnum.Finalized) {
- return res(txnStatus.outcomes);
- }
-
- _wait(provider, txnHash, res, rej);
- })
- .catch((err) => rej(err));
- }, 1000);
-}
-
-export function parseContractAddress(
- outcomes: Record<string, TransactionSummary>
-): ContractAddress {
- for (const blockHash in outcomes) {
- const res = outcomes[blockHash];
-
- if (res.result.outcome === "success") {
- for (const event of res.result.events) {
- if (event.tag === "ContractInitialized") {
- return {
- index: toBigInt((event as any).address.index),
- subindex: toBigInt((event as any).address.subindex),
- };
- }
- }
- }
- }
-
- throw Error(`unable to parse Contract Address from input outcomes`);
-}
-
-export function toBigInt(num: BigInt | number): bigint {
- return BigInt(num.toString(10));
-}
-
-const MICRO_CCD_IN_CCD = 1000000;
-export function toCcd(ccdAmount: bigint): CcdAmount {
- return new CcdAmount(ccdAmount * BigInt(MICRO_CCD_IN_CCD));
-}
-
-
-Now, you are ready to implement your contract interaction functions including the initContract
and the updateContract
. Create a file for CIS2ContractClient.ts .
-In the first function, initContract()
, you invoke the initialize function in the contract using the schema
, moduleRef
, and the contractName
. In order to make the transaction, you need the AccountTransactionType
and will use the WalletApi
from the browser-wallet-api-helpers. Using the wallet provider
, you can send a transaction by providing the parameters. Then you will wait for the transaction to be finalized and parse the return output.
-The second function is the updateContract()
. Use this function for all operations where you want to make a state change. This could be transferring of an asset, minting a token, or burning it. It uses the schema
, moduleRef
, the contractName
, and the methodName
(entrypoint) and calls AccountTransaction
’s Update
enum which specifies the type of the transaction that is going to be signed.
-import { WalletApi } from "@concordium/browser-wallet-api-helpers";
-import { Buffer } from "buffer/";
-import {
- waitForTransaction,
- ensureValidOutcome,
- serializeParams,
- _wait,
- parseContractAddress,
- toBigInt,
- toCcd
-} from "./CIS2ContractHelpers";
-
-import {
- ContractAddress,
- AccountTransactionType,
- UpdateContractPayload,
- serializeUpdateContractParameters,
- ModuleReference,
- InitContractPayload,
- TransactionStatusEnum,
- TransactionSummary,
- CcdAmount,
-} from "@concordium/web-sdk";
-
-export interface Cis2ContractInfo {
- schemaBuffer: Buffer;
- contractName: string;
- moduleRef: ModuleReference;
- tokenIdByteSize: number;
-}
-
-/**
-* Initializes a Smart Contract.
-* @param provider Wallet Provider.
-* @param moduleRef Contract Module Reference. Hash of the Deployed Contract Module.
-* @param schemaBuffer Buffer of Contract Schema.
-* @param contractName Name of the Contract.
-* @param account Account to Initialize the contract with.
-* @param maxContractExecutionEnergy Maximum energy allowed to execute.
-* @param ccdAmount CCD Amount to initialize the contract with.
-* @returns Contract Address.
-*/
-
-export async function initContract<T>(provider: WalletApi,
- contractInfo: Cis2ContractInfo,
- account: string,
- params?: T,
- serializedParams?: Buffer,
- maxContractExecutionEnergy = BigInt(999),
- ccdAmount = BigInt(0)): Promise<ContractAddress> {
-
- const { moduleRef, schemaBuffer, contractName } = contractInfo;
- let txnHash = await provider.sendTransaction(
- account,
- AccountTransactionType.InitContract,
- {
- amount: toCcd(ccdAmount),
- moduleRef,
- initName: contractName,
- param: serializedParams || Buffer.from([]),
- maxContractExecutionEnergy,
- } as InitContractPayload,
- params || {},
- schemaBuffer.toString("base64"),
- 2 //schema version
- );
- let outcomes = await waitForTransaction(provider, txnHash);
- outcomes = ensureValidOutcome(outcomes);
- return parseContractAddress(outcomes);
-}
-
-/**
-* Updates a Smart Contract.
-* @param provider Wallet Provider.
-* @param contractName Name of the Contract.
-* @param schema Buffer of Contract Schema.
-* @param paramJson Parameters to call the Contract Method with.
-* @param account Account to Update the contract with.
-* @param contractAddress Contract Address.
-* @param methodName Contract Method name to Call.
-* @param maxContractExecutionEnergy Maximum energy allowed to execute.
-* @param amount CCD Amount to update the contract with.
-* @returns Update contract Outcomes.
-*/
-
-export async function updateContract<T>(
- provider: WalletApi,
- contractInfo: Cis2ContractInfo,
- paramJson: T,
- account: string,
- contractAddress: { index: number; subindex: number },
- methodName: string,
- maxContractExecutionEnergy: bigint = BigInt(9999),
- amount: bigint = BigInt(0)
-): Promise<Record<string, TransactionSummary>> {
- const { schemaBuffer, contractName } = contractInfo;
- const parameter = serializeParams(
- contractName,
- schemaBuffer,
- methodName,
- paramJson
- );
- let txnHash = await provider.sendTransaction(
- account,
- AccountTransactionType.Update,
- {
- maxContractExecutionEnergy,
- address: {
- index: BigInt(contractAddress.index),
- subindex: BigInt(contractAddress.subindex),
- },
- message: parameter,
- amount: toCcd(amount),
- receiveName: `${contractName}.${methodName}`,
- } as UpdateContractPayload,
- paramJson as any,
- schemaBuffer.toString("base64"),
- 2 //Schema Version
- );
-
- let outcomes = await waitForTransaction(provider, txnHash);
-
- return ensureValidOutcome(outcomes);
-}
-
-
-Since you have the helpers and the client code ready, you can move on to the next section which is implementing contract interactions.
-
-
-Init component
-In this component, you will handle the smart contract instance creation. It will extract and give the verify_key
as a parameter to the cis2-multi smart contract. In the components folder create a file called Init.tsx which will invoke the init
method in the contract using the client you implemented in the previous section. It will return a button for creating a new instance, and get inputs from the user including the account
, schema
, moduleRef
, contractName
, and the verify_key
.
-import { FormEvent, useState } from "react";
-import { WalletApi } from '@concordium/browser-wallet-api-helpers';
-// import { ContractAddress } from "@concordium/common-sdk";
-
-import { Cis2ContractInfo } from "../models/CIS2ContractClient";
-import { ContractAddress, serializeInitContractParameters } from '@concordium/web-sdk';
-import * as connClient from '../models/CIS2ContractClient';
-
-import { Typography, Button, Stack, Container } from '@mui/material';
-
-export default function Cis2Init(props: {
- provider: WalletApi;
- account: string;
- contractInfo: Cis2ContractInfo;
- verifyKey: string;
- onDone: (address: ContractAddress, contractInfo: Cis2ContractInfo) => void;
-}) {
- const [state, setState] = useState({
- error: '',
- processing: false,
- });
-
- function submit(event: FormEvent<HTMLFormElement>) {
- event.preventDefault();
- const initParams = {
- verify_key: props.verifyKey
- };
- const serializedParams = serializeInitContractParameters(props.contractInfo.contractName, initParams, props.contractInfo.schemaBuffer);
- setState({ ...state, processing: true });
- connClient
- .initContract(props.provider, props.contractInfo, props.account, initParams, serializedParams)
- .then((address) => {
- setState({ ...state, processing: false });
- props.onDone(address, props.contractInfo);
- })
- .catch((err: Error) => {
- setState({ ...state, processing: false, error: err.message });
- });
- }
-
- return (
- <Container sx={{ maxWidth: 'xl', pt: '10px' }}>
- <Stack component={'form'} spacing={2} onSubmit={submit}>
- {state.error && (
- <Typography component="div" color="error" variant="body1">
- {state.error}
- </Typography>
- )}
- {state.processing && (
- <Typography component="div" variant="body1">
- Deploying..
- </Typography>
- )}
- <Button variant="contained" disabled={state.processing} type="submit">
- Deploy New
- </Button>
- </Stack>
- </Container>
- );
-}
-
-
-
-
-Getting the Signature
-In the next section you will mint the token, but in order to do that you will need a signature because this solution depends on it. By looking at the signature, the contract will understand that the user are verified and older than 18. So you need to communicate with the verifier. Meaning, you will complete all the steps that are required, such as asking for the statement
and challenge
from the verifier. When you have these from the server (remember you are going to send HTTP/2 GET requests to the endpoints), you will use the provider again (WalletApi ) to request proof from the user for a given statement
using the specific challenge
. Then you will POST the proof in order to verify it and receive the signature.
-Divide the logic into two parts. First, implement a client that handles all the API requests. Create a file in the modules folder for your VerifierBackendClient.ts . You will need the IdStatement
and IdProofOutput
from the web-SDK, and add the following, including getChallenge()
, getStatement()
, and getSignature()
.
-import { IdStatement, IdProofOutput } from '@concordium/web-sdk';
-
-/**
-* Fetch a challenge from the backend
-*/
-export async function getChallenge(verifier: string, accountAddress: string) {
- const response = await fetch(`${verifier}/challenge?address=` + accountAddress, { method: 'get' });
- const body = await response.json();
- return body.challenge;
-}
-
-/**
-* Fetch the statement to prove from the backend
-*/
-export async function getStatement(verifier: string): Promise<IdStatement> {
- const response = await fetch(`${verifier}/statement`, { method: 'get' });
- const body = await response.json();
- return JSON.parse(body);
-}
-
-/**
-* Authorize with the backend, and get a auth token.
-*/
-export async function getSignature(verifier: string, challenge: string, proof: IdProofOutput) {
- const response = await fetch(`${verifier}/prove`, {
- method: 'post',
- headers: new Headers({ 'content-type': 'application/json' }),
- body: JSON.stringify({ challenge, proof }),
- });
- if (!response.ok) {
- throw new Error('Unable to authorize');
- }
- const body = await response.text();
- if (body) {
- return body;
- }
- throw new Error('Unable to authorize');
-}
-
-
-Nice, now you can invoke the verifier using these endpoints. Create a button that calls those endpoints to get the statement
, challenge
, and return the proof. Create another component for the Get Signature button and add the code below.
-import { WalletApi } from '@concordium/browser-wallet-api-helpers';
-import { Button } from '@mui/material';
-import { getChallenge, getSignature, getStatement } from '../models/VerifierBackendClient';
-
-export default function VerifierGetSignature(props: {
- provider: WalletApi;
- account: string;
- verifierUrl: string;
- disabled: boolean;
- onSign: (signature: string) => void;
-}) {
- async function sign(e: React.MouseEvent) {
- e.preventDefault();
- var challenge = await getChallenge(props.verifierUrl, props.account);
- const statement = await getStatement(props.verifierUrl);
- const proof = await props.provider.requestIdProof(props.account, statement, challenge);
- const signature = await getSignature(props.verifierUrl, challenge, proof);
- props.onSign(signature.replaceAll('"', ''));
- }
-
- return (
- <Button type="button" variant="contained" disabled={props.disabled} fullWidth size="large" onClick={sign}>
- Get Signature
- </Button>
- );
-}
-
-
-
-
-Mint component
-Create a file for the Mint.tsx component. You will use this to invoke your mint()
function implemented in the smart contract. In order to do that, you will need to use the client you implemented in the previous section that calls Update
type. Look at the MintParams
struct in the contract. It expects an address, an object/map that holds the tokens in a form of [tokenId
as a key, and <TokenMetadata
(which is URL & hash), Amount
>] as the value. So you have to create this object and send it as a parameter. Then you will just call the client with the provider(Wallet)
, account
, parameters
, contractInfo
(including schema
, moduleRef
, contractName
), NFT contract’s index
, method name (mint
), and maxEnergy
.
-import { Buffer } from 'buffer/';
-import { FormEvent, useState } from 'react';
-import { WalletApi } from '@concordium/browser-wallet-api-helpers';
-import { Typography, Button, Stack, TextField } from '@mui/material';
-import { Container } from '@mui/system';
-import { TransactionSummary, ContractAddress } from '@concordium/web-sdk';
-
-import * as connClient from '../models/CIS2ContractClient';
-import { Cis2ContractInfo } from '../models/CIS2ContractClient';
-
-async function mint(
- provider: WalletApi,
- account: string,
- tokens: { [tokenId: string]: [{ url: string; hash: string }, string] },
- signature: string,
- nftContractAddress: { index: number; subindex: number },
- contractInfo: Cis2ContractInfo,
- maxContractExecutionEnergy = BigInt(9999)
-): Promise<Record<string, TransactionSummary>> {
- const paramJson = {
- owner: {
- Account: [account],
- },
- tokens: Object.keys(tokens).map((tokenId) => [tokenId, tokens[tokenId]]),
- signature,
- };
-
- return connClient.updateContract(
- provider,
- contractInfo,
- paramJson,
- account,
- nftContractAddress,
- 'mint',
- maxContractExecutionEnergy,
- BigInt(0)
- );
-}
-
-
-Create a form to collect required information for minting a token. What do you need? A metadata URL, amount of tokens, a signature that verifies the minter is older than 18, and the contract index, right? Add the following to the Mint.tsx file. It is a bit long but the form takes all required values from the user and checks whether are they valid or not. If they are, it calls the mint()
function with the proper parameters.
-function MintPage(props: {
- verifierUrl: string;
- provider: WalletApi;
- account: string;
- contractInfo: Cis2ContractInfo;
- contract?: ContractAddress;
-}) {
- let [state, setState] = useState({
- checking: false,
- error: '',
- });
- const [signature, setSignature] = useState('');
-
- function submit(event: FormEvent<HTMLFormElement>) {
- event.preventDefault();
- setState({ ...state, error: '', checking: true });
- const formData = new FormData(event.currentTarget);
-
- var formValues = {
- index: parseInt(formData.get('contractIndex')?.toString() || '-1'),
- subindex: parseInt(formData.get('contractSubindex')?.toString() || '-1'),
- metadataUrl: formData.get('metadataUrl')?.toString() || '',
- tokenId: formData.get('tokenId')?.toString() || '',
- quantity: parseInt(formData.get('quantity')?.toString() || '-1'),
- };
-
- if (!(formValues.index >= 0)) {
- setState({ ...state, error: 'Invalid Contract Index' });
- return;
- }
-
- if (!(formValues.subindex >= 0)) {
- setState({ ...state, error: 'Invalid Contract Subindex' });
- return;
- }
-
- if (!(formValues.quantity >= 0)) {
- setState({ ...state, error: 'Invalid Quantity' });
- return;
- }
-
- if (!formValues.metadataUrl) {
- setState({ ...state, error: 'Invalid Metadata Url' });
- return;
- }
-
- if (!isValidTokenId(formValues.tokenId, props.contractInfo)) {
- setState({ ...state, error: 'Invalid Token Id' });
- return;
- }
-
- if (!signature) {
- setState({ ...state, error: 'Invalid Signature' });
- return;
- }
-
- const address = { index: formValues.index, subindex: formValues.subindex };
- mint(
- props.provider,
- props.account,
- {
- [formValues.tokenId]: [{ url: formValues.metadataUrl, hash: '' }, formValues.quantity.toString()],
- },
- signature,
- address,
- props.contractInfo
- )
- .then((_) => {
- setState({ ...state, error: '', checking: false });
- alert('Minted');
- })
- .catch((err: Error) => setState({ ...state, error: err.message, checking: false }));
- }
-
- return (
- <Container sx={{ maxWidth: 'xl', pt: '10px' }}>
- <Stack component={'form'} spacing={2} onSubmit={submit} autoComplete={'true'}>
- <TextField
- id="contract-index"
- name="contractIndex"
- label="Contract Index"
- variant="standard"
- type={'number'}
- disabled={state.checking}
- />
- <TextField
- id="contract-subindex"
- name="contractSubindex"
- label="Contract Sub Index"
- variant="standard"
- type={'number'}
- disabled={state.checking}
- value={0}
- />
- <TextField
- id="metadata-url"
- name="metadataUrl"
- label="Metadata Url"
- variant="standard"
- disabled={state.checking}
- />
- <TextField
- id="token-id"
- name="tokenId"
- label="Token Id"
- variant="standard"
- disabled={state.checking}
- defaultValue="01"
- />
- <TextField
- id="quantity"
- name="quantity"
- label="Token Quantity"
- variant="standard"
- type="number"
- disabled={state.checking}
- defaultValue="1"
- />
- <TextField
- id="signature"
- name="signature"
- label="Signature"
- variant="standard"
- disabled
- defaultValue=""
- value={signature}
- />
- <VerifierGetSignature
- provider={props.provider}
- account={props.account}
- verifierUrl={props.verifierUrl}
- disabled={state.checking}
- onSign={setSignature}
- />
- {state.error && (
- <Typography component="div" color="error">
- {state.error}
- </Typography>
- )}
- {state.checking && <Typography component="div">Checking..</Typography>}
- <Button type="submit" variant="contained" disabled={state.checking} fullWidth size="large">
- Mint
- </Button>
- </Stack>
- </Container>
- );
-}
-
-export default MintPage;
-
-function isValidTokenId(tokenIdHex: string, contractInfo: Cis2ContractInfo): boolean {
- try {
- let buff = Buffer.from(tokenIdHex, 'hex');
- let parsedTokenIdHex = Buffer.from(buff.subarray(0, contractInfo.tokenIdByteSize)).toString('hex');
- console.log(tokenIdHex, parsedTokenIdHex);
- return parsedTokenIdHex === tokenIdHex;
- } catch (error) {
- console.error(error);
- return false;
- }
-}
-
-
-
-Constants.ts
-You need a constants file to store the schema
, moduleRef
, contractInfo
, and the verify_key
and the verifier_url
. Create a file to keep these.
-import { Buffer } from "buffer/";
-import { ModuleReference } from "@concordium/web-sdk";
-import {
- Cis2ContractInfo,
-} from "./models/CIS2ContractClient";
-
-const MULTI_CONTRACT_MODULE_REF =
- "27b813fa34babde7a7e337f05a9cc031f81db60f8b88b0200c234e8b48cb7fa3";
-const MULTI_CONTRACT_SCHEMA =
- "FFFF02010000000A000000434953322D4D756C746901001400010000000A0000007665726966795F6B65791E200000000A0000000900000062616C616E63654F6606100114000200000008000000746F6B656E5F69641D0007000000616464726573731502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C10011B2500000015040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E74656402040000006D696E7404140003000000050000006F776E65721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C06000000746F6B656E7312021D000F1400020000000300000075726C1601040000006861736816011B25000000090000007369676E61747572651E4000000015040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E746564020F0000006F6E526563656976696E67434953320315040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E746564020A0000006F70657261746F724F66061001140002000000050000006F776E65721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C07000000616464726573731502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C10010115040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E746564020F000000736574496D706C656D656E746F72730414000200000002000000696416000C000000696D706C656D656E746F727310020C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E7465640208000000737570706F727473061001160010011503000000090000004E6F537570706F72740207000000537570706F72740209000000537570706F72744279010100000010000C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E746564020D000000746F6B656E4D657461646174610610011D0010011400020000000300000075726C160104000000686173681502000000040000004E6F6E650204000000536F6D65010100000013200000000215040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E74656402080000007472616E7366657204100114000500000008000000746F6B656E5F69641D0006000000616D6F756E741B250000000400000066726F6D1502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C02000000746F1502000000070000004163636F756E7401010000000B08000000436F6E747261637401020000000C160104000000646174611D0115040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E746564020E0000007570646174654F70657261746F720410011400020000000600000075706461746515020000000600000052656D6F7665020300000041646402080000006F70657261746F721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015080000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C79020B0000004163636F756E744F6E6C790213000000496E766F6B65436F6E74726163744572726F720212000000546F6B656E416C72656164794D696E7465640204000000766965770114000200000005000000737461746510020F1502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C1400020000000800000062616C616E63657310020F1D001B25000000090000006F70657261746F727310021502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C06000000746F6B656E7310021D00";
-export const CIS2_MULTI_CONTRACT_INFO: Cis2ContractInfo = {
- contractName: "CIS2-Multi",
- moduleRef: new ModuleReference(MULTI_CONTRACT_MODULE_REF),
- schemaBuffer: Buffer.from(MULTI_CONTRACT_SCHEMA, "hex"),
- tokenIdByteSize: 1,
-};
-export const VERIFY_KEY = "ccc7b73e381125ccc7dbd82f2ccef80c2877ae2eacbd57c536a67a767e94395c"
-export const VERIFIER_URL = 'http://localhost:8100/api';
-
-
-
-
-App.tsx
-Finally, call these from the App.tsx file. Change it with the following:
-import React from 'react';
-import logo from './logo.svg';
-import './App.css';
-import { useEffect, useState } from "react";
-import {
-detectConcordiumProvider,
-WalletApi,
-} from "@concordium/browser-wallet-api-helpers";
-
-import {
-AppBar,
-Box,
-Container,
-Link,
-Paper,
-Toolbar,
-Typography,
-} from "@mui/material";
-
-import MintPage from "./components/Mint";
-import { CIS2_MULTI_CONTRACT_INFO, VERIFIER_URL, VERIFY_KEY } from "./Constants";
-import HeaderButton from "./components/Header";
-import Cis2Init from "./components/Init";
-
-function App() {
-const [state, setState] = useState<{
-provider?: WalletApi;
-account?: string;
-}>({});
-
-function connect() {
-detectConcordiumProvider()
-.then((provider) => {
- provider
- .getMostRecentlySelectedAccount()
- .then((account) =>
- !!account ? Promise.resolve(account) : provider.connect()
- )
- .then((account) => {
- setState({ ...state, provider, account });
- })
- .catch((_) => {
- alert("Please allow wallet connection");
- });
- provider.on("accountDisconnected", () => {
- setState({ ...state, account: undefined });
- });
- provider.on("accountChanged", (account) => {
- setState({ ...state, account });
- });
- provider.on("chainChanged", () => {
- setState({ ...state, account: undefined, provider: undefined });
- });
-})
-.catch((_) => {
- console.error(`could not find provider`);
- alert("Please download Concordium Wallet");
-});
-}
-
-useEffect(() => {
-if (!state.provider || !state.account) {
-connect();
-}
-
-return () => {
-state.provider?.removeAllListeners();
-};
-}, [state.account]);
-
-function isConnected() {
-return !!state.provider && !!state.account;
-}
-
-const isConnectedVar = isConnected();
-
-return (
-<>
-<AppBar position="static">
- <Container maxWidth="xl" sx={{ height: "100%" }}>
- <Toolbar disableGutters>
- <Typography
- variant="h6"
- noWrap
- component="a"
- sx={{
- mr: 2,
- display: "flex",
- fontFamily: "monospace",
- fontWeight: 700,
- letterSpacing: ".3rem",
- color: "inherit",
- textDecoration: "none",
- }}
- >
- Concordium
- </Typography>
- <Box
- sx={{
- flexGrow: 1,
- display: "flex",
- flexDirection: "row-reverse",
- }}
- >
- <HeaderButton
- name={isConnectedVar ? "Connected" : "Connect"}
- isSelected={isConnectedVar}
- onClick={connect}
- />
- </Box>
- </Toolbar>
- </Container>
-</AppBar>
-<Box className="App">
- <Paper>
- <MintPage
- key={CIS2_MULTI_CONTRACT_INFO.contractName}
- contractInfo={CIS2_MULTI_CONTRACT_INFO}
- provider={state.provider!}
- account={state.account!}
- verifierUrl={VERIFIER_URL}
- />
- </Paper>
- <Paper>
- <Cis2Init
- account={state.account!}
- provider={state.provider!}
- contractInfo={CIS2_MULTI_CONTRACT_INFO}
- verifyKey={VERIFY_KEY}
- onDone={(contract) =>
- alert(
- `Contract Initialized index: ${contract.index}, subindex: ${contract.subindex}`
- )
- }
- />
- </Paper>
-</Box>
-<footer className="footer">
- <Typography textAlign={"center"} sx={{ color: "white" }}>
- <Link
- sx={{ color: "white" }}
- href="https://developer.concordium.software/en/mainnet/index.html"
- target={"_blank"}
- >
- Concordium Developer Documentation
- </Link>
- </Typography>
-</footer>
-</>
-);
-}
-
-export default App;
-
-
-And now try it in the next part .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/how-it-works.html b/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/how-it-works.html
deleted file mode 100644
index f83a16cab9..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/how-it-works.html
+++ /dev/null
@@ -1,868 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- How it works — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-How it works
-In this last section, you will learn how to run the dApp to mint an NFT.
-
-Verifier backend
-First you need to run the verifier backend. Your dApp will be communicating with it to get the statement, challenge and post the proof and get the signature back. It expects parameters from the terminal but you are free to use all of them from a JSON file. We will use a mixture by giving the keys (verify and sign) as a parameter from the terminal and the statement from a JSON. In order to create a custom statement, you can check read about how to create proofs . For this tutorial scenario, you will use age proofs to be able to verify if a person is older than 18 or not, but you can also check if the person is from a certain country or not.
-[
- {
- "type": "AttributeInRange",
- "attributeTag": "dob",
- "lower": "19000327",
- "upper": "20050327"
- }
-]
-
-
-When you have the statement JSON file, run the application inside of your executable path. If you are using your own node change the node IP to localhost; if you are using the testnet node keep it as below.
-./<Executable-Name> --node http://node.testnet.concordium.com --port 8100 --log-level info --verify-key <YOUR-VERIFY-KEY> --sign-key <YOUR-SIGN-KEY> --statement "$(<PATH-TO-YOUR-STATEMENT/statement.json)"
-
-
-
-
-
-Run the dApp and request a proof
-In the mint-ui directory start the dApp with the following command:
-
-You will create a new instance of the cis2-multi contract and try to mint an NFT with another account. Click DEPLOY NEW to create a new instance. As you notice, it sends the verify_key
as an initiation parameter. The contract index is 4168,0.
-
-Click GET SIGNATURE and accept the request. Wait for the proof verification. If it’s verified you have a signature signed by the private key (signKey
) given when running the application.
-
-If everything goes well, you have a signature similar to the one below.
-
-You are almost there. Since you now have the signature, you will be able to mint a token because you have proven that you are older than 18! Provide the metadata and the contract index to mint a token!
-
-When the transaction is finalized, you will have an alert notifying that minting is successful!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/index.html b/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/index.html
deleted file mode 100644
index 25806dae65..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/index.html
+++ /dev/null
@@ -1,827 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- NFT minting with ID 2.0 — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-NFT minting with ID 2.0
-In this tutorial,you’ll learn how to create a minting platform that allows minting for people older than 18. In order to do that, the platform should ask for proof that the minter meets a requirement which is being older than 18 years old. The tutorial contains three parts:
-
-The first part includes a lot of cryptographic implementation and an explanation of the backend verifier.
-The second part is about the frontend development and Concordium communication using concordium-web-sdk including Concordium Wallet for Web integration.
-And the last part is demonstration of the application, including how it works.
-
-Click here to start the tutorial.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/minting-sc.html b/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/minting-sc.html
deleted file mode 100644
index a38a27c6fc..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/minting-sc.html
+++ /dev/null
@@ -1,973 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- The minting contract — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-The minting contract
-You will update the cis2-multi contract . Remember what you want to achieve: you would like to have a minting dApp that uses Concordium’s ID layer and according to the scenario, you should prove that you are older than 18 in order to mint a token. The most obvious solution to this is could be to ask for ID proofs from the smart contract, but the proofs are not available to use like that from directly the contract. Instead, to create the same logic using the verifier backend server, you will implement it in the following manner:
-
-You assume the owner of the verifier and the smart contract instance owner (dApp owner) is the same person. When you run the verifier backend server, you will use an account’s sign and verify keys.
-While creating a new instance of the contract, the owner has to send its verify key(public key) and the contract will keep it in the state (to verify the signature).
-When a user wants to mint a token, the dApp will ask for a challenge and a statement from the verifier.
-Using that challenge, the dApp expects that the user accepts the information from his/her wallet that is going to be shared with it.
-The proof will be shared with the verifier backend, and if they are verified then the verifier will sign the public address of the user with its sign key which is given as an input parameter while starting the server.
-This signature will be the input of the minting function and using the public key stored in the state, the smart contract will verify that it’s coming from the verifier and is valid really.
-The mint()
function will be executed.
-
-Create a project for your smart contract called cis2-multi.
-
-Add the following dependencies to the Cargo.toml file.
-[features]
-default = [ "std" ]
-std = [ "concordium-std/std" , "concordium-cis2/std" ]
-
-[dependencies]
-concordium-std = { version = "*" , default-features = false }
-concordium-cis2 = { version = "*" , default-features = false }
-hex = "*"
-
-[lib]
-crate-type = [ "cdylib" , "rlib" ]
-
-[profile.release]
-codegen-units = 1
-opt-level = "s"
-
-
-
-Create a lib.rs file and copypaste the code from the example contract. Start modification with the State
struct and add a variable for the verify_key
and add it to the state’s empty()
function. Note that unlike a regular empty()
function, this one takes the verify_key
as a parameter.
-/// The contract state,
-///
-/// Note: The specification does not specify how to structure the contract state
-/// and this could be structured in a more space efficient way.
-# [ derive( Serial, DeserialWithState)]
-# [ concordium( state_parameter = "S" )]
-struct State<S> {
- /// The state of addresses.
- state: StateMap<Address, AddressState<S>, S>,
- /// All of the token IDs
- tokens: StateMap<ContractTokenId, MetadataUrl, S>,
- /// Map with contract addresses providing implementations of additional
- /// standards.
- implementors: StateMap<StandardIdentifierOwned, Vec<ContractAddress>, S>,
- verify_key: PublicKeyEd25519,
-}
-
-
-impl<S: HasStateApi> State<S> {
- /// Construct a state with no tokens
- fn empty(state_builder: &mut StateBuilder<S>, verify_key: PublicKeyEd25519) -> Self {
- State {
- state: state_builder.new_map(),
- tokens: state_builder.new_map(),
- implementors: state_builder.new_map(),
- verify_key,
- }
- }
-/// rest of the state functions below
-}
-
-
-While creating a new instance, you will need to store the verify_key
or the public key of the owner. So create a struct called InitParam
to get that input parameter.
-# [ derive( Serial, Deserial, SchemaType)]
-struct InitParams {
- verify_key: PublicKeyEd25519,
-}
-
-
-And for the last part of the state, while minting you will require the signature in order to verify, so the mint parameters should send it. Add it as shown below.
-/// The parameter for the contract function `mint` which mints a number of
-/// token types and/or amounts of tokens to a given address.
-# [ derive( Serial, Deserial, SchemaType)]
-struct MintParams {
- /// Owner of the newly minted tokens.
- owner: Address,
- /// A collection of tokens to mint.
- tokens: collections::BTreeMap<ContractTokenId, (TokenMetadata, ContractTokenAmount)>,
- /// Signature from the owner of the contract
- signature: SignatureEd25519,
-}
-
-
-Finally, update the mint()
function by adding:
-# [ receive(
- contract = "CIS2-Multi",
- name = "mint",
- crypto_primitives,
- parameter = "MintParams",
- error = "ContractError",
- enable_logger,
- mutable
-)]
-fn contract_mint<S: HasStateApi>(
- ctx: &impl HasReceiveContext,
- host: &mut impl HasHost<State<S>, StateApiType = S>,
- logger: &mut impl HasLogger,
- crypto_primitives: &impl HasCryptoPrimitives,
-) -> ContractResult<()> {
- // Get the sender of the transaction
- let sender: AccountAddress = match ctx.sender() {
- Address::Account(a) => a,
- Address::Contract(_) => bail!(ContractError::Custom(CustomContractError::AccountOnly)),
- };
-
- // Parse the parameter.
- let params: MintParams = ctx.parameter_cursor().get()?;
-
- let (state, builder) = host.state_and_builder();
-
- // Verifying that the signature belongs to the public key which was added at the time of init.
- ensure!(
- crypto_primitives.verify_ed25519_signature(state.verify_key, params.signature, &sender.0),
- ContractError::Unauthorized
- );
-
- for (token_id, token_info) in params.tokens {
- ensure!(
- state.contains_token(&token_id).eq(&false),
- ContractError::Custom(CustomContractError::TokenAlreadyMinted)
- );
-
- // Mint the token in the state.
- state.mint(
- &token_id,
- &token_info.0,
- token_info.1,
- ¶ms.owner,
- builder,
- );
-
- // Event for minted token.
- logger.log(&Cis2Event::Mint(MintEvent {
- token_id,
- amount: token_info.1,
- owner: params.owner,
- }))?;
-
- // Metadata URL for the token.
- logger.log(&Cis2Event::TokenMetadata::<_, ContractTokenAmount>(
- TokenMetadataEvent {
- token_id,
- metadata_url: token_info.0.to_metadata_url(),
- },
- ))?;
- }
- Ok(())
-}
-
-
-Nice! You are done with the smart contract. Without slowing down, start the frontend development .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/verifier-backend.html b/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/verifier-backend.html
deleted file mode 100644
index daa217fd51..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/nft-minting-w-id/verifier-backend.html
+++ /dev/null
@@ -1,1376 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- The verifier backend — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-The verifier backend
-In this first part, you will implement a verifier backend server that signs a claim if it is verified.
-
-Zero-knowledge proofs (ZKP) and ID proofs
-The Concordium Wallet for Web allows dApps or services to request proof that the user meets some requirement, such as proof the user is over a certain age or resides in a specific set of countries or areas. For more information about such proofs, see Create proofs . But basically, when you have a Concordium account you have an ID object and the identity credential in your wallet. On-chain (in your account) there is a (list of) commitment(s) to your attributes. No one can know who you are other than being able to see your public address. But with zero-knowledge proof (ZK proof) technology (proving a claim without revealing any information but the claim itself), any dApp that wants to make sure that its users meet some criteria can create a query which uses a ZK proof to show correctness. Here these criteria are called statements . These statements can be located in the dApp itself or stored in the verifier which is a backend HTTP server. For this particular tutorial’s scenario, the dApp statement is whether the user is older than 18.
-When the dApp wants to prove someone meets the criteria, it first communicates with the verifier. The verifier is one of the key elements of this architecture. The dApp uses the verifier to verify the claims but it has a key function above all else. The verifier makes sure that a ZK proof query can’t be reused by someone else, for example, if it’s stolen somehow. When the dApp communicates with the verifier, it asks for a challenge , a one-time or time-bound random string, that will be used while creating the proofs. The verifier, when doing verification checks whether the proof is created with the particular challenge issued for the query. If the proof is not created with the particular challenge, it will not be verified.
-When you have your Concordium account, meaning your ID object is created, there is a set of attributes that is inside of your encrypted data structure. A full list of the attributes can be found here , but some of them are listed below.
-
-First name, Last name
-Sex
-Date of birth
-Country of nationality
-…
-
-Using the Concordium Wallet for Web, your dApp can request proofs for any of these attributes from its users. There is no possible way for us to know anything beyond that the statement doesn’t include. When the user agrees to reveal these pieces of information, they will start experiencing true Self-Sovereign Identity.
-
-
-Minting with ID 2.0
-Let’s get started with technical implementations. It’s always good to define the requirements and the steps that will lead you to implement the solution.
-
-We want to use the existing NFT minting tool React application for the sake of time and implementation.
-We will implement a verifier backend and re-use as much as possible that is shared by the Concordium team.
-Our minting dApp will allow people only older than 18, but we can increase the set of attributes or add new combinations.
-
-Nice, we have a very short requirements list. Now take a look at the flow from the architectural point of view in general.
-
-When the user wants to mint something, dApp goes to the verifier backend and asks for a challenge alongside the statement(s).
-The dApp sends a request for proof of the given challenge and statement to the wallet.
-The user accepts the requests, wallet sends back the proof.
-The dApp sends it to the verifier, it verifies the proof is correct according to the challenge and statement.
-The dApp uses the private key of the owner, to sign a message.
-The smart contract’s _mint()_ function checks the signature created by the owner and allows for mint.
-
-
-
-Verifier backend
-Use the backend code in Concordium’s dApp examples GitHub repo . You will make some modifications based on your needs.
-First, create an empty project called backend using the command below.
-
-
-
-Concordium Rust-SDK
-Concordium Rust SDK is published on crates.io so you can add concordium-rust-sdk = 1 it directly to your Cargo.toml file. You don’t have to clone and install it.
-For the development, serialization, encryption, and running of an HTTP server, you will need some dependencies below in your cargo.toml file.
-
-tokio : A runtime for writing reliable, asynchronous, and slim applications with the Rust programming language.
-warp : A super-easy, composable web server framework for warp speeds.
-serde : A very helpful framework for serializing/deserializing data structures generically.
-serde_json : A JSON serialization/deserialization file format.
-clap : Command Line Argument Parser for Rust (CLAP)
-anyhow : Easy error handling trait.
-ed25519-dalek: To produce and consume Ed25519 signatures and for other key operations.
-
-[dependencies]
-tokio = { version = "1" , features = [ "full" ] }
-warp = "0.3"
-serde = { version = "1.0" , features = [ "derive" ] }
-serde_json = "1.0"
-log = "0.4.11"
-env_logger = "0.9"
-clap = { version = "4" , features = [ "derive" ] }
-anyhow = "1.0"
-chrono = "0.4.19"
-thiserror = "1"
-rand = "0.8"
-ed25519-dalek = "1.0.1"
-hex = "0.4.3"
-
-[dependencies.concordium-rust-sdk]
-path = "../deps/concordium-rust-sdk/"
-
-
-Now you can build it with the cargo build
command in the concordium-rust-sdk folder. For Mac users, if you face a protobuf error in this step, you might need to install it manually. Then build it again.
-
-
-
-
-Implementation
-Create a types.rs file. You will use almost the same code as in this link . In this file, you will create the data structures and responses, and manipulate error codes.
-First, you have the Challenge
struct which is a u8 32 bytes array. This will be re-generated every time a new client connects or the backend gets a request.
-WithAccountAddress
is used for storing the challenge created for a particular account.
-ChallengeStatus
is used for storing the issued challenge, to whom it’s issued(address), and its creation time on the state.
-The Server
is the state. When you run the verifier backend, you will create an empty state with an empty hashmap of challenges.
-The InjectStatementError
enum will be used for handling rejections with error codes.
-use concordium_rust_sdk::{
- common::{
- self as crypto_common,
- derive::{SerdeBase16Serialize, Serialize},
- Buffer, Deserial, ParseResult, ReadBytesExt, SerdeDeserialize, SerdeSerialize, Serial,
- Versioned,
- },
- endpoints::{QueryError, RPCError},
- id::{
- constants::{ArCurve, AttributeKind},
- id_proof_types::Proof,
- types::{AccountAddress, GlobalContext},
- },
- types::CredentialRegistrationID,
-};
-use std::{
- collections::HashMap,
- sync::{Arc, Mutex},
- time::SystemTime,
-};
-
-# [ derive(
- Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, SerdeBase16Serialize, Serialize,
-)]
-pub struct Challenge(pub [u8; 32]);
-
-# [ derive( serde::Deserialize, Debug, Clone)]
-pub struct WithAccountAddress {
- pub address: AccountAddress,
-}
-
-# [ derive( Clone)]
-pub struct ChallengeStatus {
- pub address: AccountAddress,
- pub created_at: SystemTime,
-}
-
-# [ derive( Clone)]
-pub struct Server {
- pub challenges: Arc<Mutex<HashMap<String, ChallengeStatus>>>,
- pub global_context: Arc<GlobalContext<ArCurve>>,
-}
-
-# [ derive( Debug)]
-/// An internal error type used by this server to manage error handling.
-# [ derive( thiserror::Error)]
-pub enum InjectStatementError {
- # [ error( "Not allowed" )]
- NotAllowed,
- # [ error( "Invalid proof" )]
- InvalidProofs,
- # [ error( "Node access error: {0}" )]
- NodeAccess(#[from] QueryError),
- # [ error( "Error acquiring internal lock." )]
- LockingError,
- # [ error( "Proof provided for an unknown session." )]
- UnknownSession,
- # [ error( "Issue with credential." )]
- Credential,
-}
-
-impl warp::reject::Reject for InjectStatementError {}
-
-# [ derive( serde::Serialize)]
-/// Response in case of an error. This is going to be encoded as a JSON body
-/// with fields 'code' and 'message'.
-pub struct ErrorResponse {
- pub code: u16,
- pub message: String,
-}
-
-# [ derive( serde::Deserialize, serde::Serialize, Debug)]
-pub struct ChallengeResponse {
- pub challenge: Challenge,
-}
-
-# [ derive( serde::Deserialize, serde::Serialize, Debug, Clone)]
-pub struct ChallengedProof {
- pub challenge: Challenge,
- pub proof: ProofWithContext,
-}
-
-# [ derive( serde::Deserialize, serde::Serialize, Debug, Clone)]
-pub struct ProofWithContext {
- pub credential: CredentialRegistrationID,
- pub proof: Versioned<Proof<ArCurve, AttributeKind>>,
-}
-
-
-Finally, you have the ChallengeResponse
struct which will be used in the API responses, ChallengedProof
and ProofWithContext
. When the backend receives the proof, it will use these to validate it using the client object.
-
-
-Handlers.rs
-Nice! Now create another file called handlers.rs . In this module, we will explain all functions one by one and add them to the file.
-The handle_get_challenge()
function gets input as the state
and an address
. It runs asynchronously when someone asks for a challenge using an endpoint. It invokes the get_challenge_worker()
which generates a random 32 bytes message (a.k.a. Challenge
), and adds it to the state’s challenges
after encoding the challenge as a key and the address
+ issuing time as value ChallengeStatus
. As a result, it returns the challenge as a response to send it back through the endpoint.
-use crate::crypto_common::base16_encode_string;
-use crate::types::*;
-use concordium_rust_sdk::{
- common::{self as crypto_common, types::KeyPair},
- id::{
- constants::{ArCurve, AttributeKind},
- id_proof_types::Statement,
- types::{AccountAddress, AccountCredentialWithoutProofs},
- },
- v2::BlockIdentifier,
-};
-use log::warn;
-use rand::Rng;
-use std::convert::Infallible;
-use std::time::SystemTime;
-use warp::{http::StatusCode, Rejection};
-
-static CHALLENGE_EXPIRY_SECONDS: u64 = 600;
-static CLEAN_INTERVAL_SECONDS: u64 = 600;
-
-pub async fn handle_get_challenge(
- state: Server,
- address: AccountAddress,
-) -> Result<impl warp::Reply, Rejection> {
- let state = state.clone();
- log::debug!("Parsed statement. Generating challenge");
- match get_challenge_worker(state, address).await {
- Ok(r) => Ok(warp::reply::json(&r)),
- Err(e) => {
- warn!("Request is invalid {:#?}.", e);
- Err(warp::reject::custom(e))
- }
- }
-}
-
-/// A common function that produces a challenge and adds it to the state.
-async fn get_challenge_worker(
- state: Server,
- address: AccountAddress,
-) -> Result<ChallengeResponse, InjectStatementError> {
- let mut challenge = [0u8; 32];
- rand::thread_rng().fill(&mut challenge[..]);
- let mut sm = state
- .challenges
- .lock()
- .map_err(|_| InjectStatementError::LockingError)?;
- log::debug!("Generated challenge: {:?}", challenge);
- let challenge = Challenge(challenge);
-
- sm.insert(
- base16_encode_string(&challenge.0),
- ChallengeStatus {
- address,
- created_at: SystemTime::now(),
- },
- );
- Ok(ChallengeResponse { challenge })
-}
-
-
-The handle_provide_proof()
function gets the client
, state
, statement
, request
, and key pair
as input. It serves through an API endpoint and is primarily used for verifying the proof by calling the check_proof_worker()
function.
-The check_proof_worker()
function validates the cryptographic proof. First, it locks the state
and gets the status
from the map using the challenge’s base16 encoded key of the map. Since the request is a ChallengedProof
type, you can access the challenge, and more than that, it holds the ProofWithContext
struct meaning both the credential and the proof is available to use in verification. Similarly, the status
is a ChallengeStatus
, meaning you know the address issued and the time created. You will need these in the next step. And finally, the Statement
is a struct that holds a list of atomic statements.
-When this function is invoked with a POST request, you will have the request object and use it to extract the credential_id
. Note that every account has an account registration ID, which is the Credential ID of the first credential added to the account. Create a variable for the cred_id
and get the account information using the Concordium Rust-SDK. The function takes mutable client: concordium_rust_sdk::v2::Client
as a parameter. You will get the account information using that. Use the account address
from the status
as the first parameter of the client.get_account_info()
and the BlockIdentifier::LastFinal
as the second parameter. Basically, this function provides you with the required information for a given account address in the given block. So to give it the LastFinal
block means the last finalized block at the time of the query.
-Then find the credential by getting the initial element of the account_credentials
map which is the map of all currently active credentials on the account. This includes public keys that can sign for the given credentials, as well as any revealed attributes. A credential contains commitments to these attributes. The map holds the AccountCredentialWithoutProofs
which has the InitialCredentialDeploymentValues
and CredentialDeploymentCommitments
.
-pub async fn handle_provide_proof(
- client: concordium_rust_sdk::v2::Client,
- state: Server,
- statement: Statement<ArCurve, AttributeKind>,
- request: ChallengedProof,
- key_pair: KeyPair,
-) -> Result<impl warp::Reply, Rejection> {
- let client = client.clone();
- let state = state.clone();
- let statement = statement.clone();
- match check_proof_worker(client, state, request, statement, key_pair).await {
- Ok(r) => Ok(warp::reply::json(&r)),
- Err(e) => {
- warn!("Request is invalid {:#?}.", e);
- Err(warp::reject::custom(e))
- }
- }
-}
-
-/// A common function that validates the cryptographic proofs in the request.
-async fn check_proof_worker(
- mut client: concordium_rust_sdk::v2::Client,
- state: Server,
- request: ChallengedProof,
- statement: Statement<ArCurve, AttributeKind>,
- key_pair: KeyPair,
-) -> Result<String, InjectStatementError> {
- let status = {
- let challenges = state
- .challenges
- .lock()
- .map_err(|_| InjectStatementError::LockingError)?;
-
- challenges
- .get(&base16_encode_string(&request.challenge.0))
- .ok_or(InjectStatementError::UnknownSession)?
- .clone()
- };
-
- let cred_id = request.proof.credential;
- let acc_info = client
- .get_account_info(&status.address.into(), BlockIdentifier::LastFinal)
- .await?;
-
- // TODO Check remaining credentials
- let credential = acc_info
- .response
- .account_credentials
- .get(&0.into())
- .ok_or(InjectStatementError::Credential)?;
-
- if crypto_common::to_bytes(credential.value.cred_id()) != crypto_common::to_bytes(&cred_id) {
- return Err(InjectStatementError::Credential);
- }
-
- let commitments = match &credential.value {
- AccountCredentialWithoutProofs::Initial { icdv: _, .. } => {
- return Err(InjectStatementError::NotAllowed);
- }
- AccountCredentialWithoutProofs::Normal { commitments, .. } => commitments,
- };
-
- let mut challenges = state
- .challenges
- .lock()
- .map_err(|_| InjectStatementError::LockingError)?;
-
- if statement.verify(
- &request.challenge.0,
- &state.global_context,
- cred_id.as_ref(),
- commitments,
- &request.proof.proof.value, // TODO: Check version.
- ) {
- challenges.remove(&base16_encode_string(&request.challenge.0));
- let sig = key_pair.sign(&acc_info.response.account_address.0);
- Ok(hex::encode_upper(sig.sig))
- } else {
- Err(InjectStatementError::InvalidProofs)
- }
-}
-
-
-The line below from the code snippet makes sure that the credential sent by the user is the same as the one that the account has.
-if crypto_common::to_bytes(credential.value.cred_id()) != crypto_common::to_bytes(&cred_id) {
- return Err(InjectStatementError::Credential);
- }
-
-
-Then you will get the commitments, which are the protectors of the attribute credentials in a way. They are the attributes that the user doesn’t want to reveal on the account. So a user can decide to open certain commitments and reveal the attributes.
-There is a great non-cryptographic analogy that explains commitments really well. Assume that you have data that you want to protect: you don’t want others to see it and you don’t want to change it. You put that in an envelope, seal it, and send it to the public. No one can see it because it’s sealed and you can not change it because it’s out now.
-let commitments = match &credential.value {
- AccountCredentialWithoutProofs::Initial { icdv: _, .. } => {
- return Err(InjectStatementError::NotAllowed);
- }
- AccountCredentialWithoutProofs::Normal { commitments, .. } => commitments,
- };
-
-
-And finally, verify the proof with this part and respond back with the result, which is the signature. You need the request
, global_context
, cred_id
, commitments
, and the proof
itself to do that. If it’s successful, you can remove the challenge from the map since it’s a one-time thing and sign the account address (as string) with your private key. You used this approach to create and share the signature but it’s also fine to sign any message. In the smart contract, while minting, you would like to verify that the claim is verified and signed with your private key. It may sound a bit complicated but you will understand it better while implementing the dApp.
-if statement.verify(
- &request.challenge.0,
- &state.global_context,
- cred_id.as_ref(),
- commitments,
- &request.proof.proof.value, // TODO: Check version.
- ) {
- challenges.remove(&base16_encode_string(&request.challenge.0));
- let sig = key_pair.sign(&acc_info.response.account_address.0);
- Ok(hex::encode_upper(sig.sig))
- } else {
- Err(InjectStatementError::InvalidProofs)
- }
-
-
-
-
-Main.rs
-Now you need to create the main program to run the HTTP server that listens to all endpoints required to create and send a challenge, share the statement, and verify the claim. Create a file called main.rs . Use warp to run an async HTTP server in a few easy steps as already mentioned. You definitely need the handlers.rs and types.rs to invoke the helper functions and the data structures.
-Create a struct called IdVerifierConfig that accepts command line parameters while running the application. First, it should have a node endpoint
to build and configure HTTP/2 channels (which gRPCv2 uses to stream). Second, you need a port for the server to listen and a logger using the log crate. Finally, give the statement
, verify_key
, and sign_key
(the keys you get from the exported wallet file) as parameters in string form. Note that for all parameters you specified some default values with the clap
.
-mod handlers;
-mod types;
-use crate::handlers::*;
-use crate::types::*;
-
-use clap::Parser;
-use concordium_rust_sdk::common::types::KeyPair;
-use concordium_rust_sdk::{
- common::{self as crypto_common},
- id::{
- constants::{ArCurve, AttributeKind},
- id_proof_types::Statement,
- },
- v2::BlockIdentifier,
-};
-use log::info;
-use std::{
- collections::HashMap,
- sync::{Arc, Mutex},
-};
-use warp::Filter;
-
-/// Structure used to receive the correct command line arguments.
-# [ derive( clap::Parser, Debug)]
-# [ clap( arg_required_else_help( true ))]
-# [ clap( version, author)]
-struct IdVerifierConfig {
- # [ clap(
- long = "node",
- help = "GRPC V2 interface of the node.",
- default_value = "http://localhost:20000"
- )]
- endpoint: concordium_rust_sdk::v2::Endpoint,
- # [ clap(
- long = "port",
- default_value = "8100",
- help = "Port on which the server will listen on."
- )]
- port: u16,
- # [ structopt(
- long = "log-level",
- default_value = "debug",
- help = "Maximum log level."
- )]
- log_level: log::LevelFilter,
- # [ clap(
- long = "statement",
- help = "The statement that the server accepts proofs for."
- )]
- statement: String,
- # [ structopt(
- long = "sign-key",
- help = "Sign key of the first credential of the signer"
- )]
- sign_key: String,
- # [ structopt(
- long = "verify-key",
- help = "Verify key of the first credential of the signer"
- )]
- verify_key: String,
-}
-
-
-As the final step, add the main()
function. Add the #\[tokio::main]
macro just before main. It transforms the async main()
function into a synchronous main()
function that initializes a runtime instance and executes the async main()
function.
-First, parse the parameters given as input while running the executable. After initializing the log file, serialize the statement (see the concordium-rust-sdk for more details), create a client, and get the latest cryptographic parameters which are public and the global_context
until the finalized last block from Concordium (or the request made). Create a state variable (initiate it) with empty challenges and the global context.
-
-Get Challenge
-cors is a standard in HTTP related to the permissions to access and manage a website that you set in the server’s settings, and then implement the first endpoint which is the get challenge. So when someone wants to get a randomly generated challenge for their address, they must call this endpoint. You will get the address from the query payload and invoke handle_get_challange()
. Since you don’t need input this is a GET
function that is available at localhost:8000/api/challenge
, and you will use the same channel when the challenge is generated and stored on the state in a map with its key, such as base16 encoded version, <address, time>.
-
-
-Get Statement
-The second endpoint is the get statement. When your dApp wants to verify that a user meets some conditions, it needs to know what conditions they are. You will answer with the statement from our input variables using the same channel. You don’t need input, so this is also a GET
endpoint that is available at localhost:8000/api/statement
.
-
-
-Prove
-The last endpoint is the prove. Basically, the request that dApp posts (this is a POST endpoint) includes the challenge and the proof. You will send it to the handle_provide_proof()
helper function to prove and sign it. In order to sign it, weyou need to re-create your key pair which are created using your verify_key
and sign_key
. When the proof is verified, this endpoint returns a signature (the public key of the user signed by the backend’s private key) that can be verifiable in the smart contract. Then the user will be able to mint the token because the signature will be verifiable by the smart contract using the public key of the backend address.
-# [ tokio::main]
-async fn main() -> anyhow::Result<()> {
- let app = IdVerifierConfig::parse();
- let mut log_builder = env_logger::Builder::new();
- // only log the current module (main).
- log_builder.filter_level(app.log_level); // filter filter_module(module_path!(), app.log_level);
- log_builder.init();
- let statement: Statement<ArCurve, AttributeKind> = serde_json::from_str(&app.statement)?;
-
- let mut client = concordium_rust_sdk::v2::Client::new(app.endpoint).await?;
- let global_context = client
- .get_cryptographic_parameters(BlockIdentifier::LastFinal)
- .await?
- .response;
-
- log::debug!("Acquired data from the node.");
-
- let state = Server {
- challenges: Arc::new(Mutex::new(HashMap::new())),
- global_context: Arc::new(global_context),
- };
- let prove_state = state.clone();
- let challenge_state = state.clone();
-
- let cors = warp::cors()
- .allow_any_origin()
- .allow_header("Content-Type")
- .allow_method("POST");
-
- // 1a. get challenge
- let get_challenge = warp::get()
- .and(warp::path!("api" / "challenge"))
- .and(warp::query::<WithAccountAddress>())
- .and_then(move |query: WithAccountAddress| {
- handle_get_challenge(challenge_state.clone(), query.address)
- });
-
- // 1b. get statement
- // change it to check older than 18 only.
- let get_statement = warp::get()
- .and(warp::path!("api" / "statement"))
- .map(move || warp::reply::json(&app.statement));
-
- // 2. Provide proof
- let provide_proof = warp::post()
- .and(warp::filters::body::content_length_limit(50 * 1024))
- .and(warp::path!("api" / "prove"))
- .and(warp::body::json())
- .and_then(move |request: ChallengedProof| {
- let kp = KeyPair::from(ed25519_dalek::Keypair {
- public: ed25519_dalek::PublicKey::from_bytes(
- hex::decode(&app.verify_key).unwrap().as_slice(),
- )
- .unwrap(),
- secret: ed25519_dalek::SecretKey::from_bytes(
- hex::decode(&app.sign_key).unwrap().as_slice(),
- )
- .unwrap(),
- });
- handle_provide_proof(
- client.clone(),
- prove_state.clone(),
- statement.clone(),
- request,
- kp,
- )
- });
-
- info!(
- "Starting up HTTP serve
-r. Listening on port {}.",
- app.port
- );
-
- tokio::spawn(handle_clean_state(state.clone()));
-
- let server = get_challenge
- .or(get_statement)
- .or(provide_proof)
- .recover(handle_rejection)
- .with(cors)
- .with(warp::trace::request());
- warp::serve(server).run(([0, 0, 0, 0], app.port)).await;
- Ok(())
-}
-
-
-Now you need to create a smart contract for minting NFTs .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/nft-minting/contract-interactions.html b/pr-preview-academy/pr-1250/tutorials/nft-minting/contract-interactions.html
deleted file mode 100644
index 9b82a88109..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/nft-minting/contract-interactions.html
+++ /dev/null
@@ -1,1285 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Contract interactions with Concordium-Rust-SDK — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Contract interactions with Concordium-Rust-SDK
-Now, continue with the client development. First, you will create a new instance of your deployed contract with the module reference you have. To structure things a bit, create another folder for your client with cargo.
-cargo new cis2-rust-sdk-minting
-
-
-As the first step, you need to add dependencies to the Cargo.toml file. Add the dependencies shown below, including SDK, web client components, command line and error handlers, serialization, and time libraries.
-[dependencies]
-
-concordium-rust-sdk = "2"
-tokio = { version = "1" , features = [ "full" ] }
-warp = "0.3"
-log = "0.4.11"
-env_logger = "0.9"
-clap = { version = "4" , features = [ "derive" ] }
-anyhow = "1.0"
-chrono = "0.4.19"
-thiserror = "1"
-structopt = "0.3.26"
-serde = { version = "1.0" , features = [ "derive" ] }
-serde_json = "1.0"
-strum = "0.24"
-strum_macros = "0.24"
-
-
-Then in main.rs start adding the necessary libraries to your program. You need the command line argument parser (clap) for getting parameters and structopt for parsing the input parameters as a struct. You also need the path library to manipulate file paths, for example, the path of your wallet file, and many internal concordium-rust-sdk functions for making the transactions, serialization, accounts and more.
-use crate::clap::AppSettings;
-use anyhow::Context;
-use concordium_rust_sdk::{
- common::{self, types::TransactionTime, SerdeDeserialize, SerdeSerialize},
- smart_contracts::{
- common as concordium_std,
- common::Amount,
- types::{OwnedContractName, OwnedReceiveName},
- },
- types::{
- smart_contracts::{ModuleReference, OwnedParameter, WasmModule},
- transactions::{send, BlockItem, InitContractPayload, UpdateContractPayload},
- AccountInfo, ContractAddress, WalletAccount,
- },
- v2,
-};
-use std::path::PathBuf;
-use structopt::*;
-
-use strum_macros::EnumString;
-
-
-For simplicity, create an enum that represents the actions that you would like to do. In that Action
enum, specify the transaction types as following: Deploy
, Init
, WithSchema
. In the Deploy
action, specify your module’s path, and in the Init
action, specify only the deployed module reference. In the WithSchema
action, specify the transaction parameter for minting, transferring, or viewing the contract state. Note that all will be invokable with the schema file.
-# [ derive( StructOpt)]
-enum Action {
- # [ structopt( about = "Deploy the module" )]
- Deploy {
- # [ structopt( long = "module" , help = "Path to the contract module." )]
- module_path: PathBuf,
- },
- # [ structopt( about = "Initialize the CIS-2 NFT contract" )]
- Init {
- # [ structopt(
- long,
- help = "The module reference used for initializing the contract instance."
- )]
- module_ref: ModuleReference,
- },
- # [ structopt(
- about = "Update the contract and set the provided using JSON parameters and a \
- schema."
- )]
- WithSchema {
- # [ structopt( long, help = "Path of the JSON parameter." )]
- parameter: PathBuf,
- # [ structopt( long, help = "Path to the schema." )]
- schema: PathBuf,
- # [ structopt( long, help = "The contract to update." )]
- address: ContractAddress,
- # [ structopt( long, help = "Transaction Type" )]
- transaction_type_: TransactionType,
- },
-}
-
-
-Add an enum to distinguish all transactions that require a schema that comes with the WithSchema
parameter. You need the schema file for both state-changing and view functions (to print in a human-readable form).
-# [ derive( StructOpt, EnumString)]
-enum TransactionType {
- # [ structopt( about = "Mint" )]
- Mint,
- # [ structopt( about = "Transfer" )]
- Transfer,
- # [ structopt( about = "TokenMetadata" )]
- TokenMetadata,
- # [ structopt( about = "View" )]
- View,
-}
-
-
-Use the TransactionResult
to escape an error for incompatible type error for returning different results from each match. Every state change after each invocation, including init_contract
, deploy_contract
, and update_contract
needs to be treated differently than the tokenMetadata()
and the view()
functions. In order to call these view functions (which won’t cause any state changes), call the invoke_instance
function, which has a return type. So having a parent enum helps you to return the same types, but gives you the ability to manipulate each one individually.
-# [ derive( Debug)]
-enum TransactionResult {
- StateChanging(AccountTransaction<EncodedPayload>),
- None,
-}
-
-
-Now, you need to set the base configurations including node setup. Since you are going to deploy this contract to testnet, use the testnet node gRPC endpoint as the default provided by Concordium which is testnet.node.concordium.com . You also need your key file path (the file exported from the wallet) and the Action
. All of these are configurable from the terminal as an input parameter.
-/// Node connection, key path and the action input struct
-# [ derive( StructOpt)]
-struct App {
- # [ structopt(
- long = "node",
- help = "GRPC interface of the node.",
- default_value = "http://node.testnet.concordium.com:20000"
- )]
- endpoint: v2::Endpoint,
- # [ structopt( long = "account" , help = "Path to the account key file." )]
- keys_path: PathBuf,
- # [ structopt( subcommand, help = "The action you want to perform." )]
- action: Action,
-}
-
-
-Now you can create your main()
function. As you can see from the code below, it is a multi-threaded runtime that can handle multiple requests simultaneously. It reads the inputs from the terminal and creates a connection with Concordium by creating a client. Upload your key file by providing its path, and get the nonce of the last finalized block to have the full list of the accounts onboarded. Then check the action
type to decide whether this is going to be a Deploy
, Init
or WithSchema
transaction in a match or switch case statement. (In Rust, there is no switch case statement.) Start coding Deploy
and Init
first, then continue with WithSchema
.
-# [ tokio::main( flavor = "multi_thread" )]
-async fn main() -> anyhow::Result<()> {
- use base64::{engine::general_purpose, Engine as _};
- let app = {
- let app = App::clap().global_setting(AppSettings::ColoredHelp);
- let matches = app.get_matches();
- App::from_clap(&matches)
- };
-
- let mut client = v2::Client::new(app.endpoint)
- .await
- .context("Cannot connect.")?;
-
- // load account keys and sender address from a file
- let keys: WalletAccount =
- WalletAccount::from_json_file(app.keys_path).context("Could not read the keys file.")?;
-
- // Get the initial nonce at the last finalized block.
- let acc_info: AccountInfo = client
- .get_account_info(&keys.address.into(), &v2::BlockIdentifier::Best)
- .await?
- .response;
-
- let nonce = acc_info.account_nonce;
- // set expiry to now + 5min
- let expiry: TransactionTime =
- TransactionTime::from_seconds((chrono::Utc::now().timestamp() + 300) as u64);
-
-
-
-Deploy contract
-In order to deploy the contract and all other transactions, you use the send()
wrapper from the concordium-rust-sdk under the transactions library. You read the Wasm compiled smart contract module, and after deserializing it, invoke the deploy_module()
function from the same library. For structuring the directory a bit better, create a folder called nft-params and copy and paste the exported wallet file and the module from concordium-out into it.
-let tx = match app.action {
- Action::Deploy { module_path } => {
- let contents = std::fs::read(module_path).context("Could not read contract module.")?;
- let payload: WasmModule =
- common::Deserial::deserial(&mut std::io::Cursor::new(contents))?;
- TransactionResult::StateChanging(send::deploy_module(
- &keys,
- keys.address,
- nonce,
- expiry,
- payload,
- ))
- }
-
-
-
-Build your file first, then run the executable in the target/debug folder with the command below.
-cargo build
-cd target/debug
-./cis2-rust-sdk-minting --account ../../nft-params/wallet.export deploy --module ../../nft-params/module.wasm.v1
-
-
-
-Congrats! You have successfully deployed your smart contract!
-
-
-Initialize contract
-Now you will create a new instance of the deployed contract. The first match``checks whether the action is ``Init
. Then you add an empty OwnedParam
because your smart contract init
function doesn’t require an input parameter, and similarly, there is no Amount
for this function as a payment. But the init
function itself requires the module_reference
that you had in the previous step. Use that and call the init_contract()
function from send
wrapper of the transactions library.
-Action::Init {
- module_ref: mod_ref,
- } => {
- let param = OwnedParameter::empty();
- // .expect("Known to not exceed parameter size limit.");
- let payload = InitContractPayload {
- amount: Amount::zero(),
- mod_ref,
- init_name: OwnedContractName::new_unchecked(
- "init_rust_sdk_minting_tutorial".to_string(),
- ),
- param,
- };
- TransactionResult::StateChanging(send::init_contract(
- &keys,
- keys.address,
- nonce,
- expiry,
- payload,
- 10000u64.into(),
- ))
- }
-
-
-./cis2-rust-sdk-minting --account ../../nft-params/wallet.export init --module-ref <YOUR-MODULE-REFERENCE>
-
-
-
-In the following sections, you will use the schema file either while changing the state with transfer()
or mint()
functions, or to print return values in the form of JSON from the contract.
-
-
-Using schema in view and state changing functions
-You will need the schema file when calling mint()
and transfer()
functions and any view functions printing, including tokenMetadata()
and view()
. First, you need to read and load schema from the .bs64 output file. For convenience, copy and paste it from the concordium-out folder to the nft-params folder. Note that base64 encoding is without padding, so decode it accordingly. Then you have the TransactionType
enum which helps you to distinguish the transactions because each one needs different parameters, invokes different functions, and uses different parts of the schema.
-For the sake of the match
statement’s return type mismatch error, after every transaction the return type is TransactionResult
. Depending on the transaction, it returns TransactionResult::StateChanging
(if it’s a mint or transfer), or TransactionResult::None
(if it’s a view function).
-Action::WithSchema {
- parameter,
- schema,
- address,
- transaction_type_,
- } => {
- let parameter: serde_json::Value = serde_json::from_slice(
- &std::fs::read(parameter.unwrap()).context("Unable to read parameter file.")?,
- )
- .context("Unable to parse parameter JSON.")?;
-
- let schemab64 = std::fs::read(schema).context("Unable to read the schema file.")?;
- let schema_source = general_purpose::STANDARD_NO_PAD.decode(schemab64);
-
- let schema = concordium_std::from_bytes::<concordium_std::schema::VersionedModuleSchema>(
- &schema_source?,
- )?;
- // schema_global = schema;
- match transaction_type_ {
- TransactionType::Mint => {
- let param_schema =
- schema.get_receive_param_schema("rust_sdk_minting_tutorial", "mint")?;
- let serialized_parameter = param_schema.serial_value(¶meter)?;
- let message = OwnedParameter::try_from(serialized_parameter).unwrap();
- let payload = UpdateContractPayload {
- amount: Amount::zero(),
- address,
- receive_name: OwnedReceiveName::new_unchecked(
- "rust_sdk_minting_tutorial.mint".to_string(),
- ),
- message,
- };
-
- TransactionResult::StateChanging(send::update_contract(
- &keys,
- keys.address,
- nonce,
- expiry,
- payload,
- 10000u64.into(),
- ))
- }
- //// Transfer Transaction which changes the state
- TransactionType::Transfer => {
- let param_schema =
- schema.get_receive_param_schema("rust_sdk_minting_tutorial", "transfer")?;
- let serialized_parameter = param_schema.serial_value(¶meter)?;
- let message = OwnedParameter::try_from(serialized_parameter).unwrap();
- let payload = UpdateContractPayload {
- amount: Amount::zero(),
- address,
- receive_name: OwnedReceiveName::new_unchecked(
- "rust_sdk_minting_tutorial.transfer".to_string(),
- ),
- message,
- };
- //// call update contract with the payload
- TransactionResult::StateChanging(send::update_contract(
- &keys,
- keys.address,
- nonce,
- expiry,
- payload,
- 10000u64.into(),
- ))
- }
- /// Token Metadata function with no state change
- TransactionType::TokenMetadata => {
- let param_schema = schema
- .get_receive_param_schema("rust_sdk_minting_tutorial", "tokenMetadata")?;
- let rv_schema = schema.get_receive_return_value_schema(
- "rust_sdk_minting_tutorial",
- "tokenMetadata",
- )?;
-
- let serialized_parameter = param_schema.serial_value(¶meter)?;
- let context = ContractContext {
- invoker: None, //Account(AccountAddress),
- contract: address,
- amount: Amount::zero(),
- method: OwnedReceiveName::new_unchecked(
- "rust_sdk_minting_tutorial.tokenMetadata".to_string(),
- ),
- parameter: OwnedParameter::try_from(serialized_parameter).unwrap(), //Default::default(),
- energy: 1000000.into(),
- };
- // invoke instance
- let info = client
- .invoke_instance(&BlockIdentifier::Best, &context)
- .await?;
-
- match info.response {
- concordium_rust_sdk::types::smart_contracts::InvokeContractResult::Success { return_value, .. } => {
- let bytes: concordium_rust_sdk::types::smart_contracts::ReturnValue = return_value.unwrap();
- // deserialize and print return value
- println!( "{}",rv_schema.to_json_string_pretty(&bytes.value)?);//jsonxf::pretty_print(¶m_schema.to_json_string_pretty(&bytes.value)?).unwrap());
- }
- _ => {
- println!("Could'nt succesfully invoke the instance. Check the parameters.")
- }
- }
- TransactionResult::None
-
- // info
- }
- TransactionType::View => {
- let rv_schema = schema
- .get_receive_return_value_schema("rust_sdk_minting_tutorial", "view")?;
-
- let context = ContractContext {
- invoker: None, //Account(AccountAddress),
- contract: address,
- amount: Amount::zero(),
- method: OwnedReceiveName::new_unchecked(
- "rust_sdk_minting_tutorial.view".to_string(),
- ),
- parameter: Default::default(),
- energy: 1000000.into(),
- };
- // invoke instance
- let info = client
- .invoke_instance(&BlockIdentifier::Best, &context)
- .await?;
-
- match info.response {
- concordium_rust_sdk::types::smart_contracts::InvokeContractResult::Success { return_value, .. } => {
- let bytes: concordium_rust_sdk::types::smart_contracts::ReturnValue = return_value.unwrap();
- // deserialize and print return value
- println!( "{}",rv_schema.to_json_string_pretty(&bytes.value)?);//jsonxf::pretty_print(¶m_schema.to_json_string_pretty(&bytes.value)?).unwrap());
- }
- _ => {
- println!("Could'nt succesfully invoke the instance. Check the parameters.")
- }
- }
- TransactionResult::None
-
- // info
- }
- }
- }
-
-
-Finally, for the transaction output, you have one final match
statement with TransactionResult
, which will print the transaction details including module reference when deployed, contract address when initialized, and rejection reason if it’s rejected by looking at the BlockSummaryDetails
. The program will print the view functions’ returns in the previous section so in this final match
they are just gracefully exiting.
-match tx {
- TransactionResult::StateChanging(result) => {
- let item = BlockItem::AccountTransaction(result);
- // submit the transaction to the chain
- let transaction_hash = client.send_block_item(&item).await?;
- println!(
- "Transaction {} submitted (nonce = {}).",
- transaction_hash, nonce,
- );
- let (bh, bs) = client.wait_until_finalized(&transaction_hash).await?;
- println!("Transaction finalized in block {}.", bh);
-
- match bs.details {
- BlockItemSummaryDetails::AccountTransaction(ad) => {
- match ad.effects {
- AccountTransactionEffects::ModuleDeployed { module_ref } => {
- println!("module ref is {}", module_ref);
- }
- AccountTransactionEffects::ContractInitialized { data } => {
- println!("Contract address is {}", data.address);
- }
- AccountTransactionEffects::None {
- transaction_type,
- reject_reason,
- } => {
- println!("The Rejection Outcome is {:#?}", reject_reason);
- }
- _ => (),
- };
- }
- BlockItemSummaryDetails::AccountCreation(_) => (),
- BlockItemSummaryDetails::Update(_) => {
- println!("Transaction finalized in block {:?}.", bs.details);
- ()
- }
- };
- }
- TransactionResult::None => {
- println!("No state changes, already printed, gracefully exiting.");
- }
-}
-
-
-
-
-Mint function
-Now you can call the mint()
function from your new instance. For the complete minting tutorial you can follow the NFT minting tutorial from Concordium’s developer portal . Create a file called nft-params.json (similar to the tutorial) in the nft-params folder to mint your token and add your address and token ID to the file. And copy the schema file from the concordium-out folder to the nft-params folder.
-{
- "owner" : {
- "Account" : [ "YOUR-ACCOUNT-ADDRESS" ]
- },
- "tokens" : [ "TOKEN-ID" ]
-}
-
-
-If you want to check the parameters you can always use — help
keyword.
-
-You will call with-schema
which requires the contract address, parameters, schema, and transaction type. Since there could be multiple transaction types like mint, transfer, view, burn, etc. you have added another enum TransactionType
. Specification of the transaction type is necessary while starting the program using the command line. You are also expected to provide the JSON parameters and the schema file; both will be read from the provided path. If you need more details use — help
again.
-
-Use the command below to invoke the mint()
function.
-./cis2-rust-sdk-minting --account ../../nft-params/wallet.export with-schema --address "<INDEX,SUBINDEX>" --parameter ../../nft-params/nft-params.json --schema ../../nft-params/module-schema.bs64 --transaction-type Mint
-
-
-
-Congrats! You have successfully minted your first token using the Concordium Rust-SDK!
-
-
-
-View function
-Finally, invoke the view()
function, which simply returns the current state of the contract instance. It doesn’t necessarily require a parameter to be invoked, but your program waits for a parameter so you can use the same token_id.json file to display the state.
-./cis2-rust-sdk-minting --account ../../nft-params/wallet.export with-schema --address "<INDEX,SUBINDEX>" --parameter ../../nft-params/token-id.json --schema ../../nft-params/module-schema.bs64 --transaction-type View
-
-
-
-Congrats! You have successfully completed the Concordium NFT Minting Tutorial with Rust-SDK! The full code can be found here .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/nft-minting/index.html b/pr-preview-academy/pr-1250/tutorials/nft-minting/index.html
deleted file mode 100644
index 5ce7bd2202..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/nft-minting/index.html
+++ /dev/null
@@ -1,826 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- NFT minting tutorial with Rust-SDK — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-NFT minting tutorial with Rust-SDK
-In this tutorial you will interact with a CIS-2 token contract for minting an NFT using the Concordium Rust-SDK . You will deploy and initialize the contract using the SDK and similarly invoke functions like mint()
, transfer()
, and tokenMetadata()
using it. Since this is an SDK-oriented tutorial, there will not be any specific explanation about smart contract development. You can find many other examples that show how you can interact with Concordium using the Rust-SDK in this example GitHub repository . You will use the Concordium Smart Contracts VSCode Extension to create your template contract.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/nft-minting/smart-contract-template.html b/pr-preview-academy/pr-1250/tutorials/nft-minting/smart-contract-template.html
deleted file mode 100644
index 593d8659d2..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/nft-minting/smart-contract-template.html
+++ /dev/null
@@ -1,840 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Generate a smart contract with the Concordium VSCode extension — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Generate a smart contract with the Concordium VSCode extension
-Concordium has a direct extension on VSCode that allows you to set up your projects easily within minutes. Use the search in VSCode to find it and click Install and then click Enable .
-
-Create the project using the VSCode extension. Open VSCode’s Command Palette and start typing Concordium; you see the list of applicable commands. By default, you can open the command palette using the shortcuts below.
-
-macOS: Command+Shift+P
-Windows: Ctrl+Shift+P
-Linux: Ctrl+Shift+P
-
-
-Select Initialize a smart contract project and click your folder to set up your project.
-
-Then you will have two template options, including cis2-nft and default. Continue with cis2-nft . Give your project a name, specify a URL of your token’s metadata, and add a description.
-
-Now build it. Open the Command Palette again, and select Build contract . Note that this option will build your contract and embed your schema in the module.
-
-You can find the module file in the created folder called concordium-out .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/register-data.html b/pr-preview-academy/pr-1250/tutorials/register-data.html
deleted file mode 100644
index 4690764a7f..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/register-data.html
+++ /dev/null
@@ -1,1072 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Register Data On-Chain — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Register Data On-Chain
-In this tutorial, you will implement a very basic React application that can connect to the Concordium blockchain. It will not have any smart contract development and/or interaction, and does not even run a node. Concordium provides a very special transaction type to store data on-chain without even coding a smart contract. The simplest use case could be, for example, if you would like to make sure that a data’s integrity is not tampered with, then you can store that data’s hash on-chain and verify it later!
-
-React Project
-First, set up a working directory for our dApp and then create an empty react project from the template inside it. The tutorial assumes you already have yarn installed in your system and have a text editor. This tutorial uses vscode but you can use any code editor. To create a React project run the following command:
-yarn create react-app register-data-dapp --template typescript
-
-
-It will take some time to fetch and install all packages and dependencies, and when it’s all done you will have something similar to the below.
-
-And when you run it you will see the template application interface.
-
-You will start from scratch with an empty React application that is bootstrapped from a React template and will be using material-ui . You will add the dependencies for some React components from material-ui and necessary libraries from concordium-web-sdk and concordium-web-wallet-helper. To do that, run the command below and yarn will install all specified packages.
-yarn add @mui/material @emotion/react @mui/icons-material @emotion/styled @concordium/web-sdk @concordium/browser-wallet-api-helpers
-
-
-Once complete, it creates a package.json file that includes all dependencies in it.
-
-
-
-Register component
-Now create another file called Register.tsx . This component will take input from the user with a text box, calculate its SHA-256, and store it on-chain with a very simple and special type of transaction called registerData
.
-import { detectConcordiumProvider } from "@concordium/browser-wallet-api-helpers";
-import {
-AccountTransactionType,
-DataBlob,
-RegisterDataPayload,
-sha256,
-} from "@concordium/web-sdk";
-import { Button, Link, Stack, TextField, Typography } from "@mui/material";
-import { FormEvent, useState } from "react";
-import { Buffer } from "buffer/";
-
-export default function RegisterData() {
-let [state, setState] = useState({
-checking: false,
-error: "",
-hash: "",
-});
-
-const submit = async (event: FormEvent<HTMLFormElement>) => {
-event.preventDefault();
-setState({ ...state, error: "", checking: true, hash: "" });
-const formData = new FormData(event.currentTarget);
-
-var formValues = {
-data: formData.get("data")?.toString() ?? "",
-};
-
-if (!formValues.data) {
-setState({ ...state, error: "Invalid Data" });
-return;
-}
-
-const provider = await detectConcordiumProvider();
-const account = await provider.connect();
-
-if (!account) {
-alert("Please connect");
-}
-
-try {
-const txnHash = await provider.sendTransaction(
- account!,
- AccountTransactionType.RegisterData,
- {
- data: new DataBlob(sha256([Buffer.from(formValues.data)])),
- } as RegisterDataPayload
-);
-
-setState({ checking: false, error: "", hash: txnHash });
-} catch (error: any) {
-setState({ checking: false, error: error.message || error, hash: "" });
-}
-};
-
-return (
-<Stack
-component={"form"}
-spacing={2}
-onSubmit={submit}
-autoComplete={"true"}
->
-<TextField
- id="data"
- name="data"
- label="Data"
- variant="standard"
- disabled={state.checking}
-/>
-{state.error && (
- <Typography component="div" color="error">
- {state.error}
- </Typography>
-)}
-{state.checking && <Typography component="div">Checking..</Typography>}
-{state.hash && (
- <Link
- href={`https://dashboard.testnet.concordium.com/lookup/${state.hash}`}
- target="_blank"
- >
- View Transaction <br />
- {state.hash}
- </Link>
-)}
-<Button
- type="submit"
- variant="contained"
- fullWidth
- size="large"
- disabled={state.checking}
->
- Register Data
-</Button>
-</Stack>
-);
-}
-
-
-Specifically, zoom in on a part of the code shown below. There are two important parts where you need to be careful: first, the connection with the wallet, and second, the transaction parameters. To make sure these are provided, add a control that checks if the wallet is already connected successfully. Then, you need to give the data as a parameter to the AccountTransactionType.RegisterData
transaction. (convert it to sha256) Keep the returning transaction hash (_txnHash)_ to verify our transaction’s state and what it entails.
-const provider = await detectConcordiumProvider();
-const account = await provider.connect();
-
-if (!account) {
-alert("Please connect");
-}
-
-try {
-const txnHash = await provider.sendTransaction(
- account!,
- AccountTransactionType.RegisterData,
- {
- data: new DataBlob(sha256([Buffer.from(formValues.data)])),
- } as RegisterDataPayload
-);
-
-setState({ checking: false, error: "", hash: txnHash });
-} catch (error: any) {
-setState({ checking: false, error: error.message || error, hash: "" });
-}
-};
-
-
-Open the App.tsx file and paste the code below into the file. You are calling these two components from the application’s main function.
-import "./App.css";
-import Header from "./Header";
-import { useState } from "react";
-import { Container } from "@mui/material";
-import RegisterData from "./RegisterData";
-
-export default function App() {
-const [isConnected, setConnected] = useState(false);
-
-return (
-<div className="App">
-<Header
- onConnected={() => setConnected(true)}
- onDisconnected={() => setConnected(false)}
-/>
-<Container sx={{ mt: 15 }}>{isConnected && <RegisterData />}</Container>
-</div>
-);
-}
-
-
-If everything is correct, you should see something similar to below.
-
-Connect it and you will have:
-
-Fill it in with the string concordium and click REGISTER DATA .
-
-The application will print the TxnHash
value for you to track on the block explorer. Click that to verify it.
-
-It redirects you to that partciular block in CCDScan.
-
-If you want to compare the data you stored in the Concordium SHA-256 version, you can use this online tool to calculate any text’s SHA-256.
-
-As expected, those two values are matched! Step back for one second and think about what you implemented with this dApp. What you have done is store proof of data on-chain and allow everybody who wants to check that your data’s integrity is preserved or not can go and verify it by looking at this brilliant decentralized network. It is stored on-chain now and no one can change it. Full code can be found here .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pr-preview-academy/pr-1250/tutorials/simple-nft-dapp.html b/pr-preview-academy/pr-1250/tutorials/simple-nft-dapp.html
deleted file mode 100644
index 982443d712..0000000000
--- a/pr-preview-academy/pr-1250/tutorials/simple-nft-dapp.html
+++ /dev/null
@@ -1,1277 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Simple minting dApp — Concordium documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Back to top
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Simple minting dApp
-In this tutorial, you are going to implement a very basic NFT Minting dApp that can connect to the Concordium. The application will include three buttons: one to connect it to the web wallet, one to initialize the contract, and the third to mint the NFT. You will learn how to connect your dApp to the Concordium blockchain and how you can invoke a function from an already deployed smart contract.
-You will start from scratch with an empty React application that is bootstrapped from a React template and will be using material-ui . Within this very basic application, there will be three components for minting, initializing, and connecting the wallet. It is assumed you already set up your development environment and wallet so there will be no explanation about those steps. For that, you can check the other tutorials .
-
-React project
-First, set up a working directory for your dApp and then create an empty React project from the template inside it. This assumes you already have yarn installed and have a text editor (VSCode is used in this tutorial). To create a React project, run the command below.
-npx create-react-app <YOUR-DAPP-NAME> --template typescript
-
-
-It will take some time to fetch and install all packages and dependencies, and when it’s all done you will have something simliar to below.
-
-And when you run it you will see the template application interface.
-
-Then you will add the dependencies for some React components from material-ui and necessary libraries from concordium-web-sdk and concordium-web-wallet-helper . To do that, run the command below and yarn will install all specified packages.
-yarn add @mui/material @emotion/react @mui/icons-material @emotion/styled @concordium/web-sdk @concordium/browser-wallet-api-helpers
-
-
-Once you complete that, it will create a package.json file that includes all dependencies in it.
-
-
-
-Initialize Component
-Create another component called Initialize.tsx . Using this you will invoke the init()_
function of your deployed CIS-2 NFT contract. You are definitely free (and encouraged) to deploy your own contract but you can also use the Concordium CIS-2 template contract. Because remember this data structure is public, transparent, and decentralized. The whole point is to be able to use secure and safe contracts. It is fine to use the new instance of a well-known contract, like the CIS2 template, as you will be the owner of it when you create a new instance.
-Concordium strongly suggests you use environment variables to store sensitive values but please do not push sensitive data publicly for any reason to your GitHub repos as well!
-import { detectConcordiumProvider } from "@concordium/browser-wallet-api-helpers";
-import {
-AccountTransactionType,
-CcdAmount,
-InitContractPayload,
-ModuleReference,
-} from "@concordium/web-sdk";
-import { Button, Link } from "@mui/material";
-import { Buffer } from "buffer/";
-import { useState } from "react";
-
-
-export default function Initialize() {
-
-const [hash, setHash] = useState("");
-
-const initialize = async () => {
-const provider = await detectConcordiumProvider();
-const account = await provider.connect();
-
-if (!account) {
- alert("Please connect");
-}
-var REACT_APP_CONTRACT_NAME="CIS2-Multi";
-var REACT_APP_MODULE_REF="312f99d6406868e647359ea816e450eac0ecc4281c2665a24936e6793535c9f6";
-const txnHash = await provider.sendTransaction(
- account!,
- AccountTransactionType.InitContract,
- {
- amount: new CcdAmount(BigInt(0)),
- initName: REACT_APP_CONTRACT_NAME,//process.env.REACT_APP_CONTRACT_NAME!,
- moduleRef: new ModuleReference(REACT_APP_MODULE_REF), //new ModuleReference(process.env.REACT_APP_MODULE_REF!),
- param: Buffer.alloc(0),
- maxContractExecutionEnergy: BigInt(9999),
- } as InitContractPayload
-);
-
-setHash(txnHash);
-};
-
-return hash ? (
-<Link
- href={`https://dashboard.testnet.concordium.com/lookup/${hash}`}
- target="_blank"
->
- View Transaction <br />
- {hash}
-</Link>
-) : (
-<Button fullWidth variant="outlined" onClick={initialize}>
- Initialize Contract
-</Button>
-);
-}
-
-
-Call your new component from App.tsx . This time you are going to add some UI logic with useState
. The activity will depend on whether the wallet is connected.
-import "./App.css";
-import Header from "./Header";
-import Initialize from "./Initialize";
-import { useState } from "react";
-import { Container } from "@mui/material";
-export default function App() {
-const [isConnected, setConnected] = useState(false);
-return (
-<div className="App">
- <Header
- onConnected={() => setConnected(true)}
- onDisconnected={() => setConnected(false)}
- />
-
- <Container sx={{ mt: 15 }}>
- {isConnected && <Initialize/>}
- </Container>
-
-</div>
-);
-}
-
-
-}
-
-
-After these changes, the application will look similar to below. Click INITIALIZE CONTRACT . A pop up appears in the Concordium Wallet for Web to create a new instance.
-
-
-
-Minting Component
-Create a Mint.tsx file and paste the code below. It may look a bit longer than expected by looking at the first glance but most of it does validation checks of the necessary inputs for the data that will be read out from the form while minting the NFT.
-import { detectConcordiumProvider } from "@concordium/browser-wallet-api-helpers";
-import {
-AccountTransactionType,
-CcdAmount,
-serializeUpdateContractParameters,
-UpdateContractPayload,
-} from "@concordium/web-sdk";
-import { Button, Link, Stack, TextField, Typography } from "@mui/material";
-import { FormEvent, useState } from "react";
-import { Buffer } from "buffer/";
-
-export default function Mint() {
-let [state, setState] = useState({
-checking: false,
-error: "",
-hash: "",
-});
-
-const submit = async (event: FormEvent<HTMLFormElement>) => {
-event.preventDefault();
-setState({ ...state, error: "", checking: true, hash: "" });
-const formData = new FormData(event.currentTarget);
-
-var formValues = {
- index: BigInt(formData.get("contractIndex")?.toString() || "-1"),
- subindex: BigInt(formData.get("contractSubindex")?.toString() || "-1"),
- metadataUrl: formData.get("metadataUrl")?.toString() || "",
- tokenId: formData.get("tokenId")?.toString() || "",
- quantity: parseInt(formData.get("quantity")?.toString() || "-1"),
-};
-
-if (!(formValues.index >= 0)) {
- setState({ ...state, error: "Invalid Contract Index" });
- return;
-}
-
-if (!(formValues.subindex >= 0)) {
- setState({ ...state, error: "Invalid Contract Subindex" });
- return;
-}
-
-if (!(formValues.quantity >= 0)) {
- setState({ ...state, error: "Invalid Quantity" });
- return;
-}
-
-if (!formValues.metadataUrl) {
- setState({ ...state, error: "Invalid Metadata Url" });
- return;
-}
-
-if (!formValues.tokenId) {
- setState({ ...state, error: "Invalid Token Id" });
- return;
-}
-
-const provider = await detectConcordiumProvider();
-const account = await provider.connect();
-
-if (!account) {
- alert("Please connect");
-}
-
-const address = { index: formValues.index, subindex: formValues.subindex };
-const paramJson = {
- owner: {
- Account: [account],
- },
- tokens: [
- [
- formValues.tokenId,
- [
- {
- url: formValues.metadataUrl,
- hash: "",
- },
- formValues.quantity.toString(),
- ],
- ],
- ],
-};
-
- var REACT_APP_CONTRACT_NAME="CIS2-Multi";
- var REACT_APP_CONTRACT_SCHEMA="FFFF02010000000A000000434953322D4D756C7469000A0000000900000062616C616E63654F6606100114000200000008000000746F6B656E5F69641D0007000000616464726573731502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C10011B2500000015040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F7202040000006D696E7404140002000000050000006F776E65721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C06000000746F6B656E7312021D000F1400020000000300000075726C1601040000006861736816011B2500000015040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020F0000006F6E526563656976696E67434953320315040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020A0000006F70657261746F724F66061001140002000000050000006F776E65721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C07000000616464726573731502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C10010115040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020F000000736574496D706C656D656E746F72730414000200000002000000696416000C000000696D706C656D656E746F727310020C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F720208000000737570706F727473061001160010011503000000090000004E6F537570706F72740207000000537570706F72740209000000537570706F72744279010100000010000C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020D000000746F6B656E4D657461646174610610011D0010011400020000000300000075726C160104000000686173681502000000040000004E6F6E650204000000536F6D65010100000013200000000215040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F7202080000007472616E7366657204100114000500000008000000746F6B656E5F69641D0006000000616D6F756E741B250000000400000066726F6D1502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C02000000746F1502000000070000004163636F756E7401010000000B08000000436F6E747261637401020000000C160104000000646174611D0115040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020E0000007570646174654F70657261746F720410011400020000000600000075706461746515020000000600000052656D6F7665020300000041646402080000006F70657261746F721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F720204000000766965770114000200000005000000737461746510020F1502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C1400020000000800000062616C616E63657310020F1D001B25000000090000006F70657261746F727310021502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C06000000746F6B656E7310021D00";
-
-try {
- const schemaBuffer = Buffer.from(
- REACT_APP_CONTRACT_SCHEMA!,
- "hex"
- );
- const serializedParams = serializeUpdateContractParameters(
- process.env.REACT_APP_CONTRACT_NAME!,
- "mint",
- paramJson,
- schemaBuffer
- );
- const txnHash = await provider.sendTransaction(
- account!,
- AccountTransactionType.Update,
- {
- address,
- message: serializedParams,
- receiveName: `${REACT_APP_CONTRACT_NAME!}.mint`,
- amount: new CcdAmount(BigInt(0)),
- maxContractExecutionEnergy: BigInt(9999),
- } as UpdateContractPayload,
- paramJson,
- schemaBuffer.toString("base64")
- );
-
- setState({ checking: false, error: "", hash: txnHash });
-} catch (error: any) {
- setState({ checking: false, error: error.message || error, hash: "" });
-}
-};
-
-return (
-<Stack
- component={"form"}
- spacing={2}
- onSubmit={submit}
- autoComplete={"true"}
->
- <TextField
- id="contract-index"
- name="contractIndex"
- label="Contract Index"
- variant="standard"
- type={"number"}
- disabled={state.checking}
- />
- <TextField
- id="contract-subindex"
- name="contractSubindex"
- label="Contract Sub Index"
- variant="standard"
- type={"number"}
- disabled={state.checking}
- value={0}
- />
- <TextField
- id="metadata-url"
- name="metadataUrl"
- label="Metadata Url"
- variant="standard"
- disabled={state.checking}
- />
- <TextField
- id="token-id"
- name="tokenId"
- label="Token Id"
- variant="standard"
- disabled={state.checking}
- defaultValue="01"
- />
- <TextField
- id="quantity"
- name="quantity"
- label="Token Quantity"
- variant="standard"
- type="number"
- disabled={state.checking}
- defaultValue="1"
- />
- {state.error && (
- <Typography component="div" color="error">
- {state.error}
- </Typography>
- )}
- {state.checking && <Typography component="div">Checking..</Typography>}
- {state.hash && (
- <Link
- href={`https://dashboard.testnet.concordium.com/lookup/${state.hash}`}
- target="_blank"
- >
- View Transaction <br />
- {state.hash}
- </Link>
- )}
- <Button
- type="submit"
- variant="contained"
- fullWidth
- size="large"
- disabled={state.checking}
- >
- Mint
- </Button>
-</Stack>
-);
-}
-
-
-In the function above there are two important parts you need to be careful about: first, the connection with the wallet, and second, the transaction parameters. To make sure these are provided, add a control that checks if the wallet is already connected successfully.
-Then you need to create the parameters based on the form data, which will be the inputs of your minting function, like address
, _paramJson
, schemaBuffer
, and serializedParams
. All of these will be your parameters while invoking the mint()
function with provider.sendTransaction()
.
-const provider = await detectConcordiumProvider();
-const account = await provider.connect();
-
-if (!account) {
- alert("Please connect");
-}
-
-const address = { index: formValues.index, subindex: formValues.subindex };
-const paramJson = {
- owner: {
- Account: [account],
- },
- tokens: [
- [
- formValues.tokenId,
- [
- {
- url: formValues.metadataUrl,
- hash: "",
- },
- formValues.quantity.toString(),
- ],
- ],
- ],
-};
-
-var REACT_APP_CONTRACT_NAME="CIS2-Multi";
-var REACT_APP_CONTRACT_SCHEMA="FFFF02010000000A000000434953322D4D756C7469000A0000000900000062616C616E63654F6606100114000200000008000000746F6B656E5F69641D0007000000616464726573731502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C10011B2500000015040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F7202040000006D696E7404140002000000050000006F776E65721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C06000000746F6B656E7312021D000F1400020000000300000075726C1601040000006861736816011B2500000015040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020F0000006F6E526563656976696E67434953320315040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020A0000006F70657261746F724F66061001140002000000050000006F776E65721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C07000000616464726573731502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C10010115040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020F000000736574496D706C656D656E746F72730414000200000002000000696416000C000000696D706C656D656E746F727310020C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F720208000000737570706F727473061001160010011503000000090000004E6F537570706F72740207000000537570706F72740209000000537570706F72744279010100000010000C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020D000000746F6B656E4D657461646174610610011D0010011400020000000300000075726C160104000000686173681502000000040000004E6F6E650204000000536F6D65010100000013200000000215040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F7202080000007472616E7366657204100114000500000008000000746F6B656E5F69641D0006000000616D6F756E741B250000000400000066726F6D1502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C02000000746F1502000000070000004163636F756E7401010000000B08000000436F6E747261637401020000000C160104000000646174611D0115040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F72020E0000007570646174654F70657261746F720410011400020000000600000075706461746515020000000600000052656D6F7665020300000041646402080000006F70657261746F721502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C15040000000E000000496E76616C6964546F6B656E49640211000000496E73756666696369656E7446756E6473020C000000556E617574686F72697A65640206000000437573746F6D010100000015060000000B0000005061727365506172616D7302070000004C6F6746756C6C020C0000004C6F674D616C666F726D65640213000000496E76616C6964436F6E74726163744E616D65020C000000436F6E74726163744F6E6C790213000000496E766F6B65436F6E74726163744572726F720204000000766965770114000200000005000000737461746510020F1502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C1400020000000800000062616C616E63657310020F1D001B25000000090000006F70657261746F727310021502000000070000004163636F756E7401010000000B08000000436F6E747261637401010000000C06000000746F6B656E7310021D00";
-
-try {
- const schemaBuffer = Buffer.from(
- REACT_APP_CONTRACT_SCHEMA!,
- "hex"
- );
- const serializedParams = serializeUpdateContractParameters(
- REACT_APP_CONTRACT_NAME!,
- "mint",
- paramJson,
- schemaBuffer
- );
- const txnHash = await provider.sendTransaction(
- account!,
- AccountTransactionType.Update,
- {
- address,
- message: serializedParams,
- receiveName: `${REACT_APP_CONTRACT_NAME!}.mint`,
- amount: new CcdAmount(BigInt(0)),
- maxContractExecutionEnergy: BigInt(9999),
- } as UpdateContractPayload,
- paramJson,
- schemaBuffer.toString("base64")
- );
-
-
-Don’t forget to add your Mint
component to the App.tsx .
-<Container sx={{ mt: 15 }}>
- {isConnected && <Initialize/>}
- {isConnected && <Mint/>}
- </Container>
-
-
-If everything goes well, you will have something similar to below.
-
-Now try it! First, initialize your contract, and fill out the form with the necessary inputs. If you need some help with Metadata you can check this tutorial .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This website only aggregates and analyzes the actions you take here if you allow cookies. If you do not allow cookies, it protects your privacy, but also prevents the owner from learning from your actions and creating a better experience for you and other users.
Note that if you opt in and you clear your cookies, delete the opt-in cookie, or if you change computers or Web browsers, you will need to perform the opt-in procedure again.
-
Allow
-
Decline
-
Privacy policy
-
-
-
-
-
-
-
\ No newline at end of file