From a73aa3faefe5b04825209a907ba945741c39ecfc Mon Sep 17 00:00:00 2001 From: david-cermak <38914379+david-cermak@users.noreply.github.com> Date: Tue, 21 Jun 2022 16:10:23 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20espressi?= =?UTF-8?q?f/esp-protocols@609594a849e479cf44d8a08a3d6e9f42a2ffe141=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- esp_modem/.doctrees/README.doctree | Bin 15970 -> 15977 bytes esp_modem/.doctrees/advanced_api.doctree | Bin 78602 -> 77361 bytes esp_modem/.doctrees/api_docs.doctree | Bin 275712 -> 277655 bytes esp_modem/.doctrees/cxx_api_docs.doctree | Bin 104261 -> 103399 bytes esp_modem/.doctrees/cxx_api_links.doctree | Bin 18853 -> 18860 bytes esp_modem/.doctrees/environment.pickle | Bin 369105 -> 396201 bytes esp_modem/.doctrees/index.doctree | Bin 3005 -> 3012 bytes esp_modem/.doctrees/internal_design.doctree | Bin 9743 -> 9750 bytes esp_modem/.doctrees/internal_docs.doctree | Bin 441075 -> 443706 bytes esp_modem/README.html | 27 +- .../_sphinx_javascript_frameworks_compat.js | 134 +++ esp_modem/_static/basic.css | 54 +- esp_modem/_static/doctools.js | 484 +++++------ esp_modem/_static/documentation_options.js | 2 +- .../{jquery-3.5.1.js => jquery-3.6.0.js} | 227 +++--- esp_modem/_static/jquery.js | 4 +- esp_modem/_static/language_data.js | 100 +-- esp_modem/_static/searchtools.js | 768 +++++++++--------- esp_modem/advanced_api.html | 15 +- esp_modem/api_docs.html | 19 +- esp_modem/cxx_api_docs.html | 17 +- esp_modem/cxx_api_links.html | 5 +- esp_modem/genindex.html | 15 +- esp_modem/index.html | 7 +- esp_modem/internal_design.html | 15 +- esp_modem/internal_docs.html | 67 +- esp_modem/objects.inv | Bin 9491 -> 9590 bytes esp_modem/search.html | 3 +- esp_modem/searchindex.js | 2 +- esp_websocket_client/.buildinfo | 2 +- .../_sphinx_javascript_frameworks_compat.js | 134 +++ esp_websocket_client/_static/basic.css | 54 +- esp_websocket_client/_static/doctools.js | 484 +++++------ .../_static/documentation_options.js | 2 +- .../{jquery-3.5.1.js => jquery-3.6.0.js} | 227 +++--- esp_websocket_client/_static/jquery.js | 4 +- esp_websocket_client/_static/language_data.js | 100 +-- esp_websocket_client/_static/searchtools.js | 768 +++++++++--------- esp_websocket_client/genindex.html | 3 +- esp_websocket_client/index.html | 41 +- esp_websocket_client/search.html | 1 + esp_websocket_client/searchindex.js | 2 +- mdns/en/.buildinfo | 2 +- .../_sphinx_javascript_frameworks_compat.js | 134 +++ mdns/en/_static/basic.css | 54 +- mdns/en/_static/doctools.js | 484 +++++------ mdns/en/_static/documentation_options.js | 2 +- .../{jquery-3.5.1.js => jquery-3.6.0.js} | 227 +++--- mdns/en/_static/jquery.js | 4 +- mdns/en/_static/language_data.js | 100 +-- mdns/en/_static/searchtools.js | 768 +++++++++--------- mdns/en/genindex.html | 3 +- mdns/en/index.html | 39 +- mdns/en/search.html | 1 + mdns/en/searchindex.js | 2 +- mdns/zh_CN/.buildinfo | 2 +- .../_sphinx_javascript_frameworks_compat.js | 134 +++ mdns/zh_CN/_static/basic.css | 54 +- mdns/zh_CN/_static/doctools.js | 484 +++++------ mdns/zh_CN/_static/documentation_options.js | 4 +- .../{jquery-3.5.1.js => jquery-3.6.0.js} | 227 +++--- mdns/zh_CN/_static/jquery.js | 4 +- mdns/zh_CN/_static/language_data.js | 100 +-- mdns/zh_CN/_static/searchtools.js | 768 +++++++++--------- mdns/zh_CN/_static/translations.js | 4 +- mdns/zh_CN/genindex.html | 3 +- mdns/zh_CN/index.html | 33 +- mdns/zh_CN/search.html | 1 + mdns/zh_CN/searchindex.js | 2 +- 69 files changed, 3701 insertions(+), 3726 deletions(-) create mode 100644 esp_modem/_static/_sphinx_javascript_frameworks_compat.js rename esp_modem/_static/{jquery-3.5.1.js => jquery-3.6.0.js} (98%) create mode 100644 esp_websocket_client/_static/_sphinx_javascript_frameworks_compat.js rename esp_websocket_client/_static/{jquery-3.5.1.js => jquery-3.6.0.js} (98%) create mode 100644 mdns/en/_static/_sphinx_javascript_frameworks_compat.js rename mdns/en/_static/{jquery-3.5.1.js => jquery-3.6.0.js} (98%) create mode 100644 mdns/zh_CN/_static/_sphinx_javascript_frameworks_compat.js rename mdns/zh_CN/_static/{jquery-3.5.1.js => jquery-3.6.0.js} (98%) diff --git a/esp_modem/.doctrees/README.doctree b/esp_modem/.doctrees/README.doctree index 0f88806ee9271f2623693b44ed8f545dc83a9edc..dc65a09849615a1a5b00793530197862c0c4094a 100644 GIT binary patch delta 41 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 b@{fj$8I0}_l`a@6McKt532^#FBSuRAIM)l4 delta 11131 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 z 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 delta 48978 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

aLRrj2}#)#Bf%+~X+*B?fYj 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 diff --git a/esp_modem/.doctrees/cxx_api_links.doctree b/esp_modem/.doctrees/cxx_api_links.doctree index d49cc6dc6678f825d93c05903259b59ae3bfb534..6fb5bc7517fd7e89abf223677fbd4c96c2d4e08d 100644 GIT binary patch delta 43 zcmZ2FnQ_fzMwSNFsS7u<6uOJ?X67cQr^e^xC#GcPrBCT$$;r&ip0c^cU6Ba@V5<-i delta 36 scmZ28nQ`f4MwSNFsk1h+6uR^Cq~<22ro?CFCZ?wrPwCv;?XJiK0QMaXQ2+n{ diff --git a/esp_modem/.doctrees/environment.pickle b/esp_modem/.doctrees/environment.pickle index 16bb92a0e1601ecd015f6e9d5ee71fe6fe1f3aa6..c76e4cd22998ea4e3904410712bc3ac8732aa096 100644 GIT binary patch literal 396201 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 literal 369105 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 diff --git a/esp_modem/.doctrees/internal_design.doctree b/esp_modem/.doctrees/internal_design.doctree index 23e17151b54a8c5fad8e231758e1a9eacab2b387..cc3c2afa2c814a779cf60dce691cf7081d42683c 100644 GIT binary patch delta 41 xcmeD8ndZaNz&e$CBTJW(7;k27VtQ(PPJUuaW?uS~9+sTUyzD8P=PDI30{|>24)_27 delta 34 pcmbQ{)9=I5z&e#>BTJVOKTm3IQff+kW^Q77YVnlL%}bPum;uWr3^@P* diff --git a/esp_modem/.doctrees/internal_docs.doctree b/esp_modem/.doctrees/internal_docs.doctree index f5dd92f55659d07fcc3dbfa90e5d726352903f49..9e7bfa9c42c878c00198e557b140771b26afed1f 100644 GIT binary patch literal 443706 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%0DXvq)q|UVNnGU7eEA< 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 l<|XHprliK_ + @@ -34,7 +35,7 @@

-

ESP MODEM

+

ESP MODEM

This component is used to communicate with modems in the command mode (using AT commands), as well as the data mode (over PPPoS protocol). The modem device is modeled with a DCE (Data Communication Equipment) object, which is composed of:

@@ -58,9 +59,9 @@ The modem device is modeled with a DCE (Data Communication Equipment) object, wh
-

Modem components

+

Modem components

-

DCE

+

DCE

This is the basic operational unit of the esp_modem component, abstracting a specific module in software, which is basically configured by

    @@ -75,20 +76,20 @@ which is basically configured by

-

DTE

+

DTE

Is an abstraction of the physical interface connected to the modem. Current implementation supports only UART

-

PPP netif

+

PPP netif

Is used to attach the specific network interface to a network communication protocol used by the modem. Currently implementation supports only PPPoS protocol.

-

Module

+

Module

Abstraction of the specific modem device. Currently the component supports SIM800, BG96, SIM7600.

-

Use cases

+

Use cases

Users interact with the esp-modem using the DCE’s interface, to basically

  • Switch between command and data mode to connect to the internet via cellular network.

  • @@ -104,18 +105,18 @@ IP address changes.

-

Extensibility

+

Extensibility

-

CMUX

+

CMUX

Implementation of virtual terminals is an experimental feature, which allows users to also issue commands in the data mode, after creating multiple virtual terminals, designating some of them solely to data mode, others solely to command mode.

-

DTE’s

+

DTE’s

Currently we support only UART, but modern modules support other communication interfaces, such as USB, SPI.

-

Other devices

+

Other devices

Adding a new device is a must-have requirement for the esp-modem component. Different modules support different commands, or some commands might have a different implementation. Adding a new device means to provide a new implementation as a class derived from GenericModule, where we could add new commands or modify the existing ones.

@@ -183,7 +184,7 @@ as a class derived from @@ -200,7 +201,7 @@ as a class derived from Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/_static/_sphinx_javascript_frameworks_compat.js b/esp_modem/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..8549469dc --- /dev/null +++ b/esp_modem/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.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": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/esp_modem/_static/basic.css b/esp_modem/_static/basic.css index bf18350b6..088967717 100644 --- a/esp_modem/_static/basic.css +++ b/esp_modem/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,12 +324,16 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; @@ -379,6 +373,9 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +383,9 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +428,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +611,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +629,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/esp_modem/_static/doctools.js b/esp_modem/_static/doctools.js index e1bfd708b..c3db08d1c 100644 --- a/esp_modem/_static/doctools.js +++ b/esp_modem/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +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))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.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": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + 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 (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +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. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // 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( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/esp_modem/_static/documentation_options.js b/esp_modem/_static/documentation_options.js index b57ae3b83..a750e4d5e 100644 --- a/esp_modem/_static/documentation_options.js +++ b/esp_modem/_static/documentation_options.js @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/esp_modem/_static/jquery-3.5.1.js b/esp_modem/_static/jquery-3.6.0.js similarity index 98% rename from esp_modem/_static/jquery-3.5.1.js rename to esp_modem/_static/jquery-3.6.0.js index 50937333b..fc6c299b7 100644 --- a/esp_modem/_static/jquery-3.5.1.js +++ b/esp_modem/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/esp_modem/_static/jquery.js b/esp_modem/_static/jquery.js index b0614034a..c4c6022f2 100644 --- a/esp_modem/_static/jquery.js +++ b/esp_modem/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // 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 + 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, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +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, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + 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 = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + 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 = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * 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 */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - var virtualDocument = document.implementation.createHTMLDocument('virtual'); - var htmlElement = $(htmlString, virtualDocument); - htmlElement.find('.headerlink').remove(); - docContent = htmlElement.find('[role=main]')[0]; - if(docContent === undefined) { - console.warn("Content block not found. Sphinx search tries to obtain it " + - "via '[role=main]'. Could you check your theme or template."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + 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 : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + 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 : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

' + _('Searching') + '

').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

 

').appendTo(this.out); - this.output = $('
-

Create DTE and DCE

+

Create DTE and DCE

group ESP_MODEM_INIT_DTE
@@ -155,10 +156,10 @@
-

Mode switching commands

+

Mode switching commands

-template<class SpecificModule>
class esp_modem::DCE_T
+template<class SpecificModule>
class DCE_T

General DCE class templated on a specific module. It is responsible for all the necessary transactions related to switching modes and consequent synergy with aggregated objects of DTE, Netif and a specific Module.

Public Functions

@@ -173,7 +174,7 @@
-

Modem commands

+

Modem commands

-

Destroy the DCE

+

Destroy the DCE

The DCE object is created as std::unique_ptr by default and as such doesn’t have to be explicitly destroyed. It simply gets destroyed and cleaned-up automatically if the object goes out of the block scope.

@@ -268,7 +269,7 @@ It simply gets destroyed and cleaned-up automatically if the object goes out of - + @@ -285,7 +286,7 @@ It simply gets destroyed and cleaned-up automatically if the object goes out of ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/cxx_api_links.html b/esp_modem/cxx_api_links.html index 021aba646..e9e6b2ae3 100644 --- a/esp_modem/cxx_api_links.html +++ b/esp_modem/cxx_api_links.html @@ -12,6 +12,7 @@ + @@ -110,7 +111,7 @@ - + @@ -127,7 +128,7 @@ ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/genindex.html b/esp_modem/genindex.html index 9d7310382..1cd6f2a29 100644 --- a/esp_modem/genindex.html +++ b/esp_modem/genindex.html @@ -11,6 +11,7 @@ + @@ -106,6 +107,10 @@
  • esp_modem::BG96 (C++ class)
  • esp_modem::CMux (C++ class) +
  • +
  • esp_modem::CMux::deinit (C++ function) +
  • +
  • esp_modem::CMux::detach (C++ function)
  • esp_modem::CMux::init (C++ function)
  • @@ -266,11 +271,11 @@
  • esp_modem_dce_config (C++ struct)
  • esp_modem_dce_config::apn (C++ member) -
  • -
  • esp_modem_dce_config_t (C++ type)
    • +
    • esp_modem_dce_config_t (C++ type) +
    • ESP_MODEM_DCE_DEFAULT_CONFIG (C macro)
    • esp_modem_dce_device (C++ enum) @@ -290,6 +295,8 @@
    • esp_modem_dce_device_t (C++ type)
    • esp_modem_dce_mode (C++ enum) +
    • +
    • esp_modem_dce_mode::ESP_MODEM_MODE_CMUX (C++ enumerator)
    • esp_modem_dce_mode::ESP_MODEM_MODE_COMMAND (C++ enumerator)
    • @@ -571,7 +578,7 @@ - + @@ -588,7 +595,7 @@ ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 diff --git a/esp_modem/index.html b/esp_modem/index.html index 6889f2f89..4ce46547f 100644 --- a/esp_modem/index.html +++ b/esp_modem/index.html @@ -12,6 +12,7 @@ + @@ -33,7 +34,7 @@
      -

      ESP-MODEM Programmers manual

      +

      ESP-MODEM Programmers manual

      - + @@ -159,7 +160,7 @@ ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/internal_design.html b/esp_modem/internal_design.html index b35f7e59a..664e2ed8a 100644 --- a/esp_modem/internal_design.html +++ b/esp_modem/internal_design.html @@ -12,6 +12,7 @@ + @@ -34,9 +35,9 @@
      -

      Internal design

      +

      Internal design

      -

      Design decisions

      +

      Design decisions

      • Use C++ with additional C API

      • Use exceptions

        @@ -59,17 +60,17 @@ such as implantation of a minimal device (ModuleIf), add new AT commands (oOnly
      -

      DCE collaboration model

      +

      DCE collaboration model

      The diagram describes how the DCE class collaborates with DTE, PPP and the device abstraction

      DCE_architecture

      -

      Terminal inheritance

      +

      Terminal inheritance

      Terminal is a class which can read or write data, and can handle callbacks when data are available. UART specialization is provided implementing these method using the uart driver.

      -

      CMUX terminal

      +

      CMUX terminal

      The below diagram depicts the idea of using CMUX terminal mode using the CMuxInstance class which is a terminal (it implements the basic read/write methods) interfacing arbitrary number of virtual terminals, but at the same time it is also composed of CMux class, which consumes the original terminal and uses its read/write methods @@ -128,7 +129,7 @@ to multiplex the terminal.

      - + @@ -145,7 +146,7 @@ to multiplex the terminal.

      ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/internal_docs.html b/esp_modem/internal_docs.html index cc16ee077..98239c6fe 100644 --- a/esp_modem/internal_docs.html +++ b/esp_modem/internal_docs.html @@ -12,6 +12,7 @@ + @@ -33,7 +34,7 @@
      -

      DCE Internal implementation

      +

      DCE Internal implementation

      This chapter provides a detailed description of the classes and building blocks of the esp-modem component and their responsibilities.

      The esp-modem actually implements the DCE class, which in turn aggregates these thee units:

        @@ -62,7 +63,7 @@
        -template<class SpecificModule>
        class esp_modem::DCE_T
        +template<class SpecificModule>
        class DCE_T
        #include <esp_modem_dce.hpp>

        General DCE class templated on a specific module. It is responsible for all the necessary transactions related to switching modes and consequent synergy with aggregated objects of DTE, Netif and a specific Module.

        @@ -79,7 +80,7 @@
        -class esp_modem::DCE : public esp_modem::DCE_T<GenericModule>
        +class DCE : public esp_modem::DCE_T<GenericModule>
        #include <esp_modem_dce.hpp>

        Common abstraction of the modem DCE, specialized by the GenericModule which is a parent class for the supported devices and most common modems, as well.

        @@ -554,7 +555,7 @@
        -

        DTE abstraction

        +

        DTE abstraction

        DTE is a basic unit to talk to the module using a Terminal interface. It also implements and uses the CMUX to multiplex terminals. Besides the DTE documentation, this section also refers to the

          @@ -568,7 +569,7 @@ terminals. Besides the DTE documentation, this section also refers to the

          Definition of DTE and related classes.

          -class esp_modem::DTE : public esp_modem::CommandableIf
          +class DTE : public esp_modem::CommandableIf
          #include <esp_modem_dte.hpp>

          DTE (Data Terminal Equipment) class

          @@ -677,7 +678,7 @@ terminals. Besides the DTE documentation, this section also refers to the

          -

          Terminal interface

          +

          Terminal interface

          group ESP_MODEM_TERMINAL
          @@ -709,7 +710,7 @@ terminals. Besides the DTE documentation, this section also refers to the

      -class esp_modem::Terminal
      +class Terminal
      #include <esp_modem_terminal.hpp>

      Terminal interface. All communication interfaces must comply to this interface in order to be used as a DTE.

      @@ -757,7 +758,7 @@ terminals. Besides the DTE documentation, this section also refers to the

      -

      CMUX implementation

      +

      CMUX implementation

      group ESP_MODEM_CMUX
      @@ -799,7 +800,7 @@ terminals. Besides the DTE documentation, this section also refers to the

      -class esp_modem::CMux
      +class CMux
      #include <esp_modem_cmux.hpp>

      CMux class which consumes the original terminal and creates multiple virtual terminals from it. This class itself is not usable as a DTE terminal, only via its instances defined in CMuxInstance

      @@ -816,6 +817,28 @@ terminals. Besides the DTE documentation, this section also refers to the

      +
      +
      +bool deinit()
      +

      Closes and deinits CMux protocol.

      +
      +
      Returns:
      +

      true on success

      +
      +
      +
      + +
      +
      +std::pair<std::shared_ptr<Terminal>, unique_buffer> detach()
      +

      Ejects the attached terminal and buffer, so they could be used as traditional command/data DTE’s.

      +
      +
      Returns:
      +

      pair of the original terminal and buffer

      +
      +
      +
      +
      void set_read_cb(int inst, std::function<bool(uint8_t *data, size_t len)> f)
      @@ -853,7 +876,7 @@ terminals. Besides the DTE documentation, this section also refers to the

      -class esp_modem::CMuxInstance : public esp_modem::Terminal
      +class CMuxInstance : public esp_modem::Terminal
      #include <esp_modem_cmux.hpp>

      This represents a specific instance of a CMUX virtual terminal. This class also implements Terminal interface and as such could be used as a DTE’s terminal.

      @@ -901,14 +924,14 @@ terminals. Besides the DTE documentation, this section also refers to the

      -

      Netif

      +

      Netif

      group ESP_MODEM_NETIF

      Network interface layer of the esp-modem.

      -class esp_modem::Netif
      +class Netif
      #include <esp_modem_netif.hpp>

      Network interface class responsible to glue the esp-netif to the modem’s DCE.

      @@ -939,14 +962,14 @@ terminals. Besides the DTE documentation, this section also refers to the

      -

      Module abstraction

      +

      Module abstraction

      group ESP_MODEM_MODULE

      Definition of modules representing specific modem devices.

      -class esp_modem::GenericModule : public esp_modem::ModuleIf
      +class GenericModule : public esp_modem::ModuleIf
      #include <esp_modem_dce_module.hpp>

      This is a basic building block for custom modules as well as for the supported modules in the esp-modem component It derives from the ModuleIf.

      @@ -1023,13 +1046,13 @@ terminals. Besides the DTE documentation, this section also refers to the

      -

      Adding new devices

      +

      Adding new devices

      To support a new module, developers would have to implement a new class derived from esp_modem::GenericModule the same way as it is described in the Advanced user manual. The only difference is that the new class (and factory extension) would be available in the esp_modem code base.

      -

      Implement a new generic command

      +

      Implement a new generic command

      Adding a generic command, i.e. the command that is shared for all modules and is included in the esp_modem::GenericModule, has to be declared first in the include/generate/esp_modem_command_declare.inc file, which is the single source of supported command definitions, that is used in:

      @@ -1049,7 +1072,7 @@ of supported command definitions, that is used in:

      human readable argument name is baud, it’s the first argument, so expands to p1 (second argument would be p2, etc)

      -

      Command library

      +

      Command library

      This is a namespace holding a library of typical AT commands used by supported devices. Please refer to the C API Documentation for the list of supported commands.

      @@ -1109,7 +1132,7 @@ Please refer to the
      -

      Modem types

      +

      Modem types

      group ESP_MODEM_TYPES
      @@ -1190,7 +1213,7 @@ Please refer to the
      -class esp_modem::CommandableIf
      +class CommandableIf
      #include <esp_modem_types.hpp>

      Interface for classes eligible to send AT commands (Modules, DCEs, DTEs)

      @@ -1220,7 +1243,7 @@ Please refer to the
      -class esp_modem::ModuleIf
      +class ModuleIf
      #include <esp_modem_types.hpp>

      Interface for classes implementing a module for the modem.

      @@ -1318,7 +1341,7 @@ Please refer to the - + @@ -1335,7 +1358,7 @@ Please refer to the Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/objects.inv b/esp_modem/objects.inv index 63d36966f127e621841dd6f612700c02c0f2807a..7311728584779341e975695209b568ca01cc65fb 100644 GIT binary patch delta 9410 zcmbR2_04NSWqoG8^v-Q>zyIN4-o8KfNz>;98yf}l!1=;UCQH2hB5TJfBm3~irv8w3 zOYX0)@1FD~L&I}v(#eyayM*1f)@?m`>kf1G9n)Wbv;O>hJp1DBkF&2Y{y6*M`t|>Q zy#4&+>v8`5`~Kc`-La=Mv8>!t|IXhOnfHhO*zYshZvJ2F-{a}s)Aj4!?$7Rv`~U6L zZ>YiI0E*}uPbJ*Q&x zq_qa$C%iPC@X|Kr6_0IjbyZr{PLF!&Cu&#M@2~yye$meP_O*X<|9t=d?v(rf&rfIX zUjO*QnY?4XldBu~H`M+3kr;AvHNS&=!oR;UfB)95-v9Lc$JgKM|M(M2ck64jJ2#e{5Zh$F-fq9tCV$rT7xw5+ul@Jh&bCqf#*gK*+eD5Zh;QGvf6ewC zd+sFHhkoDkFJb78MU9R}<)9UT}=c-J&;Ud7AaE0m5$5>vS-#^yz ze))X+`{MrknstuXw0l_p=p@F7Z%o{{hx^7K1KzVw^0+R1czb)t*`(l|S3kUxRXtkN zzB_YXO#P3&3se3bJ!=r^@_zQs=)Q;wlU<9r!!3Q!s`Sr}{dD?t>T6!bb$8C(wcD?< z(bK+JqI-Sa90hIpqDg5p?rvl5yx?ztPV@Z9s3O0_su!m$Cu=e5)i2uiV(zlT92fk< z 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 delta 9310 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 diff --git a/esp_modem/search.html b/esp_modem/search.html index a477819d5..c6f544f05 100644 --- a/esp_modem/search.html +++ b/esp_modem/search.html @@ -12,6 +12,7 @@ + @@ -115,7 +116,7 @@ ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 diff --git a/esp_modem/searchindex.js b/esp_modem/searchindex.js index 6f5703298..ef32af754 100644 --- a/esp_modem/searchindex.js +++ b/esp_modem/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["README","advanced_api","api_docs","cxx_api_docs","cxx_api_links","index","internal_design","internal_docs"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["README.md","advanced_api.rst","api_docs.rst","cxx_api_docs.rst","cxx_api_links.rst","index.rst","internal_design.md","internal_docs.rst"],objects:{"":[[2,0,1,"c.ESP_MODEM_DCE_DEFAULT_CONFIG","ESP_MODEM_DCE_DEFAULT_CONFIG"],[7,0,1,"c.ESP_MODEM_DECLARE_DCE_COMMAND","ESP_MODEM_DECLARE_DCE_COMMAND"],[2,0,1,"c.ESP_MODEM_DTE_DEFAULT_CONFIG","ESP_MODEM_DTE_DEFAULT_CONFIG"],[2,1,1,"_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E","ESP_MODEM_DCE_BG96"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE","ESP_MODEM_DCE_GENETIC"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E","ESP_MODEM_DCE_SIM7000"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E","ESP_MODEM_DCE_SIM7070"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E","ESP_MODEM_DCE_SIM7600"],[2,1,1,"_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E","ESP_MODEM_DCE_SIM800"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE","ESP_MODEM_FLOW_CONTROL_HW"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE","ESP_MODEM_FLOW_CONTROL_NONE"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE","ESP_MODEM_FLOW_CONTROL_SW"],[2,1,1,"_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE","ESP_MODEM_MODE_COMMAND"],[2,1,1,"_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE","ESP_MODEM_MODE_DATA"],[1,2,1,"_CPPv49ModemType","ModemType"],[1,1,1,"_CPPv4N9ModemType4BG96E","ModemType::BG96"],[1,1,1,"_CPPv4N9ModemType13GenericModuleE","ModemType::GenericModule"],[1,1,1,"_CPPv4N9ModemType7SIM7000E","ModemType::SIM7000"],[1,1,1,"_CPPv4N9ModemType7SIM7070E","ModemType::SIM7070"],[1,1,1,"_CPPv4N9ModemType7SIM7600E","ModemType::SIM7600"],[1,1,1,"_CPPv4N9ModemType6SIM800E","ModemType::SIM800"],[7,2,1,"_CPPv410cmux_state","cmux_state"],[7,1,1,"_CPPv4N10cmux_state6FOOTERE","cmux_state::FOOTER"],[7,1,1,"_CPPv4N10cmux_state6HEADERE","cmux_state::HEADER"],[7,1,1,"_CPPv4N10cmux_state4INITE","cmux_state::INIT"],[7,1,1,"_CPPv4N10cmux_state7PAYLOADE","cmux_state::PAYLOAD"],[7,1,1,"_CPPv4N10cmux_state7RECOVERE","cmux_state::RECOVER"],[7,2,1,"_CPPv414command_result","command_result"],[7,1,1,"_CPPv4N14command_result4FAILE","command_result::FAIL"],[7,1,1,"_CPPv4N14command_result2OKE","command_result::OK"],[7,1,1,"_CPPv4N14command_result7TIMEOUTE","command_result::TIMEOUT"],[3,3,1,"_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_BG96_dce"],[3,4,1,"_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_BG96_dce::config"],[3,4,1,"_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_BG96_dce::dte"],[3,4,1,"_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_BG96_dce::netif"],[3,3,1,"_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7000_dce"],[3,4,1,"_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7000_dce::config"],[3,4,1,"_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7000_dce::dte"],[3,4,1,"_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7000_dce::netif"],[3,3,1,"_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7070_dce"],[3,4,1,"_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7070_dce::config"],[3,4,1,"_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7070_dce::dte"],[3,4,1,"_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7070_dce::netif"],[3,3,1,"_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7600_dce"],[3,4,1,"_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7600_dce::config"],[3,4,1,"_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7600_dce::dte"],[3,4,1,"_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7600_dce::netif"],[3,3,1,"_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM800_dce"],[3,4,1,"_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM800_dce::config"],[3,4,1,"_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM800_dce::dte"],[3,4,1,"_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM800_dce::netif"],[3,3,1,"_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_generic_dce"],[3,4,1,"_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_generic_dce::config"],[3,4,1,"_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_generic_dce::dte"],[3,4,1,"_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_generic_dce::netif"],[3,3,1,"_CPPv415create_uart_dtePK10dte_config","create_uart_dte"],[3,4,1,"_CPPv415create_uart_dtePK10dte_config","create_uart_dte::config"],[3,3,1,"_CPPv414create_vfs_dtePK10dte_config","create_vfs_dte"],[3,4,1,"_CPPv414create_vfs_dtePK10dte_config","create_vfs_dte::config"],[3,5,1,"_CPPv410dce_config","dce_config"],[3,5,1,"_CPPv410dte_config","dte_config"],[7,6,1,"_CPPv4N9esp_modem4BG96E","esp_modem::BG96"],[7,6,1,"_CPPv4N9esp_modem4CMuxE","esp_modem::CMux"],[7,3,1,"_CPPv4N9esp_modem4CMux4initEv","esp_modem::CMux::init"],[7,3,1,"_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE","esp_modem::CMux::set_read_cb"],[7,4,1,"_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE","esp_modem::CMux::set_read_cb::f"],[7,4,1,"_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE","esp_modem::CMux::set_read_cb::inst"],[7,3,1,"_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t","esp_modem::CMux::write"],[7,4,1,"_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t","esp_modem::CMux::write::data"],[7,4,1,"_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t","esp_modem::CMux::write::i"],[7,4,1,"_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t","esp_modem::CMux::write::len"],[7,6,1,"_CPPv4N9esp_modem12CMuxInstanceE","esp_modem::CMuxInstance"],[7,3,1,"_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t","esp_modem::CMuxInstance::read"],[7,4,1,"_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t","esp_modem::CMuxInstance::read::data"],[7,4,1,"_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t","esp_modem::CMuxInstance::read::len"],[7,3,1,"_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t","esp_modem::CMuxInstance::write"],[7,4,1,"_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t","esp_modem::CMuxInstance::write::data"],[7,4,1,"_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t","esp_modem::CMuxInstance::write::len"],[7,6,1,"_CPPv4N9esp_modem13CommandableIfE","esp_modem::CommandableIf"],[7,3,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command"],[7,4,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command::command"],[7,4,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command::got_line"],[7,4,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command::separator"],[7,4,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command::time_ms"],[7,6,1,"_CPPv4N9esp_modem3DCEE","esp_modem::DCE"],[7,3,1,"_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi","esp_modem::DCE::get_battery_status"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi","esp_modem::DCE::get_battery_status::bcl"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi","esp_modem::DCE::get_battery_status::bcs"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi","esp_modem::DCE::get_battery_status::voltage"],[7,3,1,"_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE","esp_modem::DCE::get_imei"],[7,4,1,"_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE","esp_modem::DCE::get_imei::imei"],[7,3,1,"_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE","esp_modem::DCE::get_imsi"],[7,4,1,"_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE","esp_modem::DCE::get_imsi::imsi"],[7,3,1,"_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE","esp_modem::DCE::get_module_name"],[7,4,1,"_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE","esp_modem::DCE::get_module_name::name"],[7,3,1,"_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi","esp_modem::DCE::get_network_attachment_state"],[7,4,1,"_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi","esp_modem::DCE::get_network_attachment_state::state"],[7,3,1,"_CPPv4N9esp_modem3DCE23get_network_system_modeERi","esp_modem::DCE::get_network_system_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE23get_network_system_modeERi","esp_modem::DCE::get_network_system_mode::mode"],[7,3,1,"_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE","esp_modem::DCE::get_operator_name"],[7,4,1,"_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE","esp_modem::DCE::get_operator_name::name"],[7,3,1,"_CPPv4N9esp_modem3DCE15get_radio_stateERi","esp_modem::DCE::get_radio_state"],[7,4,1,"_CPPv4N9esp_modem3DCE15get_radio_stateERi","esp_modem::DCE::get_radio_state::state"],[7,3,1,"_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi","esp_modem::DCE::get_signal_quality"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi","esp_modem::DCE::get_signal_quality::ber"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi","esp_modem::DCE::get_signal_quality::rssi"],[7,3,1,"_CPPv4N9esp_modem3DCE7hang_upEv","esp_modem::DCE::hang_up"],[7,3,1,"_CPPv4N9esp_modem3DCE10power_downEv","esp_modem::DCE::power_down"],[7,3,1,"_CPPv4N9esp_modem3DCE8read_pinERb","esp_modem::DCE::read_pin"],[7,4,1,"_CPPv4N9esp_modem3DCE8read_pinERb","esp_modem::DCE::read_pin::pin_ok"],[7,3,1,"_CPPv4N9esp_modem3DCE5resetEv","esp_modem::DCE::reset"],[7,3,1,"_CPPv4N9esp_modem3DCE16resume_data_modeEv","esp_modem::DCE::resume_data_mode"],[7,3,1,"_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE","esp_modem::DCE::send_sms"],[7,4,1,"_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE","esp_modem::DCE::send_sms::message"],[7,4,1,"_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE","esp_modem::DCE::send_sms::number"],[7,3,1,"_CPPv4N9esp_modem3DCE8set_baudEi","esp_modem::DCE::set_baud"],[7,4,1,"_CPPv4N9esp_modem3DCE8set_baudEi","esp_modem::DCE::set_baud::baud"],[7,3,1,"_CPPv4N9esp_modem3DCE8set_cmuxEv","esp_modem::DCE::set_cmux"],[7,3,1,"_CPPv4N9esp_modem3DCE16set_command_modeEv","esp_modem::DCE::set_command_mode"],[7,3,1,"_CPPv4N9esp_modem3DCE13set_data_modeEv","esp_modem::DCE::set_data_mode"],[7,3,1,"_CPPv4N9esp_modem3DCE8set_echoEKb","esp_modem::DCE::set_echo"],[7,4,1,"_CPPv4N9esp_modem3DCE8set_echoEKb","esp_modem::DCE::set_echo::echo_on"],[7,3,1,"_CPPv4N9esp_modem3DCE16set_flow_controlEii","esp_modem::DCE::set_flow_control"],[7,4,1,"_CPPv4N9esp_modem3DCE16set_flow_controlEii","esp_modem::DCE::set_flow_control::dce_flow"],[7,4,1,"_CPPv4N9esp_modem3DCE16set_flow_controlEii","esp_modem::DCE::set_flow_control::dte_flow"],[7,3,1,"_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi","esp_modem::DCE::set_gnss_power_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi","esp_modem::DCE::set_gnss_power_mode::mode"],[7,3,1,"_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi","esp_modem::DCE::set_network_attachment_state"],[7,4,1,"_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi","esp_modem::DCE::set_network_attachment_state::state"],[7,3,1,"_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii","esp_modem::DCE::set_network_bands"],[7,4,1,"_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii","esp_modem::DCE::set_network_bands::bands"],[7,4,1,"_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii","esp_modem::DCE::set_network_bands::mode"],[7,4,1,"_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii","esp_modem::DCE::set_network_bands::size"],[7,3,1,"_CPPv4N9esp_modem3DCE16set_network_modeEi","esp_modem::DCE::set_network_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE16set_network_modeEi","esp_modem::DCE::set_network_mode::mode"],[7,3,1,"_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE","esp_modem::DCE::set_operator"],[7,4,1,"_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE","esp_modem::DCE::set_operator::format"],[7,4,1,"_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE","esp_modem::DCE::set_operator::mode"],[7,4,1,"_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE","esp_modem::DCE::set_operator::oper"],[7,3,1,"_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext","esp_modem::DCE::set_pdp_context"],[7,4,1,"_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext","esp_modem::DCE::set_pdp_context::p1"],[7,3,1,"_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE","esp_modem::DCE::set_pin"],[7,4,1,"_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE","esp_modem::DCE::set_pin::pin"],[7,3,1,"_CPPv4N9esp_modem3DCE18set_preferred_modeEi","esp_modem::DCE::set_preferred_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE18set_preferred_modeEi","esp_modem::DCE::set_preferred_mode::mode"],[7,3,1,"_CPPv4N9esp_modem3DCE15set_radio_stateEi","esp_modem::DCE::set_radio_state"],[7,4,1,"_CPPv4N9esp_modem3DCE15set_radio_stateEi","esp_modem::DCE::set_radio_state::state"],[7,3,1,"_CPPv4N9esp_modem3DCE17sms_character_setEv","esp_modem::DCE::sms_character_set"],[7,3,1,"_CPPv4N9esp_modem3DCE12sms_txt_modeEKb","esp_modem::DCE::sms_txt_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE12sms_txt_modeEKb","esp_modem::DCE::sms_txt_mode::txt"],[7,3,1,"_CPPv4N9esp_modem3DCE13store_profileEv","esp_modem::DCE::store_profile"],[7,3,1,"_CPPv4N9esp_modem3DCE4syncEv","esp_modem::DCE::sync"],[7,6,1,"_CPPv4N9esp_modem8DCE_ModeE","esp_modem::DCE_Mode"],[3,6,1,"_CPPv4I0EN9esp_modem5DCE_TE","esp_modem::DCE_T"],[7,6,1,"_CPPv4I0EN9esp_modem5DCE_TE","esp_modem::DCE_T"],[3,7,1,"_CPPv4I0EN9esp_modem5DCE_TE","esp_modem::DCE_T::SpecificModule"],[7,7,1,"_CPPv4I0EN9esp_modem5DCE_TE","esp_modem::DCE_T::SpecificModule"],[3,3,1,"_CPPv4N9esp_modem5DCE_T8set_dataEv","esp_modem::DCE_T::set_data"],[7,3,1,"_CPPv4N9esp_modem5DCE_T8set_dataEv","esp_modem::DCE_T::set_data"],[7,6,1,"_CPPv4N9esp_modem3DTEE","esp_modem::DTE"],[7,3,1,"_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE","esp_modem::DTE::DTE"],[7,4,1,"_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE","esp_modem::DTE::DTE::config"],[7,4,1,"_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE","esp_modem::DTE::DTE::t"],[7,3,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t","esp_modem::DTE::command"],[7,3,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t","esp_modem::DTE::command::command"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command::command"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t","esp_modem::DTE::command::got_line"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command::got_line"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command::separator"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t","esp_modem::DTE::command::time_ms"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command::time_ms"],[7,3,1,"_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t","esp_modem::DTE::read"],[7,4,1,"_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t","esp_modem::DTE::read::d"],[7,4,1,"_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t","esp_modem::DTE::read::len"],[7,3,1,"_CPPv4N9esp_modem3DTE8set_modeE10modem_mode","esp_modem::DTE::set_mode"],[7,4,1,"_CPPv4N9esp_modem3DTE8set_modeE10modem_mode","esp_modem::DTE::set_mode::m"],[7,3,1,"_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE","esp_modem::DTE::set_read_cb"],[7,4,1,"_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE","esp_modem::DTE::set_read_cb::f"],[7,3,1,"_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t","esp_modem::DTE::write"],[7,4,1,"_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t","esp_modem::DTE::write::data"],[7,4,1,"_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t","esp_modem::DTE::write::len"],[7,6,1,"_CPPv4N9esp_modem13GenericModuleE","esp_modem::GenericModule"],[7,3,1,"_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::GenericModule"],[7,4,1,"_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::GenericModule::dte"],[7,4,1,"_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::GenericModule::pdp"],[7,3,1,"_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::configure_pdp_context"],[7,4,1,"_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::configure_pdp_context::new_pdp"],[7,3,1,"_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode","esp_modem::GenericModule::set_mode"],[7,4,1,"_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode","esp_modem::GenericModule::set_mode::mode"],[7,3,1,"_CPPv4N9esp_modem13GenericModule15setup_data_modeEv","esp_modem::GenericModule::setup_data_mode"],[7,6,1,"_CPPv4N9esp_modem8ModuleIfE","esp_modem::ModuleIf"],[7,3,1,"_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode","esp_modem::ModuleIf::set_mode"],[7,4,1,"_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode","esp_modem::ModuleIf::set_mode::mode"],[7,3,1,"_CPPv4N9esp_modem8ModuleIf15setup_data_modeEv","esp_modem::ModuleIf::setup_data_mode"],[7,6,1,"_CPPv4N9esp_modem5NetifE","esp_modem::Netif"],[7,3,1,"_CPPv4N9esp_modem5Netif5startEv","esp_modem::Netif::start"],[7,3,1,"_CPPv4N9esp_modem5Netif4stopEv","esp_modem::Netif::stop"],[7,3,1,"_CPPv4N9esp_modem5Netif20wait_until_ppp_exitsEv","esp_modem::Netif::wait_until_ppp_exits"],[7,6,1,"_CPPv4N9esp_modem10PdpContextE","esp_modem::PdpContext"],[7,6,1,"_CPPv4N9esp_modem7SIM7000E","esp_modem::SIM7000"],[7,6,1,"_CPPv4N9esp_modem7SIM7070E","esp_modem::SIM7070"],[7,6,1,"_CPPv4N9esp_modem7SIM7600E","esp_modem::SIM7600"],[7,6,1,"_CPPv4N9esp_modem6SIM800E","esp_modem::SIM800"],[7,6,1,"_CPPv4N9esp_modem8TerminalE","esp_modem::Terminal"],[7,3,1,"_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t","esp_modem::Terminal::read"],[7,4,1,"_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t","esp_modem::Terminal::read::data"],[7,4,1,"_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t","esp_modem::Terminal::read::len"],[7,3,1,"_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t","esp_modem::Terminal::write"],[7,4,1,"_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t","esp_modem::Terminal::write::data"],[7,4,1,"_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t","esp_modem::Terminal::write::len"],[1,6,1,"_CPPv4I0EN9esp_modem11dce_factory7CreatorE","esp_modem::dce_factory::Creator"],[1,7,1,"_CPPv4I0EN9esp_modem11dce_factory7CreatorE","esp_modem::dce_factory::Creator::T_Module"],[1,6,1,"_CPPv4N9esp_modem11dce_factory7FactoryE","esp_modem::dce_factory::Factory"],[1,3,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build"],[1,7,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build::Args"],[1,7,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build::T_Module"],[1,4,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build::args"],[1,4,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build::cfg"],[1,3,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique"],[1,3,1,"_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique"],[1,7,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::Args"],[1,7,1,"_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::Args"],[1,7,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::T_Module"],[1,4,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::args"],[1,4,1,"_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::args"],[1,4,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::cfg"],[1,4,1,"_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::cfg"],[1,6,1,"_CPPv4N9esp_modem11dce_factory13FactoryHelperE","esp_modem::dce_factory::FactoryHelper"],[2,6,1,"_CPPv420esp_modem_dce_config","esp_modem_dce_config"],[2,8,1,"_CPPv4N20esp_modem_dce_config3apnE","esp_modem_dce_config::apn"],[2,5,1,"_CPPv422esp_modem_dce_config_t","esp_modem_dce_config_t"],[2,2,1,"_CPPv420esp_modem_dce_device","esp_modem_dce_device"],[2,1,1,"_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E","esp_modem_dce_device::ESP_MODEM_DCE_BG96"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE","esp_modem_dce_device::ESP_MODEM_DCE_GENETIC"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E","esp_modem_dce_device::ESP_MODEM_DCE_SIM7000"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E","esp_modem_dce_device::ESP_MODEM_DCE_SIM7070"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E","esp_modem_dce_device::ESP_MODEM_DCE_SIM7600"],[2,1,1,"_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E","esp_modem_dce_device::ESP_MODEM_DCE_SIM800"],[2,5,1,"_CPPv422esp_modem_dce_device_t","esp_modem_dce_device_t"],[2,2,1,"_CPPv418esp_modem_dce_mode","esp_modem_dce_mode"],[2,1,1,"_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE","esp_modem_dce_mode::ESP_MODEM_MODE_COMMAND"],[2,1,1,"_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE","esp_modem_dce_mode::ESP_MODEM_MODE_DATA"],[2,5,1,"_CPPv420esp_modem_dce_mode_t","esp_modem_dce_mode_t"],[2,3,1,"_CPPv417esp_modem_destroyP15esp_modem_dce_t","esp_modem_destroy"],[2,4,1,"_CPPv417esp_modem_destroyP15esp_modem_dce_t","esp_modem_destroy::dce"],[2,6,1,"_CPPv420esp_modem_dte_config","esp_modem_dte_config"],[2,8,1,"_CPPv4N20esp_modem_dte_config15dte_buffer_sizeE","esp_modem_dte_config::dte_buffer_size"],[2,8,1,"_CPPv4N20esp_modem_dte_config16extension_configE","esp_modem_dte_config::extension_config"],[2,8,1,"_CPPv4N20esp_modem_dte_config13task_priorityE","esp_modem_dte_config::task_priority"],[2,8,1,"_CPPv4N20esp_modem_dte_config15task_stack_sizeE","esp_modem_dte_config::task_stack_size"],[2,8,1,"_CPPv4N20esp_modem_dte_config11uart_configE","esp_modem_dte_config::uart_config"],[2,8,1,"_CPPv4N20esp_modem_dte_config10vfs_configE","esp_modem_dte_config::vfs_config"],[2,5,1,"_CPPv422esp_modem_dte_config_t","esp_modem_dte_config_t"],[2,2,1,"_CPPv421esp_modem_flow_ctrl_t","esp_modem_flow_ctrl_t"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE","esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_HW"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE","esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_NONE"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE","esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_SW"],[2,3,1,"_CPPv428esp_modem_get_battery_statusPiPiPi","esp_modem_get_battery_status"],[2,4,1,"_CPPv428esp_modem_get_battery_statusPiPiPi","esp_modem_get_battery_status::bcl"],[2,4,1,"_CPPv428esp_modem_get_battery_statusPiPiPi","esp_modem_get_battery_status::bcs"],[2,4,1,"_CPPv428esp_modem_get_battery_statusPiPiPi","esp_modem_get_battery_status::voltage"],[2,3,1,"_CPPv418esp_modem_get_imeiPc","esp_modem_get_imei"],[2,4,1,"_CPPv418esp_modem_get_imeiPc","esp_modem_get_imei::imei"],[2,3,1,"_CPPv418esp_modem_get_imsiPc","esp_modem_get_imsi"],[2,4,1,"_CPPv418esp_modem_get_imsiPc","esp_modem_get_imsi::imsi"],[2,3,1,"_CPPv425esp_modem_get_module_namePc","esp_modem_get_module_name"],[2,4,1,"_CPPv425esp_modem_get_module_namePc","esp_modem_get_module_name::name"],[2,3,1,"_CPPv438esp_modem_get_network_attachment_statePi","esp_modem_get_network_attachment_state"],[2,4,1,"_CPPv438esp_modem_get_network_attachment_statePi","esp_modem_get_network_attachment_state::state"],[2,3,1,"_CPPv433esp_modem_get_network_system_modePi","esp_modem_get_network_system_mode"],[2,4,1,"_CPPv433esp_modem_get_network_system_modePi","esp_modem_get_network_system_mode::mode"],[2,3,1,"_CPPv427esp_modem_get_operator_namePc","esp_modem_get_operator_name"],[2,4,1,"_CPPv427esp_modem_get_operator_namePc","esp_modem_get_operator_name::name"],[2,3,1,"_CPPv425esp_modem_get_radio_statePi","esp_modem_get_radio_state"],[2,4,1,"_CPPv425esp_modem_get_radio_statePi","esp_modem_get_radio_state::state"],[2,3,1,"_CPPv428esp_modem_get_signal_qualityPiPi","esp_modem_get_signal_quality"],[2,4,1,"_CPPv428esp_modem_get_signal_qualityPiPi","esp_modem_get_signal_quality::ber"],[2,4,1,"_CPPv428esp_modem_get_signal_qualityPiPi","esp_modem_get_signal_quality::rssi"],[2,3,1,"_CPPv417esp_modem_hang_upv","esp_modem_hang_up"],[2,3,1,"_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new"],[2,4,1,"_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new::dce_config"],[2,4,1,"_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new::dte_config"],[2,4,1,"_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new::netif"],[2,3,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev"],[2,4,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev::dce_config"],[2,4,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev::dte_config"],[2,4,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev::module"],[2,4,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev::netif"],[2,3,1,"_CPPv420esp_modem_power_downv","esp_modem_power_down"],[2,3,1,"_CPPv418esp_modem_read_pinPb","esp_modem_read_pin"],[2,4,1,"_CPPv418esp_modem_read_pinPb","esp_modem_read_pin::pin_ok"],[2,3,1,"_CPPv415esp_modem_resetv","esp_modem_reset"],[2,3,1,"_CPPv426esp_modem_resume_data_modev","esp_modem_resume_data_mode"],[2,3,1,"_CPPv418esp_modem_send_smsPKcPKc","esp_modem_send_sms"],[2,4,1,"_CPPv418esp_modem_send_smsPKcPKc","esp_modem_send_sms::message"],[2,4,1,"_CPPv418esp_modem_send_smsPKcPKc","esp_modem_send_sms::number"],[2,3,1,"_CPPv418esp_modem_set_baudi","esp_modem_set_baud"],[2,4,1,"_CPPv418esp_modem_set_baudi","esp_modem_set_baud::baud"],[2,3,1,"_CPPv418esp_modem_set_cmuxv","esp_modem_set_cmux"],[2,3,1,"_CPPv426esp_modem_set_command_modev","esp_modem_set_command_mode"],[2,3,1,"_CPPv423esp_modem_set_data_modev","esp_modem_set_data_mode"],[2,3,1,"_CPPv418esp_modem_set_echoKb","esp_modem_set_echo"],[2,4,1,"_CPPv418esp_modem_set_echoKb","esp_modem_set_echo::echo_on"],[2,3,1,"_CPPv426esp_modem_set_flow_controlii","esp_modem_set_flow_control"],[2,4,1,"_CPPv426esp_modem_set_flow_controlii","esp_modem_set_flow_control::dce_flow"],[2,4,1,"_CPPv426esp_modem_set_flow_controlii","esp_modem_set_flow_control::dte_flow"],[2,3,1,"_CPPv429esp_modem_set_gnss_power_modei","esp_modem_set_gnss_power_mode"],[2,4,1,"_CPPv429esp_modem_set_gnss_power_modei","esp_modem_set_gnss_power_mode::mode"],[2,3,1,"_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t","esp_modem_set_mode"],[2,4,1,"_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t","esp_modem_set_mode::dce"],[2,4,1,"_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t","esp_modem_set_mode::mode"],[2,3,1,"_CPPv438esp_modem_set_network_attachment_statei","esp_modem_set_network_attachment_state"],[2,4,1,"_CPPv438esp_modem_set_network_attachment_statei","esp_modem_set_network_attachment_state::state"],[2,3,1,"_CPPv427esp_modem_set_network_bandsPKcPKii","esp_modem_set_network_bands"],[2,4,1,"_CPPv427esp_modem_set_network_bandsPKcPKii","esp_modem_set_network_bands::bands"],[2,4,1,"_CPPv427esp_modem_set_network_bandsPKcPKii","esp_modem_set_network_bands::mode"],[2,4,1,"_CPPv427esp_modem_set_network_bandsPKcPKii","esp_modem_set_network_bands::size"],[2,3,1,"_CPPv426esp_modem_set_network_modei","esp_modem_set_network_mode"],[2,4,1,"_CPPv426esp_modem_set_network_modei","esp_modem_set_network_mode::mode"],[2,3,1,"_CPPv422esp_modem_set_operatoriiPKc","esp_modem_set_operator"],[2,4,1,"_CPPv422esp_modem_set_operatoriiPKc","esp_modem_set_operator::format"],[2,4,1,"_CPPv422esp_modem_set_operatoriiPKc","esp_modem_set_operator::mode"],[2,4,1,"_CPPv422esp_modem_set_operatoriiPKc","esp_modem_set_operator::oper"],[2,3,1,"_CPPv425esp_modem_set_pdp_contextP10PdpContext","esp_modem_set_pdp_context"],[2,4,1,"_CPPv425esp_modem_set_pdp_contextP10PdpContext","esp_modem_set_pdp_context::p1"],[2,3,1,"_CPPv417esp_modem_set_pinPKc","esp_modem_set_pin"],[2,4,1,"_CPPv417esp_modem_set_pinPKc","esp_modem_set_pin::pin"],[2,3,1,"_CPPv428esp_modem_set_preferred_modei","esp_modem_set_preferred_mode"],[2,4,1,"_CPPv428esp_modem_set_preferred_modei","esp_modem_set_preferred_mode::mode"],[2,3,1,"_CPPv425esp_modem_set_radio_statei","esp_modem_set_radio_state"],[2,4,1,"_CPPv425esp_modem_set_radio_statei","esp_modem_set_radio_state::state"],[2,3,1,"_CPPv427esp_modem_sms_character_setv","esp_modem_sms_character_set"],[2,3,1,"_CPPv422esp_modem_sms_txt_modeKb","esp_modem_sms_txt_mode"],[2,4,1,"_CPPv422esp_modem_sms_txt_modeKb","esp_modem_sms_txt_mode::txt"],[2,3,1,"_CPPv423esp_modem_store_profilev","esp_modem_store_profile"],[2,3,1,"_CPPv414esp_modem_syncv","esp_modem_sync"],[2,6,1,"_CPPv426esp_modem_uart_term_config","esp_modem_uart_term_config"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9baud_rateE","esp_modem_uart_term_config::baud_rate"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config10cts_io_numE","esp_modem_uart_term_config::cts_io_num"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9data_bitsE","esp_modem_uart_term_config::data_bits"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config16event_queue_sizeE","esp_modem_uart_term_config::event_queue_size"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config12flow_controlE","esp_modem_uart_term_config::flow_control"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config6parityE","esp_modem_uart_term_config::parity"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config8port_numE","esp_modem_uart_term_config::port_num"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config10rts_io_numE","esp_modem_uart_term_config::rts_io_num"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config14rx_buffer_sizeE","esp_modem_uart_term_config::rx_buffer_size"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9rx_io_numE","esp_modem_uart_term_config::rx_io_num"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9stop_bitsE","esp_modem_uart_term_config::stop_bits"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config14tx_buffer_sizeE","esp_modem_uart_term_config::tx_buffer_size"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9tx_io_numE","esp_modem_uart_term_config::tx_io_num"],[2,6,1,"_CPPv425esp_modem_vfs_term_config","esp_modem_vfs_term_config"],[2,8,1,"_CPPv4N25esp_modem_vfs_term_config7deleterE","esp_modem_vfs_term_config::deleter"],[2,8,1,"_CPPv4N25esp_modem_vfs_term_config2fdE","esp_modem_vfs_term_config::fd"],[2,8,1,"_CPPv4N25esp_modem_vfs_term_config8resourceE","esp_modem_vfs_term_config::resource"],[7,3,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx"],[7,4,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx::bcl"],[7,4,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx::bcs"],[7,4,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx::t"],[7,4,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx::voltage"],[7,5,1,"_CPPv411got_line_cb","got_line_cb"],[7,2,1,"_CPPv410modem_mode","modem_mode"],[7,1,1,"_CPPv4N10modem_mode9CMUX_MODEE","modem_mode::CMUX_MODE"],[7,1,1,"_CPPv4N10modem_mode12COMMAND_MODEE","modem_mode::COMMAND_MODE"],[7,1,1,"_CPPv4N10modem_mode9DATA_MODEE","modem_mode::DATA_MODE"],[7,1,1,"_CPPv4N10modem_mode5UNDEFE","modem_mode::UNDEF"],[7,3,1,"_CPPv418power_down_sim70xxP13CommandableIf","power_down_sim70xx"],[7,4,1,"_CPPv418power_down_sim70xxP13CommandableIf","power_down_sim70xx::t"],[7,3,1,"_CPPv418power_down_sim76xxP13CommandableIf","power_down_sim76xx"],[7,4,1,"_CPPv418power_down_sim76xxP13CommandableIf","power_down_sim76xx::t"],[7,3,1,"_CPPv417power_down_sim8xxP13CommandableIf","power_down_sim8xx"],[7,4,1,"_CPPv417power_down_sim8xxP13CommandableIf","power_down_sim8xx::t"],[7,3,1,"_CPPv420set_data_mode_sim8xxP13CommandableIf","set_data_mode_sim8xx"],[7,4,1,"_CPPv420set_data_mode_sim8xxP13CommandableIf","set_data_mode_sim8xx::t"],[7,3,1,"_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi","set_gnss_power_mode_sim76xx"],[7,4,1,"_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi","set_gnss_power_mode_sim76xx::mode"],[7,4,1,"_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi","set_gnss_power_mode_sim76xx::t"],[7,3,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx"],[7,4,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx::bands"],[7,4,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx::mode"],[7,4,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx::size"],[7,4,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx::t"],[7,2,1,"_CPPv414terminal_error","terminal_error"],[7,1,1,"_CPPv4N14terminal_error15BUFFER_OVERFLOWE","terminal_error::BUFFER_OVERFLOW"],[7,1,1,"_CPPv4N14terminal_error14CHECKSUM_ERRORE","terminal_error::CHECKSUM_ERROR"],[7,1,1,"_CPPv4N14terminal_error23UNEXPECTED_CONTROL_FLOWE","terminal_error::UNEXPECTED_CONTROL_FLOW"]]},objnames:{"0":["c","macro","C macro"],"1":["cpp","enumerator","C++ enumerator"],"2":["cpp","enum","C++ enum"],"3":["cpp","function","C++ function"],"4":["cpp","functionParam","C++ function parameter"],"5":["cpp","type","C++ type"],"6":["cpp","class","C++ class"],"7":["cpp","templateParam","C++ template parameter"],"8":["cpp","member","C++ member"]},objtypes:{"0":"c:macro","1":"cpp:enumerator","2":"cpp:enum","3":"cpp:function","4":"cpp:functionParam","5":"cpp:type","6":"cpp:class","7":"cpp:templateParam","8":"cpp:member"},terms:{"0":[2,7],"1":[2,7],"100":[2,7],"2":[2,7],"3":[2,7],"4":[2,7],"6":7,"64":2,"8212":7,"abstract":[0,5,6],"break":6,"byte":[2,7],"case":[5,6],"catch":6,"char":[2,7],"class":[0,1,3,6,7],"const":[1,2,3,7],"default":[1,2,3,7],"enum":[1,2,7],"function":[1,2,3,7],"int":[2,7],"long":[2,6,7],"new":[0,2,5,6],"null":2,"public":[0,1,2,3,7],"return":[1,2,3,7],"short":[2,7],"static":1,"switch":[0,2,5,7],"throw":[1,6],"true":[2,7],"try":6,"void":[2,3,7],AT:[0,1,2,3,6,7],In:1,Is:0,It:[1,3,7],Not:[2,7],ON:6,The:[0,1,2,3,6,7],These:2,To:7,_:0,abl:7,abort:[3,6],abov:7,access:[2,7],actual:[2,7],ad:[0,5],add:[0,6,7],addit:[6,7],address:0,advanc:[5,7],after:[0,2,7],again:2,aggreg:[3,7],all:[0,1,3,7],alloc:[2,6],allow:0,alreadi:2,also:[0,1,2,6,7],an:[0,1,2,7],ani:1,answer:7,ap:0,ap_to_pppo:0,api:[5,6,7],apn:2,app:[1,2],appli:1,applic:[0,1,2,3],appropri:[1,7],ar:[0,2,3,6,7],arbitrari:6,arg:1,argument:[1,7],assign:7,attach:[0,2,7],attempt:[2,7],automat:[2,3,7],avail:[0,2,6,7],back:[2,7],band:[2,7],base:[1,3,7],basic:[0,1,2,3,6,7],batteri:[2,7],baud:[2,7],baud_rat:2,baudrat:[2,7],bc:[2,7],bcl:[2,7],below:6,ber:[2,7],besid:7,between:[0,7],bg69:1,bg96:[0,1,3,7],bit:[2,7],block:[3,6,7],bool:[2,7],both:7,brief:5,broker:0,buffer:2,buffer_overflow:7,build:[1,7],build_uniqu:1,builder:1,c:[5,6,7],call:[2,7],callback:[6,7],can:[6,7],capac:[2,7],card:[2,7],care:7,cat:[2,7],cellular:[0,2,7],cfg:1,chang:0,channel:[2,7],chapter:[1,7],charat:[2,7],charg:[2,7],check:[2,7],checksum_error:7,choic:1,chosen:[1,2],circuitri:[2,7],clariti:7,clean:3,clenaup:2,client:0,close:[2,7],cmux:[2,5],cmux_mod:7,cmux_stat:7,cmuxinst:[6,7],code:[2,6,7],collabor:5,command:[0,1,5,6],command_mod:7,command_result:[2,7],commandableif:7,common:[0,1,2,6,7],commun:[0,2,3,5,7],compil:6,complet:[2,7],compli:7,compon:[1,5,7],compos:[0,6],config:[0,1,2,3,7],configur:[0,1,3,5,7],configure_pdp_context:7,connect:[0,1,2,7],consequ:[3,7],consist:[2,3,7],consol:0,construct:[3,7],constructor:[1,6],consum:[6,7],context:[2,7],control:[2,7],correctli:7,correspond:1,could:[0,1,6,7],cpp:7,creat:[0,2,5,7],create_bg96_dc:3,create_generic_dc:3,create_sim7000_dc:3,create_sim7070_dc:3,create_sim7600_dc:3,create_sim800_dc:3,create_uart_dt:3,create_vfs_dt:3,creator:1,ct:[2,7],cts_io_num:2,current:[0,2,7],custom:[2,5,7],d:7,data:[0,2,3,6,7],data_bit:2,data_mod:7,dce:[2,4,5],dce_config:[2,3],dce_factori:1,dce_flow:[2,7],dce_mod:7,dce_t:[1,3,7],decis:5,declar:7,dedic:2,defin:[0,1,2,7],definit:7,delet:2,demonstr:1,depict:6,deregist:[2,7],deriv:[0,1,7],describ:[6,7],descript:7,descriptor:2,design:[0,5],desir:[2,7],destroi:[2,5],detach:[2,7],detail:7,develop:7,devic:[1,2,5,6],diagram:6,didn:7,differ:[0,1,6,7],disabl:3,document:7,doesn:[2,3,7],done:[2,7],down:[2,6,7],driver:6,dte:[1,2,5,6],dte_buffer_s:2,dte_config:[2,3],dte_flow:[2,7],due:3,e:[0,1,7],easier:6,echo:[2,7],echo_on:[2,7],either:[1,3,7],elig:7,enumer:[1,2,7],equip:[0,7],error:[2,3,6,7],esp:[2,7],esp_err_t:2,esp_fail:2,esp_modem:[1,3,4,7],esp_modem_c_api:2,esp_modem_c_api_str_max:2,esp_modem_cmux:7,esp_modem_command_declar:7,esp_modem_config:2,esp_modem_dc:7,esp_modem_dce_bg96:2,esp_modem_dce_command:7,esp_modem_dce_config:[2,3],esp_modem_dce_config_t:2,esp_modem_dce_default_config:2,esp_modem_dce_devic:2,esp_modem_dce_device_t:2,esp_modem_dce_factori:1,esp_modem_dce_genet:2,esp_modem_dce_mod:2,esp_modem_dce_mode_t:2,esp_modem_dce_modul:7,esp_modem_dce_sim7000:2,esp_modem_dce_sim7070:2,esp_modem_dce_sim7600:2,esp_modem_dce_sim800:2,esp_modem_dce_t:2,esp_modem_declare_dce_command:7,esp_modem_destroi:2,esp_modem_dt:7,esp_modem_dte_config:[1,2,3,7],esp_modem_dte_config_t:2,esp_modem_dte_default_config:2,esp_modem_flow_control_hw:2,esp_modem_flow_control_non:2,esp_modem_flow_control_sw:2,esp_modem_flow_ctrl_t:2,esp_modem_get_battery_statu:2,esp_modem_get_imei:2,esp_modem_get_imsi:2,esp_modem_get_module_nam:2,esp_modem_get_network_attachment_st:2,esp_modem_get_network_system_mod:2,esp_modem_get_operator_nam:2,esp_modem_get_radio_st:2,esp_modem_get_signal_qu:2,esp_modem_hang_up:2,esp_modem_init_dc:3,esp_modem_init_dt:3,esp_modem_mode_command:2,esp_modem_mode_data:2,esp_modem_modul:7,esp_modem_netif:7,esp_modem_new:2,esp_modem_new_dev:2,esp_modem_power_down:2,esp_modem_read_pin:2,esp_modem_reset:2,esp_modem_resume_data_mod:2,esp_modem_send_sm:2,esp_modem_set_baud:2,esp_modem_set_cmux:2,esp_modem_set_command_mod:2,esp_modem_set_data_mod:2,esp_modem_set_echo:2,esp_modem_set_flow_control:2,esp_modem_set_gnss_power_mod:2,esp_modem_set_mod:2,esp_modem_set_network_attachment_st:2,esp_modem_set_network_band:2,esp_modem_set_network_mod:2,esp_modem_set_oper:2,esp_modem_set_pdp_context:2,esp_modem_set_pin:2,esp_modem_set_preferred_mod:2,esp_modem_set_radio_st:2,esp_modem_sms_character_set:2,esp_modem_sms_txt_mod:2,esp_modem_store_profil:2,esp_modem_sync:2,esp_modem_termin:7,esp_modem_typ:7,esp_modem_uart_term_config:2,esp_modem_vfs_resourc:2,esp_modem_vfs_term_config:2,esp_netif_t:[2,3],esp_ok:2,especi:7,etc:7,event:[0,2],event_queue_s:2,exampl:[0,1],except:[3,6],exercis:0,exist:[0,1,7],expand:7,expect:2,experiment:0,explain:7,explicit:7,explicitli:[3,7],extens:[1,5,7],extension_config:2,f:7,factori:[5,7],factoryhelp:1,fail:[2,7],failur:[2,3,6],fallback:[2,7],fd:2,featur:0,file:[2,7],first:7,flow:[2,7],flow_control:2,focus:0,follow:[2,7],footer:7,forc:[2,7],format:[2,7],forward:[0,7],from:[0,1,2,6,7],full:[2,7],g:[0,1],gener:[1,2,3,5,6],genericmodul:[0,1,6,7],get:[2,3,7],get_battery_statu:[3,4,7],get_battery_status_sim7xxx:7,get_imei:[3,4,7],get_imsi:[3,4,7],get_module_nam:[3,4,7],get_network_attachment_st:[3,4,7],get_network_system_mod:[3,4,7],get_operator_nam:[3,4,7],get_radio_st:[3,4,7],get_signal_qu:[3,4,7],given:[2,7],glue:7,gnss:[2,7],goe:3,got_lin:7,got_line_cb:7,gpr:[2,7],group:[1,2,3,7],gsm:[2,7],h:2,ha:7,handl:[1,2,6],handler:0,hang:[2,7],hang_up:[3,4,7],have:[0,3,7],header:7,helper:[1,7],hold:7,how:6,hpp:[1,7],human:7,hw:[2,7],i2c:1,i:[0,1,7],idea:6,imei:[2,7],implant:6,implement:[0,1,2,5,6],imsi:[2,7],inc:7,includ:[1,2,7],index:7,indic:[2,7],inherit:5,init:[6,7],initi:[2,3,6,7],inlin:[1,3,7],input:7,inst:7,instanc:[2,7],instanti:5,insuffici:3,int_in:7,integ:7,interact:0,interfac:[0,2,3,5,6],intern:5,internet:0,intro:5,io:1,iot:[2,7],ip:0,issu:[0,2],its:[0,2,6,7],itself:7,just:7,keep:7,layer:7,least:2,len:7,length:7,level:[2,7],librari:[0,5],lifecycl:5,line:7,list:[0,2,7],logic:[2,7],low:7,lwip:0,m:[2,7],machin:7,macro:[6,7],mandatori:7,mani:1,manual:[2,7],maximum:7,mean:[0,7],media:0,member:2,memori:3,messag:[2,7],method:[1,6,7],might:[0,6],millisecond:7,minim:6,minimum:[2,7],mode:[0,2,5,6,7],model:[0,1,5],modem:6,modem_consol:[0,1],modem_mod:7,modemtyp:1,modern:0,modifi:0,modul:[2,3,5,6],moduleif:[6,7],more:6,most:[1,2,6,7],mqtt:0,ms:7,multipl:[0,7],multiplex:[6,7],must:[0,7],mv:[2,7],name:[2,7],namespac:7,nat:0,nb:[2,7],necessari:[1,3,7],need:[1,2,7],netif:[1,2,3,5,6],network:[0,1,2,3,6,7],new_pdp:7,none:[2,7],note:[1,2],notif:0,now:2,nullptr:3,num:7,number:[2,6,7],numer:[2,7],o:0,object:[0,1,3,7],off:[2,6,7],ok:[2,7],one:[1,7],ones:0,onli:[0,1,2,6,7],oonli:6,oper:[0,2,7],option:2,order:[1,7],origin:[6,7],other:[5,7],out:[2,3,7],outlin:1,output:2,over:[0,6],overrid:[1,7],p1:[2,7],p2:7,packet:0,paramet:[1,2,3,7],parent:7,pariti:2,part:2,pattern:7,payload:7,pdp:[2,7],pdpcontext:[2,7],pdu:[2,7],perform:2,phone:[2,7],php:[2,7],physic:0,pin:[2,7],pin_ok:[2,7],plain:[1,2],pleas:[1,7],point:[2,7],pointer:[1,2,7],port:2,port_num:2,portion:2,possibl:[0,1],power:[2,7],power_down:[3,4,7],power_down_sim70xx:7,power_down_sim76xx:7,power_down_sim8xx:7,ppp:[1,2,5,6,7],pppo:0,pppos_client:0,prefer:[2,7],preprocessor:7,prioriti:2,privat:6,profil:[2,7],program:6,properti:0,protocol:[0,7],provid:[0,1,6,7],ptr:[3,7],purpos:1,qualiti:[2,7],queue:2,radio:[2,7],rate:[2,7],read:[0,2,6,7],read_pin:[3,4,7],readabl:7,receiv:[0,7],recommend:1,recov:7,refer:[1,3,7],regist:0,relat:[3,7],repeat:[2,7],repres:[0,1,7],requir:0,reset:[2,3,4,7],resourc:2,respond:7,respons:[3,7],result:7,resum:[2,7],resume_data_mod:[3,4,7],return_typ:7,rssi:[2,7],rt:[2,7],rts_io_num:2,runtim:[6,7],rx:2,rx_buffer_s:2,rx_io_num:2,rxd:2,s:[2,3,5,7],same:[6,7],scope:3,second:7,section:7,select:[2,7],send:[0,2,3,6,7],send_command:0,send_sm:[3,4,7],sent:[2,7],separ:7,sequenc:[2,7],servic:[2,7],set:[2,3,7],set_baud:[3,4,7],set_cmux:[3,4,7],set_command_mod:[3,4,7],set_data:[3,7],set_data_mod:[3,4,7],set_data_mode_sim8xx:7,set_echo:[3,4,7],set_flow_control:[3,4,7],set_gnss_power_mod:[3,4,7],set_gnss_power_mode_sim76xx:7,set_mod:[0,7],set_network_attachment_st:[3,4,7],set_network_band:[3,4,7],set_network_bands_sim76xx:7,set_network_mod:[3,4,7],set_oper:[3,4,7],set_pdp_context:[3,4,7],set_pin:[3,4,7],set_preferred_mod:[3,4,7],set_radio_st:[3,4,7],set_read_cb:7,setup:[2,7],setup_data_mod:7,share:[1,3,7],shared_ptr:[1,3,7],should:[1,2,7],show:[2,7],signal:[2,7],sim7000:[1,3,7],sim7070:[1,3,7],sim7600:[0,1,3,7],sim800:[0,1,3,7],sim:[2,7],similar:3,simpl:[0,2],simpli:3,simplifi:7,sing:2,singl:7,size:[2,7],size_t:[2,7],sm:[0,2,7],sms_character_set:[3,4,7],sms_txt_mode:[3,4,7],so:7,softwar:0,sole:[0,7],some:[0,6,7],sourc:7,space:2,special:[6,7],specif:[0,1,2,3,7],specifi:7,specificmodul:[3,6,7],spi:[0,1],stack:2,standard:2,start:7,startup:2,state:[2,7],statu:[2,7],std:[1,3,7],step:1,stop:[2,7],stop_bit:2,store:[2,7],store_profil:[3,4,7],strength:[2,7],string:7,struct:[2,7],structur:[1,5,7],subclass:7,success:[1,2,3,7],successfulli:7,suppli:[1,2,7],support:[0,1,2,7],suppos:7,suspend:[2,7],sw:2,sync:[2,3,4,7],synergi:[3,7],system:[2,7],t:[2,3,7],t_modul:1,taken:7,talk:7,task:2,task_prior:2,task_stack_s:2,templat:[1,3,6,7],temporarili:[2,7],termin:[0,1,2,5],terminal_error:7,text:[2,7],textual:2,th:[2,7],thee:7,thei:7,them:0,therefor:7,thi:[0,1,2,7],time:[6,7],time_m:7,timelin:7,timeout:[2,7],top:1,transact:[3,7],treat:6,trivial:1,truncat:2,turn:7,two:[1,2,7],tx:2,tx_buffer_s:2,tx_io_num:2,txd:2,txt:[2,7],type:[0,2,5],typedef:[2,3,7],typenam:1,typic:[0,1,2,7],uart:[0,1,2,3,6,7],uart_config:2,uart_parity_t:2,uart_port_t:2,uart_stop_bits_t:2,uart_word_length_t:2,uint32_t:[2,7],uint8_t:7,undef:7,underli:7,unexpected_control_flow:7,uniqu:[1,3,7],unique_ptr:[1,3,7],unit:[0,7],unlock:[2,7],unrel:2,unsign:2,unsupport:1,until:7,up:[2,3,7],us:[2,3,5,6,7],usabl:7,usb:0,user:[0,1,2,7],valid:7,valu:[1,2,7],vanilla:1,variou:0,veri:2,vf:[2,3],vfs_config:2,via:[0,7],virtual:[0,1,6,7],voltag:[2,7],wa:[2,7],wai:[1,7],wait:7,wait_until_ppp_exit:7,we:[0,7],well:[0,6,7],what:[2,7],when:[1,6],where:0,which:[0,1,2,6,7],wifi:0,without:6,work:[2,7],workflow:[2,3],would:7,wrapper:6,write:[6,7],written:7,wrong:3},titles:["ESP MODEM","Advanced esp-modem use cases","C API Documentation","C++ API Documentation","<no title>","ESP-MODEM Programmers manual","Internal design","DCE Internal implementation"],titleterms:{"abstract":7,"case":[0,1],"new":[1,7],"switch":3,ad:7,advanc:1,api:[2,3],c:[2,3],cmux:[0,6,7],collabor:6,command:[2,3,7],commun:1,compon:0,configur:2,creat:[1,3],custom:1,dce:[0,1,3,6,7],decis:6,design:6,destroi:3,devic:[0,7],document:[2,3],dte:[0,3,7],esp:[0,1,5],extens:0,factori:1,gener:7,implement:7,inherit:6,instanti:1,interfac:[1,7],intern:[6,7],librari:7,lifecycl:2,manual:5,mode:3,model:6,modem:[0,1,2,3,5,7],modul:[0,1,7],netif:[0,7],other:0,ppp:0,programm:5,s:0,structur:2,termin:[6,7],type:7,us:[0,1]}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "advanced_api", "api_docs", "cxx_api_docs", "cxx_api_links", "index", "internal_design", "internal_docs"], "filenames": ["README.md", "advanced_api.rst", "api_docs.rst", "cxx_api_docs.rst", "cxx_api_links.rst", "index.rst", "internal_design.md", "internal_docs.rst"], "titles": ["ESP MODEM", "Advanced esp-modem use cases", "C API Documentation", "C++ API Documentation", "<no title>", "ESP-MODEM Programmers manual", "Internal design", "DCE Internal implementation"], "terms": {"thi": [0, 1, 2, 7], "commun": [0, 2, 3, 5, 7], "command": [0, 1, 5, 6], "mode": [0, 2, 5, 6, 7], "AT": [0, 1, 2, 3, 6, 7], "well": [0, 6, 7], "data": [0, 2, 3, 6, 7], "over": [0, 6], "pppo": 0, "protocol": [0, 7], "The": [0, 1, 2, 3, 6, 7], "model": [0, 1, 5], "equip": [0, 7], "object": [0, 1, 3, 7], "which": [0, 1, 2, 6, 7], "compos": [0, 6], "termin": [0, 1, 2, 5], "abstract": [0, 5, 6], "current": [0, 2, 7], "onli": [0, 1, 2, 6, 7], "uart": [0, 1, 2, 3, 6, 7], "implement": [0, 1, 2, 5, 6], "repres": [0, 1, 7], "network": [0, 1, 2, 3, 6, 7], "interfac": [0, 2, 3, 5, 6], "specif": [0, 1, 2, 3, 7], "its": [0, 2, 6, 7], "o": 0, "set_mod": [0, 7], "send_command": 0, "event": [0, 2], "basic": [0, 1, 2, 3, 6, 7], "oper": [0, 2, 7], "unit": [0, 7], "_": 0, "softwar": 0, "configur": [0, 1, 3, 5, 7], "i": [0, 1, 7], "media": 0, "defin": [0, 1, 2, 7], "librari": [0, 5], "support": [0, 1, 2, 7], "type": [0, 2, 5], "config": [0, 1, 2, 3, 7], "lwip": 0, "after": [0, 2, 7], "creat": [0, 2, 5, 7], "applic": [0, 1, 2, 3], "interact": 0, "issu": [0, 2], "switch": [0, 2, 5, 7], "between": [0, 7], "Is": 0, "an": [0, 1, 2, 7], "physic": 0, "connect": [0, 1, 2, 7], "attach": [0, 2, 7], "sim800": [0, 1, 3, 7], "bg96": [0, 1, 3, 7], "sim7600": [0, 1, 3, 7], "user": [0, 1, 2, 7], "internet": 0, "via": [0, 7], "cellular": [0, 2, 7], "send": [0, 2, 3, 6, 7], "variou": 0, "e": [0, 1, 7], "g": [0, 1], "sm": [0, 2, 7], "typic": [0, 1, 2, 7], "regist": 0, "handler": 0, "receiv": [0, 7], "notif": 0, "avail": [0, 2, 6, 7], "ip": 0, "address": 0, "chang": 0, "common": [0, 1, 2, 6, 7], "ar": [0, 2, 3, 6, 7], "also": [0, 1, 2, 6, 7], "list": [0, 2, 7], "exampl": [0, 1], "pppos_client": 0, "simpl": [0, 2], "client": 0, "read": [0, 2, 6, 7], "some": [0, 6, 7], "properti": 0, "public": [0, 1, 2, 3, 7], "mqtt": 0, "broker": 0, "modem_consol": [0, 1], "exercis": 0, "all": [0, 1, 3, 7], "possibl": [0, 1], "consol": 0, "ap_to_pppo": 0, "focus": 0, "provid": [0, 1, 6, 7], "wifi": 0, "ap": 0, "forward": [0, 7], "packet": 0, "nat": 0, "from": [0, 1, 2, 6, 7], "virtual": [0, 1, 6, 7], "experiment": 0, "featur": 0, "allow": 0, "multipl": [0, 7], "design": [0, 5], "them": 0, "sole": [0, 7], "we": [0, 7], "modern": 0, "usb": 0, "spi": [0, 1], "ad": [0, 5], "new": [0, 2, 5, 6], "must": [0, 7], "have": [0, 3, 7], "requir": 0, "differ": [0, 1, 6, 7], "might": [0, 6], "mean": [0, 7], "class": [0, 1, 3, 6, 7], "deriv": [0, 1, 7], "genericmodul": [0, 1, 6, 7], "where": 0, "could": [0, 1, 6, 7], "add": [0, 6, 7], "modifi": 0, "exist": [0, 1, 7], "ones": 0, "chapter": [1, 7], "outlin": 1, "extens": [1, 5, 7], "compon": [1, 5, 7], "It": [1, 3, 7], "handl": [1, 2, 6], "mani": 1, "wai": [1, 7], "build": [1, 7], "top": 1, "gener": [1, 2, 3, 5, 6], "share": [1, 3, 7], "uniqu": [1, 3, 7], "vanilla": 1, "pointer": [1, 2, 7], "templat": [1, 3, 6, 7], "dce_t": [1, 3, 7], "one": [1, 7], "function": [1, 2, 3, 7], "group": [1, 2, 3, 7], "esp_modem_dce_factori": 1, "enum": [1, 2, 7], "modemtyp": 1, "choic": 1, "when": [1, 6], "valu": [1, 2, 7], "enumer": [1, 2, 7], "default": [1, 2, 3, 7], "most": [1, 2, 6, 7], "appli": 1, "sim7070": [1, 3, 7], "sim7000": [1, 3, 7], "bg69": 1, "factoryhelp": 1, "includ": [1, 2, 7], "hpp": [1, 7], "helper": [1, 7], "either": [1, 3, 7], "plain": [1, 2], "shared_ptr": [1, 3, 7], "unique_ptr": [1, 3, 7], "typenam": 1, "t_modul": 1, "creator": 1, "dte": [1, 2, 5, 6], "netif": [1, 2, 3, 5, 6], "throw": [1, 6], "base": [1, 3, 7], "suppli": [1, 2, 7], "app": [1, 2], "arg": 1, "inlin": [1, 3, 7], "std": [1, 3, 7], "build_uniqu": 1, "const": [1, 2, 3, 7], "cfg": 1, "chosen": [1, 2], "paramet": [1, 2, 3, 7], "argument": [1, 7], "builder": 1, "constructor": [1, 6], "esp_modem": [1, 3, 4, 7], "structur": [1, 5, 7], "esp_modem_dte_config": [1, 2, 3, 7], "ppp": [1, 2, 5, 6, 7], "return": [1, 2, 3, 7], "success": [1, 2, 3, 7], "static": 1, "necessari": [1, 3, 7], "need": [1, 2, 7], "devic": [1, 2, 5, 6], "ani": 1, "In": 1, "recommend": 1, "order": [1, 7], "appropri": [1, 7], "dce_factori": 1, "pleas": [1, 7], "refer": [1, 3, 7], "note": [1, 2], "trivial": 1, "overrid": [1, 7], "demonstr": 1, "purpos": 1, "unsupport": 1, "i2c": 1, "two": [1, 2, 7], "step": 1, "correspond": 1, "should": [1, 2, 7], "io": 1, "method": [1, 6, 7], "veri": 2, "consist": [2, 3, 7], "part": 2, "workflow": [2, 3], "dce": [2, 4, 5], "instanc": [2, 7], "us": [2, 3, 5, 6, 7], "esp_modem_new": 2, "call": [2, 7], "esp_modem_set_mod": 2, "perform": 2, "desir": [2, 7], "standard": 2, "unrel": 2, "esp": [2, 7], "option": 2, "back": [2, 7], "again": 2, "destroi": [2, 5], "sing": 2, "esp_modem_destroi": 2, "These": 2, "set": [2, 3, 7], "work": [2, 7], "esp_modem_c_api": 2, "typedef": [2, 3, 7], "esp_modem_dce_mod": 2, "esp_modem_dce_mode_t": 2, "esp_modem_dce_devic": 2, "esp_modem_dce_device_t": 2, "esp_modem_mode_command": 2, "startup": 2, "esp_modem_mode_data": 2, "esp_modem_mode_cmux": 2, "multiplex": [2, 6, 7], "esp_modem_dce_genet": 2, "esp_modem_dce_sim7600": 2, "esp_modem_dce_sim7070": 2, "esp_modem_dce_sim7000": 2, "esp_modem_dce_bg96": 2, "esp_modem_dce_sim800": 2, "esp_modem_dce_t": 2, "esp_modem_dte_config_t": 2, "dte_config": [2, 3], "esp_modem_dce_config_t": 2, "dce_config": [2, 3], "esp_netif_t": [2, 3], "now": 2, "null": 2, "failur": [2, 3, 6], "esp_modem_new_dev": 2, "modul": [2, 3, 5, 6], "void": [2, 3, 7], "s": [2, 3, 5, 7], "esp_err_t": 2, "esp_ok": 2, "esp_fail": 2, "actual": [2, 7], "textual": 2, "char": [2, 7], "expect": 2, "output": 2, "point": [2, 7], "alloc": [2, 6], "space": 2, "least": 2, "esp_modem_c_api_str_max": 2, "64": 2, "byte": [2, 7], "truncat": 2, "size": [2, 7], "command_result": [2, 7], "esp_modem_sync": 2, "initi": [2, 3, 6, 7], "sequenc": [2, 7], "sync": [2, 3, 4, 7], "up": [2, 3, 7], "ok": [2, 7], "fail": [2, 7], "timeout": [2, 7], "esp_modem_get_operator_nam": 2, "name": [2, 7], "out": [2, 3, 7], "esp_modem_store_profil": 2, "store": [2, 7], "profil": [2, 7], "esp_modem_set_pin": 2, "pin": [2, 7], "code": [2, 6, 7], "esp_modem_read_pin": 2, "bool": [2, 7], "pin_ok": [2, 7], "check": [2, 7], "sim": [2, 7], "true": [2, 7], "card": [2, 7], "doesn": [2, 3, 7], "t": [2, 3, 7], "unlock": [2, 7], "esp_modem_set_echo": 2, "echo_on": [2, 7], "echo": [2, 7], "repeat": [2, 7], "esp_modem_sms_txt_mod": 2, "txt": [2, 7], "pdu": [2, 7], "esp_modem_sms_character_set": 2, "gsm": [2, 7], "charat": [2, 7], "esp_modem_send_sm": 2, "number": [2, 6, 7], "messag": [2, 7], "phone": [2, 7], "text": [2, 7], "sent": [2, 7], "esp_modem_resume_data_mod": 2, "resum": [2, 7], "th": [2, 7], "wa": [2, 7], "temporarili": [2, 7], "suspend": [2, 7], "esp_modem_set_pdp_context": 2, "struct": [2, 7], "pdpcontext": [2, 7], "p1": [2, 7], "php": [2, 7], "context": [2, 7], "pdp": [2, 7], "setup": [2, 7], "esp_modem_set_command_mod": 2, "esp_modem_set_cmux": 2, "cmux": [2, 5], "esp_modem_get_imsi": 2, "imsi": [2, 7], "esp_modem_get_imei": 2, "imei": [2, 7], "esp_modem_get_module_nam": 2, "esp_modem_set_data_mod": 2, "esp_modem_get_signal_qu": 2, "int": [2, 7], "rssi": [2, 7], "ber": [2, 7], "get": [2, 3, 7], "signal": [2, 7], "qualiti": [2, 7], "strength": [2, 7], "indic": [2, 7], "channel": [2, 7], "bit": [2, 7], "error": [2, 3, 6, 7], "rate": [2, 7], "esp_modem_set_flow_control": 2, "dce_flow": [2, 7], "dte_flow": [2, 7], "hw": [2, 7], "control": [2, 7], "flow": [2, 7], "0": [2, 7], "none": [2, 7], "2": [2, 7], "rt": [2, 7], "ct": [2, 7], "esp_modem_hang_up": 2, "hang": [2, 7], "esp_modem_get_battery_statu": 2, "voltag": [2, 7], "bc": [2, 7], "bcl": [2, 7], "level": [2, 7], "power": [2, 7], "circuitri": [2, 7], "statu": [2, 7], "mv": [2, 7], "charg": [2, 7], "1": [2, 7], "Not": [2, 7], "done": [2, 7], "100": [2, 7], "batteri": [2, 7], "capac": [2, 7], "esp_modem_power_down": 2, "down": [2, 6, 7], "esp_modem_reset": 2, "reset": [2, 3, 4, 7], "esp_modem_set_baud": 2, "baud": [2, 7], "baudrat": [2, 7], "esp_modem_set_oper": 2, "format": [2, 7], "forc": [2, 7], "attempt": [2, 7], "automat": [2, 3, 7], "manual": [2, 7], "deregist": [2, 7], "3": [2, 7], "4": [2, 7], "fallback": [2, 7], "what": [2, 7], "given": [2, 7], "long": [2, 6, 7], "short": [2, 7], "numer": [2, 7], "esp_modem_set_network_attachment_st": 2, "state": [2, 7], "detach": [2, 7], "gpr": [2, 7], "servic": [2, 7], "esp_modem_get_network_attachment_st": 2, "esp_modem_set_radio_st": 2, "radio": [2, 7], "full": [2, 7], "minimum": [2, 7], "esp_modem_get_radio_st": 2, "esp_modem_set_network_mod": 2, "prefer": [2, 7], "esp_modem_set_preferred_mod": 2, "cat": [2, 7], "m": [2, 7], "nb": [2, 7], "iot": [2, 7], "select": [2, 7], "esp_modem_set_network_band": 2, "band": [2, 7], "esp_modem_get_network_system_mod": 2, "show": [2, 7], "system": [2, 7], "esp_modem_set_gnss_power_mod": 2, "gnss": [2, 7], "off": [2, 6, 7], "esp_modem_config": 2, "esp_modem_dte_default_config": 2, "esp_modem_dce_default_config": 2, "apn": 2, "esp_modem_dce_config": [2, 3], "esp_modem_flow_ctrl_t": 2, "esp_modem_flow_control_non": 2, "esp_modem_flow_control_sw": 2, "esp_modem_flow_control_hw": 2, "esp_modem_uart_term_config": 2, "h": 2, "member": 2, "uart_port_t": 2, "port_num": 2, "port": 2, "uart_word_length_t": 2, "data_bit": 2, "uart_stop_bits_t": 2, "stop_bit": 2, "stop": [2, 7], "uart_parity_t": 2, "pariti": 2, "flow_control": 2, "baud_rat": 2, "tx_io_num": 2, "txd": 2, "rx_io_num": 2, "rxd": 2, "rts_io_num": 2, "cts_io_num": 2, "rx_buffer_s": 2, "rx": 2, "buffer": [2, 7], "tx_buffer_s": 2, "tx": 2, "event_queue_s": 2, "queue": 2, "esp_modem_vfs_term_config": 2, "vf": [2, 3], "fd": 2, "alreadi": 2, "file": [2, 7], "descriptor": 2, "delet": 2, "esp_modem_vfs_resourc": 2, "custom": [2, 5, 7], "close": [2, 7], "resourc": 2, "clenaup": 2, "complet": [2, 7], "sw": 2, "follow": [2, 7], "portion": 2, "dedic": 2, "size_t": [2, 7], "dte_buffer_s": 2, "uint32_t": [2, 7], "task_stack_s": 2, "task": 2, "stack": 2, "unsign": 2, "task_prior": 2, "prioriti": 2, "uart_config": 2, "vfs_config": 2, "extension_config": 2, "logic": [2, 7], "access": [2, 7], "similar": 3, "construct": [3, 7], "esp_modem_init_dt": 3, "create_uart_dt": 3, "ptr": [3, 7], "nullptr": 3, "due": 3, "insuffici": 3, "memori": 3, "wrong": 3, "except": [3, 6], "disabl": 3, "abort": [3, 6], "create_vfs_dt": 3, "esp_modem_init_dc": 3, "create_sim7600_dc": 3, "create_sim7070_dc": 3, "create_sim7000_dc": 3, "create_sim800_dc": 3, "create_bg96_dc": 3, "create_generic_dc": 3, "specificmodul": [3, 6, 7], "respons": [3, 7], "transact": [3, 7], "relat": [3, 7], "consequ": [3, 7], "synergi": [3, 7], "aggreg": [3, 7], "set_data": [3, 7], "get_operator_nam": [3, 4, 7], "store_profil": [3, 4, 7], "set_pin": [3, 4, 7], "read_pin": [3, 4, 7], "set_echo": [3, 4, 7], "sms_txt_mode": [3, 4, 7], "sms_character_set": [3, 4, 7], "send_sm": [3, 4, 7], "resume_data_mod": [3, 4, 7], "set_pdp_context": [3, 4, 7], "set_command_mod": [3, 4, 7], "set_cmux": [3, 4, 7], "get_imsi": [3, 4, 7], "get_imei": [3, 4, 7], "get_module_nam": [3, 4, 7], "set_data_mod": [3, 4, 7], "get_signal_qu": [3, 4, 7], "set_flow_control": [3, 4, 7], "hang_up": [3, 4, 7], "get_battery_statu": [3, 4, 7], "power_down": [3, 4, 7], "set_baud": [3, 4, 7], "set_oper": [3, 4, 7], "set_network_attachment_st": [3, 4, 7], "get_network_attachment_st": [3, 4, 7], "set_radio_st": [3, 4, 7], "get_radio_st": [3, 4, 7], "set_network_mod": [3, 4, 7], "set_preferred_mod": [3, 4, 7], "set_network_band": [3, 4, 7], "get_network_system_mod": [3, 4, 7], "set_gnss_power_mod": [3, 4, 7], "explicitli": [3, 7], "simpli": 3, "clean": 3, "goe": 3, "block": [3, 6, 7], "scope": 3, "brief": 5, "intro": 5, "case": [5, 6], "other": [5, 7], "c": [5, 6, 7], "lifecycl": 5, "api": [5, 6, 7], "advanc": [5, 7], "instanti": 5, "factori": [5, 7], "intern": 5, "decis": 5, "collabor": 5, "inherit": 5, "addit": [6, 7], "macro": [6, 7], "wrapper": 6, "try": 6, "catch": 6, "easier": 6, "ON": 6, "init": [6, 7], "treat": 6, "runtim": [6, 7], "program": 6, "break": 6, "more": 6, "privat": 6, "modem": 6, "special": [6, 7], "implant": 6, "minim": 6, "moduleif": [6, 7], "oonli": 6, "compil": 6, "time": [6, 7], "without": 6, "diagram": 6, "describ": [6, 7], "how": 6, "can": [6, 7], "write": [6, 7], "callback": [6, 7], "driver": 6, "below": 6, "depict": 6, "idea": 6, "cmuxinst": [6, 7], "arbitrari": 6, "same": [6, 7], "consum": [6, 7], "origin": [6, 7], "detail": 7, "descript": 7, "turn": 7, "thee": 7, "develop": 7, "would": 7, "explain": 7, "section": 7, "esp_modem_dc": 7, "definit": 7, "dce_mod": 7, "parent": 7, "string": 7, "talk": 7, "besid": 7, "document": 7, "esp_modem_dt": 7, "commandableif": 7, "explicit": 7, "uint8_t": 7, "len": 7, "underli": 7, "written": 7, "d": 7, "payload": 7, "length": 7, "set_read_cb": 7, "f": 7, "valid": 7, "modem_mod": 7, "got_line_cb": 7, "got_lin": 7, "time_m": 7, "respond": 7, "line": 7, "ms": 7, "wait": 7, "answer": 7, "separ": 7, "abov": 7, "esp_modem_termin": 7, "terminal_error": 7, "buffer_overflow": 7, "checksum_error": 7, "unexpected_control_flow": 7, "compli": 7, "subclass": 7, "maximum": 7, "esp_modem_cmux": 7, "cmux_stat": 7, "machin": 7, "header": 7, "footer": 7, "recov": 7, "itself": 7, "usabl": 7, "deinit": 7, "pair": 7, "unique_buff": 7, "eject": 7, "so": 7, "thei": 7, "tradit": 7, "inst": 7, "index": 7, "esp_modem_netif": 7, "layer": 7, "glue": 7, "start": 7, "wait_until_ppp_exit": 7, "until": 7, "esp_modem_modul": 7, "esp_modem_dce_modul": 7, "just": 7, "setup_data_mod": 7, "mandatori": 7, "abl": 7, "configure_pdp_context": 7, "new_pdp": 7, "To": 7, "ha": 7, "declar": 7, "first": 7, "esp_modem_command_declar": 7, "inc": 7, "singl": 7, "sourc": 7, "cpp": 7, "therefor": 7, "care": 7, "taken": 7, "correctli": 7, "specifi": 7, "especi": 7, "keep": 7, "low": 7, "6": 7, "preprocessor": 7, "both": 7, "clariti": 7, "expand": 7, "pattern": 7, "int_in": 7, "input": 7, "integ": 7, "human": 7, "readabl": 7, "second": 7, "p2": 7, "etc": 7, "namespac": 7, "hold": 7, "esp_modem_dce_command": 7, "esp_modem_declare_dce_command": 7, "return_typ": 7, "num": 7, "get_battery_status_sim7xxx": 7, "set_gnss_power_mode_sim76xx": 7, "power_down_sim76xx": 7, "power_down_sim70xx": 7, "set_network_bands_sim76xx": 7, "power_down_sim8xx": 7, "set_data_mode_sim8xx": 7, "esp_modem_typ": 7, "undef": 7, "command_mod": 7, "8212": 7, "suppos": 7, "data_mod": 7, "cmux_mod": 7, "simplifi": 7, "assign": 7, "result": 7, "successfulli": 7, "didn": 7, "timelin": 7, "elig": 7, "millisecond": 7}, "objects": {"": [[2, 0, 1, "c.ESP_MODEM_DCE_DEFAULT_CONFIG", "ESP_MODEM_DCE_DEFAULT_CONFIG"], [7, 0, 1, "c.ESP_MODEM_DECLARE_DCE_COMMAND", "ESP_MODEM_DECLARE_DCE_COMMAND"], [2, 0, 1, "c.ESP_MODEM_DTE_DEFAULT_CONFIG", "ESP_MODEM_DTE_DEFAULT_CONFIG"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E", "ESP_MODEM_DCE_BG96"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE", "ESP_MODEM_DCE_GENETIC"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E", "ESP_MODEM_DCE_SIM7000"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E", "ESP_MODEM_DCE_SIM7070"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E", "ESP_MODEM_DCE_SIM7600"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E", "ESP_MODEM_DCE_SIM800"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE", "ESP_MODEM_FLOW_CONTROL_HW"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE", "ESP_MODEM_FLOW_CONTROL_NONE"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE", "ESP_MODEM_FLOW_CONTROL_SW"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_CMUXE", "ESP_MODEM_MODE_CMUX"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE", "ESP_MODEM_MODE_COMMAND"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE", "ESP_MODEM_MODE_DATA"], [1, 2, 1, "_CPPv49ModemType", "ModemType"], [1, 1, 1, "_CPPv4N9ModemType4BG96E", "ModemType::BG96"], [1, 1, 1, "_CPPv4N9ModemType13GenericModuleE", "ModemType::GenericModule"], [1, 1, 1, "_CPPv4N9ModemType7SIM7000E", "ModemType::SIM7000"], [1, 1, 1, "_CPPv4N9ModemType7SIM7070E", "ModemType::SIM7070"], [1, 1, 1, "_CPPv4N9ModemType7SIM7600E", "ModemType::SIM7600"], [1, 1, 1, "_CPPv4N9ModemType6SIM800E", "ModemType::SIM800"], [7, 2, 1, "_CPPv410cmux_state", "cmux_state"], [7, 1, 1, "_CPPv4N10cmux_state6FOOTERE", "cmux_state::FOOTER"], [7, 1, 1, "_CPPv4N10cmux_state6HEADERE", "cmux_state::HEADER"], [7, 1, 1, "_CPPv4N10cmux_state4INITE", "cmux_state::INIT"], [7, 1, 1, "_CPPv4N10cmux_state7PAYLOADE", "cmux_state::PAYLOAD"], [7, 1, 1, "_CPPv4N10cmux_state7RECOVERE", "cmux_state::RECOVER"], [7, 2, 1, "_CPPv414command_result", "command_result"], [7, 1, 1, "_CPPv4N14command_result4FAILE", "command_result::FAIL"], [7, 1, 1, "_CPPv4N14command_result2OKE", "command_result::OK"], [7, 1, 1, "_CPPv4N14command_result7TIMEOUTE", "command_result::TIMEOUT"], [3, 3, 1, "_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_BG96_dce"], [3, 4, 1, "_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_BG96_dce::config"], [3, 4, 1, "_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_BG96_dce::dte"], [3, 4, 1, "_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_BG96_dce::netif"], [3, 3, 1, "_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7000_dce"], [3, 4, 1, "_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7000_dce::config"], [3, 4, 1, "_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7000_dce::dte"], [3, 4, 1, "_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7000_dce::netif"], [3, 3, 1, "_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7070_dce"], [3, 4, 1, "_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7070_dce::config"], [3, 4, 1, "_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7070_dce::dte"], [3, 4, 1, "_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7070_dce::netif"], [3, 3, 1, "_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7600_dce"], [3, 4, 1, "_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7600_dce::config"], [3, 4, 1, "_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7600_dce::dte"], [3, 4, 1, "_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7600_dce::netif"], [3, 3, 1, "_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM800_dce"], [3, 4, 1, "_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM800_dce::config"], [3, 4, 1, "_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM800_dce::dte"], [3, 4, 1, "_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM800_dce::netif"], [3, 3, 1, "_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_generic_dce"], [3, 4, 1, "_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_generic_dce::config"], [3, 4, 1, "_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_generic_dce::dte"], [3, 4, 1, "_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_generic_dce::netif"], [3, 3, 1, "_CPPv415create_uart_dtePK10dte_config", "create_uart_dte"], [3, 4, 1, "_CPPv415create_uart_dtePK10dte_config", "create_uart_dte::config"], [3, 3, 1, "_CPPv414create_vfs_dtePK10dte_config", "create_vfs_dte"], [3, 4, 1, "_CPPv414create_vfs_dtePK10dte_config", "create_vfs_dte::config"], [3, 5, 1, "_CPPv410dce_config", "dce_config"], [3, 5, 1, "_CPPv410dte_config", "dte_config"], [7, 6, 1, "_CPPv4N9esp_modem4BG96E", "esp_modem::BG96"], [7, 6, 1, "_CPPv4N9esp_modem4CMuxE", "esp_modem::CMux"], [7, 3, 1, "_CPPv4N9esp_modem4CMux6deinitEv", "esp_modem::CMux::deinit"], [7, 3, 1, "_CPPv4N9esp_modem4CMux6detachEv", "esp_modem::CMux::detach"], [7, 3, 1, "_CPPv4N9esp_modem4CMux4initEv", "esp_modem::CMux::init"], [7, 3, 1, "_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::CMux::set_read_cb"], [7, 4, 1, "_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::CMux::set_read_cb::f"], [7, 4, 1, "_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::CMux::set_read_cb::inst"], [7, 3, 1, "_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t", "esp_modem::CMux::write"], [7, 4, 1, "_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t", "esp_modem::CMux::write::data"], [7, 4, 1, "_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t", "esp_modem::CMux::write::i"], [7, 4, 1, "_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t", "esp_modem::CMux::write::len"], [7, 6, 1, "_CPPv4N9esp_modem12CMuxInstanceE", "esp_modem::CMuxInstance"], [7, 3, 1, "_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t", "esp_modem::CMuxInstance::read"], [7, 4, 1, "_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t", "esp_modem::CMuxInstance::read::data"], [7, 4, 1, "_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t", "esp_modem::CMuxInstance::read::len"], [7, 3, 1, "_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t", "esp_modem::CMuxInstance::write"], [7, 4, 1, "_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t", "esp_modem::CMuxInstance::write::data"], [7, 4, 1, "_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t", "esp_modem::CMuxInstance::write::len"], [7, 6, 1, "_CPPv4N9esp_modem13CommandableIfE", "esp_modem::CommandableIf"], [7, 3, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command"], [7, 4, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command::command"], [7, 4, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command::got_line"], [7, 4, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command::separator"], [7, 4, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command::time_ms"], [7, 6, 1, "_CPPv4N9esp_modem3DCEE", "esp_modem::DCE"], [7, 3, 1, "_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi", "esp_modem::DCE::get_battery_status"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi", "esp_modem::DCE::get_battery_status::bcl"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi", "esp_modem::DCE::get_battery_status::bcs"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi", "esp_modem::DCE::get_battery_status::voltage"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE", "esp_modem::DCE::get_imei"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE", "esp_modem::DCE::get_imei::imei"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE", "esp_modem::DCE::get_imsi"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE", "esp_modem::DCE::get_imsi::imsi"], [7, 3, 1, "_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE", "esp_modem::DCE::get_module_name"], [7, 4, 1, "_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE", "esp_modem::DCE::get_module_name::name"], [7, 3, 1, "_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi", "esp_modem::DCE::get_network_attachment_state"], [7, 4, 1, "_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi", "esp_modem::DCE::get_network_attachment_state::state"], [7, 3, 1, "_CPPv4N9esp_modem3DCE23get_network_system_modeERi", "esp_modem::DCE::get_network_system_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE23get_network_system_modeERi", "esp_modem::DCE::get_network_system_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE", "esp_modem::DCE::get_operator_name"], [7, 4, 1, "_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE", "esp_modem::DCE::get_operator_name::name"], [7, 3, 1, "_CPPv4N9esp_modem3DCE15get_radio_stateERi", "esp_modem::DCE::get_radio_state"], [7, 4, 1, "_CPPv4N9esp_modem3DCE15get_radio_stateERi", "esp_modem::DCE::get_radio_state::state"], [7, 3, 1, "_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi", "esp_modem::DCE::get_signal_quality"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi", "esp_modem::DCE::get_signal_quality::ber"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi", "esp_modem::DCE::get_signal_quality::rssi"], [7, 3, 1, "_CPPv4N9esp_modem3DCE7hang_upEv", "esp_modem::DCE::hang_up"], [7, 3, 1, "_CPPv4N9esp_modem3DCE10power_downEv", "esp_modem::DCE::power_down"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8read_pinERb", "esp_modem::DCE::read_pin"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8read_pinERb", "esp_modem::DCE::read_pin::pin_ok"], [7, 3, 1, "_CPPv4N9esp_modem3DCE5resetEv", "esp_modem::DCE::reset"], [7, 3, 1, "_CPPv4N9esp_modem3DCE16resume_data_modeEv", "esp_modem::DCE::resume_data_mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE", "esp_modem::DCE::send_sms"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE", "esp_modem::DCE::send_sms::message"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE", "esp_modem::DCE::send_sms::number"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8set_baudEi", "esp_modem::DCE::set_baud"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8set_baudEi", "esp_modem::DCE::set_baud::baud"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8set_cmuxEv", "esp_modem::DCE::set_cmux"], [7, 3, 1, "_CPPv4N9esp_modem3DCE16set_command_modeEv", "esp_modem::DCE::set_command_mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE13set_data_modeEv", "esp_modem::DCE::set_data_mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8set_echoEKb", "esp_modem::DCE::set_echo"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8set_echoEKb", "esp_modem::DCE::set_echo::echo_on"], [7, 3, 1, "_CPPv4N9esp_modem3DCE16set_flow_controlEii", "esp_modem::DCE::set_flow_control"], [7, 4, 1, "_CPPv4N9esp_modem3DCE16set_flow_controlEii", "esp_modem::DCE::set_flow_control::dce_flow"], [7, 4, 1, "_CPPv4N9esp_modem3DCE16set_flow_controlEii", "esp_modem::DCE::set_flow_control::dte_flow"], [7, 3, 1, "_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi", "esp_modem::DCE::set_gnss_power_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi", "esp_modem::DCE::set_gnss_power_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi", "esp_modem::DCE::set_network_attachment_state"], [7, 4, 1, "_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi", "esp_modem::DCE::set_network_attachment_state::state"], [7, 3, 1, "_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii", "esp_modem::DCE::set_network_bands"], [7, 4, 1, "_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii", "esp_modem::DCE::set_network_bands::bands"], [7, 4, 1, "_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii", "esp_modem::DCE::set_network_bands::mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii", "esp_modem::DCE::set_network_bands::size"], [7, 3, 1, "_CPPv4N9esp_modem3DCE16set_network_modeEi", "esp_modem::DCE::set_network_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE16set_network_modeEi", "esp_modem::DCE::set_network_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE", "esp_modem::DCE::set_operator"], [7, 4, 1, "_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE", "esp_modem::DCE::set_operator::format"], [7, 4, 1, "_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE", "esp_modem::DCE::set_operator::mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE", "esp_modem::DCE::set_operator::oper"], [7, 3, 1, "_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext", "esp_modem::DCE::set_pdp_context"], [7, 4, 1, "_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext", "esp_modem::DCE::set_pdp_context::p1"], [7, 3, 1, "_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE", "esp_modem::DCE::set_pin"], [7, 4, 1, "_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE", "esp_modem::DCE::set_pin::pin"], [7, 3, 1, "_CPPv4N9esp_modem3DCE18set_preferred_modeEi", "esp_modem::DCE::set_preferred_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18set_preferred_modeEi", "esp_modem::DCE::set_preferred_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE15set_radio_stateEi", "esp_modem::DCE::set_radio_state"], [7, 4, 1, "_CPPv4N9esp_modem3DCE15set_radio_stateEi", "esp_modem::DCE::set_radio_state::state"], [7, 3, 1, "_CPPv4N9esp_modem3DCE17sms_character_setEv", "esp_modem::DCE::sms_character_set"], [7, 3, 1, "_CPPv4N9esp_modem3DCE12sms_txt_modeEKb", "esp_modem::DCE::sms_txt_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE12sms_txt_modeEKb", "esp_modem::DCE::sms_txt_mode::txt"], [7, 3, 1, "_CPPv4N9esp_modem3DCE13store_profileEv", "esp_modem::DCE::store_profile"], [7, 3, 1, "_CPPv4N9esp_modem3DCE4syncEv", "esp_modem::DCE::sync"], [7, 6, 1, "_CPPv4N9esp_modem8DCE_ModeE", "esp_modem::DCE_Mode"], [3, 6, 1, "_CPPv4I0EN9esp_modem5DCE_TE", "esp_modem::DCE_T"], [7, 6, 1, "_CPPv4I0EN9esp_modem5DCE_TE", "esp_modem::DCE_T"], [3, 7, 1, "_CPPv4I0EN9esp_modem5DCE_TE", "esp_modem::DCE_T::SpecificModule"], [7, 7, 1, "_CPPv4I0EN9esp_modem5DCE_TE", "esp_modem::DCE_T::SpecificModule"], [3, 3, 1, "_CPPv4N9esp_modem5DCE_T8set_dataEv", "esp_modem::DCE_T::set_data"], [7, 3, 1, "_CPPv4N9esp_modem5DCE_T8set_dataEv", "esp_modem::DCE_T::set_data"], [7, 6, 1, "_CPPv4N9esp_modem3DTEE", "esp_modem::DTE"], [7, 3, 1, "_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE", "esp_modem::DTE::DTE"], [7, 4, 1, "_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE", "esp_modem::DTE::DTE::config"], [7, 4, 1, "_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE", "esp_modem::DTE::DTE::t"], [7, 3, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t", "esp_modem::DTE::command"], [7, 3, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t", "esp_modem::DTE::command::command"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command::command"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t", "esp_modem::DTE::command::got_line"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command::got_line"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command::separator"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t", "esp_modem::DTE::command::time_ms"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command::time_ms"], [7, 3, 1, "_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t", "esp_modem::DTE::read"], [7, 4, 1, "_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t", "esp_modem::DTE::read::d"], [7, 4, 1, "_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t", "esp_modem::DTE::read::len"], [7, 3, 1, "_CPPv4N9esp_modem3DTE8set_modeE10modem_mode", "esp_modem::DTE::set_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DTE8set_modeE10modem_mode", "esp_modem::DTE::set_mode::m"], [7, 3, 1, "_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::DTE::set_read_cb"], [7, 4, 1, "_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::DTE::set_read_cb::f"], [7, 3, 1, "_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t", "esp_modem::DTE::write"], [7, 4, 1, "_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t", "esp_modem::DTE::write::data"], [7, 4, 1, "_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t", "esp_modem::DTE::write::len"], [7, 6, 1, "_CPPv4N9esp_modem13GenericModuleE", "esp_modem::GenericModule"], [7, 3, 1, "_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::GenericModule"], [7, 4, 1, "_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::GenericModule::dte"], [7, 4, 1, "_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::GenericModule::pdp"], [7, 3, 1, "_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::configure_pdp_context"], [7, 4, 1, "_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::configure_pdp_context::new_pdp"], [7, 3, 1, "_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode", "esp_modem::GenericModule::set_mode"], [7, 4, 1, "_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode", "esp_modem::GenericModule::set_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem13GenericModule15setup_data_modeEv", "esp_modem::GenericModule::setup_data_mode"], [7, 6, 1, "_CPPv4N9esp_modem8ModuleIfE", "esp_modem::ModuleIf"], [7, 3, 1, "_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode", "esp_modem::ModuleIf::set_mode"], [7, 4, 1, "_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode", "esp_modem::ModuleIf::set_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem8ModuleIf15setup_data_modeEv", "esp_modem::ModuleIf::setup_data_mode"], [7, 6, 1, "_CPPv4N9esp_modem5NetifE", "esp_modem::Netif"], [7, 3, 1, "_CPPv4N9esp_modem5Netif5startEv", "esp_modem::Netif::start"], [7, 3, 1, "_CPPv4N9esp_modem5Netif4stopEv", "esp_modem::Netif::stop"], [7, 3, 1, "_CPPv4N9esp_modem5Netif20wait_until_ppp_exitsEv", "esp_modem::Netif::wait_until_ppp_exits"], [7, 6, 1, "_CPPv4N9esp_modem10PdpContextE", "esp_modem::PdpContext"], [7, 6, 1, "_CPPv4N9esp_modem7SIM7000E", "esp_modem::SIM7000"], [7, 6, 1, "_CPPv4N9esp_modem7SIM7070E", "esp_modem::SIM7070"], [7, 6, 1, "_CPPv4N9esp_modem7SIM7600E", "esp_modem::SIM7600"], [7, 6, 1, "_CPPv4N9esp_modem6SIM800E", "esp_modem::SIM800"], [7, 6, 1, "_CPPv4N9esp_modem8TerminalE", "esp_modem::Terminal"], [7, 3, 1, "_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t", "esp_modem::Terminal::read"], [7, 4, 1, "_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t", "esp_modem::Terminal::read::data"], [7, 4, 1, "_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t", "esp_modem::Terminal::read::len"], [7, 3, 1, "_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t", "esp_modem::Terminal::write"], [7, 4, 1, "_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t", "esp_modem::Terminal::write::data"], [7, 4, 1, "_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t", "esp_modem::Terminal::write::len"], [1, 6, 1, "_CPPv4I0EN9esp_modem11dce_factory7CreatorE", "esp_modem::dce_factory::Creator"], [1, 7, 1, "_CPPv4I0EN9esp_modem11dce_factory7CreatorE", "esp_modem::dce_factory::Creator::T_Module"], [1, 6, 1, "_CPPv4N9esp_modem11dce_factory7FactoryE", "esp_modem::dce_factory::Factory"], [1, 3, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build"], [1, 7, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build::Args"], [1, 7, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build::T_Module"], [1, 4, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build::args"], [1, 4, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build::cfg"], [1, 3, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique"], [1, 3, 1, "_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique"], [1, 7, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::Args"], [1, 7, 1, "_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::Args"], [1, 7, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::T_Module"], [1, 4, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::args"], [1, 4, 1, "_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::args"], [1, 4, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::cfg"], [1, 4, 1, "_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::cfg"], [1, 6, 1, "_CPPv4N9esp_modem11dce_factory13FactoryHelperE", "esp_modem::dce_factory::FactoryHelper"], [2, 6, 1, "_CPPv420esp_modem_dce_config", "esp_modem_dce_config"], [2, 8, 1, "_CPPv4N20esp_modem_dce_config3apnE", "esp_modem_dce_config::apn"], [2, 5, 1, "_CPPv422esp_modem_dce_config_t", "esp_modem_dce_config_t"], [2, 2, 1, "_CPPv420esp_modem_dce_device", "esp_modem_dce_device"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E", "esp_modem_dce_device::ESP_MODEM_DCE_BG96"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE", "esp_modem_dce_device::ESP_MODEM_DCE_GENETIC"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E", "esp_modem_dce_device::ESP_MODEM_DCE_SIM7000"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E", "esp_modem_dce_device::ESP_MODEM_DCE_SIM7070"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E", "esp_modem_dce_device::ESP_MODEM_DCE_SIM7600"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E", "esp_modem_dce_device::ESP_MODEM_DCE_SIM800"], [2, 5, 1, "_CPPv422esp_modem_dce_device_t", "esp_modem_dce_device_t"], [2, 2, 1, "_CPPv418esp_modem_dce_mode", "esp_modem_dce_mode"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_CMUXE", "esp_modem_dce_mode::ESP_MODEM_MODE_CMUX"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE", "esp_modem_dce_mode::ESP_MODEM_MODE_COMMAND"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE", "esp_modem_dce_mode::ESP_MODEM_MODE_DATA"], [2, 5, 1, "_CPPv420esp_modem_dce_mode_t", "esp_modem_dce_mode_t"], [2, 3, 1, "_CPPv417esp_modem_destroyP15esp_modem_dce_t", "esp_modem_destroy"], [2, 4, 1, "_CPPv417esp_modem_destroyP15esp_modem_dce_t", "esp_modem_destroy::dce"], [2, 6, 1, "_CPPv420esp_modem_dte_config", "esp_modem_dte_config"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config15dte_buffer_sizeE", "esp_modem_dte_config::dte_buffer_size"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config16extension_configE", "esp_modem_dte_config::extension_config"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config13task_priorityE", "esp_modem_dte_config::task_priority"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config15task_stack_sizeE", "esp_modem_dte_config::task_stack_size"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config11uart_configE", "esp_modem_dte_config::uart_config"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config10vfs_configE", "esp_modem_dte_config::vfs_config"], [2, 5, 1, "_CPPv422esp_modem_dte_config_t", "esp_modem_dte_config_t"], [2, 2, 1, "_CPPv421esp_modem_flow_ctrl_t", "esp_modem_flow_ctrl_t"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE", "esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_HW"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE", "esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_NONE"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE", "esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_SW"], [2, 3, 1, "_CPPv428esp_modem_get_battery_statusPiPiPi", "esp_modem_get_battery_status"], [2, 4, 1, "_CPPv428esp_modem_get_battery_statusPiPiPi", "esp_modem_get_battery_status::bcl"], [2, 4, 1, "_CPPv428esp_modem_get_battery_statusPiPiPi", "esp_modem_get_battery_status::bcs"], [2, 4, 1, "_CPPv428esp_modem_get_battery_statusPiPiPi", "esp_modem_get_battery_status::voltage"], [2, 3, 1, "_CPPv418esp_modem_get_imeiPc", "esp_modem_get_imei"], [2, 4, 1, "_CPPv418esp_modem_get_imeiPc", "esp_modem_get_imei::imei"], [2, 3, 1, "_CPPv418esp_modem_get_imsiPc", "esp_modem_get_imsi"], [2, 4, 1, "_CPPv418esp_modem_get_imsiPc", "esp_modem_get_imsi::imsi"], [2, 3, 1, "_CPPv425esp_modem_get_module_namePc", "esp_modem_get_module_name"], [2, 4, 1, "_CPPv425esp_modem_get_module_namePc", "esp_modem_get_module_name::name"], [2, 3, 1, "_CPPv438esp_modem_get_network_attachment_statePi", "esp_modem_get_network_attachment_state"], [2, 4, 1, "_CPPv438esp_modem_get_network_attachment_statePi", "esp_modem_get_network_attachment_state::state"], [2, 3, 1, "_CPPv433esp_modem_get_network_system_modePi", "esp_modem_get_network_system_mode"], [2, 4, 1, "_CPPv433esp_modem_get_network_system_modePi", "esp_modem_get_network_system_mode::mode"], [2, 3, 1, "_CPPv427esp_modem_get_operator_namePc", "esp_modem_get_operator_name"], [2, 4, 1, "_CPPv427esp_modem_get_operator_namePc", "esp_modem_get_operator_name::name"], [2, 3, 1, "_CPPv425esp_modem_get_radio_statePi", "esp_modem_get_radio_state"], [2, 4, 1, "_CPPv425esp_modem_get_radio_statePi", "esp_modem_get_radio_state::state"], [2, 3, 1, "_CPPv428esp_modem_get_signal_qualityPiPi", "esp_modem_get_signal_quality"], [2, 4, 1, "_CPPv428esp_modem_get_signal_qualityPiPi", "esp_modem_get_signal_quality::ber"], [2, 4, 1, "_CPPv428esp_modem_get_signal_qualityPiPi", "esp_modem_get_signal_quality::rssi"], [2, 3, 1, "_CPPv417esp_modem_hang_upv", "esp_modem_hang_up"], [2, 3, 1, "_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new"], [2, 4, 1, "_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new::dce_config"], [2, 4, 1, "_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new::dte_config"], [2, 4, 1, "_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new::netif"], [2, 3, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev"], [2, 4, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev::dce_config"], [2, 4, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev::dte_config"], [2, 4, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev::module"], [2, 4, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev::netif"], [2, 3, 1, "_CPPv420esp_modem_power_downv", "esp_modem_power_down"], [2, 3, 1, "_CPPv418esp_modem_read_pinPb", "esp_modem_read_pin"], [2, 4, 1, "_CPPv418esp_modem_read_pinPb", "esp_modem_read_pin::pin_ok"], [2, 3, 1, "_CPPv415esp_modem_resetv", "esp_modem_reset"], [2, 3, 1, "_CPPv426esp_modem_resume_data_modev", "esp_modem_resume_data_mode"], [2, 3, 1, "_CPPv418esp_modem_send_smsPKcPKc", "esp_modem_send_sms"], [2, 4, 1, "_CPPv418esp_modem_send_smsPKcPKc", "esp_modem_send_sms::message"], [2, 4, 1, "_CPPv418esp_modem_send_smsPKcPKc", "esp_modem_send_sms::number"], [2, 3, 1, "_CPPv418esp_modem_set_baudi", "esp_modem_set_baud"], [2, 4, 1, "_CPPv418esp_modem_set_baudi", "esp_modem_set_baud::baud"], [2, 3, 1, "_CPPv418esp_modem_set_cmuxv", "esp_modem_set_cmux"], [2, 3, 1, "_CPPv426esp_modem_set_command_modev", "esp_modem_set_command_mode"], [2, 3, 1, "_CPPv423esp_modem_set_data_modev", "esp_modem_set_data_mode"], [2, 3, 1, "_CPPv418esp_modem_set_echoKb", "esp_modem_set_echo"], [2, 4, 1, "_CPPv418esp_modem_set_echoKb", "esp_modem_set_echo::echo_on"], [2, 3, 1, "_CPPv426esp_modem_set_flow_controlii", "esp_modem_set_flow_control"], [2, 4, 1, "_CPPv426esp_modem_set_flow_controlii", "esp_modem_set_flow_control::dce_flow"], [2, 4, 1, "_CPPv426esp_modem_set_flow_controlii", "esp_modem_set_flow_control::dte_flow"], [2, 3, 1, "_CPPv429esp_modem_set_gnss_power_modei", "esp_modem_set_gnss_power_mode"], [2, 4, 1, "_CPPv429esp_modem_set_gnss_power_modei", "esp_modem_set_gnss_power_mode::mode"], [2, 3, 1, "_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t", "esp_modem_set_mode"], [2, 4, 1, "_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t", "esp_modem_set_mode::dce"], [2, 4, 1, "_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t", "esp_modem_set_mode::mode"], [2, 3, 1, "_CPPv438esp_modem_set_network_attachment_statei", "esp_modem_set_network_attachment_state"], [2, 4, 1, "_CPPv438esp_modem_set_network_attachment_statei", "esp_modem_set_network_attachment_state::state"], [2, 3, 1, "_CPPv427esp_modem_set_network_bandsPKcPKii", "esp_modem_set_network_bands"], [2, 4, 1, "_CPPv427esp_modem_set_network_bandsPKcPKii", "esp_modem_set_network_bands::bands"], [2, 4, 1, "_CPPv427esp_modem_set_network_bandsPKcPKii", "esp_modem_set_network_bands::mode"], [2, 4, 1, "_CPPv427esp_modem_set_network_bandsPKcPKii", "esp_modem_set_network_bands::size"], [2, 3, 1, "_CPPv426esp_modem_set_network_modei", "esp_modem_set_network_mode"], [2, 4, 1, "_CPPv426esp_modem_set_network_modei", "esp_modem_set_network_mode::mode"], [2, 3, 1, "_CPPv422esp_modem_set_operatoriiPKc", "esp_modem_set_operator"], [2, 4, 1, "_CPPv422esp_modem_set_operatoriiPKc", "esp_modem_set_operator::format"], [2, 4, 1, "_CPPv422esp_modem_set_operatoriiPKc", "esp_modem_set_operator::mode"], [2, 4, 1, "_CPPv422esp_modem_set_operatoriiPKc", "esp_modem_set_operator::oper"], [2, 3, 1, "_CPPv425esp_modem_set_pdp_contextP10PdpContext", "esp_modem_set_pdp_context"], [2, 4, 1, "_CPPv425esp_modem_set_pdp_contextP10PdpContext", "esp_modem_set_pdp_context::p1"], [2, 3, 1, "_CPPv417esp_modem_set_pinPKc", "esp_modem_set_pin"], [2, 4, 1, "_CPPv417esp_modem_set_pinPKc", "esp_modem_set_pin::pin"], [2, 3, 1, "_CPPv428esp_modem_set_preferred_modei", "esp_modem_set_preferred_mode"], [2, 4, 1, "_CPPv428esp_modem_set_preferred_modei", "esp_modem_set_preferred_mode::mode"], [2, 3, 1, "_CPPv425esp_modem_set_radio_statei", "esp_modem_set_radio_state"], [2, 4, 1, "_CPPv425esp_modem_set_radio_statei", "esp_modem_set_radio_state::state"], [2, 3, 1, "_CPPv427esp_modem_sms_character_setv", "esp_modem_sms_character_set"], [2, 3, 1, "_CPPv422esp_modem_sms_txt_modeKb", "esp_modem_sms_txt_mode"], [2, 4, 1, "_CPPv422esp_modem_sms_txt_modeKb", "esp_modem_sms_txt_mode::txt"], [2, 3, 1, "_CPPv423esp_modem_store_profilev", "esp_modem_store_profile"], [2, 3, 1, "_CPPv414esp_modem_syncv", "esp_modem_sync"], [2, 6, 1, "_CPPv426esp_modem_uart_term_config", "esp_modem_uart_term_config"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9baud_rateE", "esp_modem_uart_term_config::baud_rate"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config10cts_io_numE", "esp_modem_uart_term_config::cts_io_num"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9data_bitsE", "esp_modem_uart_term_config::data_bits"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config16event_queue_sizeE", "esp_modem_uart_term_config::event_queue_size"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config12flow_controlE", "esp_modem_uart_term_config::flow_control"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config6parityE", "esp_modem_uart_term_config::parity"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config8port_numE", "esp_modem_uart_term_config::port_num"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config10rts_io_numE", "esp_modem_uart_term_config::rts_io_num"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config14rx_buffer_sizeE", "esp_modem_uart_term_config::rx_buffer_size"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9rx_io_numE", "esp_modem_uart_term_config::rx_io_num"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9stop_bitsE", "esp_modem_uart_term_config::stop_bits"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config14tx_buffer_sizeE", "esp_modem_uart_term_config::tx_buffer_size"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9tx_io_numE", "esp_modem_uart_term_config::tx_io_num"], [2, 6, 1, "_CPPv425esp_modem_vfs_term_config", "esp_modem_vfs_term_config"], [2, 8, 1, "_CPPv4N25esp_modem_vfs_term_config7deleterE", "esp_modem_vfs_term_config::deleter"], [2, 8, 1, "_CPPv4N25esp_modem_vfs_term_config2fdE", "esp_modem_vfs_term_config::fd"], [2, 8, 1, "_CPPv4N25esp_modem_vfs_term_config8resourceE", "esp_modem_vfs_term_config::resource"], [7, 3, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx"], [7, 4, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx::bcl"], [7, 4, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx::bcs"], [7, 4, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx::t"], [7, 4, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx::voltage"], [7, 5, 1, "_CPPv411got_line_cb", "got_line_cb"], [7, 2, 1, "_CPPv410modem_mode", "modem_mode"], [7, 1, 1, "_CPPv4N10modem_mode9CMUX_MODEE", "modem_mode::CMUX_MODE"], [7, 1, 1, "_CPPv4N10modem_mode12COMMAND_MODEE", "modem_mode::COMMAND_MODE"], [7, 1, 1, "_CPPv4N10modem_mode9DATA_MODEE", "modem_mode::DATA_MODE"], [7, 1, 1, "_CPPv4N10modem_mode5UNDEFE", "modem_mode::UNDEF"], [7, 3, 1, "_CPPv418power_down_sim70xxP13CommandableIf", "power_down_sim70xx"], [7, 4, 1, "_CPPv418power_down_sim70xxP13CommandableIf", "power_down_sim70xx::t"], [7, 3, 1, "_CPPv418power_down_sim76xxP13CommandableIf", "power_down_sim76xx"], [7, 4, 1, "_CPPv418power_down_sim76xxP13CommandableIf", "power_down_sim76xx::t"], [7, 3, 1, "_CPPv417power_down_sim8xxP13CommandableIf", "power_down_sim8xx"], [7, 4, 1, "_CPPv417power_down_sim8xxP13CommandableIf", "power_down_sim8xx::t"], [7, 3, 1, "_CPPv420set_data_mode_sim8xxP13CommandableIf", "set_data_mode_sim8xx"], [7, 4, 1, "_CPPv420set_data_mode_sim8xxP13CommandableIf", "set_data_mode_sim8xx::t"], [7, 3, 1, "_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi", "set_gnss_power_mode_sim76xx"], [7, 4, 1, "_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi", "set_gnss_power_mode_sim76xx::mode"], [7, 4, 1, "_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi", "set_gnss_power_mode_sim76xx::t"], [7, 3, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx"], [7, 4, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx::bands"], [7, 4, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx::mode"], [7, 4, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx::size"], [7, 4, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx::t"], [7, 2, 1, "_CPPv414terminal_error", "terminal_error"], [7, 1, 1, "_CPPv4N14terminal_error15BUFFER_OVERFLOWE", "terminal_error::BUFFER_OVERFLOW"], [7, 1, 1, "_CPPv4N14terminal_error14CHECKSUM_ERRORE", "terminal_error::CHECKSUM_ERROR"], [7, 1, 1, "_CPPv4N14terminal_error23UNEXPECTED_CONTROL_FLOWE", "terminal_error::UNEXPECTED_CONTROL_FLOW"]]}, "objtypes": {"0": "c:macro", "1": "cpp:enumerator", "2": "cpp:enum", "3": "cpp:function", "4": "cpp:functionParam", "5": "cpp:type", "6": "cpp:class", "7": "cpp:templateParam", "8": "cpp:member"}, "objnames": {"0": ["c", "macro", "C macro"], "1": ["cpp", "enumerator", "C++ enumerator"], "2": ["cpp", "enum", "C++ enum"], "3": ["cpp", "function", "C++ function"], "4": ["cpp", "functionParam", "C++ function parameter"], "5": ["cpp", "type", "C++ type"], "6": ["cpp", "class", "C++ class"], "7": ["cpp", "templateParam", "C++ template parameter"], "8": ["cpp", "member", "C++ member"]}, "titleterms": {"esp": [0, 1, 5], "modem": [0, 1, 2, 3, 5, 7], "compon": 0, "dce": [0, 1, 3, 6, 7], "dte": [0, 3, 7], "ppp": 0, "netif": [0, 7], "modul": [0, 1, 7], "us": [0, 1], "case": [0, 1], "extens": 0, "cmux": [0, 6, 7], "s": 0, "other": 0, "devic": [0, 7], "advanc": 1, "custom": 1, "instanti": 1, "factori": 1, "creat": [1, 3], "new": [1, 7], "commun": 1, "interfac": [1, 7], "c": [2, 3], "api": [2, 3], "document": [2, 3], "lifecycl": 2, "command": [2, 3, 7], "configur": 2, "structur": 2, "mode": 3, "switch": 3, "destroi": 3, "programm": 5, "manual": 5, "intern": [6, 7], "design": 6, "decis": 6, "collabor": 6, "model": 6, "termin": [6, 7], "inherit": 6, "implement": 7, "abstract": 7, "ad": 7, "gener": 7, "librari": 7, "type": 7}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/esp_websocket_client/.buildinfo b/esp_websocket_client/.buildinfo index 487a38adf..5ff0a74f0 100644 --- a/esp_websocket_client/.buildinfo +++ b/esp_websocket_client/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: d0c33a76b4541f3c568796cdbaeded0e +config: 86c276fe0e6cf1226cba9dc778dc4151 tags: 549b3d6d0415232fb7e35403b330ff49 diff --git a/esp_websocket_client/_static/_sphinx_javascript_frameworks_compat.js b/esp_websocket_client/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..8549469dc --- /dev/null +++ b/esp_websocket_client/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.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": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/esp_websocket_client/_static/basic.css b/esp_websocket_client/_static/basic.css index bf18350b6..088967717 100644 --- a/esp_websocket_client/_static/basic.css +++ b/esp_websocket_client/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,12 +324,16 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; @@ -379,6 +373,9 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +383,9 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +428,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +611,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +629,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/esp_websocket_client/_static/doctools.js b/esp_websocket_client/_static/doctools.js index e1bfd708b..c3db08d1c 100644 --- a/esp_websocket_client/_static/doctools.js +++ b/esp_websocket_client/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +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))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.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": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + 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 (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +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. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // 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( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/esp_websocket_client/_static/documentation_options.js b/esp_websocket_client/_static/documentation_options.js index f8d32270a..f6bd60d98 100644 --- a/esp_websocket_client/_static/documentation_options.js +++ b/esp_websocket_client/_static/documentation_options.js @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/esp_websocket_client/_static/jquery-3.5.1.js b/esp_websocket_client/_static/jquery-3.6.0.js similarity index 98% rename from esp_websocket_client/_static/jquery-3.5.1.js rename to esp_websocket_client/_static/jquery-3.6.0.js index 50937333b..fc6c299b7 100644 --- a/esp_websocket_client/_static/jquery-3.5.1.js +++ b/esp_websocket_client/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/esp_websocket_client/_static/jquery.js b/esp_websocket_client/_static/jquery.js index b0614034a..c4c6022f2 100644 --- a/esp_websocket_client/_static/jquery.js +++ b/esp_websocket_client/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // 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 + 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, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +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, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + 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 = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + 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 = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * 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 */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - var virtualDocument = document.implementation.createHTMLDocument('virtual'); - var htmlElement = $(htmlString, virtualDocument); - htmlElement.find('.headerlink').remove(); - docContent = htmlElement.find('[role=main]')[0]; - if(docContent === undefined) { - console.warn("Content block not found. Sphinx search tries to obtain it " + - "via '[role=main]'. Could you check your theme or template."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + 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 : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + 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 : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

      ' + _('Searching') + '

      ').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

       

      ').appendTo(this.out); - this.output = $('
      diff --git a/esp_websocket_client/index.html b/esp_websocket_client/index.html index 7598989f8..fa28ceb29 100644 --- a/esp_websocket_client/index.html +++ b/esp_websocket_client/index.html @@ -16,6 +16,7 @@ + @@ -116,7 +117,7 @@
    • »
    • ESP WebSocket Client
    • - Edit on GitHub + Edit on GitHub

    • @@ -125,13 +126,13 @@
      -

      ESP WebSocket Client

      +

      ESP WebSocket Client

      -

      Overview

      +

      Overview

      The ESP WebSocket client is an implementation of WebSocket protocol client for ESP32

      -

      Features

      +

      Features

      • Supports WebSocket over TCP, TLS with mbedtls

      • @@ -141,9 +142,9 @@
      -

      Configuration

      +

      Configuration

      -

      URI

      +

      URI

      • Supports ws, wss schemes

      • WebSocket samples:

        @@ -177,7 +178,7 @@ overridden. Sample:

      -

      TLS

      +

      TLS

      Configuration:

      const esp_websocket_client_config_t ws_cfg = {
           .uri = "wss://echo.websocket.org",
      @@ -197,7 +198,7 @@ In case a host operating system has openssl and sed pa
       

      This command will extract the second certificate in the chain and save it as a pem-file.

      -

      Subprotocol

      +

      Subprotocol

      The subprotocol field in the config struct can be used to request a subprotocol

      const esp_websocket_client_config_t ws_cfg = {
           .uri = "ws://websocket.org",
      @@ -213,7 +214,7 @@ In case a host operating system has openssl and sed pa
       
      -

      Events

      +

      Events

      • WEBSOCKET_EVENT_CONNECTED: The client has successfully established a connection to the server. The client is now ready to send and receive data. Contains no event data.

      • WEBSOCKET_EVENT_DISCONNECTED: The client has aborted the connection due to the transport layer failing to read data, e.g. because the server is unavailable. Contains no event data.

      • @@ -226,16 +227,16 @@ In case a host operating system has openssl and sed pa
      -

      Limitations and Known Issues

      +

      Limitations and Known Issues

      • The client is able to request the use of a subprotocol from the server during the handshake, but does not do any subprotocol related checks on the response from the server.

      -

      Application Example

      -

      A simple WebSocket example that uses esp_websocket_client to establish a websocket connection and send/receive data with the websocket.org server can be found here: example .

      +

      Application Example

      +

      A simple WebSocket example that uses esp_websocket_client to establish a websocket connection and send/receive data with the websocket.org server can be found here: example .

      -

      Sending Text Data

      +

      Sending Text Data

      The WebSocket client supports sending data as a text data frame, which informs the application layer that the payload data is text data encoded as UTF-8. Example:

      esp_websocket_client_send_text(client, data, len, portMAX_DELAY);
       
      @@ -243,15 +244,15 @@ In case a host operating system has openssl and sed pa
      -

      API Reference

      +

      API Reference

      -

      Header File

      +

      Header File

      -

      Functions

      +

      Functions

      esp_websocket_client_handle_t esp_websocket_client_init(const esp_websocket_client_config_t *config)
      @@ -507,7 +508,7 @@ In case a host operating system has openssl and sed pa
      -

      Structures

      +

      Structures

      struct esp_websocket_event_data_t
      @@ -780,7 +781,7 @@ In case a host operating system has openssl and sed pa
      -

      Type Definitions

      +

      Type Definitions

      typedef struct esp_websocket_client *esp_websocket_client_handle_t
      @@ -788,7 +789,7 @@ In case a host operating system has openssl and sed pa
      -

      Enumerations

      +

      Enumerations

      enum esp_websocket_event_id_t
      diff --git a/esp_websocket_client/search.html b/esp_websocket_client/search.html index a024f2abd..46a7e5cd2 100644 --- a/esp_websocket_client/search.html +++ b/esp_websocket_client/search.html @@ -16,6 +16,7 @@ + diff --git a/esp_websocket_client/searchindex.js b/esp_websocket_client/searchindex.js index 73e8b1812..269d3af7d 100644 --- a/esp_websocket_client/searchindex.js +++ b/esp_websocket_client/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst"],objects:{"":[[0,0,1,"_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_ANYE","WEBSOCKET_EVENT_ANY"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t22WEBSOCKET_EVENT_CLOSEDE","WEBSOCKET_EVENT_CLOSED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t25WEBSOCKET_EVENT_CONNECTEDE","WEBSOCKET_EVENT_CONNECTED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t20WEBSOCKET_EVENT_DATAE","WEBSOCKET_EVENT_DATA"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t28WEBSOCKET_EVENT_DISCONNECTEDE","WEBSOCKET_EVENT_DISCONNECTED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t21WEBSOCKET_EVENT_ERRORE","WEBSOCKET_EVENT_ERROR"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_MAXE","WEBSOCKET_EVENT_MAX"],[0,0,1,"_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_SSLE","WEBSOCKET_TRANSPORT_OVER_SSL"],[0,0,1,"_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_TCPE","WEBSOCKET_TRANSPORT_OVER_TCP"],[0,0,1,"_CPPv4N25esp_websocket_transport_t27WEBSOCKET_TRANSPORT_UNKNOWNE","WEBSOCKET_TRANSPORT_UNKNOWN"],[0,1,1,"_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t","esp_websocket_client_close"],[0,2,1,"_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t","esp_websocket_client_close::client"],[0,2,1,"_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t","esp_websocket_client_close::timeout"],[0,1,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::client"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::code"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::data"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::len"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::timeout"],[0,3,1,"_CPPv429esp_websocket_client_config_t","esp_websocket_client_config_t"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t11buffer_sizeE","esp_websocket_client_config_t::buffer_size"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t8cert_lenE","esp_websocket_client_config_t::cert_len"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t8cert_pemE","esp_websocket_client_config_t::cert_pem"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t11client_certE","esp_websocket_client_config_t::client_cert"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t15client_cert_lenE","esp_websocket_client_config_t::client_cert_len"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t10client_keyE","esp_websocket_client_config_t::client_key"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t14client_key_lenE","esp_websocket_client_config_t::client_key_len"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t17crt_bundle_attachE","esp_websocket_client_config_t::crt_bundle_attach"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t22disable_auto_reconnectE","esp_websocket_client_config_t::disable_auto_reconnect"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t23disable_pingpong_disconE","esp_websocket_client_config_t::disable_pingpong_discon"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t7headersE","esp_websocket_client_config_t::headers"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t4hostE","esp_websocket_client_config_t::host"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t7if_nameE","esp_websocket_client_config_t::if_name"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t16keep_alive_countE","esp_websocket_client_config_t::keep_alive_count"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t17keep_alive_enableE","esp_websocket_client_config_t::keep_alive_enable"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t15keep_alive_idleE","esp_websocket_client_config_t::keep_alive_idle"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t19keep_alive_intervalE","esp_websocket_client_config_t::keep_alive_interval"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t18network_timeout_msE","esp_websocket_client_config_t::network_timeout_ms"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t8passwordE","esp_websocket_client_config_t::password"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t4pathE","esp_websocket_client_config_t::path"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t17ping_interval_secE","esp_websocket_client_config_t::ping_interval_sec"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t20pingpong_timeout_secE","esp_websocket_client_config_t::pingpong_timeout_sec"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t4portE","esp_websocket_client_config_t::port"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t20reconnect_timeout_msE","esp_websocket_client_config_t::reconnect_timeout_ms"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t27skip_cert_common_name_checkE","esp_websocket_client_config_t::skip_cert_common_name_check"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t11subprotocolE","esp_websocket_client_config_t::subprotocol"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t9task_prioE","esp_websocket_client_config_t::task_prio"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t10task_stackE","esp_websocket_client_config_t::task_stack"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t9transportE","esp_websocket_client_config_t::transport"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t3uriE","esp_websocket_client_config_t::uri"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t19use_global_ca_storeE","esp_websocket_client_config_t::use_global_ca_store"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t10user_agentE","esp_websocket_client_config_t::user_agent"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t12user_contextE","esp_websocket_client_config_t::user_context"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t8usernameE","esp_websocket_client_config_t::username"],[0,1,1,"_CPPv428esp_websocket_client_destroy29esp_websocket_client_handle_t","esp_websocket_client_destroy"],[0,2,1,"_CPPv428esp_websocket_client_destroy29esp_websocket_client_handle_t","esp_websocket_client_destroy::client"],[0,1,1,"_CPPv442esp_websocket_client_get_ping_interval_sec29esp_websocket_client_handle_t","esp_websocket_client_get_ping_interval_sec"],[0,2,1,"_CPPv442esp_websocket_client_get_ping_interval_sec29esp_websocket_client_handle_t","esp_websocket_client_get_ping_interval_sec::client"],[0,5,1,"_CPPv429esp_websocket_client_handle_t","esp_websocket_client_handle_t"],[0,1,1,"_CPPv425esp_websocket_client_initPK29esp_websocket_client_config_t","esp_websocket_client_init"],[0,2,1,"_CPPv425esp_websocket_client_initPK29esp_websocket_client_config_t","esp_websocket_client_init::config"],[0,1,1,"_CPPv433esp_websocket_client_is_connected29esp_websocket_client_handle_t","esp_websocket_client_is_connected"],[0,2,1,"_CPPv433esp_websocket_client_is_connected29esp_websocket_client_handle_t","esp_websocket_client_is_connected::client"],[0,1,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin"],[0,2,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin::client"],[0,2,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin::data"],[0,2,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin::len"],[0,2,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin::timeout"],[0,1,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text"],[0,2,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text::client"],[0,2,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text::data"],[0,2,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text::len"],[0,2,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text::timeout"],[0,1,1,"_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t","esp_websocket_client_set_ping_interval_sec"],[0,2,1,"_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t","esp_websocket_client_set_ping_interval_sec::client"],[0,2,1,"_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t","esp_websocket_client_set_ping_interval_sec::ping_interval_sec"],[0,1,1,"_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc","esp_websocket_client_set_uri"],[0,2,1,"_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc","esp_websocket_client_set_uri::client"],[0,2,1,"_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc","esp_websocket_client_set_uri::uri"],[0,1,1,"_CPPv426esp_websocket_client_start29esp_websocket_client_handle_t","esp_websocket_client_start"],[0,2,1,"_CPPv426esp_websocket_client_start29esp_websocket_client_handle_t","esp_websocket_client_start::client"],[0,1,1,"_CPPv425esp_websocket_client_stop29esp_websocket_client_handle_t","esp_websocket_client_stop"],[0,2,1,"_CPPv425esp_websocket_client_stop29esp_websocket_client_handle_t","esp_websocket_client_stop::client"],[0,3,1,"_CPPv426esp_websocket_event_data_t","esp_websocket_event_data_t"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t6clientE","esp_websocket_event_data_t::client"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t8data_lenE","esp_websocket_event_data_t::data_len"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t8data_ptrE","esp_websocket_event_data_t::data_ptr"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t3finE","esp_websocket_event_data_t::fin"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t7op_codeE","esp_websocket_event_data_t::op_code"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t11payload_lenE","esp_websocket_event_data_t::payload_len"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t14payload_offsetE","esp_websocket_event_data_t::payload_offset"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t12user_contextE","esp_websocket_event_data_t::user_context"],[0,6,1,"_CPPv424esp_websocket_event_id_t","esp_websocket_event_id_t"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_ANYE","esp_websocket_event_id_t::WEBSOCKET_EVENT_ANY"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t22WEBSOCKET_EVENT_CLOSEDE","esp_websocket_event_id_t::WEBSOCKET_EVENT_CLOSED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t25WEBSOCKET_EVENT_CONNECTEDE","esp_websocket_event_id_t::WEBSOCKET_EVENT_CONNECTED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t20WEBSOCKET_EVENT_DATAE","esp_websocket_event_id_t::WEBSOCKET_EVENT_DATA"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t28WEBSOCKET_EVENT_DISCONNECTEDE","esp_websocket_event_id_t::WEBSOCKET_EVENT_DISCONNECTED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t21WEBSOCKET_EVENT_ERRORE","esp_websocket_event_id_t::WEBSOCKET_EVENT_ERROR"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_MAXE","esp_websocket_event_id_t::WEBSOCKET_EVENT_MAX"],[0,1,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events"],[0,2,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events::client"],[0,2,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events::event"],[0,2,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events::event_handler"],[0,2,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events::event_handler_arg"],[0,6,1,"_CPPv425esp_websocket_transport_t","esp_websocket_transport_t"],[0,0,1,"_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_SSLE","esp_websocket_transport_t::WEBSOCKET_TRANSPORT_OVER_SSL"],[0,0,1,"_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_TCPE","esp_websocket_transport_t::WEBSOCKET_TRANSPORT_OVER_TCP"],[0,0,1,"_CPPv4N25esp_websocket_transport_t27WEBSOCKET_TRANSPORT_UNKNOWNE","esp_websocket_transport_t::WEBSOCKET_TRANSPORT_UNKNOWN"]]},objnames:{"0":["cpp","enumerator","C++ enumerator"],"1":["cpp","function","C++ function"],"2":["cpp","functionParam","C++ function parameter"],"3":["cpp","class","C++ class"],"4":["cpp","member","C++ member"],"5":["cpp","type","C++ type"],"6":["cpp","enum","C++ enum"]},objtypes:{"0":"cpp:enumerator","1":"cpp:function","2":"cpp:functionParam","3":"cpp:class","4":"cpp:member","5":"cpp:type","6":"cpp:enum"},terms:{"0":0,"01":0,"02":0,"1":0,"10":0,"104":0,"123":0,"3":0,"4":0,"443":0,"4567":0,"5":0,"7":0,"8":0,"80":0,"case":0,"char":0,"const":0,"default":0,"do":0,"enum":0,"int":0,"new":0,"null":0,"public":0,"return":0,"true":0,"void":0,A:0,For:0,If:0,In:0,It:0,Not:0,The:0,abl:0,abort:0,accept:0,access:0,actual:0,addit:0,after:0,agent:0,aliv:0,all:0,also:0,an:0,ani:0,ar:0,associ:0,authent:0,auto:0,automat:0,becaus:0,been:0,befor:0,begin:0,behavior:0,below:0,binari:0,bool:0,both:0,buffer:0,buffer_s:0,bundl:0,ca:0,ca_stor:0,call:0,callback:0,can:0,cannot:0,cert_len:0,cert_pem:0,certfic:0,certif:0,chain:0,charact:0,check:0,clean:0,cleanli:0,client_cert:0,client_cert_len:0,client_kei:0,client_key_len:0,client_key_pem:0,close:0,cn:0,code:0,command:0,complet:0,conf:0,config:0,connect:0,connectionhandl:0,contain:0,context:0,correspond:0,could:0,count:0,crt_bundle_attach:0,current:0,custom:0,d:0,data_len:0,data_ptr:0,defin:0,depend:0,der:0,destroi:0,directli:0,disabl:0,disable_auto_reconnect:0,disable_pingpong_discon:0,disconnect:0,doe:0,domain:0,download:0,due:0,dure:0,e:0,easi:0,echo:0,enabl:0,encod:0,end:0,environ:0,error:0,esp32:0,esp_crt_bundl:0,esp_crt_bundle_attach:0,esp_err_t:0,esp_event_handler_t:0,esp_websocket_cli:0,esp_websocket_client_clos:0,esp_websocket_client_close_with_cod:0,esp_websocket_client_config_t:0,esp_websocket_client_destroi:0,esp_websocket_client_get_ping_interval_sec:0,esp_websocket_client_handle_t:0,esp_websocket_client_init:0,esp_websocket_client_is_connect:0,esp_websocket_client_send_bin:0,esp_websocket_client_send_text:0,esp_websocket_client_set_ping_interval_sec:0,esp_websocket_client_set_uri:0,esp_websocket_client_start:0,esp_websocket_client_stop:0,esp_websocket_event_data_t:0,esp_websocket_event_id_t:0,esp_websocket_register_ev:0,esp_websocket_transport_t:0,establish:0,event_handl:0,event_handler_arg:0,exce:0,exceed:0,exchang:0,execut:0,extract:0,fail:0,fals:0,field:0,fin:0,first:0,flag:0,follow:0,format:0,found:0,fragment:0,frame:0,free:0,from:0,g:0,get:0,global:0,go:0,good:0,h:0,ha:0,handl:0,handler:0,handler_arg:0,handshak:0,have:0,here:0,host:0,http:0,i:0,id:0,idl:0,if_nam:0,ifreq:0,implement:0,includ:0,indiffer:0,inform:0,initi:0,input:0,instal:0,instanc:0,interfac:0,intermedi:0,interv:0,ip:0,keep:0,keep_alive_count:0,keep_alive_en:0,keep_alive_idl:0,keep_alive_interv:0,kei:0,last:0,layer:0,len:0,length:0,like:0,linux:0,mai:0,matter:0,mbedtl:0,mbedtls_certificate_bundl:0,member:0,menuconfig:0,messag:0,might:0,milisecond:0,millisecond:0,minim:0,more:0,multipl:0,must:0,mutual:0,n:0,name:0,nativ:0,need:0,network:0,network_timeout_m:0,non:0,note:0,now:0,number:0,occur:0,offset:0,old:0,onc:0,one:0,ones:0,op_cod:0,opcod:0,open:0,openssl:0,oper:0,opposit:0,option:0,org:0,other:0,outform:0,over:0,overrid:0,overridden:0,p:0,packag:0,packet:0,paramet:0,pars:0,pass:0,password:0,path:0,payload:0,payload_len:0,payload_offset:0,pem:0,perform:0,period:0,ping:0,ping_interval_sec:0,pingpong_timeout_sec:0,pleas:0,point:0,pointer:0,pong:0,port:0,portion:0,portmax_delai:0,possibl:0,post:0,practic:0,prioriti:0,privat:0,protocol:0,provid:0,queri:0,read:0,readi:0,receiv:0,reconnect:0,reconnect_timeout_m:0,regist:0,relat:0,replac:0,repli:0,request:0,requir:0,resourc:0,respons:0,retri:0,rfc6455:0,root:0,rto:0,s_client:0,same:0,sampl:0,save:0,scheme:0,sec:0,second:0,section:0,sed:0,see:0,sent:0,sequenc:0,server:0,session:0,set:0,setup:0,showcert:0,simpl:0,size:0,size_t:0,skip:0,skip_cert_common_name_check:0,soap:0,ssl:0,stack:0,start:0,state:0,statu:0,stop:0,string:0,struct:0,successfulli:0,support:0,system:0,task:0,task_prio:0,task_stack:0,tcp:0,termin:0,textual:0,thi:0,through:0,tick:0,ticktype_t:0,time:0,timeout:0,total:0,transport:0,typedef:0,uint8_t:0,unavail:0,unknown:0,until:0,url:0,us:0,use_global_ca_stor:0,user:0,user_ag:0,user_context:0,user_data:0,usernam:0,utf:0,valid:0,valu:0,verif:0,verifi:0,wa:0,wai:0,wait:0,want:0,websocket_client_config_t:0,websocket_event_ani:0,websocket_event_clos:0,websocket_event_connect:0,websocket_event_data:0,websocket_event_disconnect:0,websocket_event_error:0,websocket_event_max:0,websocket_org:0,websocket_org_pem_start:0,websocket_transport_over_ssl:0,websocket_transport_over_tcp:0,websocket_transport_unknown:0,well:0,what:0,when:0,which:0,window:0,within:0,without:0,write:0,ws:0,ws_cfg:0,wss:0,x509:0,you:0},titles:["ESP WebSocket Client"],titleterms:{"function":0,api:0,applic:0,client:0,configur:0,data:0,definit:0,enumer:0,esp:0,event:0,exampl:0,featur:0,file:0,header:0,issu:0,known:0,limit:0,overview:0,refer:0,send:0,structur:0,subprotocol:0,text:0,tl:0,type:0,uri:0,websocket:0}}) \ No newline at end of file +Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["ESP WebSocket Client"], "terms": {"The": 0, "an": 0, "implement": 0, "protocol": 0, "esp32": 0, "support": 0, "over": 0, "tcp": 0, "mbedtl": 0, "easi": 0, "setup": 0, "multipl": 0, "instanc": 0, "one": 0, "ws": 0, "wss": 0, "scheme": 0, "sampl": 0, "echo": 0, "org": 0, "default": 0, "port": 0, "80": 0, "ssl": 0, "443": 0, "minim": 0, "const": 0, "esp_websocket_client_config_t": 0, "ws_cfg": 0, "us": 0, "both": 0, "path": 0, "queri": 0, "connectionhandl": 0, "id": 0, "104": 0, "If": 0, "ar": 0, "ani": 0, "option": 0, "relat": 0, "defin": 0, "overridden": 0, "123": 0, "4567": 0, "connect": 0, "cert_pem": 0, "char": 0, "websocket_org_pem_start": 0, "you": 0, "want": 0, "verifi": 0, "server": 0, "need": 0, "provid": 0, "certif": 0, "pem": 0, "format": 0, "websocket_client_config_t": 0, "certfic": 0, "requir": 0, "verif": 0, "thi": 0, "could": 0, "extract": 0, "from": 0, "openssl": 0, "s_client": 0, "command": 0, "In": 0, "case": 0, "host": 0, "oper": 0, "system": 0, "ha": 0, "sed": 0, "packag": 0, "instal": 0, "execut": 0, "follow": 0, "download": 0, "save": 0, "root": 0, "intermedi": 0, "note": 0, "window": 0, "user": 0, "linux": 0, "like": 0, "environ": 0, "nativ": 0, "mai": 0, "showcert": 0, "n": 0, "1": 0, "d": 0, "begin": 0, "end": 0, "p": 0, "x509": 0, "outform": 0, "websocket_org": 0, "second": 0, "chain": 0, "field": 0, "config": 0, "struct": 0, "can": 0, "request": 0, "soap": 0, "indiffer": 0, "respons": 0, "accept": 0, "matter": 0, "what": 0, "repli": 0, "For": 0, "more": 0, "pleas": 0, "below": 0, "websocket_event_connect": 0, "successfulli": 0, "establish": 0, "now": 0, "readi": 0, "receiv": 0, "contain": 0, "websocket_event_disconnect": 0, "abort": 0, "due": 0, "transport": 0, "layer": 0, "fail": 0, "read": 0, "e": 0, "g": 0, "becaus": 0, "unavail": 0, "websocket_event_data": 0, "pars": 0, "frame": 0, "pointer": 0, "payload": 0, "length": 0, "well": 0, "opcod": 0, "A": 0, "messag": 0, "fragment": 0, "exce": 0, "buffer": 0, "size": 0, "also": 0, "post": 0, "non": 0, "pong": 0, "close": 0, "websocket_event_error": 0, "Not": 0, "current": 0, "handl": 0, "handler": 0, "access": 0, "through": 0, "pass": 0, "esp_websocket_client_handle_t": 0, "handler_arg": 0, "abl": 0, "dure": 0, "handshak": 0, "doe": 0, "do": 0, "check": 0, "simpl": 0, "esp_websocket_cli": 0, "found": 0, "here": 0, "which": 0, "inform": 0, "encod": 0, "utf": 0, "8": 0, "esp_websocket_client_send_text": 0, "len": 0, "portmax_delai": 0, "includ": 0, "h": 0, "esp_websocket_client_init": 0, "start": 0, "session": 0, "must": 0, "first": 0, "call": 0, "return": 0, "input": 0, "other": 0, "interfac": 0, "have": 0, "correspond": 0, "esp_websocket_client_destroi": 0, "when": 0, "complet": 0, "paramet": 0, "null": 0, "error": 0, "esp_err_t": 0, "esp_websocket_client_set_uri": 0, "set": 0, "url": 0, "perform": 0, "behavior": 0, "replac": 0, "old": 0, "ones": 0, "stop": 0, "befor": 0, "been": 0, "esp_websocket_client_start": 0, "open": 0, "esp_websocket_client_stop": 0, "without": 0, "directli": 0, "It": 0, "good": 0, "practic": 0, "clean": 0, "wai": 0, "esp_websocket_client_clos": 0, "cannot": 0, "destroi": 0, "free": 0, "all": 0, "resourc": 0, "last": 0, "opposit": 0, "same": 0, "might": 0, "int": 0, "esp_websocket_client_send_bin": 0, "ticktype_t": 0, "timeout": 0, "write": 0, "binari": 0, "02": 0, "i": 0, "rto": 0, "tick": 0, "number": 0, "wa": 0, "sent": 0, "textual": 0, "01": 0, "sequenc": 0, "initi": 0, "wait": 0, "until": 0, "esp_websocket_client_close_with_cod": 0, "code": 0, "custom": 0, "statu": 0, "rfc6455": 0, "section": 0, "7": 0, "4": 0, "addit": 0, "bool": 0, "esp_websocket_client_is_connect": 0, "state": 0, "true": 0, "fals": 0, "size_t": 0, "esp_websocket_client_get_ping_interval_sec": 0, "get": 0, "ping": 0, "interv": 0, "sec": 0, "esp_websocket_client_set_ping_interval_sec": 0, "ping_interval_sec": 0, "new": 0, "esp_websocket_register_ev": 0, "esp_websocket_event_id_t": 0, "esp_event_handler_t": 0, "event_handl": 0, "void": 0, "event_handler_arg": 0, "regist": 0, "callback": 0, "context": 0, "esp_websocket_event_data_t": 0, "public": 0, "member": 0, "data_ptr": 0, "data_len": 0, "fin": 0, "flag": 0, "uint8_t": 0, "op_cod": 0, "user_context": 0, "user_data": 0, "payload_len": 0, "total": 0, "exceed": 0, "payload_offset": 0, "actual": 0, "offset": 0, "associ": 0, "overrid": 0, "domain": 0, "ip": 0, "string": 0, "depend": 0, "esp_websocket_transport_t": 0, "usernam": 0, "http": 0, "authent": 0, "password": 0, "disable_auto_reconnect": 0, "disabl": 0, "automat": 0, "reconnect": 0, "disconnect": 0, "task_prio": 0, "task": 0, "prioriti": 0, "task_stack": 0, "stack": 0, "buffer_s": 0, "der": 0, "termin": 0, "charact": 0, "cert_len": 0, "point": 0, "0": 0, "client_cert": 0, "mutual": 0, "client_kei": 0, "client_cert_len": 0, "privat": 0, "kei": 0, "client_key_len": 0, "client_key_pem": 0, "see": 0, "user_ag": 0, "agent": 0, "pingpong_timeout_sec": 0, "period": 0, "disable_pingpong_discon": 0, "auto": 0, "within": 0, "use_global_ca_stor": 0, "global": 0, "ca_stor": 0, "crt_bundle_attach": 0, "conf": 0, "esp_crt_bundle_attach": 0, "enabl": 0, "bundl": 0, "mbedtls_certificate_bundl": 0, "menuconfig": 0, "esp_crt_bundl": 0, "ca": 0, "skip_cert_common_name_check": 0, "skip": 0, "valid": 0, "cn": 0, "keep_alive_en": 0, "keep": 0, "aliv": 0, "keep_alive_idl": 0, "idl": 0, "time": 0, "5": 0, "keep_alive_interv": 0, "keep_alive_count": 0, "packet": 0, "retri": 0, "count": 0, "3": 0, "reconnect_timeout_m": 0, "after": 0, "valu": 0, "milisecond": 0, "10": 0, "network_timeout_m": 0, "network": 0, "millisecond": 0, "ifreq": 0, "if_nam": 0, "name": 0, "go": 0, "typedef": 0, "enum": 0, "websocket_event_ani": 0, "occur": 0, "onc": 0, "exchang": 0, "possibl": 0, "portion": 0, "websocket_event_clos": 0, "cleanli": 0, "websocket_event_max": 0, "websocket_transport_unknown": 0, "unknown": 0, "websocket_transport_over_tcp": 0, "websocket_transport_over_ssl": 0}, "objects": {"": [[0, 0, 1, "_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_ANYE", "WEBSOCKET_EVENT_ANY"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t22WEBSOCKET_EVENT_CLOSEDE", "WEBSOCKET_EVENT_CLOSED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t25WEBSOCKET_EVENT_CONNECTEDE", "WEBSOCKET_EVENT_CONNECTED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t20WEBSOCKET_EVENT_DATAE", "WEBSOCKET_EVENT_DATA"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t28WEBSOCKET_EVENT_DISCONNECTEDE", "WEBSOCKET_EVENT_DISCONNECTED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t21WEBSOCKET_EVENT_ERRORE", "WEBSOCKET_EVENT_ERROR"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_MAXE", "WEBSOCKET_EVENT_MAX"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_SSLE", "WEBSOCKET_TRANSPORT_OVER_SSL"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_TCPE", "WEBSOCKET_TRANSPORT_OVER_TCP"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t27WEBSOCKET_TRANSPORT_UNKNOWNE", "WEBSOCKET_TRANSPORT_UNKNOWN"], [0, 1, 1, "_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t", "esp_websocket_client_close"], [0, 2, 1, "_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t", "esp_websocket_client_close::client"], [0, 2, 1, "_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t", "esp_websocket_client_close::timeout"], [0, 1, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::client"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::code"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::data"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::len"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::timeout"], [0, 3, 1, "_CPPv429esp_websocket_client_config_t", "esp_websocket_client_config_t"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t11buffer_sizeE", "esp_websocket_client_config_t::buffer_size"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t8cert_lenE", "esp_websocket_client_config_t::cert_len"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t8cert_pemE", "esp_websocket_client_config_t::cert_pem"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t11client_certE", "esp_websocket_client_config_t::client_cert"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t15client_cert_lenE", "esp_websocket_client_config_t::client_cert_len"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t10client_keyE", "esp_websocket_client_config_t::client_key"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t14client_key_lenE", "esp_websocket_client_config_t::client_key_len"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t17crt_bundle_attachE", "esp_websocket_client_config_t::crt_bundle_attach"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t22disable_auto_reconnectE", "esp_websocket_client_config_t::disable_auto_reconnect"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t23disable_pingpong_disconE", "esp_websocket_client_config_t::disable_pingpong_discon"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t7headersE", "esp_websocket_client_config_t::headers"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t4hostE", "esp_websocket_client_config_t::host"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t7if_nameE", "esp_websocket_client_config_t::if_name"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t16keep_alive_countE", "esp_websocket_client_config_t::keep_alive_count"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t17keep_alive_enableE", "esp_websocket_client_config_t::keep_alive_enable"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t15keep_alive_idleE", "esp_websocket_client_config_t::keep_alive_idle"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t19keep_alive_intervalE", "esp_websocket_client_config_t::keep_alive_interval"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t18network_timeout_msE", "esp_websocket_client_config_t::network_timeout_ms"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t8passwordE", "esp_websocket_client_config_t::password"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t4pathE", "esp_websocket_client_config_t::path"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t17ping_interval_secE", "esp_websocket_client_config_t::ping_interval_sec"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t20pingpong_timeout_secE", "esp_websocket_client_config_t::pingpong_timeout_sec"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t4portE", "esp_websocket_client_config_t::port"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t20reconnect_timeout_msE", "esp_websocket_client_config_t::reconnect_timeout_ms"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t27skip_cert_common_name_checkE", "esp_websocket_client_config_t::skip_cert_common_name_check"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t11subprotocolE", "esp_websocket_client_config_t::subprotocol"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t9task_prioE", "esp_websocket_client_config_t::task_prio"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t10task_stackE", "esp_websocket_client_config_t::task_stack"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t9transportE", "esp_websocket_client_config_t::transport"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t3uriE", "esp_websocket_client_config_t::uri"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t19use_global_ca_storeE", "esp_websocket_client_config_t::use_global_ca_store"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t10user_agentE", "esp_websocket_client_config_t::user_agent"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t12user_contextE", "esp_websocket_client_config_t::user_context"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t8usernameE", "esp_websocket_client_config_t::username"], [0, 1, 1, "_CPPv428esp_websocket_client_destroy29esp_websocket_client_handle_t", "esp_websocket_client_destroy"], [0, 2, 1, "_CPPv428esp_websocket_client_destroy29esp_websocket_client_handle_t", "esp_websocket_client_destroy::client"], [0, 1, 1, "_CPPv442esp_websocket_client_get_ping_interval_sec29esp_websocket_client_handle_t", "esp_websocket_client_get_ping_interval_sec"], [0, 2, 1, "_CPPv442esp_websocket_client_get_ping_interval_sec29esp_websocket_client_handle_t", "esp_websocket_client_get_ping_interval_sec::client"], [0, 5, 1, "_CPPv429esp_websocket_client_handle_t", "esp_websocket_client_handle_t"], [0, 1, 1, "_CPPv425esp_websocket_client_initPK29esp_websocket_client_config_t", "esp_websocket_client_init"], [0, 2, 1, "_CPPv425esp_websocket_client_initPK29esp_websocket_client_config_t", "esp_websocket_client_init::config"], [0, 1, 1, "_CPPv433esp_websocket_client_is_connected29esp_websocket_client_handle_t", "esp_websocket_client_is_connected"], [0, 2, 1, "_CPPv433esp_websocket_client_is_connected29esp_websocket_client_handle_t", "esp_websocket_client_is_connected::client"], [0, 1, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin"], [0, 2, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin::client"], [0, 2, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin::data"], [0, 2, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin::len"], [0, 2, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin::timeout"], [0, 1, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text"], [0, 2, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text::client"], [0, 2, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text::data"], [0, 2, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text::len"], [0, 2, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text::timeout"], [0, 1, 1, "_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t", "esp_websocket_client_set_ping_interval_sec"], [0, 2, 1, "_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t", "esp_websocket_client_set_ping_interval_sec::client"], [0, 2, 1, "_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t", "esp_websocket_client_set_ping_interval_sec::ping_interval_sec"], [0, 1, 1, "_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc", "esp_websocket_client_set_uri"], [0, 2, 1, "_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc", "esp_websocket_client_set_uri::client"], [0, 2, 1, "_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc", "esp_websocket_client_set_uri::uri"], [0, 1, 1, "_CPPv426esp_websocket_client_start29esp_websocket_client_handle_t", "esp_websocket_client_start"], [0, 2, 1, "_CPPv426esp_websocket_client_start29esp_websocket_client_handle_t", "esp_websocket_client_start::client"], [0, 1, 1, "_CPPv425esp_websocket_client_stop29esp_websocket_client_handle_t", "esp_websocket_client_stop"], [0, 2, 1, "_CPPv425esp_websocket_client_stop29esp_websocket_client_handle_t", "esp_websocket_client_stop::client"], [0, 3, 1, "_CPPv426esp_websocket_event_data_t", "esp_websocket_event_data_t"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t6clientE", "esp_websocket_event_data_t::client"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t8data_lenE", "esp_websocket_event_data_t::data_len"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t8data_ptrE", "esp_websocket_event_data_t::data_ptr"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t3finE", "esp_websocket_event_data_t::fin"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t7op_codeE", "esp_websocket_event_data_t::op_code"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t11payload_lenE", "esp_websocket_event_data_t::payload_len"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t14payload_offsetE", "esp_websocket_event_data_t::payload_offset"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t12user_contextE", "esp_websocket_event_data_t::user_context"], [0, 6, 1, "_CPPv424esp_websocket_event_id_t", "esp_websocket_event_id_t"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_ANYE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_ANY"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t22WEBSOCKET_EVENT_CLOSEDE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_CLOSED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t25WEBSOCKET_EVENT_CONNECTEDE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_CONNECTED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t20WEBSOCKET_EVENT_DATAE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_DATA"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t28WEBSOCKET_EVENT_DISCONNECTEDE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_DISCONNECTED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t21WEBSOCKET_EVENT_ERRORE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_ERROR"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_MAXE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_MAX"], [0, 1, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events"], [0, 2, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events::client"], [0, 2, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events::event"], [0, 2, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events::event_handler"], [0, 2, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events::event_handler_arg"], [0, 6, 1, "_CPPv425esp_websocket_transport_t", "esp_websocket_transport_t"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_SSLE", "esp_websocket_transport_t::WEBSOCKET_TRANSPORT_OVER_SSL"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_TCPE", "esp_websocket_transport_t::WEBSOCKET_TRANSPORT_OVER_TCP"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t27WEBSOCKET_TRANSPORT_UNKNOWNE", "esp_websocket_transport_t::WEBSOCKET_TRANSPORT_UNKNOWN"]]}, "objtypes": {"0": "cpp:enumerator", "1": "cpp:function", "2": "cpp:functionParam", "3": "cpp:class", "4": "cpp:member", "5": "cpp:type", "6": "cpp:enum"}, "objnames": {"0": ["cpp", "enumerator", "C++ enumerator"], "1": ["cpp", "function", "C++ function"], "2": ["cpp", "functionParam", "C++ function parameter"], "3": ["cpp", "class", "C++ class"], "4": ["cpp", "member", "C++ member"], "5": ["cpp", "type", "C++ type"], "6": ["cpp", "enum", "C++ enum"]}, "titleterms": {"esp": 0, "websocket": 0, "client": 0, "overview": 0, "featur": 0, "configur": 0, "uri": 0, "tl": 0, "subprotocol": 0, "event": 0, "limit": 0, "known": 0, "issu": 0, "applic": 0, "exampl": 0, "send": 0, "text": 0, "data": 0, "api": 0, "refer": 0, "header": 0, "file": 0, "function": 0, "structur": 0, "type": 0, "definit": 0, "enumer": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/mdns/en/.buildinfo b/mdns/en/.buildinfo index 08dce652d..d74bd2f71 100644 --- a/mdns/en/.buildinfo +++ b/mdns/en/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 80257b94e91c0165381d514b2681b3e8 +config: 7469a449e7452fe86dc92420b963a655 tags: 549b3d6d0415232fb7e35403b330ff49 diff --git a/mdns/en/_static/_sphinx_javascript_frameworks_compat.js b/mdns/en/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..8549469dc --- /dev/null +++ b/mdns/en/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.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": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/mdns/en/_static/basic.css b/mdns/en/_static/basic.css index bf18350b6..088967717 100644 --- a/mdns/en/_static/basic.css +++ b/mdns/en/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,12 +324,16 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; @@ -379,6 +373,9 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +383,9 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +428,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +611,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +629,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/mdns/en/_static/doctools.js b/mdns/en/_static/doctools.js index e1bfd708b..c3db08d1c 100644 --- a/mdns/en/_static/doctools.js +++ b/mdns/en/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +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))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.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": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + 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 (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +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. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // 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( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/mdns/en/_static/documentation_options.js b/mdns/en/_static/documentation_options.js index f8d32270a..f6bd60d98 100644 --- a/mdns/en/_static/documentation_options.js +++ b/mdns/en/_static/documentation_options.js @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/mdns/en/_static/jquery-3.5.1.js b/mdns/en/_static/jquery-3.6.0.js similarity index 98% rename from mdns/en/_static/jquery-3.5.1.js rename to mdns/en/_static/jquery-3.6.0.js index 50937333b..fc6c299b7 100644 --- a/mdns/en/_static/jquery-3.5.1.js +++ b/mdns/en/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/mdns/en/_static/jquery.js b/mdns/en/_static/jquery.js index b0614034a..c4c6022f2 100644 --- a/mdns/en/_static/jquery.js +++ b/mdns/en/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // 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 + 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, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +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, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + 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 = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + 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 = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * 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 */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - var virtualDocument = document.implementation.createHTMLDocument('virtual'); - var htmlElement = $(htmlString, virtualDocument); - htmlElement.find('.headerlink').remove(); - docContent = htmlElement.find('[role=main]')[0]; - if(docContent === undefined) { - console.warn("Content block not found. Sphinx search tries to obtain it " + - "via '[role=main]'. Could you check your theme or template."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + 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 : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + 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 : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

      ' + _('Searching') + '

      ').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

       

      ').appendTo(this.out); - this.output = $('
      diff --git a/mdns/en/index.html b/mdns/en/index.html index 011917780..bcce3fb5c 100644 --- a/mdns/en/index.html +++ b/mdns/en/index.html @@ -16,6 +16,7 @@ + @@ -113,7 +114,7 @@
    • »
    • mDNS Service
    • - Edit on GitHub + Edit on GitHub

    • @@ -122,14 +123,14 @@
      -

      mDNS Service

      +

      mDNS Service

      [中文]

      -

      Overview

      +

      Overview

      mDNS is a multicast UDP service that is used to provide local network service and host discovery.

      mDNS is installed by default on most operating systems or is available as separate package. On Mac OS it is installed by default and is called Bonjour. Apple releases an installer for Windows that can be found on Apple’s support page. On Linux, mDNS is provided by avahi and is usually installed by default.

      -

      mDNS Properties

      +

      mDNS Properties

      • hostname: the hostname that the device will respond to. If not set, the hostname will be read from the interface. Example: my-esp32 will resolve to my-esp32.local

      • @@ -155,7 +156,7 @@
      -

      mDNS Services

      +

      mDNS Services

      mDNS can advertise information about network services that your device offers. Each service is defined by a few properties.

        @@ -193,7 +194,7 @@
      -

      mDNS Query

      +

      mDNS Query

      mDNS provides methods for browsing for services and resolving host’s IP/IPv6 addresses.

      Results for services are returned as a linked list of mdns_result_t objects.

      Example method to resolve host IPs:

      @@ -295,10 +296,10 @@
      -

      Performance Optimization

      +

      Performance Optimization

      -

      Execution Speed

      +

      Execution Speed

      • mDNS creates a task with default low priority 1 CONFIG_MDNS_TASK_PRIORITY (If CONFIG_FREERTOS_UNICORE enabeled it pinned to CPU0 (CONFIG_MDNS_TASK_AFFINITY).

      • @@ -307,7 +308,7 @@
      -

      Minimizing RAM Usage

      +

      Minimizing RAM Usage

      • mDNS creates a tasks with stack sizes configured by CONFIG_MDNS_TASK_STACK_SIZE.

      @@ -315,19 +316,19 @@
      -

      Application Example

      -

      mDNS server/scanner example: .

      +

      Application Example

      +

      mDNS server/scanner example: .

      -

      API Reference

      +

      API Reference

      -

      Header File

      +

      Header File

      -

      Functions

      +

      Functions

      esp_err_t mdns_init(void)
      @@ -1270,7 +1271,7 @@
      -

      Structures

      +

      Structures

      struct mdns_txt_item_t
      @@ -1402,7 +1403,7 @@
      -

      Macros

      +

      Macros

      MDNS_TYPE_A
      @@ -1445,7 +1446,7 @@
      -

      Type Definitions

      +

      Type Definitions

      typedef struct mdns_search_once_s mdns_search_once_t
      @@ -1471,7 +1472,7 @@
      -

      Enumerations

      +

      Enumerations

      enum mdns_event_actions_t
      diff --git a/mdns/en/search.html b/mdns/en/search.html index 04d02cf3e..c8e0a42d3 100644 --- a/mdns/en/search.html +++ b/mdns/en/search.html @@ -16,6 +16,7 @@ + diff --git a/mdns/en/searchindex.js b/mdns/en/searchindex.js index 5766804bd..48f820f99 100644 --- a/mdns/en/searchindex.js +++ b/mdns/en/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst"],objects:{"":[[0,0,1,"c.MDNS_TYPE_A","MDNS_TYPE_A"],[0,0,1,"c.MDNS_TYPE_AAAA","MDNS_TYPE_AAAA"],[0,0,1,"c.MDNS_TYPE_ANY","MDNS_TYPE_ANY"],[0,0,1,"c.MDNS_TYPE_NSEC","MDNS_TYPE_NSEC"],[0,0,1,"c.MDNS_TYPE_OPT","MDNS_TYPE_OPT"],[0,0,1,"c.MDNS_TYPE_PTR","MDNS_TYPE_PTR"],[0,0,1,"c.MDNS_TYPE_SRV","MDNS_TYPE_SRV"],[0,0,1,"c.MDNS_TYPE_TXT","MDNS_TYPE_TXT"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E","MDNS_EVENT_ANNOUNCE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E","MDNS_EVENT_ANNOUNCE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E","MDNS_EVENT_DISABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E","MDNS_EVENT_DISABLE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E","MDNS_EVENT_ENABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E","MDNS_EVENT_ENABLE_IP6"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE","MDNS_IP_PROTOCOL_MAX"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E","MDNS_IP_PROTOCOL_V4"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E","MDNS_IP_PROTOCOL_V6"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE","MDNS_QUERY_MULTICAST"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE","MDNS_QUERY_UNICAST"],[0,2,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add"],[0,3,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add::address_list"],[0,3,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add::hostname"],[0,2,1,"_CPPv429mdns_delegate_hostname_removePKc","mdns_delegate_hostname_remove"],[0,3,1,"_CPPv429mdns_delegate_hostname_removePKc","mdns_delegate_hostname_remove::hostname"],[0,4,1,"_CPPv420mdns_event_actions_t","mdns_event_actions_t"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E","mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E","mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E","mdns_event_actions_t::MDNS_EVENT_DISABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E","mdns_event_actions_t::MDNS_EVENT_DISABLE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E","mdns_event_actions_t::MDNS_EVENT_ENABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E","mdns_event_actions_t::MDNS_EVENT_ENABLE_IP6"],[0,2,1,"_CPPv49mdns_freev","mdns_free"],[0,2,1,"_CPPv420mdns_hostname_existsPKc","mdns_hostname_exists"],[0,3,1,"_CPPv420mdns_hostname_existsPKc","mdns_hostname_exists::hostname"],[0,2,1,"_CPPv417mdns_hostname_setPKc","mdns_hostname_set"],[0,3,1,"_CPPv417mdns_hostname_setPKc","mdns_hostname_set::hostname"],[0,2,1,"_CPPv49mdns_initv","mdns_init"],[0,2,1,"_CPPv422mdns_instance_name_setPKc","mdns_instance_name_set"],[0,3,1,"_CPPv422mdns_instance_name_setPKc","mdns_instance_name_set::instance_name"],[0,5,1,"_CPPv414mdns_ip_addr_s","mdns_ip_addr_s"],[0,6,1,"_CPPv4N14mdns_ip_addr_s4addrE","mdns_ip_addr_s::addr"],[0,6,1,"_CPPv4N14mdns_ip_addr_s4nextE","mdns_ip_addr_s::next"],[0,7,1,"_CPPv414mdns_ip_addr_t","mdns_ip_addr_t"],[0,4,1,"_CPPv418mdns_ip_protocol_t","mdns_ip_protocol_t"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_MAX"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V4"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V6"],[0,2,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action"],[0,3,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action::esp_netif"],[0,3,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action::event_action"],[0,2,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::max_results"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::name"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::proto"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::results"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::service_type"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::timeout"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::type"],[0,2,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::addr"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::host_name"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::timeout"],[0,2,1,"_CPPv423mdns_query_async_deleteP18mdns_search_once_t","mdns_query_async_delete"],[0,3,1,"_CPPv423mdns_query_async_deleteP18mdns_search_once_t","mdns_query_async_delete::search"],[0,2,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::num_results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::search"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::timeout"],[0,2,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::max_results"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::name"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::notifier"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::proto"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::service_type"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::timeout"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::type"],[0,2,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::max_results"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::name"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::proto"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::results"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::service_type"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::timeout"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::transmission_type"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::type"],[0,7,1,"_CPPv419mdns_query_notify_t","mdns_query_notify_t"],[0,2,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::max_results"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::proto"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::results"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::service_type"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::timeout"],[0,2,1,"_CPPv423mdns_query_results_freeP13mdns_result_t","mdns_query_results_free"],[0,3,1,"_CPPv423mdns_query_results_freeP13mdns_result_t","mdns_query_results_free::results"],[0,2,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::instance_name"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::proto"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::result"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::service_type"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::timeout"],[0,4,1,"_CPPv430mdns_query_transmission_type_t","mdns_query_transmission_type_t"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE","mdns_query_transmission_type_t::MDNS_QUERY_MULTICAST"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE","mdns_query_transmission_type_t::MDNS_QUERY_UNICAST"],[0,2,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::instance_name"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::proto"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::result"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::service_type"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::timeout"],[0,2,1,"_CPPv419mdns_register_netifP11esp_netif_t","mdns_register_netif"],[0,3,1,"_CPPv419mdns_register_netifP11esp_netif_t","mdns_register_netif::esp_netif"],[0,5,1,"_CPPv413mdns_result_s","mdns_result_s"],[0,6,1,"_CPPv4N13mdns_result_s4addrE","mdns_result_s::addr"],[0,6,1,"_CPPv4N13mdns_result_s9esp_netifE","mdns_result_s::esp_netif"],[0,6,1,"_CPPv4N13mdns_result_s8hostnameE","mdns_result_s::hostname"],[0,6,1,"_CPPv4N13mdns_result_s13instance_nameE","mdns_result_s::instance_name"],[0,6,1,"_CPPv4N13mdns_result_s11ip_protocolE","mdns_result_s::ip_protocol"],[0,6,1,"_CPPv4N13mdns_result_s4nextE","mdns_result_s::next"],[0,6,1,"_CPPv4N13mdns_result_s4portE","mdns_result_s::port"],[0,6,1,"_CPPv4N13mdns_result_s5protoE","mdns_result_s::proto"],[0,6,1,"_CPPv4N13mdns_result_s12service_typeE","mdns_result_s::service_type"],[0,6,1,"_CPPv4N13mdns_result_s3ttlE","mdns_result_s::ttl"],[0,6,1,"_CPPv4N13mdns_result_s3txtE","mdns_result_s::txt"],[0,6,1,"_CPPv4N13mdns_result_s9txt_countE","mdns_result_s::txt_count"],[0,6,1,"_CPPv4N13mdns_result_s13txt_value_lenE","mdns_result_s::txt_value_len"],[0,7,1,"_CPPv413mdns_result_t","mdns_result_t"],[0,7,1,"_CPPv418mdns_search_once_t","mdns_search_once_t"],[0,2,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::instance_name"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::num_items"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::port"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::proto"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::service_type"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::txt"],[0,2,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::hostname"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::instance_name"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::num_items"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::port"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::proto"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::service_type"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::txt"],[0,2,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::hostname"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::proto"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::service_type"],[0,2,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::hostname"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::instance"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::proto"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::service_type"],[0,2,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::instance_name"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::proto"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::service_type"],[0,2,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::hostname"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::instance_name"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::instance_old"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::proto"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::service_type"],[0,2,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::port"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::proto"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::service_type"],[0,2,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::hostname"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::instance"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::port"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::proto"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::service_type"],[0,2,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove"],[0,3,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove::proto"],[0,3,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove::service_type"],[0,2,1,"_CPPv423mdns_service_remove_allv","mdns_service_remove_all"],[0,2,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::hostname"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::instance"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::proto"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::service_type"],[0,2,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::hostname"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::instance_name"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::proto"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::service_type"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::subtype"],[0,2,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::key"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::proto"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::service_type"],[0,2,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::hostname"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::instance"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::key"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::proto"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::service_type"],[0,2,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::key"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::proto"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::service_type"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::value"],[0,2,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::hostname"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::instance"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::key"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::proto"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::service_type"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::value"],[0,2,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::hostname"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::instance"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::key"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::proto"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::service_type"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::value"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::value_len"],[0,2,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::key"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::proto"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::service_type"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::value"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::value_len"],[0,2,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::num_items"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::proto"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::service_type"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::txt"],[0,2,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::hostname"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::instance"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::num_items"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::proto"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::service_type"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::txt"],[0,5,1,"_CPPv415mdns_txt_item_t","mdns_txt_item_t"],[0,6,1,"_CPPv4N15mdns_txt_item_t3keyE","mdns_txt_item_t::key"],[0,6,1,"_CPPv4N15mdns_txt_item_t5valueE","mdns_txt_item_t::value"],[0,2,1,"_CPPv421mdns_unregister_netifP11esp_netif_t","mdns_unregister_netif"],[0,3,1,"_CPPv421mdns_unregister_netifP11esp_netif_t","mdns_unregister_netif::esp_netif"]]},objnames:{"0":["c","macro","C macro"],"1":["cpp","enumerator","C++ enumerator"],"2":["cpp","function","C++ function"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enum","C++ enum"],"5":["cpp","class","C++ class"],"6":["cpp","member","C++ member"],"7":["cpp","type","C++ type"]},objtypes:{"0":"c:macro","1":"cpp:enumerator","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enum","5":"cpp:class","6":"cpp:member","7":"cpp:type"},terms:{"0":0,"1":0,"1234":0,"2":0,"20":0,"2000":0,"3":0,"3000":0,"3232":0,"4321":0,"80":0,"\u4e2d\u6587":0,"char":0,"const":0,"default":0,"enum":0,"int":0,"new":0,"null":0,"public":0,"return":0,"static":0,"true":0,"var":0,"void":0,"while":0,A:0,If:0,No:0,On:0,The:0,_afpovertcp:0,_arduino:0,_ftp:0,_http:0,_ipp:0,_myservic:0,_nf:0,_printer:0,_smb:0,_tcp:0,_udp:0,aaaa:0,about:0,abov:0,action:0,activ:0,actual:0,ad:0,add:0,add_mdns_servic:0,addr:0,address:0,address_list:0,advertis:0,after:0,all:0,alreadi:0,also:0,although:0,an:0,ani:0,announc:0,answer:0,ap:0,appl:0,ar:0,arrai:0,asynchron:0,asynchronous:0,automat:0,avahi:0,avail:0,basic:0,been:0,befor:0,below:0,board:0,bonjour:0,bool:0,brows:0,bye:0,call:0,can:0,chang:0,check:0,collect:0,common:0,config:0,config_freertos_unicor:0,config_mdns_max_interfac:0,config_mdns_task_affin:0,config_mdns_task_prior:0,config_mdns_task_stack_s:0,configur:0,conflict:0,connect:0,correspond:0,could:0,cpu0:0,creat:0,current:0,custom:0,d:0,data:0,decid:0,default_inst:0,defin:0,deleg:0,delet:0,deriv:0,desir:0,detail:0,devic:0,differ:0,disabl:0,disconnect:0,discoveri:0,driver:0,dure:0,each:0,eesp32:0,eg:0,either:0,els:0,enabel:0,enabl:0,end:0,enough:0,err:0,error:0,esp32:0,esp:0,esp_err_invalid_arg:0,esp_err_invalid_st:0,esp_err_no_mem:0,esp_err_not_found:0,esp_err_t:0,esp_fail:0,esp_ip4_addr_t:0,esp_ip_addr_t:0,esp_log:0,esp_logw:0,esp_netif:0,esp_netif_t:0,esp_ok:0,etc:0,eth:0,ethernet:0,event:0,event_act:0,explicitli:0,fail:0,fals:0,few:0,find:0,find_mdns_servic:0,finish:0,first:0,follow:0,found:0,free:0,freed:0,friendli:0,from:0,ftp:0,gener:0,get:0,given:0,global:0,h:0,ha:0,handl:0,handler:0,have:0,here:0,host:0,host_nam:0,hostnam:0,http:0,i:0,if_str:0,ignor:0,includ:0,inform:0,init:0,initi:0,instal:0,instanc:0,instance_nam:0,instance_old:0,interfac:0,ip2str:0,ip4:0,ip4_addr:0,ip6:0,ip:0,ip_protocol:0,ip_protocol_str:0,ipaddr_type_v6:0,ipstr:0,ipv4:0,ipv62str:0,ipv6:0,ipv6str:0,item:0,jhon:0,kei:0,kind:0,last:0,len:0,length:0,like:0,link:0,linux:0,list:0,live:0,local:0,look:0,low:0,mac:0,manual:0,max:0,max_result:0,maxim:0,maximum:0,mdns_delegate_hostname_add:0,mdns_delegate_hostname_remov:0,mdns_event_actions_t:0,mdns_event_announce_ip4:0,mdns_event_announce_ip6:0,mdns_event_disable_ip4:0,mdns_event_disable_ip6:0,mdns_event_enable_ip4:0,mdns_event_enable_ip6:0,mdns_free:0,mdns_hostname_exist:0,mdns_hostname_set:0,mdns_init:0,mdns_instance_name_set:0,mdns_ip_addr_:0,mdns_ip_addr_t:0,mdns_ip_protocol_max:0,mdns_ip_protocol_t:0,mdns_ip_protocol_v4:0,mdns_ip_protocol_v6:0,mdns_multiple_inst:0,mdns_netif_act:0,mdns_print_result:0,mdns_queri:0,mdns_query_a:0,mdns_query_async_delet:0,mdns_query_async_get_result:0,mdns_query_async_new:0,mdns_query_gener:0,mdns_query_multicast:0,mdns_query_notify_t:0,mdns_query_ptr:0,mdns_query_results_fre:0,mdns_query_srv:0,mdns_query_transmission_type_t:0,mdns_query_txt:0,mdns_query_unicast:0,mdns_register_netif:0,mdns_result_:0,mdns_result_t:0,mdns_search_once_:0,mdns_search_once_t:0,mdns_service_add:0,mdns_service_add_for_host:0,mdns_service_exist:0,mdns_service_exists_with_inst:0,mdns_service_instance_name_set:0,mdns_service_instance_name_set_for_host:0,mdns_service_port_set:0,mdns_service_port_set_for_host:0,mdns_service_remov:0,mdns_service_remove_al:0,mdns_service_remove_for_host:0,mdns_service_subtype_add_for_host:0,mdns_service_txt_item_remov:0,mdns_service_txt_item_remove_for_host:0,mdns_service_txt_item_set:0,mdns_service_txt_item_set_for_host:0,mdns_service_txt_item_set_for_host_with_explicit_value_len:0,mdns_service_txt_item_set_with_explicit_value_len:0,mdns_service_txt_set:0,mdns_service_txt_set_for_host:0,mdns_txt_item_t:0,mdns_type_:0,mdns_type_a:0,mdns_type_aaaa:0,mdns_type_ani:0,mdns_type_nsec:0,mdns_type_opt:0,mdns_type_ptr:0,mdns_type_srv:0,mdns_type_txt:0,mdns_unregister_netif:0,member:0,memori:0,method:0,millisecond:0,more:0,most:0,multicast:0,multipl:0,must:0,my:0,my_app_some_method:0,n:0,name:0,need:0,netif:0,network:0,next:0,nf:0,note:0,notif:0,notifi:0,num_item:0,num_result:0,number:0,object:0,offer:0,onc:0,one:0,onli:0,oper:0,option:0,origin:0,os:0,other:0,otherwis:0,our:0,output:0,over:0,p:0,packag:0,packet:0,page:0,paramet:0,password:0,pin:0,pleas:0,pointer:0,port:0,preconfigur:0,prepend:0,printer:0,printf:0,prioriti:0,probe:0,progress:0,proto:0,protocol:0,provid:0,ptr:0,r:0,read:0,readi:0,record:0,regist:0,releas:0,remov:0,replac:0,repli:0,requir:0,resolv:0,resolve_mdns_host:0,respond:0,result:0,run:0,s:0,same:0,scanner:0,search:0,see:0,send:0,separ:0,server:0,service_nam:0,service_typ:0,servicetxtdata:0,set:0,share:0,size:0,size_t:0,some:0,specif:0,specifi:0,srevic:0,srv:0,sta:0,stack:0,standard:0,start:0,start_mdns_servic:0,state:0,stop:0,string:0,strlen:0,struct:0,subtyp:0,success:0,successfulli:0,support:0,system:0,t:0,tag:0,task:0,tcpip_if:0,test:0,text:0,them:0,thi:0,thing:0,time:0,timeout:0,transmission_typ:0,ttl:0,txt:0,txt_count:0,txt_value_len:0,typedef:0,u:0,u_addr:0,udp:0,uint16_t:0,uint32_t:0,uint8_t:0,underscor:0,unicast:0,unregist:0,updat:0,us:0,user:0,usual:0,v4:0,v6:0,val:0,valu:0,value_len:0,via:0,wa:0,wait:0,want:0,web:0,when:0,whether:0,which:0,wifi:0,window:0,you:0,your:0},titles:["mDNS Service"],titleterms:{"function":0,api:0,applic:0,definit:0,enumer:0,exampl:0,execut:0,file:0,header:0,macro:0,mdn:0,minim:0,optim:0,overview:0,perform:0,properti:0,queri:0,ram:0,refer:0,servic:0,speed:0,structur:0,type:0,usag:0}}) \ No newline at end of file +Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["mDNS Service"], "terms": {"\u4e2d\u6587": 0, "multicast": 0, "udp": 0, "us": 0, "provid": 0, "local": 0, "network": 0, "host": 0, "discoveri": 0, "instal": 0, "default": 0, "most": 0, "oper": 0, "system": 0, "avail": 0, "separ": 0, "packag": 0, "On": 0, "mac": 0, "os": 0, "call": 0, "bonjour": 0, "appl": 0, "releas": 0, "an": 0, "window": 0, "can": 0, "found": 0, "s": 0, "support": 0, "page": 0, "linux": 0, "avahi": 0, "usual": 0, "hostnam": 0, "devic": 0, "respond": 0, "If": 0, "set": 0, "read": 0, "from": 0, "interfac": 0, "my": 0, "esp32": 0, "resolv": 0, "default_inst": 0, "friendli": 0, "name": 0, "your": 0, "like": 0, "jhon": 0, "thing": 0, "method": 0, "start": 0, "sta": 0, "void": 0, "start_mdns_servic": 0, "initi": 0, "esp_err_t": 0, "err": 0, "mdns_init": 0, "printf": 0, "init": 0, "fail": 0, "d": 0, "n": 0, "return": 0, "mdns_hostname_set": 0, "instanc": 0, "mdns_instance_name_set": 0, "advertis": 0, "inform": 0, "about": 0, "offer": 0, "each": 0, "defin": 0, "few": 0, "instance_nam": 0, "eesp32": 0, "web": 0, "server": 0, "service_typ": 0, "requir": 0, "prepend": 0, "underscor": 0, "some": 0, "common": 0, "here": 0, "proto": 0, "protocol": 0, "run": 0, "_tcp": 0, "_udp": 0, "port": 0, "txt": 0, "var": 0, "val": 0, "arrai": 0, "string": 0, "add": 0, "differ": 0, "add_mdns_servic": 0, "our": 0, "mdns_service_add": 0, "null": 0, "_http": 0, "80": 0, "0": 0, "_arduino": 0, "3232": 0, "_myservic": 0, "1234": 0, "note": 0, "must": 0, "ad": 0, "befor": 0, "custom": 0, "mdns_service_instance_name_set": 0, "mdns_txt_item_t": 0, "servicetxtdata": 0, "3": 0, "board": 0, "u": 0, "user": 0, "p": 0, "password": 0, "data": 0, "free": 0, "replac": 0, "current": 0, "mdns_service_txt_set": 0, "chang": 0, "mdns_service_port_set": 0, "4321": 0, "brows": 0, "ip": 0, "ipv6": 0, "address": 0, "result": 0, "ar": 0, "link": 0, "list": 0, "mdns_result_t": 0, "object": 0, "resolve_mdns_host": 0, "const": 0, "char": 0, "host_nam": 0, "A": 0, "struct": 0, "ip4_addr": 0, "addr": 0, "mdns_query_a": 0, "2000": 0, "esp_err_not_found": 0, "wa": 0, "ipstr": 0, "ip2str": 0, "static": 0, "if_str": 0, "ap": 0, "eth": 0, "max": 0, "ip_protocol_str": 0, "v4": 0, "v6": 0, "mdns_print_result": 0, "r": 0, "mdns_ip_addr_t": 0, "int": 0, "i": 0, "1": 0, "t": 0, "while": 0, "tcpip_if": 0, "ip_protocol": 0, "ptr": 0, "srv": 0, "txt_count": 0, "kei": 0, "valu": 0, "ipaddr_type_v6": 0, "aaaa": 0, "ipv6str": 0, "ipv62str": 0, "u_addr": 0, "ip6": 0, "els": 0, "ip4": 0, "next": 0, "find_mdns_servic": 0, "service_nam": 0, "esp_log": 0, "tag": 0, "mdns_query_ptr": 0, "3000": 0, "20": 0, "esp_logw": 0, "No": 0, "mdns_query_results_fre": 0, "abov": 0, "my_app_some_method": 0, "search": 0, "http": 0, "_smb": 0, "share": 0, "_afpovertcp": 0, "_nf": 0, "nf": 0, "_ftp": 0, "ftp": 0, "printer": 0, "_printer": 0, "_ipp": 0, "creat": 0, "task": 0, "low": 0, "prioriti": 0, "config_mdns_task_prior": 0, "config_freertos_unicor": 0, "enabel": 0, "pin": 0, "cpu0": 0, "config_mdns_task_affin": 0, "pleas": 0, "check": 0, "maxim": 0, "more": 0, "detail": 0, "stack": 0, "size": 0, "configur": 0, "config_mdns_task_stack_s": 0, "scanner": 0, "includ": 0, "h": 0, "given": 0, "esp_ok": 0, "success": 0, "esp_err_invalid_st": 0, "when": 0, "regist": 0, "event": 0, "handler": 0, "esp_err_no_mem": 0, "memori": 0, "error": 0, "esp_fail": 0, "mdns_free": 0, "stop": 0, "you": 0, "want": 0, "paramet": 0, "esp_err_invalid_arg": 0, "mdns_delegate_hostname_add": 0, "address_list": 0, "deleg": 0, "repli": 0, "thi": 0, "The": 0, "mdns_delegate_hostname_remov": 0, "remov": 0, "all": 0, "also": 0, "bool": 0, "mdns_hostname_exist": 0, "whether": 0, "ha": 0, "been": 0, "true": 0, "fals": 0, "uint16_t": 0, "size_t": 0, "num_item": 0, "length": 0, "item": 0, "automat": 0, "decid": 0, "strlen": 0, "global": 0, "mdns_multiple_inst": 0, "config": 0, "option": 0, "need": 0, "enabl": 0, "multipl": 0, "same": 0, "etc": 0, "eg": 0, "other": 0, "2": 0, "number": 0, "mdns_service_add_for_host": 0, "mdns_service_exist": 0, "correspond": 0, "mdns_service_exists_with_inst": 0, "mdns_service_remov": 0, "mdns_service_remove_for_host": 0, "mdns_service_instance_name_set_for_host": 0, "instance_old": 0, "origin": 0, "mdns_service_port_set_for_host": 0, "uint8_t": 0, "mdns_service_txt_set_for_host": 0, "mdns_service_txt_item_set": 0, "record": 0, "updat": 0, "new": 0, "mdns_service_txt_item_set_with_explicit_value_len": 0, "value_len": 0, "mdns_service_txt_item_set_for_host": 0, "mdns_service_txt_item_set_for_host_with_explicit_value_len": 0, "mdns_service_txt_item_remov": 0, "mdns_service_txt_item_remove_for_host": 0, "mdns_service_subtype_add_for_host": 0, "subtyp": 0, "find": 0, "first": 0, "mdns_service_remove_al": 0, "mdns_query_async_delet": 0, "mdns_search_once_t": 0, "delet": 0, "finish": 0, "onli": 0, "after": 0, "end": 0, "pointer": 0, "mdns_query_async_get_result": 0, "uint32_t": 0, "timeout": 0, "num_result": 0, "get": 0, "output": 0, "via": 0, "onc": 0, "although": 0, "have": 0, "freed": 0, "manual": 0, "time": 0, "millisecond": 0, "wait": 0, "answer": 0, "actual": 0, "ignor": 0, "over": 0, "mdns_query_async_new": 0, "max_result": 0, "mdns_query_notify_t": 0, "notifi": 0, "asynchronous": 0, "test": 0, "progress": 0, "mdns_type_": 0, "dure": 0, "which": 0, "activ": 0, "maximum": 0, "collect": 0, "notif": 0, "readi": 0, "mdns_search_once_": 0, "successfulli": 0, "otherwis": 0, "mdns_query_gener": 0, "mdns_query_transmission_type_t": 0, "transmission_typ": 0, "gener": 0, "follow": 0, "deriv": 0, "one": 0, "either": 0, "unicast": 0, "below": 0, "mdns_queri": 0, "send": 0, "mdns_query_srv": 0, "mdns_query_txt": 0, "esp_ip4_addr_t": 0, "look": 0, "mdns_register_netif": 0, "esp_netif_t": 0, "esp_netif": 0, "preconfigur": 0, "ani": 0, "standard": 0, "wifi": 0, "ethernet": 0, "driver": 0, "kind": 0, "esp": 0, "netif": 0, "alreadi": 0, "enough": 0, "see": 0, "config_mdns_max_interfac": 0, "mdns_unregister_netif": 0, "unregist": 0, "mdns_netif_act": 0, "mdns_event_actions_t": 0, "event_act": 0, "desir": 0, "state": 0, "action": 0, "disabl": 0, "announc": 0, "packet": 0, "probe": 0, "conflict": 0, "bye": 0, "specifi": 0, "specif": 0, "could": 0, "connect": 0, "them": 0, "disconnect": 0, "ipv4": 0, "basic": 0, "text": 0, "public": 0, "member": 0, "mdns_ip_addr_": 0, "esp_ip_addr_t": 0, "last": 0, "mdns_result_": 0, "ttl": 0, "live": 0, "mdns_ip_protocol_t": 0, "srevic": 0, "txt_value_len": 0, "len": 0, "mdns_type_a": 0, "mdns_type_ptr": 0, "mdns_type_txt": 0, "mdns_type_aaaa": 0, "mdns_type_srv": 0, "mdns_type_opt": 0, "mdns_type_nsec": 0, "mdns_type_ani": 0, "typedef": 0, "asynchron": 0, "handl": 0, "enum": 0, "mdns_event_enable_ip4": 0, "mdns_event_enable_ip6": 0, "mdns_event_announce_ip4": 0, "mdns_event_announce_ip6": 0, "mdns_event_disable_ip4": 0, "mdns_event_disable_ip6": 0, "mdns_ip_protocol_v4": 0, "mdns_ip_protocol_v6": 0, "mdns_ip_protocol_max": 0, "explicitli": 0, "mdns_query_unicast": 0, "mdns_query_multicast": 0}, "objects": {"": [[0, 0, 1, "c.MDNS_TYPE_A", "MDNS_TYPE_A"], [0, 0, 1, "c.MDNS_TYPE_AAAA", "MDNS_TYPE_AAAA"], [0, 0, 1, "c.MDNS_TYPE_ANY", "MDNS_TYPE_ANY"], [0, 0, 1, "c.MDNS_TYPE_NSEC", "MDNS_TYPE_NSEC"], [0, 0, 1, "c.MDNS_TYPE_OPT", "MDNS_TYPE_OPT"], [0, 0, 1, "c.MDNS_TYPE_PTR", "MDNS_TYPE_PTR"], [0, 0, 1, "c.MDNS_TYPE_SRV", "MDNS_TYPE_SRV"], [0, 0, 1, "c.MDNS_TYPE_TXT", "MDNS_TYPE_TXT"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E", "MDNS_EVENT_ANNOUNCE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E", "MDNS_EVENT_ANNOUNCE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E", "MDNS_EVENT_DISABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E", "MDNS_EVENT_DISABLE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E", "MDNS_EVENT_ENABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E", "MDNS_EVENT_ENABLE_IP6"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE", "MDNS_IP_PROTOCOL_MAX"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E", "MDNS_IP_PROTOCOL_V4"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E", "MDNS_IP_PROTOCOL_V6"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE", "MDNS_QUERY_MULTICAST"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE", "MDNS_QUERY_UNICAST"], [0, 2, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add"], [0, 3, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add::address_list"], [0, 3, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add::hostname"], [0, 2, 1, "_CPPv429mdns_delegate_hostname_removePKc", "mdns_delegate_hostname_remove"], [0, 3, 1, "_CPPv429mdns_delegate_hostname_removePKc", "mdns_delegate_hostname_remove::hostname"], [0, 4, 1, "_CPPv420mdns_event_actions_t", "mdns_event_actions_t"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E", "mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E", "mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E", "mdns_event_actions_t::MDNS_EVENT_DISABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E", "mdns_event_actions_t::MDNS_EVENT_DISABLE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E", "mdns_event_actions_t::MDNS_EVENT_ENABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E", "mdns_event_actions_t::MDNS_EVENT_ENABLE_IP6"], [0, 2, 1, "_CPPv49mdns_freev", "mdns_free"], [0, 2, 1, "_CPPv420mdns_hostname_existsPKc", "mdns_hostname_exists"], [0, 3, 1, "_CPPv420mdns_hostname_existsPKc", "mdns_hostname_exists::hostname"], [0, 2, 1, "_CPPv417mdns_hostname_setPKc", "mdns_hostname_set"], [0, 3, 1, "_CPPv417mdns_hostname_setPKc", "mdns_hostname_set::hostname"], [0, 2, 1, "_CPPv49mdns_initv", "mdns_init"], [0, 2, 1, "_CPPv422mdns_instance_name_setPKc", "mdns_instance_name_set"], [0, 3, 1, "_CPPv422mdns_instance_name_setPKc", "mdns_instance_name_set::instance_name"], [0, 5, 1, "_CPPv414mdns_ip_addr_s", "mdns_ip_addr_s"], [0, 6, 1, "_CPPv4N14mdns_ip_addr_s4addrE", "mdns_ip_addr_s::addr"], [0, 6, 1, "_CPPv4N14mdns_ip_addr_s4nextE", "mdns_ip_addr_s::next"], [0, 7, 1, "_CPPv414mdns_ip_addr_t", "mdns_ip_addr_t"], [0, 4, 1, "_CPPv418mdns_ip_protocol_t", "mdns_ip_protocol_t"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_MAX"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V4"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V6"], [0, 2, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action"], [0, 3, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action::esp_netif"], [0, 3, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action::event_action"], [0, 2, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::max_results"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::name"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::proto"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::results"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::service_type"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::timeout"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::type"], [0, 2, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::addr"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::host_name"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::timeout"], [0, 2, 1, "_CPPv423mdns_query_async_deleteP18mdns_search_once_t", "mdns_query_async_delete"], [0, 3, 1, "_CPPv423mdns_query_async_deleteP18mdns_search_once_t", "mdns_query_async_delete::search"], [0, 2, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::num_results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::search"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::timeout"], [0, 2, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::max_results"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::name"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::notifier"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::proto"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::service_type"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::timeout"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::type"], [0, 2, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::max_results"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::name"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::proto"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::results"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::service_type"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::timeout"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::transmission_type"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::type"], [0, 7, 1, "_CPPv419mdns_query_notify_t", "mdns_query_notify_t"], [0, 2, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::max_results"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::proto"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::results"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::service_type"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::timeout"], [0, 2, 1, "_CPPv423mdns_query_results_freeP13mdns_result_t", "mdns_query_results_free"], [0, 3, 1, "_CPPv423mdns_query_results_freeP13mdns_result_t", "mdns_query_results_free::results"], [0, 2, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::instance_name"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::proto"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::result"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::service_type"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::timeout"], [0, 4, 1, "_CPPv430mdns_query_transmission_type_t", "mdns_query_transmission_type_t"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE", "mdns_query_transmission_type_t::MDNS_QUERY_MULTICAST"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE", "mdns_query_transmission_type_t::MDNS_QUERY_UNICAST"], [0, 2, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::instance_name"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::proto"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::result"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::service_type"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::timeout"], [0, 2, 1, "_CPPv419mdns_register_netifP11esp_netif_t", "mdns_register_netif"], [0, 3, 1, "_CPPv419mdns_register_netifP11esp_netif_t", "mdns_register_netif::esp_netif"], [0, 5, 1, "_CPPv413mdns_result_s", "mdns_result_s"], [0, 6, 1, "_CPPv4N13mdns_result_s4addrE", "mdns_result_s::addr"], [0, 6, 1, "_CPPv4N13mdns_result_s9esp_netifE", "mdns_result_s::esp_netif"], [0, 6, 1, "_CPPv4N13mdns_result_s8hostnameE", "mdns_result_s::hostname"], [0, 6, 1, "_CPPv4N13mdns_result_s13instance_nameE", "mdns_result_s::instance_name"], [0, 6, 1, "_CPPv4N13mdns_result_s11ip_protocolE", "mdns_result_s::ip_protocol"], [0, 6, 1, "_CPPv4N13mdns_result_s4nextE", "mdns_result_s::next"], [0, 6, 1, "_CPPv4N13mdns_result_s4portE", "mdns_result_s::port"], [0, 6, 1, "_CPPv4N13mdns_result_s5protoE", "mdns_result_s::proto"], [0, 6, 1, "_CPPv4N13mdns_result_s12service_typeE", "mdns_result_s::service_type"], [0, 6, 1, "_CPPv4N13mdns_result_s3ttlE", "mdns_result_s::ttl"], [0, 6, 1, "_CPPv4N13mdns_result_s3txtE", "mdns_result_s::txt"], [0, 6, 1, "_CPPv4N13mdns_result_s9txt_countE", "mdns_result_s::txt_count"], [0, 6, 1, "_CPPv4N13mdns_result_s13txt_value_lenE", "mdns_result_s::txt_value_len"], [0, 7, 1, "_CPPv413mdns_result_t", "mdns_result_t"], [0, 7, 1, "_CPPv418mdns_search_once_t", "mdns_search_once_t"], [0, 2, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::instance_name"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::num_items"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::port"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::proto"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::service_type"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::txt"], [0, 2, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::hostname"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::instance_name"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::num_items"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::port"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::proto"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::service_type"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::txt"], [0, 2, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::hostname"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::proto"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::service_type"], [0, 2, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::hostname"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::instance"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::proto"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::service_type"], [0, 2, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::instance_name"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::proto"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::service_type"], [0, 2, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::hostname"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::instance_name"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::instance_old"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::proto"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::service_type"], [0, 2, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::port"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::proto"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::service_type"], [0, 2, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::hostname"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::instance"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::port"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::proto"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::service_type"], [0, 2, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove"], [0, 3, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove::proto"], [0, 3, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove::service_type"], [0, 2, 1, "_CPPv423mdns_service_remove_allv", "mdns_service_remove_all"], [0, 2, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::hostname"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::instance"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::proto"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::service_type"], [0, 2, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::hostname"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::instance_name"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::proto"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::service_type"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::subtype"], [0, 2, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::key"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::proto"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::service_type"], [0, 2, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::hostname"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::instance"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::key"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::proto"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::service_type"], [0, 2, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::key"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::proto"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::service_type"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::value"], [0, 2, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::hostname"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::instance"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::key"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::proto"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::service_type"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::value"], [0, 2, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::hostname"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::instance"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::key"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::proto"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::service_type"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::value"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::value_len"], [0, 2, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::key"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::proto"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::service_type"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::value"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::value_len"], [0, 2, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::num_items"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::proto"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::service_type"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::txt"], [0, 2, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::hostname"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::instance"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::num_items"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::proto"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::service_type"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::txt"], [0, 5, 1, "_CPPv415mdns_txt_item_t", "mdns_txt_item_t"], [0, 6, 1, "_CPPv4N15mdns_txt_item_t3keyE", "mdns_txt_item_t::key"], [0, 6, 1, "_CPPv4N15mdns_txt_item_t5valueE", "mdns_txt_item_t::value"], [0, 2, 1, "_CPPv421mdns_unregister_netifP11esp_netif_t", "mdns_unregister_netif"], [0, 3, 1, "_CPPv421mdns_unregister_netifP11esp_netif_t", "mdns_unregister_netif::esp_netif"]]}, "objtypes": {"0": "c:macro", "1": "cpp:enumerator", "2": "cpp:function", "3": "cpp:functionParam", "4": "cpp:enum", "5": "cpp:class", "6": "cpp:member", "7": "cpp:type"}, "objnames": {"0": ["c", "macro", "C macro"], "1": ["cpp", "enumerator", "C++ enumerator"], "2": ["cpp", "function", "C++ function"], "3": ["cpp", "functionParam", "C++ function parameter"], "4": ["cpp", "enum", "C++ enum"], "5": ["cpp", "class", "C++ class"], "6": ["cpp", "member", "C++ member"], "7": ["cpp", "type", "C++ type"]}, "titleterms": {"mdn": 0, "servic": 0, "overview": 0, "properti": 0, "queri": 0, "perform": 0, "optim": 0, "execut": 0, "speed": 0, "minim": 0, "ram": 0, "usag": 0, "applic": 0, "exampl": 0, "api": 0, "refer": 0, "header": 0, "file": 0, "function": 0, "structur": 0, "macro": 0, "type": 0, "definit": 0, "enumer": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/mdns/zh_CN/.buildinfo b/mdns/zh_CN/.buildinfo index 149bdd73d..6df6e2bf2 100644 --- a/mdns/zh_CN/.buildinfo +++ b/mdns/zh_CN/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: a9d192708276614f80be36418197a8fa +config: f57e6e8f8c2a3b064bd70b045ded8f03 tags: 549b3d6d0415232fb7e35403b330ff49 diff --git a/mdns/zh_CN/_static/_sphinx_javascript_frameworks_compat.js b/mdns/zh_CN/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..8549469dc --- /dev/null +++ b/mdns/zh_CN/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.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": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/mdns/zh_CN/_static/basic.css b/mdns/zh_CN/_static/basic.css index bf18350b6..088967717 100644 --- a/mdns/zh_CN/_static/basic.css +++ b/mdns/zh_CN/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,12 +324,16 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; @@ -379,6 +373,9 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +383,9 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +428,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +611,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +629,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/mdns/zh_CN/_static/doctools.js b/mdns/zh_CN/_static/doctools.js index e1bfd708b..c3db08d1c 100644 --- a/mdns/zh_CN/_static/doctools.js +++ b/mdns/zh_CN/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +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))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.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": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + 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 (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +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. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // 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( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/mdns/zh_CN/_static/documentation_options.js b/mdns/zh_CN/_static/documentation_options.js index aacdc454f..905a8fb76 100644 --- a/mdns/zh_CN/_static/documentation_options.js +++ b/mdns/zh_CN/_static/documentation_options.js @@ -1,7 +1,7 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), VERSION: 'latest', - LANGUAGE: 'zh_CN', + LANGUAGE: 'zh-CN', COLLAPSE_INDEX: false, BUILDER: 'html', FILE_SUFFIX: '.html', @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/mdns/zh_CN/_static/jquery-3.5.1.js b/mdns/zh_CN/_static/jquery-3.6.0.js similarity index 98% rename from mdns/zh_CN/_static/jquery-3.5.1.js rename to mdns/zh_CN/_static/jquery-3.6.0.js index 50937333b..fc6c299b7 100644 --- a/mdns/zh_CN/_static/jquery-3.5.1.js +++ b/mdns/zh_CN/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/mdns/zh_CN/_static/jquery.js b/mdns/zh_CN/_static/jquery.js index b0614034a..c4c6022f2 100644 --- a/mdns/zh_CN/_static/jquery.js +++ b/mdns/zh_CN/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // 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 + 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, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +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, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + 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 = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + 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 = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * 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 */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - var virtualDocument = document.implementation.createHTMLDocument('virtual'); - var htmlElement = $(htmlString, virtualDocument); - htmlElement.find('.headerlink').remove(); - docContent = htmlElement.find('[role=main]')[0]; - if(docContent === undefined) { - console.warn("Content block not found. Sphinx search tries to obtain it " + - "via '[role=main]'. Could you check your theme or template."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + 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 : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + 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 : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

      ' + _('Searching') + '

      ').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

       

      ').appendTo(this.out); - this.output = $('
      diff --git a/mdns/zh_CN/index.html b/mdns/zh_CN/index.html index 1c83bc710..4eae8cd76 100644 --- a/mdns/zh_CN/index.html +++ b/mdns/zh_CN/index.html @@ -16,6 +16,7 @@ + @@ -111,7 +112,7 @@
    • »
    • mDNS 服务
    • - 在 GitHub 上修改 + 在 GitHub 上修改

    • @@ -120,14 +121,14 @@
      -

      mDNS 服务

      +

      mDNS 服务

      [English]

      -

      概述

      +

      概述

      mDNS 是一种组播 UDP 服务,用来提供本地网络服务和主机发现。

      绝大多数的操作系统默认都会安装 mDNS 服务,或者提供单独的安装包。Mac OS 默认会安装名为 Bonjour 的服务(该服务基于 mDNS),此外 Apple 还发布了适用于 Windows 系统的安装程序,可以在 官方支持 找到。在 Linux 上,mDNS 服务由 avahi 提供,通常也会被默认安装。

      -

      mDNS 属性

      +

      mDNS 属性

      • hostname:设备会去响应的主机名,如果没有设置,会根据设备的网络接口名定义 hostname 。例如,my-esp32 会被解析为 my-esp32.local

      • @@ -153,7 +154,7 @@
      -

      mDNS 服务

      +

      mDNS 服务

      mDNS 可以广播设备能够提供的网络服务的相关信息,每个服务会由以下属性构成。

        @@ -191,7 +192,7 @@
      -

      mDNS 查询

      +

      mDNS 查询

      mDNS 提供查询服务和解析主机 IP/IPv6 地址的方法。

      服务查询的结果会作为 mdns_result_t 类型对象的链表返回。

      解析主机 IP 地址的示例方法:

      @@ -294,19 +295,19 @@
      -

      应用示例

      -

      有关 mDNS 服务器和查询器的应用示例请参考

      +

      应用示例

      +

      有关 mDNS 服务器和查询器的应用示例请参考

      -

      API 参考

      +

      API 参考

      -

      Header File

      +

      Header File

      -

      Functions

      +

      Functions

      esp_err_t mdns_init(void)
      @@ -1249,7 +1250,7 @@
      -

      Structures

      +

      Structures

      struct mdns_txt_item_t
      @@ -1381,7 +1382,7 @@
      -

      Macros

      +

      Macros

      MDNS_TYPE_A
      @@ -1424,7 +1425,7 @@
      -

      Type Definitions

      +

      Type Definitions

      typedef struct mdns_search_once_s mdns_search_once_t
      @@ -1450,7 +1451,7 @@
      -

      Enumerations

      +

      Enumerations

      enum mdns_event_actions_t
      diff --git a/mdns/zh_CN/search.html b/mdns/zh_CN/search.html index 88d0ff0f7..9c39a1819 100644 --- a/mdns/zh_CN/search.html +++ b/mdns/zh_CN/search.html @@ -16,6 +16,7 @@ + diff --git a/mdns/zh_CN/searchindex.js b/mdns/zh_CN/searchindex.js index e9a3835fc..f525ff8c2 100644 --- a/mdns/zh_CN/searchindex.js +++ b/mdns/zh_CN/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst"],objects:{"":[[0,0,1,"c.MDNS_TYPE_A","MDNS_TYPE_A"],[0,0,1,"c.MDNS_TYPE_AAAA","MDNS_TYPE_AAAA"],[0,0,1,"c.MDNS_TYPE_ANY","MDNS_TYPE_ANY"],[0,0,1,"c.MDNS_TYPE_NSEC","MDNS_TYPE_NSEC"],[0,0,1,"c.MDNS_TYPE_OPT","MDNS_TYPE_OPT"],[0,0,1,"c.MDNS_TYPE_PTR","MDNS_TYPE_PTR"],[0,0,1,"c.MDNS_TYPE_SRV","MDNS_TYPE_SRV"],[0,0,1,"c.MDNS_TYPE_TXT","MDNS_TYPE_TXT"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E","MDNS_EVENT_ANNOUNCE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E","MDNS_EVENT_ANNOUNCE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E","MDNS_EVENT_DISABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E","MDNS_EVENT_DISABLE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E","MDNS_EVENT_ENABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E","MDNS_EVENT_ENABLE_IP6"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE","MDNS_IP_PROTOCOL_MAX"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E","MDNS_IP_PROTOCOL_V4"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E","MDNS_IP_PROTOCOL_V6"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE","MDNS_QUERY_MULTICAST"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE","MDNS_QUERY_UNICAST"],[0,2,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add"],[0,3,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add::address_list"],[0,3,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add::hostname"],[0,2,1,"_CPPv429mdns_delegate_hostname_removePKc","mdns_delegate_hostname_remove"],[0,3,1,"_CPPv429mdns_delegate_hostname_removePKc","mdns_delegate_hostname_remove::hostname"],[0,4,1,"_CPPv420mdns_event_actions_t","mdns_event_actions_t"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E","mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E","mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E","mdns_event_actions_t::MDNS_EVENT_DISABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E","mdns_event_actions_t::MDNS_EVENT_DISABLE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E","mdns_event_actions_t::MDNS_EVENT_ENABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E","mdns_event_actions_t::MDNS_EVENT_ENABLE_IP6"],[0,2,1,"_CPPv49mdns_freev","mdns_free"],[0,2,1,"_CPPv420mdns_hostname_existsPKc","mdns_hostname_exists"],[0,3,1,"_CPPv420mdns_hostname_existsPKc","mdns_hostname_exists::hostname"],[0,2,1,"_CPPv417mdns_hostname_setPKc","mdns_hostname_set"],[0,3,1,"_CPPv417mdns_hostname_setPKc","mdns_hostname_set::hostname"],[0,2,1,"_CPPv49mdns_initv","mdns_init"],[0,2,1,"_CPPv422mdns_instance_name_setPKc","mdns_instance_name_set"],[0,3,1,"_CPPv422mdns_instance_name_setPKc","mdns_instance_name_set::instance_name"],[0,5,1,"_CPPv414mdns_ip_addr_s","mdns_ip_addr_s"],[0,6,1,"_CPPv4N14mdns_ip_addr_s4addrE","mdns_ip_addr_s::addr"],[0,6,1,"_CPPv4N14mdns_ip_addr_s4nextE","mdns_ip_addr_s::next"],[0,7,1,"_CPPv414mdns_ip_addr_t","mdns_ip_addr_t"],[0,4,1,"_CPPv418mdns_ip_protocol_t","mdns_ip_protocol_t"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_MAX"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V4"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V6"],[0,2,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action"],[0,3,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action::esp_netif"],[0,3,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action::event_action"],[0,2,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::max_results"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::name"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::proto"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::results"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::service_type"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::timeout"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::type"],[0,2,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::addr"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::host_name"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::timeout"],[0,2,1,"_CPPv423mdns_query_async_deleteP18mdns_search_once_t","mdns_query_async_delete"],[0,3,1,"_CPPv423mdns_query_async_deleteP18mdns_search_once_t","mdns_query_async_delete::search"],[0,2,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::num_results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::search"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::timeout"],[0,2,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::max_results"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::name"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::notifier"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::proto"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::service_type"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::timeout"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::type"],[0,2,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::max_results"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::name"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::proto"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::results"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::service_type"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::timeout"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::transmission_type"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::type"],[0,7,1,"_CPPv419mdns_query_notify_t","mdns_query_notify_t"],[0,2,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::max_results"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::proto"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::results"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::service_type"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::timeout"],[0,2,1,"_CPPv423mdns_query_results_freeP13mdns_result_t","mdns_query_results_free"],[0,3,1,"_CPPv423mdns_query_results_freeP13mdns_result_t","mdns_query_results_free::results"],[0,2,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::instance_name"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::proto"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::result"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::service_type"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::timeout"],[0,4,1,"_CPPv430mdns_query_transmission_type_t","mdns_query_transmission_type_t"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE","mdns_query_transmission_type_t::MDNS_QUERY_MULTICAST"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE","mdns_query_transmission_type_t::MDNS_QUERY_UNICAST"],[0,2,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::instance_name"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::proto"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::result"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::service_type"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::timeout"],[0,2,1,"_CPPv419mdns_register_netifP11esp_netif_t","mdns_register_netif"],[0,3,1,"_CPPv419mdns_register_netifP11esp_netif_t","mdns_register_netif::esp_netif"],[0,5,1,"_CPPv413mdns_result_s","mdns_result_s"],[0,6,1,"_CPPv4N13mdns_result_s4addrE","mdns_result_s::addr"],[0,6,1,"_CPPv4N13mdns_result_s9esp_netifE","mdns_result_s::esp_netif"],[0,6,1,"_CPPv4N13mdns_result_s8hostnameE","mdns_result_s::hostname"],[0,6,1,"_CPPv4N13mdns_result_s13instance_nameE","mdns_result_s::instance_name"],[0,6,1,"_CPPv4N13mdns_result_s11ip_protocolE","mdns_result_s::ip_protocol"],[0,6,1,"_CPPv4N13mdns_result_s4nextE","mdns_result_s::next"],[0,6,1,"_CPPv4N13mdns_result_s4portE","mdns_result_s::port"],[0,6,1,"_CPPv4N13mdns_result_s5protoE","mdns_result_s::proto"],[0,6,1,"_CPPv4N13mdns_result_s12service_typeE","mdns_result_s::service_type"],[0,6,1,"_CPPv4N13mdns_result_s3ttlE","mdns_result_s::ttl"],[0,6,1,"_CPPv4N13mdns_result_s3txtE","mdns_result_s::txt"],[0,6,1,"_CPPv4N13mdns_result_s9txt_countE","mdns_result_s::txt_count"],[0,6,1,"_CPPv4N13mdns_result_s13txt_value_lenE","mdns_result_s::txt_value_len"],[0,7,1,"_CPPv413mdns_result_t","mdns_result_t"],[0,7,1,"_CPPv418mdns_search_once_t","mdns_search_once_t"],[0,2,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::instance_name"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::num_items"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::port"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::proto"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::service_type"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::txt"],[0,2,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::hostname"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::instance_name"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::num_items"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::port"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::proto"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::service_type"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::txt"],[0,2,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::hostname"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::proto"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::service_type"],[0,2,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::hostname"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::instance"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::proto"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::service_type"],[0,2,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::instance_name"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::proto"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::service_type"],[0,2,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::hostname"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::instance_name"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::instance_old"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::proto"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::service_type"],[0,2,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::port"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::proto"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::service_type"],[0,2,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::hostname"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::instance"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::port"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::proto"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::service_type"],[0,2,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove"],[0,3,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove::proto"],[0,3,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove::service_type"],[0,2,1,"_CPPv423mdns_service_remove_allv","mdns_service_remove_all"],[0,2,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::hostname"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::instance"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::proto"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::service_type"],[0,2,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::hostname"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::instance_name"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::proto"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::service_type"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::subtype"],[0,2,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::key"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::proto"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::service_type"],[0,2,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::hostname"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::instance"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::key"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::proto"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::service_type"],[0,2,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::key"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::proto"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::service_type"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::value"],[0,2,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::hostname"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::instance"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::key"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::proto"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::service_type"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::value"],[0,2,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::hostname"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::instance"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::key"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::proto"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::service_type"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::value"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::value_len"],[0,2,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::key"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::proto"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::service_type"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::value"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::value_len"],[0,2,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::num_items"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::proto"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::service_type"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::txt"],[0,2,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::hostname"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::instance"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::num_items"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::proto"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::service_type"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::txt"],[0,5,1,"_CPPv415mdns_txt_item_t","mdns_txt_item_t"],[0,6,1,"_CPPv4N15mdns_txt_item_t3keyE","mdns_txt_item_t::key"],[0,6,1,"_CPPv4N15mdns_txt_item_t5valueE","mdns_txt_item_t::value"],[0,2,1,"_CPPv421mdns_unregister_netifP11esp_netif_t","mdns_unregister_netif"],[0,3,1,"_CPPv421mdns_unregister_netifP11esp_netif_t","mdns_unregister_netif::esp_netif"]]},objnames:{"0":["c","macro","C \u5b8f"],"1":["cpp","enumerator","C++ \u679a\u4e3e\u5b50"],"2":["cpp","function","C++ \u51fd\u6570"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enum","C++ \u679a\u4e3e"],"5":["cpp","class","C++ \u7c7b"],"6":["cpp","member","C++ \u6210\u5458"],"7":["cpp","type","C++ \u7c7b\u578b"]},objtypes:{"0":"c:macro","1":"cpp:enumerator","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enum","5":"cpp:class","6":"cpp:member","7":"cpp:type"},terms:{"1234":0,"20":0,"2000":0,"3000":0,"3232":0,"4321":0,"80":0,"char":0,"const":0,"default":0,"enum":0,"for":0,"if":0,"in":0,"int":0,"new":0,"null":0,"public":0,"return":0,"static":0,"true":0,"var":0,"void":0,"while":0,"with":0,_afpovertcp:0,_arduino:0,_ftp:0,_http:0,_ipp:0,_myservic:0,_nf:0,_printer:0,_smb:0,_tcp:0,_udp:0,aaaa:0,action:0,activ:0,actual:0,add:0,add_mdns_servic:0,added:0,adding:0,addr:0,address:0,address_list:0,advertis:0,afp:0,after:0,all:0,alreadi:0,also:0,although:0,and:0,ani:0,announc:0,answer:0,ap:0,appl:0,are:0,arrai:0,as:0,asynchron:0,asynchronous:0,at:0,automat:0,avahi:0,avail:0,basic:0,be:0,been:0,befor:0,below:0,board:0,bonjour:0,bool:0,by:0,bye:0,call:0,can:0,chang:0,check:0,collect:0,config:0,config_mdns_max_interfac:0,conflict:0,connect:0,correspond:0,could:0,custom:0,data:0,decid:0,default_inst:0,defin:0,deleg:0,delet:0,deriv:0,desir:0,disabl:0,disconnect:0,driver:0,dure:0,each:0,eg:0,either:0,els:0,enabl:0,end:0,english:0,enough:0,err:0,error:0,esp32:0,esp:0,esp_err_invalid_arg:0,esp_err_invalid_st:0,esp_err_no_mem:0,esp_err_not_found:0,esp_err_t:0,esp_fail:0,esp_ip4_addr_t:0,esp_ip_addr_t:0,esp_log:0,esp_logw:0,esp_netif:0,esp_netif_t:0,esp_ok:0,etc:0,eth:0,ethernet:0,event:0,event_act:0,explicitli:0,fail:0,fals:0,find:0,find_mdns_servic:0,finish:0,first:0,follow:0,found:0,free:0,freed:0,from:0,ftp:0,gener:0,get:0,given:0,global:0,handl:0,handler:0,has:0,have:0,host:0,host_nam:0,hostnam:0,http:0,if_str:0,ignor:0,includ:0,init:0,initi:0,instanc:0,instance_nam:0,instance_old:0,interfac:0,ip2str:0,ip4:0,ip4_addr:0,ip6:0,ip:0,ip_protocol:0,ip_protocol_str:0,ipaddr_type_v6:0,ipstr:0,ipv4:0,ipv62str:0,ipv6:0,ipv6str:0,is:0,item:0,jhon:0,kei:0,kind:0,last:0,len:0,length:0,link:0,linux:0,list:0,live:0,local:0,look:0,mac:0,manual:0,max:0,max_result:0,maximum:0,mdns_delegate_hostname_add:0,mdns_delegate_hostname_remov:0,mdns_event_actions_t:0,mdns_event_announce_ip4:0,mdns_event_announce_ip6:0,mdns_event_disable_ip4:0,mdns_event_disable_ip6:0,mdns_event_enable_ip4:0,mdns_event_enable_ip6:0,mdns_free:0,mdns_hostname_exist:0,mdns_hostname_set:0,mdns_init:0,mdns_instance_name_set:0,mdns_ip_addr_:0,mdns_ip_addr_t:0,mdns_ip_protocol_max:0,mdns_ip_protocol_t:0,mdns_ip_protocol_v4:0,mdns_ip_protocol_v6:0,mdns_multiple_inst:0,mdns_netif_act:0,mdns_print_result:0,mdns_queri:0,mdns_query_a:0,mdns_query_async_delet:0,mdns_query_async_get_result:0,mdns_query_async_new:0,mdns_query_gener:0,mdns_query_multicast:0,mdns_query_notify_t:0,mdns_query_ptr:0,mdns_query_results_fre:0,mdns_query_srv:0,mdns_query_transmission_type_t:0,mdns_query_txt:0,mdns_query_unicast:0,mdns_register_netif:0,mdns_result_:0,mdns_result_t:0,mdns_search_once_:0,mdns_search_once_t:0,mdns_service_add:0,mdns_service_add_for_host:0,mdns_service_exist:0,mdns_service_exists_with_inst:0,mdns_service_instance_name_set:0,mdns_service_instance_name_set_for_host:0,mdns_service_port_set:0,mdns_service_port_set_for_host:0,mdns_service_remov:0,mdns_service_remove_al:0,mdns_service_remove_for_host:0,mdns_service_subtype_add_for_host:0,mdns_service_txt_item_remov:0,mdns_service_txt_item_remove_for_host:0,mdns_service_txt_item_set:0,mdns_service_txt_item_set_for_host:0,mdns_service_txt_item_set_for_host_with_explicit_value_len:0,mdns_service_txt_item_set_with_explicit_value_len:0,mdns_service_txt_set:0,mdns_service_txt_set_for_host:0,mdns_txt_item_t:0,mdns_type_:0,mdns_type_a:0,mdns_type_aaaa:0,mdns_type_ani:0,mdns_type_nsec:0,mdns_type_opt:0,mdns_type_ptr:0,mdns_type_srv:0,mdns_type_txt:0,mdns_unregister_netif:0,member:0,memori:0,method:0,millisecond:0,multicast:0,multipl:0,must:0,my:0,my_app_some_method:0,name:0,need:0,netif:0,network:0,next:0,nfs:0,no:0,not:0,note:0,notif:0,notifi:0,num_item:0,num_result:0,number:0,object:0,of:0,on:0,onc:0,one:0,onli:0,option:0,or:0,origin:0,os:0,other:0,otherwis:0,output:0,over:0,packet:0,paramet:0,password:0,perform:0,pointer:0,port:0,preconfigur:0,printf:0,probe:0,progress:0,properti:0,proto:0,protocol:0,ptr:0,queri:0,readi:0,record:0,regist:0,remov:0,replac:0,repli:0,requir:0,resolv:0,resolve_mdns_host:0,result:0,run:0,same:0,search:0,see:0,send:0,server:0,servic:0,service_nam:0,service_typ:0,servicetxtdata:0,set:0,size_t:0,specif:0,specifi:0,srevic:0,srv:0,sta:0,standard:0,start:0,start_mdns_servic:0,state:0,stop:0,string:0,strlen:0,struct:0,subtyp:0,success:0,successfulli:0,such:0,tag:0,task:0,tcpip_if:0,test:0,text:0,that:0,the:0,them:0,thi:0,thing:0,time:0,timeout:0,to:0,transmission_typ:0,ttl:0,txt:0,txt_count:0,txt_value_len:0,typedef:0,u_addr:0,udp:0,uint16_t:0,uint32_t:0,uint8_t:0,unicast:0,unregist:0,updat:0,used:0,user:0,using:0,v4:0,v6:0,val:0,valu:0,value_len:0,via:0,wait:0,want:0,was:0,web:0,when:0,whether:0,which:0,wifi:0,will:0,window:0,you:0},titles:["mDNS \u670d\u52a1"],titleterms:{"function":0,api:0,definit:0,enumer:0,file:0,header:0,macro:0,mdn:0,structur:0,type:0}}) \ No newline at end of file +Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["mDNS \u670d\u52a1"], "terms": {"english": 0, "udp": 0, "mac": 0, "os": 0, "bonjour": 0, "appl": 0, "window": 0, "linux": 0, "avahi": 0, "hostnam": 0, "my": 0, "esp32": 0, "local": 0, "default_inst": 0, "jhon": 0, "thing": 0, "sta": 0, "void": 0, "start_mdns_servic": 0, "esp_err_t": 0, "err": 0, "mdns_init": 0, "if": 0, "printf": 0, "init": 0, "fail": 0, "return": 0, "mdns_hostname_set": 0, "mdns_instance_name_set": 0, "instance_nam": 0, "web": 0, "server": 0, "service_typ": 0, "proto": 0, "_tcp": 0, "_udp": 0, "port": 0, "txt": 0, "var": 0, "val": 0, "add_mdns_servic": 0, "mdns_service_add": 0, "null": 0, "_http": 0, "80": 0, "_arduino": 0, "3232": 0, "_myservic": 0, "1234": 0, "mdns_service_instance_name_set": 0, "mdns_txt_item_t": 0, "servicetxtdata": 0, "board": 0, "user": 0, "password": 0, "mdns_service_txt_set": 0, "mdns_service_port_set": 0, "4321": 0, "ip": 0, "ipv6": 0, "mdns_result_t": 0, "resolve_mdns_host": 0, "const": 0, "char": 0, "host_nam": 0, "queri": 0, "struct": 0, "ip4_addr": 0, "addr": 0, "mdns_query_a": 0, "2000": 0, "esp_err_not_found": 0, "host": 0, "was": 0, "not": 0, "found": 0, "ipstr": 0, "ip2str": 0, "static": 0, "if_str": 0, "ap": 0, "eth": 0, "max": 0, "ip_protocol_str": 0, "v4": 0, "v6": 0, "mdns_print_result": 0, "result": 0, "mdns_ip_addr_t": 0, "int": 0, "while": 0, "interfac": 0, "tcpip_if": 0, "ip_protocol": 0, "ptr": 0, "srv": 0, "txt_count": 0, "for": 0, "kei": 0, "valu": 0, "ipaddr_type_v6": 0, "aaaa": 0, "ipv6str": 0, "ipv62str": 0, "u_addr": 0, "ip6": 0, "els": 0, "ip4": 0, "next": 0, "find_mdns_servic": 0, "service_nam": 0, "esp_log": 0, "tag": 0, "mdns_query_ptr": 0, "3000": 0, "20": 0, "esp_logw": 0, "no": 0, "mdns_query_results_fre": 0, "my_app_some_method": 0, "http": 0, "_smb": 0, "_afpovertcp": 0, "afp": 0, "_nf": 0, "nfs": 0, "_ftp": 0, "ftp": 0, "_printer": 0, "_ipp": 0, "includ": 0, "initi": 0, "on": 0, "given": 0, "esp_ok": 0, "success": 0, "esp_err_invalid_st": 0, "when": 0, "to": 0, "regist": 0, "event": 0, "handler": 0, "esp_err_no_mem": 0, "memori": 0, "error": 0, "esp_fail": 0, "start": 0, "task": 0, "mdns_free": 0, "stop": 0, "and": 0, "free": 0, "set": 0, "the": 0, "requir": 0, "you": 0, "want": 0, "advertis": 0, "servic": 0, "esp_err_invalid_arg": 0, "paramet": 0, "mdns_delegate_hostname_add": 0, "address_list": 0, "add": 0, "address": 0, "be": 0, "deleg": 0, "will": 0, "repli": 0, "can": 0, "added": 0, "thi": 0, "list": 0, "of": 0, "is": 0, "run": 0, "mdns_delegate_hostname_remov": 0, "remov": 0, "all": 0, "also": 0, "bool": 0, "mdns_hostname_exist": 0, "whether": 0, "has": 0, "been": 0, "true": 0, "fals": 0, "default": 0, "instanc": 0, "name": 0, "uint16_t": 0, "size_t": 0, "num_item": 0, "length": 0, "item": 0, "automat": 0, "decid": 0, "by": 0, "strlen": 0, "global": 0, "or": 0, "used": 0, "note": 0, "that": 0, "mdns_multiple_inst": 0, "config": 0, "option": 0, "need": 0, "enabl": 0, "adding": 0, "multipl": 0, "with": 0, "same": 0, "etc": 0, "protocol": 0, "string": 0, "arrai": 0, "data": 0, "eg": 0, "other": 0, "number": 0, "in": 0, "mdns_service_add_for_host": 0, "mdns_service_exist": 0, "check": 0, "correspond": 0, "mdns_service_exists_with_inst": 0, "mdns_service_remov": 0, "from": 0, "mdns_service_remove_for_host": 0, "mdns_service_instance_name_set_for_host": 0, "instance_old": 0, "origin": 0, "mdns_service_port_set_for_host": 0, "uint8_t": 0, "replac": 0, "mdns_service_txt_set_for_host": 0, "mdns_service_txt_item_set": 0, "record": 0, "updat": 0, "new": 0, "mdns_service_txt_item_set_with_explicit_value_len": 0, "value_len": 0, "mdns_service_txt_item_set_for_host": 0, "mdns_service_txt_item_set_for_host_with_explicit_value_len": 0, "mdns_service_txt_item_remov": 0, "mdns_service_txt_item_remove_for_host": 0, "mdns_service_subtype_add_for_host": 0, "subtyp": 0, "find": 0, "first": 0, "mdns_service_remove_al": 0, "mdns_query_async_delet": 0, "mdns_search_once_t": 0, "search": 0, "delet": 0, "finish": 0, "call": 0, "onli": 0, "after": 0, "end": 0, "pointer": 0, "object": 0, "mdns_query_async_get_result": 0, "uint32_t": 0, "timeout": 0, "num_result": 0, "get": 0, "avail": 0, "as": 0, "output": 0, "via": 0, "onc": 0, "although": 0, "have": 0, "freed": 0, "manual": 0, "time": 0, "millisecond": 0, "wait": 0, "answer": 0, "actual": 0, "ignor": 0, "befor": 0, "at": 0, "over": 0, "mdns_query_async_new": 0, "max_result": 0, "mdns_query_notify_t": 0, "notifi": 0, "asynchronous": 0, "test": 0, "progress": 0, "mdns_type_": 0, "dure": 0, "which": 0, "activ": 0, "maximum": 0, "collect": 0, "notif": 0, "readi": 0, "mdns_search_once_": 0, "successfulli": 0, "otherwis": 0, "mdns_query_gener": 0, "mdns_query_transmission_type_t": 0, "transmission_typ": 0, "gener": 0, "follow": 0, "method": 0, "are": 0, "deriv": 0, "one": 0, "either": 0, "unicast": 0, "multicast": 0, "must": 0, "using": 0, "below": 0, "mdns_queri": 0, "send": 0, "link": 0, "mdns_query_srv": 0, "mdns_query_txt": 0, "esp_ip4_addr_t": 0, "look": 0, "mdns_register_netif": 0, "esp_netif_t": 0, "esp_netif": 0, "custom": 0, "preconfigur": 0, "ani": 0, "standard": 0, "wifi": 0, "ethernet": 0, "driver": 0, "kind": 0, "defin": 0, "esp": 0, "netif": 0, "alreadi": 0, "enough": 0, "see": 0, "config_mdns_max_interfac": 0, "mdns_unregister_netif": 0, "unregist": 0, "mdns_netif_act": 0, "mdns_event_actions_t": 0, "event_act": 0, "desir": 0, "state": 0, "perform": 0, "action": 0, "such": 0, "disabl": 0, "announc": 0, "packet": 0, "probe": 0, "resolv": 0, "conflict": 0, "bye": 0, "specifi": 0, "network": 0, "specif": 0, "could": 0, "connect": 0, "properti": 0, "chang": 0, "them": 0, "disconnect": 0, "ipv4": 0, "basic": 0, "text": 0, "public": 0, "member": 0, "mdns_ip_addr_": 0, "esp_ip_addr_t": 0, "last": 0, "mdns_result_": 0, "ttl": 0, "live": 0, "mdns_ip_protocol_t": 0, "srevic": 0, "txt_value_len": 0, "len": 0, "each": 0, "mdns_type_a": 0, "mdns_type_ptr": 0, "mdns_type_txt": 0, "mdns_type_aaaa": 0, "mdns_type_srv": 0, "mdns_type_opt": 0, "mdns_type_nsec": 0, "mdns_type_ani": 0, "typedef": 0, "asynchron": 0, "handl": 0, "enum": 0, "mdns_event_enable_ip4": 0, "mdns_event_enable_ip6": 0, "mdns_event_announce_ip4": 0, "mdns_event_announce_ip6": 0, "mdns_event_disable_ip4": 0, "mdns_event_disable_ip6": 0, "mdns_ip_protocol_v4": 0, "mdns_ip_protocol_v6": 0, "mdns_ip_protocol_max": 0, "explicitli": 0, "mdns_query_unicast": 0, "mdns_query_multicast": 0}, "objects": {"": [[0, 0, 1, "c.MDNS_TYPE_A", "MDNS_TYPE_A"], [0, 0, 1, "c.MDNS_TYPE_AAAA", "MDNS_TYPE_AAAA"], [0, 0, 1, "c.MDNS_TYPE_ANY", "MDNS_TYPE_ANY"], [0, 0, 1, "c.MDNS_TYPE_NSEC", "MDNS_TYPE_NSEC"], [0, 0, 1, "c.MDNS_TYPE_OPT", "MDNS_TYPE_OPT"], [0, 0, 1, "c.MDNS_TYPE_PTR", "MDNS_TYPE_PTR"], [0, 0, 1, "c.MDNS_TYPE_SRV", "MDNS_TYPE_SRV"], [0, 0, 1, "c.MDNS_TYPE_TXT", "MDNS_TYPE_TXT"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E", "MDNS_EVENT_ANNOUNCE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E", "MDNS_EVENT_ANNOUNCE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E", "MDNS_EVENT_DISABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E", "MDNS_EVENT_DISABLE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E", "MDNS_EVENT_ENABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E", "MDNS_EVENT_ENABLE_IP6"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE", "MDNS_IP_PROTOCOL_MAX"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E", "MDNS_IP_PROTOCOL_V4"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E", "MDNS_IP_PROTOCOL_V6"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE", "MDNS_QUERY_MULTICAST"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE", "MDNS_QUERY_UNICAST"], [0, 2, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add"], [0, 3, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add::address_list"], [0, 3, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add::hostname"], [0, 2, 1, "_CPPv429mdns_delegate_hostname_removePKc", "mdns_delegate_hostname_remove"], [0, 3, 1, "_CPPv429mdns_delegate_hostname_removePKc", "mdns_delegate_hostname_remove::hostname"], [0, 4, 1, "_CPPv420mdns_event_actions_t", "mdns_event_actions_t"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E", "mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E", "mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E", "mdns_event_actions_t::MDNS_EVENT_DISABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E", "mdns_event_actions_t::MDNS_EVENT_DISABLE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E", "mdns_event_actions_t::MDNS_EVENT_ENABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E", "mdns_event_actions_t::MDNS_EVENT_ENABLE_IP6"], [0, 2, 1, "_CPPv49mdns_freev", "mdns_free"], [0, 2, 1, "_CPPv420mdns_hostname_existsPKc", "mdns_hostname_exists"], [0, 3, 1, "_CPPv420mdns_hostname_existsPKc", "mdns_hostname_exists::hostname"], [0, 2, 1, "_CPPv417mdns_hostname_setPKc", "mdns_hostname_set"], [0, 3, 1, "_CPPv417mdns_hostname_setPKc", "mdns_hostname_set::hostname"], [0, 2, 1, "_CPPv49mdns_initv", "mdns_init"], [0, 2, 1, "_CPPv422mdns_instance_name_setPKc", "mdns_instance_name_set"], [0, 3, 1, "_CPPv422mdns_instance_name_setPKc", "mdns_instance_name_set::instance_name"], [0, 5, 1, "_CPPv414mdns_ip_addr_s", "mdns_ip_addr_s"], [0, 6, 1, "_CPPv4N14mdns_ip_addr_s4addrE", "mdns_ip_addr_s::addr"], [0, 6, 1, "_CPPv4N14mdns_ip_addr_s4nextE", "mdns_ip_addr_s::next"], [0, 7, 1, "_CPPv414mdns_ip_addr_t", "mdns_ip_addr_t"], [0, 4, 1, "_CPPv418mdns_ip_protocol_t", "mdns_ip_protocol_t"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_MAX"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V4"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V6"], [0, 2, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action"], [0, 3, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action::esp_netif"], [0, 3, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action::event_action"], [0, 2, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::max_results"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::name"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::proto"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::results"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::service_type"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::timeout"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::type"], [0, 2, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::addr"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::host_name"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::timeout"], [0, 2, 1, "_CPPv423mdns_query_async_deleteP18mdns_search_once_t", "mdns_query_async_delete"], [0, 3, 1, "_CPPv423mdns_query_async_deleteP18mdns_search_once_t", "mdns_query_async_delete::search"], [0, 2, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::num_results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::search"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::timeout"], [0, 2, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::max_results"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::name"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::notifier"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::proto"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::service_type"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::timeout"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::type"], [0, 2, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::max_results"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::name"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::proto"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::results"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::service_type"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::timeout"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::transmission_type"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::type"], [0, 7, 1, "_CPPv419mdns_query_notify_t", "mdns_query_notify_t"], [0, 2, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::max_results"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::proto"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::results"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::service_type"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::timeout"], [0, 2, 1, "_CPPv423mdns_query_results_freeP13mdns_result_t", "mdns_query_results_free"], [0, 3, 1, "_CPPv423mdns_query_results_freeP13mdns_result_t", "mdns_query_results_free::results"], [0, 2, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::instance_name"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::proto"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::result"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::service_type"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::timeout"], [0, 4, 1, "_CPPv430mdns_query_transmission_type_t", "mdns_query_transmission_type_t"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE", "mdns_query_transmission_type_t::MDNS_QUERY_MULTICAST"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE", "mdns_query_transmission_type_t::MDNS_QUERY_UNICAST"], [0, 2, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::instance_name"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::proto"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::result"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::service_type"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::timeout"], [0, 2, 1, "_CPPv419mdns_register_netifP11esp_netif_t", "mdns_register_netif"], [0, 3, 1, "_CPPv419mdns_register_netifP11esp_netif_t", "mdns_register_netif::esp_netif"], [0, 5, 1, "_CPPv413mdns_result_s", "mdns_result_s"], [0, 6, 1, "_CPPv4N13mdns_result_s4addrE", "mdns_result_s::addr"], [0, 6, 1, "_CPPv4N13mdns_result_s9esp_netifE", "mdns_result_s::esp_netif"], [0, 6, 1, "_CPPv4N13mdns_result_s8hostnameE", "mdns_result_s::hostname"], [0, 6, 1, "_CPPv4N13mdns_result_s13instance_nameE", "mdns_result_s::instance_name"], [0, 6, 1, "_CPPv4N13mdns_result_s11ip_protocolE", "mdns_result_s::ip_protocol"], [0, 6, 1, "_CPPv4N13mdns_result_s4nextE", "mdns_result_s::next"], [0, 6, 1, "_CPPv4N13mdns_result_s4portE", "mdns_result_s::port"], [0, 6, 1, "_CPPv4N13mdns_result_s5protoE", "mdns_result_s::proto"], [0, 6, 1, "_CPPv4N13mdns_result_s12service_typeE", "mdns_result_s::service_type"], [0, 6, 1, "_CPPv4N13mdns_result_s3ttlE", "mdns_result_s::ttl"], [0, 6, 1, "_CPPv4N13mdns_result_s3txtE", "mdns_result_s::txt"], [0, 6, 1, "_CPPv4N13mdns_result_s9txt_countE", "mdns_result_s::txt_count"], [0, 6, 1, "_CPPv4N13mdns_result_s13txt_value_lenE", "mdns_result_s::txt_value_len"], [0, 7, 1, "_CPPv413mdns_result_t", "mdns_result_t"], [0, 7, 1, "_CPPv418mdns_search_once_t", "mdns_search_once_t"], [0, 2, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::instance_name"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::num_items"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::port"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::proto"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::service_type"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::txt"], [0, 2, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::hostname"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::instance_name"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::num_items"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::port"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::proto"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::service_type"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::txt"], [0, 2, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::hostname"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::proto"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::service_type"], [0, 2, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::hostname"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::instance"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::proto"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::service_type"], [0, 2, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::instance_name"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::proto"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::service_type"], [0, 2, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::hostname"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::instance_name"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::instance_old"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::proto"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::service_type"], [0, 2, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::port"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::proto"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::service_type"], [0, 2, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::hostname"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::instance"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::port"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::proto"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::service_type"], [0, 2, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove"], [0, 3, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove::proto"], [0, 3, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove::service_type"], [0, 2, 1, "_CPPv423mdns_service_remove_allv", "mdns_service_remove_all"], [0, 2, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::hostname"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::instance"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::proto"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::service_type"], [0, 2, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::hostname"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::instance_name"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::proto"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::service_type"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::subtype"], [0, 2, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::key"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::proto"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::service_type"], [0, 2, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::hostname"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::instance"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::key"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::proto"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::service_type"], [0, 2, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::key"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::proto"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::service_type"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::value"], [0, 2, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::hostname"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::instance"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::key"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::proto"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::service_type"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::value"], [0, 2, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::hostname"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::instance"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::key"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::proto"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::service_type"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::value"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::value_len"], [0, 2, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::key"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::proto"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::service_type"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::value"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::value_len"], [0, 2, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::num_items"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::proto"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::service_type"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::txt"], [0, 2, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::hostname"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::instance"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::num_items"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::proto"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::service_type"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::txt"], [0, 5, 1, "_CPPv415mdns_txt_item_t", "mdns_txt_item_t"], [0, 6, 1, "_CPPv4N15mdns_txt_item_t3keyE", "mdns_txt_item_t::key"], [0, 6, 1, "_CPPv4N15mdns_txt_item_t5valueE", "mdns_txt_item_t::value"], [0, 2, 1, "_CPPv421mdns_unregister_netifP11esp_netif_t", "mdns_unregister_netif"], [0, 3, 1, "_CPPv421mdns_unregister_netifP11esp_netif_t", "mdns_unregister_netif::esp_netif"]]}, "objtypes": {"0": "c:macro", "1": "cpp:enumerator", "2": "cpp:function", "3": "cpp:functionParam", "4": "cpp:enum", "5": "cpp:class", "6": "cpp:member", "7": "cpp:type"}, "objnames": {"0": ["c", "macro", "C \u5b8f"], "1": ["cpp", "enumerator", "C++ \u679a\u4e3e\u5b50"], "2": ["cpp", "function", "C++ \u51fd\u6570"], "3": ["cpp", "functionParam", "C++ function parameter"], "4": ["cpp", "enum", "C++ \u679a\u4e3e"], "5": ["cpp", "class", "C++ \u7c7b"], "6": ["cpp", "member", "C++ \u6210\u5458"], "7": ["cpp", "type", "C++ \u7c7b\u578b"]}, "titleterms": {"mdn": 0, "api": 0, "header": 0, "file": 0, "function": 0, "structur": 0, "macro": 0, "type": 0, "definit": 0, "enumer": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file