UNPKG

geoportal-access-lib

Version:

French Geoportal resources access library

142 lines (136 loc) 1.93 MB
/*! * @brief Geoportal resources access library * * This software is released under the licence CeCILL-B (Free BSD compatible) * @see http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt * @see http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt * @see http://www.cecill.info/ * * copyright CeCILL-B * copyright IGN * @author IGN * @version 3.4.6 * @date 19/12/2024 * */ /*! * @overview es6-promise - a tiny implementation of Promises/A+. * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) * @license Licensed under MIT license * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE * @version v4.2.4 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("node-fetch")); else if(typeof define === 'function' && define.amd) define("Gp", ["require"], factory); else if(typeof exports === 'object') exports["Gp"] = factory(require("node-fetch")); else root["Gp"] = factory(root[undefined]); })(this, function(__WEBPACK_EXTERNAL_MODULE_node_fetch__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ({ /***/ "./node_modules/@xmldom/xmldom/lib/conventions.js": /*!********************************************************!*\ !*** ./node_modules/@xmldom/xmldom/lib/conventions.js ***! \********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties,\n * including NodeList.\n *\n * @param {T[] | { length: number; [number]: T }} list\n * @param {function (item: T, index: number, list:T[]):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac\n * Allows injecting a custom implementation in tests (`Array.prototype` by default).\n * @returns {T | undefined}\n * @template {unknown} T\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (hasOwn(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * If `Object.getOwnPropertyDescriptors` is available,\n * a new object with all properties of object but without any prototype is created and returned\n * after freezing it.\n *\n * @param {T} object\n * The object to freeze.\n * @param {Pick<ObjectConstructor, 'create' | 'freeze' | 'getOwnPropertyDescriptors'>} [oc=Object]\n * `Object` by default,\n * allows to inject custom object constructor for tests.\n * @returns {Readonly<T>}\n * @template {Object} T\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n * @prettierignore\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object;\n\t}\n\tif (oc && typeof oc.getOwnPropertyDescriptors === 'function') {\n\t\tobject = oc.create(null, oc.getOwnPropertyDescriptors(object));\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object;\n}\n\n/**\n * Implementation for `Object.hasOwn` but ES5 compatible.\n *\n * @param {any} object\n * @param {string | number} key\n * @returns {boolean}\n */\nfunction hasOwn(object, key) {\n\treturn Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Since xmldom can not rely on `Object.assign`,\n * it uses/provides a simplified version that is sufficient for its needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n * @returns {Object}\n * The target with the merged/overridden properties.\n * @throws {TypeError}\n * If target is not an object.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object');\n\t}\n\tfor (var key in source) {\n\t\tif (hasOwn(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n}\n\n/**\n * A number of attributes are boolean attributes.\n * The presence of a boolean attribute on an element represents the `true` value,\n * and the absence of the attribute represents the `false` value.\n *\n * If the attribute is present, its value must either be the empty string, or a value that is\n * an ASCII case-insensitive match for the attribute's canonical name,\n * with no leading or trailing whitespace.\n *\n * Note: The values `\"true\"` and `\"false\"` are not allowed on boolean attributes.\n * To represent a `false` value, the attribute has to be omitted altogether.\n *\n * @see https://html.spec.whatwg.org/#boolean-attributes\n * @see https://html.spec.whatwg.org/#attributes-3\n */\nvar HTML_BOOLEAN_ATTRIBUTES = freeze({\n\tallowfullscreen: true,\n\tasync: true,\n\tautofocus: true,\n\tautoplay: true,\n\tchecked: true,\n\tcontrols: true,\n\tdefault: true,\n\tdefer: true,\n\tdisabled: true,\n\tformnovalidate: true,\n\thidden: true,\n\tismap: true,\n\titemscope: true,\n\tloop: true,\n\tmultiple: true,\n\tmuted: true,\n\tnomodule: true,\n\tnovalidate: true,\n\topen: true,\n\tplaysinline: true,\n\treadonly: true,\n\trequired: true,\n\treversed: true,\n\tselected: true,\n});\n\n/**\n * Check if `name` is matching one of the HTML boolean attribute names.\n * This method doesn't check if such attributes are allowed in the context of the current\n * document/parsing.\n *\n * @param {string} name\n * @returns {boolean}\n * @see {@link HTML_BOOLEAN_ATTRIBUTES}\n * @see https://html.spec.whatwg.org/#boolean-attributes\n * @see https://html.spec.whatwg.org/#attributes-3\n */\nfunction isHTMLBooleanAttribute(name) {\n\treturn hasOwn(HTML_BOOLEAN_ATTRIBUTES, name.toLowerCase());\n}\n\n/**\n * Void elements only have a start tag; end tags must not be specified for void elements.\n * These elements should be written as self-closing like this: `<area />`.\n * This should not be confused with optional tags that HTML allows to omit the end tag for\n * (like `li`, `tr` and others), which can have content after them,\n * so they can not be written as self-closing.\n * xmldom does not have any logic for optional end tags cases,\n * and will report them as a warning.\n * Content that would go into the unopened element,\n * will instead be added as a sibling text node.\n *\n * @type {Readonly<{\n * \tarea: boolean;\n * \tcol: boolean;\n * \timg: boolean;\n * \twbr: boolean;\n * \tlink: boolean;\n * \thr: boolean;\n * \tsource: boolean;\n * \tbr: boolean;\n * \tinput: boolean;\n * \tparam: boolean;\n * \tmeta: boolean;\n * \tembed: boolean;\n * \ttrack: boolean;\n * \tbase: boolean;\n * }>}\n * @see https://html.spec.whatwg.org/#void-elements\n * @see https://html.spec.whatwg.org/#optional-tags\n */\nvar HTML_VOID_ELEMENTS = freeze({\n\tarea: true,\n\tbase: true,\n\tbr: true,\n\tcol: true,\n\tembed: true,\n\thr: true,\n\timg: true,\n\tinput: true,\n\tlink: true,\n\tmeta: true,\n\tparam: true,\n\tsource: true,\n\ttrack: true,\n\twbr: true,\n});\n\n/**\n * Check if `tagName` is matching one of the HTML void element names.\n * This method doesn't check if such tags are allowed in the context of the current\n * document/parsing.\n *\n * @param {string} tagName\n * @returns {boolean}\n * @see {@link HTML_VOID_ELEMENTS}\n * @see https://html.spec.whatwg.org/#void-elements\n */\nfunction isHTMLVoidElement(tagName) {\n\treturn hasOwn(HTML_VOID_ELEMENTS, tagName.toLowerCase());\n}\n\n/**\n * Tag names that are raw text elements according to HTML spec.\n * The value denotes whether they are escapable or not.\n *\n * @see {@link isHTMLEscapableRawTextElement}\n * @see {@link isHTMLRawTextElement}\n * @see https://html.spec.whatwg.org/#raw-text-elements\n * @see https://html.spec.whatwg.org/#escapable-raw-text-elements\n */\nvar HTML_RAW_TEXT_ELEMENTS = freeze({\n\tscript: false,\n\tstyle: false,\n\ttextarea: true,\n\ttitle: true,\n});\n\n/**\n * Check if `tagName` is matching one of the HTML raw text element names.\n * This method doesn't check if such tags are allowed in the context of the current\n * document/parsing.\n *\n * @param {string} tagName\n * @returns {boolean}\n * @see {@link isHTMLEscapableRawTextElement}\n * @see {@link HTML_RAW_TEXT_ELEMENTS}\n * @see https://html.spec.whatwg.org/#raw-text-elements\n * @see https://html.spec.whatwg.org/#escapable-raw-text-elements\n */\nfunction isHTMLRawTextElement(tagName) {\n\tvar key = tagName.toLowerCase();\n\treturn hasOwn(HTML_RAW_TEXT_ELEMENTS, key) && !HTML_RAW_TEXT_ELEMENTS[key];\n}\n/**\n * Check if `tagName` is matching one of the HTML escapable raw text element names.\n * This method doesn't check if such tags are allowed in the context of the current\n * document/parsing.\n *\n * @param {string} tagName\n * @returns {boolean}\n * @see {@link isHTMLRawTextElement}\n * @see {@link HTML_RAW_TEXT_ELEMENTS}\n * @see https://html.spec.whatwg.org/#raw-text-elements\n * @see https://html.spec.whatwg.org/#escapable-raw-text-elements\n */\nfunction isHTMLEscapableRawTextElement(tagName) {\n\tvar key = tagName.toLowerCase();\n\treturn hasOwn(HTML_RAW_TEXT_ELEMENTS, key) && HTML_RAW_TEXT_ELEMENTS[key];\n}\n/**\n * Only returns true if `value` matches MIME_TYPE.HTML, which indicates an HTML document.\n *\n * @param {string} mimeType\n * @returns {mimeType is 'text/html'}\n * @see https://www.iana.org/assignments/media-types/text/html\n * @see https://en.wikipedia.org/wiki/HTML\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring\n */\nfunction isHTMLMimeType(mimeType) {\n\treturn mimeType === MIME_TYPE.HTML;\n}\n/**\n * For both the `text/html` and the `application/xhtml+xml` namespace the spec defines that the\n * HTML namespace is provided as the default.\n *\n * @param {string} mimeType\n * @returns {boolean}\n * @see https://dom.spec.whatwg.org/#dom-document-createelement\n * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument\n * @see https://dom.spec.whatwg.org/#dom-domimplementation-createhtmldocument\n */\nfunction hasDefaultHTMLNamespace(mimeType) {\n\treturn isHTMLMimeType(mimeType) || mimeType === MIME_TYPE.XML_XHTML_APPLICATION;\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02\n * MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype\n * WHATWG HTML Spec\n * @see {@link DOMParser.prototype.parseFromString}\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring\n\t * WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType\n\t * registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType\n\t * registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n});\n/**\n * @typedef {'application/xhtml+xml' | 'application/xml' | 'image/svg+xml' | 'text/html' | 'text/xml'}\n * MimeType\n */\n/**\n * @type {MimeType[]}\n * @private\n * Basically `Object.values`, which is not available in ES5.\n */\nvar _MIME_TYPES = Object.keys(MIME_TYPE).map(function (key) {\n\treturn MIME_TYPE[key];\n});\n\n/**\n * Only returns true if `mimeType` is one of the allowed values for\n * `DOMParser.parseFromString`.\n *\n * @param {string} mimeType\n * @returns {mimeType is 'application/xhtml+xml' | 'application/xml' | 'image/svg+xml' | 'text/html' | 'text/xml'}\n *\n */\nfunction isValidMimeType(mimeType) {\n\treturn _MIME_TYPES.indexOf(mimeType) > -1;\n}\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace.\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n});\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.HTML_BOOLEAN_ATTRIBUTES = HTML_BOOLEAN_ATTRIBUTES;\nexports.HTML_RAW_TEXT_ELEMENTS = HTML_RAW_TEXT_ELEMENTS;\nexports.HTML_VOID_ELEMENTS = HTML_VOID_ELEMENTS;\nexports.hasDefaultHTMLNamespace = hasDefaultHTMLNamespace;\nexports.hasOwn = hasOwn;\nexports.isHTMLBooleanAttribute = isHTMLBooleanAttribute;\nexports.isHTMLRawTextElement = isHTMLRawTextElement;\nexports.isHTMLEscapableRawTextElement = isHTMLEscapableRawTextElement;\nexports.isHTMLMimeType = isHTMLMimeType;\nexports.isHTMLVoidElement = isHTMLVoidElement;\nexports.isValidMimeType = isValidMimeType;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcC8uL25vZGVfbW9kdWxlcy9AeG1sZG9tL3htbGRvbS9saWIvY29udmVudGlvbnMuanM/ODlhNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU8sZ0JBQWdCLGVBQWU7QUFDakQsV0FBVyxvREFBb0Q7QUFDL0QsV0FBVyxzREFBc0Q7QUFDakU7QUFDQSxhQUFhO0FBQ2IsY0FBYyxRQUFRO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlCQUFpQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYjtBQUNBLFdBQVcsMkVBQTJFO0FBQ3RGO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsY0FBYyxPQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLElBQUk7QUFDZixXQUFXLGdCQUFnQjtBQUMzQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVywwQkFBMEI7QUFDckMsYUFBYTtBQUNiO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVDQUF1QztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLGFBQWE7QUFDYixTQUFTO0FBQ1QsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhO0FBQ2IsU0FBUztBQUNULFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0B4bWxkb20veG1sZG9tL2xpYi9jb252ZW50aW9ucy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBQb255ZmlsbCBmb3IgYEFycmF5LnByb3RvdHlwZS5maW5kYCB3aGljaCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBFUzYgcnVudGltZXMuXG4gKlxuICogV29ya3Mgd2l0aCBhbnl0aGluZyB0aGF0IGhhcyBhIGBsZW5ndGhgIHByb3BlcnR5IGFuZCBpbmRleCBhY2Nlc3MgcHJvcGVydGllcyxcbiAqIGluY2x1ZGluZyBOb2RlTGlzdC5cbiAqXG4gKiBAcGFyYW0ge1RbXSB8IHsgbGVuZ3RoOiBudW1iZXI7IFtudW1iZXJdOiBUIH19IGxpc3RcbiAqIEBwYXJhbSB7ZnVuY3Rpb24gKGl0ZW06IFQsIGluZGV4OiBudW1iZXIsIGxpc3Q6VFtdKTpib29sZWFufSBwcmVkaWNhdGVcbiAqIEBwYXJhbSB7UGFydGlhbDxQaWNrPEFycmF5Q29uc3RydWN0b3JbJ3Byb3RvdHlwZSddLCAnZmluZCc+Pj99IGFjXG4gKiBBbGxvd3MgaW5qZWN0aW5nIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uIGluIHRlc3RzIChgQXJyYXkucHJvdG90eXBlYCBieSBkZWZhdWx0KS5cbiAqIEByZXR1cm5zIHtUIHwgdW5kZWZpbmVkfVxuICogQHRlbXBsYXRlIHt1bmtub3dufSBUXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L2ZpbmRcbiAqIEBzZWUgaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvbXVsdGlwYWdlL2luZGV4ZWQtY29sbGVjdGlvbnMuaHRtbCNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbiAqL1xuZnVuY3Rpb24gZmluZChsaXN0LCBwcmVkaWNhdGUsIGFjKSB7XG5cdGlmIChhYyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0YWMgPSBBcnJheS5wcm90b3R5cGU7XG5cdH1cblx0aWYgKGxpc3QgJiYgdHlwZW9mIGFjLmZpbmQgPT09ICdmdW5jdGlvbicpIHtcblx0XHRyZXR1cm4gYWMuZmluZC5jYWxsKGxpc3QsIHByZWRpY2F0ZSk7XG5cdH1cblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0aWYgKGhhc093bihsaXN0LCBpKSkge1xuXHRcdFx0dmFyIGl0ZW0gPSBsaXN0W2ldO1xuXHRcdFx0aWYgKHByZWRpY2F0ZS5jYWxsKHVuZGVmaW5lZCwgaXRlbSwgaSwgbGlzdCkpIHtcblx0XHRcdFx0cmV0dXJuIGl0ZW07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogXCJTaGFsbG93IGZyZWV6ZXNcIiBhbiBvYmplY3QgdG8gcmVuZGVyIGl0IGltbXV0YWJsZS5cbiAqIFVzZXMgYE9iamVjdC5mcmVlemVgIGlmIGF2YWlsYWJsZSxcbiAqIG90aGVyd2lzZSB0aGUgaW1tdXRhYmlsaXR5IGlzIG9ubHkgaW4gdGhlIHR5cGUuXG4gKlxuICogSXMgdXNlZCB0byBjcmVhdGUgXCJlbnVtIGxpa2VcIiBvYmplY3RzLlxuICpcbiAqIElmIGBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yc2AgaXMgYXZhaWxhYmxlLFxuICogYSBuZXcgb2JqZWN0IHdpdGggYWxsIHByb3BlcnRpZXMgb2Ygb2JqZWN0IGJ1dCB3aXRob3V0IGFueSBwcm90b3R5cGUgaXMgY3JlYXRlZCBhbmQgcmV0dXJuZWRcbiAqIGFmdGVyIGZyZWV6aW5nIGl0LlxuICpcbiAqIEBwYXJhbSB7VH0gb2JqZWN0XG4gKiBUaGUgb2JqZWN0IHRvIGZyZWV6ZS5cbiAqIEBwYXJhbSB7UGljazxPYmplY3RDb25zdHJ1Y3RvciwgJ2NyZWF0ZScgfCAnZnJlZXplJyB8ICdnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzJz59IFtvYz1PYmplY3RdXG4gKiBgT2JqZWN0YCBieSBkZWZhdWx0LFxuICogYWxsb3dzIHRvIGluamVjdCBjdXN0b20gb2JqZWN0IGNvbnN0cnVjdG9yIGZvciB0ZXN0cy5cbiAqIEByZXR1cm5zIHtSZWFkb25seTxUPn1cbiAqIEB0ZW1wbGF0ZSB7T2JqZWN0fSBUXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9mcmVlemVcbiAqIEBwcmV0dGllcmlnbm9yZVxuICovXG5mdW5jdGlvbiBmcmVlemUob2JqZWN0LCBvYykge1xuXHRpZiAob2MgPT09IHVuZGVmaW5lZCkge1xuXHRcdG9jID0gT2JqZWN0O1xuXHR9XG5cdGlmIChvYyAmJiB0eXBlb2Ygb2MuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdG9iamVjdCA9IG9jLmNyZWF0ZShudWxsLCBvYy5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG9iamVjdCkpO1xuXHR9XG5cdHJldHVybiBvYyAmJiB0eXBlb2Ygb2MuZnJlZXplID09PSAnZnVuY3Rpb24nID8gb2MuZnJlZXplKG9iamVjdCkgOiBvYmplY3Q7XG59XG5cbi8qKlxuICogSW1wbGVtZW50YXRpb24gZm9yIGBPYmplY3QuaGFzT3duYCBidXQgRVM1IGNvbXBhdGlibGUuXG4gKlxuICogQHBhcmFtIHthbnl9IG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGtleVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGhhc093bihvYmplY3QsIGtleSkge1xuXHRyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KTtcbn1cblxuLyoqXG4gKiBTaW5jZSB4bWxkb20gY2FuIG5vdCByZWx5IG9uIGBPYmplY3QuYXNzaWduYCxcbiAqIGl0IHVzZXMvcHJvdmlkZXMgYSBzaW1wbGlmaWVkIHZlcnNpb24gdGhhdCBpcyBzdWZmaWNpZW50IGZvciBpdHMgbmVlZHMuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldFxuICogQHBhcmFtIHtPYmplY3QgfCBudWxsIHwgdW5kZWZpbmVkfSBzb3VyY2VcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKiBUaGUgdGFyZ2V0IHdpdGggdGhlIG1lcmdlZC9vdmVycmlkZGVuIHByb3BlcnRpZXMuXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9XG4gKiBJZiB0YXJnZXQgaXMgbm90IGFuIG9iamVjdC5cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2Fzc2lnblxuICogQHNlZSBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi9tdWx0aXBhZ2UvZnVuZGFtZW50YWwtb2JqZWN0cy5odG1sI3NlYy1vYmplY3QuYXNzaWduXG4gKi9cbmZ1bmN0aW9uIGFzc2lnbih0YXJnZXQsIHNvdXJjZSkge1xuXHRpZiAodGFyZ2V0ID09PSBudWxsIHx8IHR5cGVvZiB0YXJnZXQgIT09ICdvYmplY3QnKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcigndGFyZ2V0IGlzIG5vdCBhbiBvYmplY3QnKTtcblx0fVxuXHRmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG5cdFx0aWYgKGhhc093bihzb3VyY2UsIGtleSkpIHtcblx0XHRcdHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG5cdFx0fVxuXHR9XG5cdHJldHVybiB0YXJnZXQ7XG59XG5cbi8qKlxuICogQSBudW1iZXIgb2YgYXR0cmlidXRlcyBhcmUgYm9vbGVhbiBhdHRyaWJ1dGVzLlxuICogVGhlIHByZXNlbmNlIG9mIGEgYm9vbGVhbiBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCByZXByZXNlbnRzIHRoZSBgdHJ1ZWAgdmFsdWUsXG4gKiBhbmQgdGhlIGFic2VuY2Ugb2YgdGhlIGF0dHJpYnV0ZSByZXByZXNlbnRzIHRoZSBgZmFsc2VgIHZhbHVlLlxuICpcbiAqIElmIHRoZSBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgaXRzIHZhbHVlIG11c3QgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcsIG9yIGEgdmFsdWUgdGhhdCBpc1xuICogYW4gQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBmb3IgdGhlIGF0dHJpYnV0ZSdzIGNhbm9uaWNhbCBuYW1lLFxuICogd2l0aCBubyBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlc3BhY2UuXG4gKlxuICogTm90ZTogVGhlIHZhbHVlcyBgXCJ0cnVlXCJgIGFuZCBgXCJmYWxzZVwiYCBhcmUgbm90IGFsbG93ZWQgb24gYm9vbGVhbiBhdHRyaWJ1dGVzLlxuICogVG8gcmVwcmVzZW50IGEgYGZhbHNlYCB2YWx1ZSwgdGhlIGF0dHJpYnV0ZSBoYXMgdG8gYmUgb21pdHRlZCBhbHRvZ2V0aGVyLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYm9vbGVhbi1hdHRyaWJ1dGVzXG4gKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZXMtM1xuICovXG52YXIgSFRNTF9CT09MRUFOX0FUVFJJQlVURVMgPSBmcmVlemUoe1xuXHRhbGxvd2Z1bGxzY3JlZW46IHRydWUsXG5cdGFzeW5jOiB0cnVlLFxuXHRhdXRvZm9jdXM6IHRydWUsXG5cdGF1dG9wbGF5OiB0cnVlLFxuXHRjaGVja2VkOiB0cnVlLFxuXHRjb250cm9sczogdHJ1ZSxcblx0ZGVmYXVsdDogdHJ1ZSxcblx0ZGVmZXI6IHRydWUsXG5cdGRpc2FibGVkOiB0cnVlLFxuXHRmb3Jtbm92YWxpZGF0ZTogdHJ1ZSxcblx0aGlkZGVuOiB0cnVlLFxuXHRpc21hcDogdHJ1ZSxcblx0aXRlbXNjb3BlOiB0cnVlLFxuXHRsb29wOiB0cnVlLFxuXHRtdWx0aXBsZTogdHJ1ZSxcblx0bXV0ZWQ6IHRydWUsXG5cdG5vbW9kdWxlOiB0cnVlLFxuXHRub3ZhbGlkYXRlOiB0cnVlLFxuXHRvcGVuOiB0cnVlLFxuXHRwbGF5c2lubGluZTogdHJ1ZSxcblx0cmVhZG9ubHk6IHRydWUsXG5cdHJlcXVpcmVkOiB0cnVlLFxuXHRyZXZlcnNlZDogdHJ1ZSxcblx0c2VsZWN0ZWQ6IHRydWUsXG59KTtcblxuLyoqXG4gKiBDaGVjayBpZiBgbmFtZWAgaXMgbWF0Y2hpbmcgb25lIG9mIHRoZSBIVE1MIGJvb2xlYW4gYXR0cmlidXRlIG5hbWVzLlxuICogVGhpcyBtZXRob2QgZG9lc24ndCBjaGVjayBpZiBzdWNoIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnRcbiAqIGRvY3VtZW50L3BhcnNpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogQHNlZSB7QGxpbmsgSFRNTF9CT09MRUFOX0FUVFJJQlVURVN9XG4gKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2Jvb2xlYW4tYXR0cmlidXRlc1xuICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGVzLTNcbiAqL1xuZnVuY3Rpb24gaXNIVE1MQm9vbGVhbkF0dHJpYnV0ZShuYW1lKSB7XG5cdHJldHVybiBoYXNPd24oSFRNTF9CT09MRUFOX0FUVFJJQlVURVMsIG5hbWUudG9Mb3dlckNhc2UoKSk7XG59XG5cbi8qKlxuICogVm9pZCBlbGVtZW50cyBvbmx5IGhhdmUgYSBzdGFydCB0YWc7IGVuZCB0YWdzIG11c3Qgbm90IGJlIHNwZWNpZmllZCBmb3Igdm9pZCBlbGVtZW50cy5cbiAqIFRoZXNlIGVsZW1lbnRzIHNob3VsZCBiZSB3cml0dGVuIGFzIHNlbGYtY2xvc2luZyBsaWtlIHRoaXM6IGA8YXJlYSAvPmAuXG4gKiBUaGlzIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCBvcHRpb25hbCB0YWdzIHRoYXQgSFRNTCBhbGxvd3MgdG8gb21pdCB0aGUgZW5kIHRhZyBmb3JcbiAqIChsaWtlIGBsaWAsIGB0cmAgYW5kIG90aGVycyksIHdoaWNoIGNhbiBoYXZlIGNvbnRlbnQgYWZ0ZXIgdGhlbSxcbiAqIHNvIHRoZXkgY2FuIG5vdCBiZSB3cml0dGVuIGFzIHNlbGYtY2xvc2luZy5cbiAqIHhtbGRvbSBkb2VzIG5vdCBoYXZlIGFueSBsb2dpYyBmb3Igb3B0aW9uYWwgZW5kIHRhZ3MgY2FzZXMsXG4gKiBhbmQgd2lsbCByZXBvcnQgdGhlbSBhcyBhIHdhcm5pbmcuXG4gKiBDb250ZW50IHRoYXQgd291bGQgZ28gaW50byB0aGUgdW5vcGVuZWQgZWxlbWVudCxcbiAqIHdpbGwgaW5zdGVhZCBiZSBhZGRlZCBhcyBhIHNpYmxpbmcgdGV4dCBub2RlLlxuICpcbiAqIEB0eXBlIHtSZWFkb25seTx7XG4gKiBcdGFyZWE6IGJvb2xlYW47XG4gKiBcdGNvbDogYm9vbGVhbjtcbiAqIFx0aW1nOiBib29sZWFuO1xuICogXHR3YnI6IGJvb2xlYW47XG4gKiBcdGxpbms6IGJvb2xlYW47XG4gKiBcdGhyOiBib29sZWFuO1xuICogXHRzb3VyY2U6IGJvb2xlYW47XG4gKiBcdGJyOiBib29sZWFuO1xuICogXHRpbnB1dDogYm9vbGVhbjtcbiAqIFx0cGFyYW06IGJvb2xlYW47XG4gKiBcdG1ldGE6IGJvb2xlYW47XG4gKiBcdGVtYmVkOiBib29sZWFuO1xuICogXHR0cmFjazogYm9vbGVhbjtcbiAqIFx0YmFzZTogYm9vbGVhbjtcbiAqIH0+fVxuICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN2b2lkLWVsZW1lbnRzXG4gKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI29wdGlvbmFsLXRhZ3NcbiAqL1xudmFyIEhUTUxfVk9JRF9FTEVNRU5UUyA9IGZyZWV6ZSh7XG5cdGFyZWE6IHRydWUsXG5cdGJhc2U6IHRydWUsXG5cdGJyOiB0cnVlLFxuXHRjb2w6IHRydWUsXG5cdGVtYmVkOiB0cnVlLFxuXHRocjogdHJ1ZSxcblx0aW1nOiB0cnVlLFxuXHRpbnB1dDogdHJ1ZSxcblx0bGluazogdHJ1ZSxcblx0bWV0YTogdHJ1ZSxcblx0cGFyYW06IHRydWUsXG5cdHNvdXJjZTogdHJ1ZSxcblx0dHJhY2s6IHRydWUsXG5cdHdicjogdHJ1ZSxcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIGB0YWdOYW1lYCBpcyBtYXRjaGluZyBvbmUgb2YgdGhlIEhUTUwgdm9pZCBlbGVtZW50IG5hbWVzLlxuICogVGhpcyBtZXRob2QgZG9lc24ndCBjaGVjayBpZiBzdWNoIHRhZ3MgYXJlIGFsbG93ZWQgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnRcbiAqIGRvY3VtZW50L3BhcnNpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZ05hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogQHNlZSB7QGxpbmsgSFRNTF9WT0lEX0VMRU1FTlRTfVxuICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN2b2lkLWVsZW1lbnRzXG4gKi9cbmZ1bmN0aW9uIGlzSFRNTFZvaWRFbGVtZW50KHRhZ05hbWUpIHtcblx0cmV0dXJuIGhhc093bihIVE1MX1ZPSURfRUxFTUVOVFMsIHRhZ05hbWUudG9Mb3dlckNhc2UoKSk7XG59XG5cbi8qKlxuICogVGFnIG5hbWVzIHRoYXQgYXJlIHJhdyB0ZXh0IGVsZW1lbnRzIGFjY29yZGluZyB0byBIVE1MIHNwZWMuXG4gKiBUaGUgdmFsdWUgZGVub3RlcyB3aGV0aGVyIHRoZXkgYXJlIGVzY2FwYWJsZSBvciBub3QuXG4gKlxuICogQHNlZSB7QGxpbmsgaXNIVE1MRXNjYXBhYmxlUmF3VGV4dEVsZW1lbnR9XG4gKiBAc2VlIHtAbGluayBpc0hUTUxSYXdUZXh0RWxlbWVudH1cbiAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jcmF3LXRleHQtZWxlbWVudHNcbiAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZXNjYXBhYmxlLXJhdy10ZXh0LWVsZW1lbnRzXG4gKi9cbnZhciBIVE1MX1JBV19URVhUX0VMRU1FTlRTID0gZnJlZXplKHtcblx0c2NyaXB0OiBmYWxzZSxcblx0c3R5bGU6IGZhbHNlLFxuXHR0ZXh0YXJlYTogdHJ1ZSxcblx0dGl0bGU6IHRydWUsXG59KTtcblxuLyoqXG4gKiBDaGVjayBpZiBgdGFnTmFtZWAgaXMgbWF0Y2hpbmcgb25lIG9mIHRoZSBIVE1MIHJhdyB0ZXh0IGVsZW1lbnQgbmFtZXMuXG4gKiBUaGlzIG1ldGhvZCBkb2Vzbid0IGNoZWNrIGlmIHN1Y2ggdGFncyBhcmUgYWxsb3dlZCBpbiB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudFxuICogZG9jdW1lbnQvcGFyc2luZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnTmFtZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiBAc2VlIHtAbGluayBpc0hUTUxFc2NhcGFibGVSYXdUZXh0RWxlbWVudH1cbiAqIEBzZWUge0BsaW5rIEhUTUxfUkFXX1RFWFRfRUxFTUVOVFN9XG4gKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3Jhdy10ZXh0LWVsZW1lbnRzXG4gKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2VzY2FwYWJsZS1yYXctdGV4dC1lbGVtZW50c1xuICovXG5mdW5jdGlvbiBpc0hUTUxSYXdUZXh0RWxlbWVudCh0YWdOYW1lKSB7XG5cdHZhciBrZXkgPSB0YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdHJldHVybiBoYXNPd24oSFRNTF9SQVdfVEVYVF9FTEVNRU5UUywga2V5KSAmJiAhSFRNTF9SQVdfVEVYVF9FTEVNRU5UU1trZXldO1xufVxuLyoqXG4gKiBDaGVjayBpZiBgdGFnTmFtZWAgaXMgbWF0Y2hpbmcgb25lIG9mIHRoZSBIVE1MIGVzY2FwYWJsZSByYXcgdGV4dCBlbGVtZW50IG5hbWVzLlxuICogVGhpcyBtZXRob2QgZG9lc24ndCBjaGVjayBpZiBzdWNoIHRhZ3MgYXJlIGFsbG93ZWQgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnRcbiAqIGRvY3VtZW50L3BhcnNpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZ05hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogQHNlZSB7QGxpbmsgaXNIVE1MUmF3VGV4dEVsZW1lbnR9XG4gKiBAc2VlIHtAbGluayBIVE1MX1JBV19URVhUX0VMRU1FTlRTfVxuICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNyYXctdGV4dC1lbGVtZW50c1xuICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNlc2NhcGFibGUtcmF3LXRleHQtZWxlbWVudHNcbiAqL1xuZnVuY3Rpb24gaXNIVE1MRXNjYXBhYmxlUmF3VGV4dEVsZW1lbnQodGFnTmFtZSkge1xuXHR2YXIga2V5ID0gdGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRyZXR1cm4gaGFzT3duKEhUTUxfUkFXX1RFWFRfRUxFTUVOVFMsIGtleSkgJiYgSFRNTF9SQVdfVEVYVF9FTEVNRU5UU1trZXldO1xufVxuLyoqXG4gKiBPbmx5IHJldHVybnMgdHJ1ZSBpZiBgdmFsdWVgIG1hdGNoZXMgTUlNRV9UWVBFLkhUTUwsIHdoaWNoIGluZGljYXRlcyBhbiBIVE1MIGRvY3VtZW50LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtaW1lVHlwZVxuICogQHJldHVybnMge21pbWVUeXBlIGlzICd0ZXh0L2h0bWwnfVxuICogQHNlZSBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9tZWRpYS10eXBlcy90ZXh0L2h0bWxcbiAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSFRNTFxuICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRE9NUGFyc2VyL3BhcnNlRnJvbVN0cmluZ1xuICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24uaHRtbCNkb20tZG9tcGFyc2VyLXBhcnNlZnJvbXN0cmluZ1xuICovXG5mdW5jdGlvbiBpc0hUTUxNaW1lVHlwZShtaW1lVHlwZSkge1xuXHRyZXR1cm4gbWltZVR5cGUgPT09IE1JTUVfVFlQRS5IVE1MO1xufVxuLyoqXG4gKiBGb3IgYm90aCB0aGUgYHRleHQvaHRtbGAgYW5kIHRoZSBgYXBwbGljYXRpb24veGh0bWwreG1sYCBuYW1lc3BhY2UgdGhlIHNwZWMgZGVmaW5lcyB0aGF0IHRoZVxuICogSFRNTCBuYW1lc3BhY2UgaXMgcHJvdmlkZWQgYXMgdGhlIGRlZmF1bHQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1pbWVUeXBlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqIEBzZWUgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb20tZG9jdW1lbnQtY3JlYXRlZWxlbWVudFxuICogQHNlZSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1kb21pbXBsZW1lbnRhdGlvbi1jcmVhdGVkb2N1bWVudFxuICogQHNlZSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1kb21pbXBsZW1lbnRhdGlvbi1jcmVhdGVodG1sZG9jdW1lbnRcbiAqL1xuZnVuY3Rpb24gaGFzRGVmYXVsdEhUTUxOYW1lc3BhY2UobWltZVR5cGUpIHtcblx0cmV0dXJuIGlzSFRNTE1pbWVUeXBlKG1pbWVUeXBlKSB8fCBtaW1lVHlwZSA9PT0gTUlNRV9UWVBFLlhNTF9YSFRNTF9BUFBMSUNBVElPTjtcbn1cblxuLyoqXG4gKiBBbGwgbWltZSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIGFzIGlucHV0IHRvIGBET01QYXJzZXIucGFyc2VGcm9tU3RyaW5nYFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0RPTVBhcnNlci9wYXJzZUZyb21TdHJpbmcjQXJndW1lbnQwMlxuICogICAgICBNRE5cbiAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLmh0bWwjZG9tcGFyc2Vyc3VwcG9ydGVkdHlwZVxuICogICAgICBXSEFUV0cgSFRNTCBTcGVjXG4gKiBAc2VlIHtAbGluayBET01QYXJzZXIucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZ31cbiAqL1xudmFyIE1JTUVfVFlQRSA9IGZyZWV6ZSh7XG5cdC8qKlxuXHQgKiBgdGV4dC9odG1sYCwgdGhlIG9ubHkgbWltZSB0eXBlIHRoYXQgdHJpZ2dlcnMgdHJlYXRpbmcgYW4gWE1MIGRvY3VtZW50IGFzIEhUTUwuXG5cdCAqXG5cdCAqIEBzZWUgaHR0cHM6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvbWVkaWEtdHlwZXMvdGV4dC9odG1sIElBTkEgTWltZVR5cGUgcmVnaXN0cmF0aW9uXG5cdCAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSFRNTCBXaWtpcGVkaWFcblx0ICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRE9NUGFyc2VyL3BhcnNlRnJvbVN0cmluZyBNRE5cblx0ICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24uaHRtbCNkb20tZG9tcGFyc2VyLXBhcnNlZnJvbXN0cmluZ1xuXHQgKiAgICAgIFdIQVRXRyBIVE1MIFNwZWNcblx0ICovXG5cdEhUTUw6ICd0ZXh0L2h0bWwnLFxuXG5cdC8qKlxuXHQgKiBgYXBwbGljYXRpb24veG1sYCwgdGhlIHN0YW5kYXJkIG1pbWUgdHlwZSBmb3IgWE1MIGRvY3VtZW50cy5cblx0ICpcblx0ICogQHNlZSBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9tZWRpYS10eXBlcy9hcHBsaWNhdGlvbi94bWwgSUFOQSBNaW1lVHlwZVxuXHQgKiAgICAgIHJlZ2lzdHJhdGlvblxuXHQgKiBAc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MzAzI3NlY3Rpb24tOS4xIFJGQyA3MzAzXG5cdCAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvWE1MX2FuZF9NSU1FIFdpa2lwZWRpYVxuXHQgKi9cblx0WE1MX0FQUExJQ0FUSU9OOiAnYXBwbGljYXRpb24veG1sJyxcblxuXHQvKipcblx0ICogYHRleHQvaHRtbGAsIGFuIGFsaWFzIGZvciBgYXBwbGljYXRpb24veG1sYC5cblx0ICpcblx0ICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzMwMyNzZWN0aW9uLTkuMiBSRkMgNzMwM1xuXHQgKiBAc2VlIGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL21lZGlhLXR5cGVzL3RleHQveG1sIElBTkEgTWltZVR5cGUgcmVnaXN0cmF0aW9uXG5cdCAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvWE1MX2FuZF9NSU1FIFdpa2lwZWRpYVxuXHQgKi9cblx0WE1MX1RFWFQ6ICd0ZXh0L3htbCcsXG5cblx0LyoqXG5cdCAqIGBhcHBsaWNhdGlvbi94aHRtbCt4bWxgLCBpbmRpY2F0ZXMgYW4gWE1MIGRvY3VtZW50IHRoYXQgaGFzIHRoZSBkZWZhdWx0IEhUTUwgbmFtZXNwYWNlLFxuXHQgKiBidXQgaXMgcGFyc2VkIGFzIGFuIFhNTCBkb2N1bWVudC5cblx0ICpcblx0ICogQHNlZSBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9tZWRpYS10eXBlcy9hcHBsaWNhdGlvbi94aHRtbCt4bWwgSUFOQSBNaW1lVHlwZVxuXHQgKiAgICAgIHJlZ2lzdHJhdGlvblxuXHQgKiBAc2VlIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvbWltcGxlbWVudGF0aW9uLWNyZWF0ZWRvY3VtZW50IFdIQVRXRyBET00gU3BlY1xuXHQgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1hIVE1MIFdpa2lwZWRpYVxuXHQgKi9cblx0WE1MX1hIVE1MX0FQUExJQ0FUSU9OOiAnYXBwbGljYXRpb24veGh0bWwreG1sJyxcblxuXHQvKipcblx0ICogYGltYWdlL3N2Zyt4bWxgLFxuXHQgKlxuXHQgKiBAc2VlIGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL21lZGlhLXR5cGVzL2ltYWdlL3N2Zyt4bWwgSUFOQSBNaW1lVHlwZSByZWdpc3RyYXRpb25cblx0ICogQHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvU1ZHMTEvIFczQyBTVkcgMS4xXG5cdCAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU2NhbGFibGVfVmVjdG9yX0dyYXBoaWNzIFdpa2lwZWRpYVxuXHQgKi9cblx0WE1MX1NWR19JTUFHRTogJ2ltYWdlL3N2Zyt4bWwnLFxufSk7XG4vKipcbiAqIEB0eXBlZGVmIHsnYXBwbGljYXRpb24veGh0bWwreG1sJyB8ICdhcHBsaWNhdGlvbi94bWwnIHwgJ2ltYWdlL3N2Zyt4bWwnIHwgJ3RleHQvaHRtbCcgfCAndGV4dC94bWwnfVxuICogTWltZVR5cGVcbiAqL1xuLyoqXG4gKiBAdHlwZSB7TWltZVR5cGVbXX1cbiAqIEBwcml2YXRlXG4gKiBCYXNpY2FsbHkgYE9iamVjdC52YWx1ZXNgLCB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGluIEVTNS5cbiAqL1xudmFyIF9NSU1FX1RZUEVTID0gT2JqZWN0LmtleXMoTUlNRV9UWVBFKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuXHRyZXR1cm4gTUlNRV9UWVBFW2tleV07XG59KTtcblxuLyoqXG4gKiBPbmx5IHJldHVybnMgdHJ1ZSBpZiBgbWltZVR5cGVgIGlzIG9uZSBvZiB0aGUgYWxsb3dlZCB2YWx1ZXMgZm9yXG4gKiBgRE9NUGFyc2VyLnBhcnNlRnJvbVN0cmluZ2AuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1pbWVUeXBlXG4gKiBAcmV0dXJucyB7bWltZVR5cGUgaXMgJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcgfCAnYXBwbGljYXRpb24veG1sJyB8ICdpbWFnZS9zdmcreG1sJyB8ICAndGV4dC9odG1sJyB8ICd0ZXh0L3htbCd9XG4gKlxuICovXG5mdW5jdGlvbiBpc1ZhbGlkTWltZVR5cGUobWltZVR5cGUpIHtcblx0cmV0dXJuIF9NSU1FX1RZUEVTLmluZGV4T2YobWltZVR5cGUpID4gLTE7XG59XG4vKipcbiAqIE5hbWVzcGFjZXMgdGhhdCBhcmUgdXNlZCBpbiB0aGlzIGNvZGUgYmFzZS5cbiAqXG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXNcbiAqL1xudmFyIE5BTUVTUEFDRSA9IGZyZWV6ZSh7XG5cdC8qKlxuXHQgKiBUaGUgWEhUTUwgbmFtZXNwYWNlLlxuXHQgKlxuXHQgKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcblx0ICovXG5cdEhUTUw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcblxuXHQvKipcblx0ICogVGhlIFNWRyBuYW1lc3BhY2UuXG5cdCAqXG5cdCAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcblx0ICovXG5cdFNWRzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcblxuXHQvKipcblx0ICogVGhlIGB4bWw6YCBuYW1lc3BhY2UuXG5cdCAqXG5cdCAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXG5cdCAqL1xuXHRYTUw6ICdodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnLFxuXG5cdC8qKlxuXHQgKiBUaGUgYHhtbG5zOmAgbmFtZXNwYWNlLlxuXHQgKlxuXHQgKiBAc2VlIGh0dHBzOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zL1xuXHQgKi9cblx0WE1MTlM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLycsXG59KTtcblxuZXhwb3J0cy5hc3NpZ24gPSBhc3NpZ247XG5leHBvcnRzLmZpbmQgPSBmaW5kO1xuZXhwb3J0cy5mcmVlemUgPSBmcmVlemU7XG5leHBvcnRzLkhUTUxfQk9PTEVBTl9BVFRSSUJVVEVTID0gSFRNTF9CT09MRUFOX0FUVFJJQlVURVM7XG5leHBvcnRzLkhUTUxfUkFXX1RFWFRfRUxFTUVOVFMgPSBIVE1MX1JBV19URVhUX0VMRU1FTlRTO1xuZXhwb3J0cy5IVE1MX1ZPSURfRUxFTUVOVFMgPSBIVE1MX1ZPSURfRUxFTUVOVFM7XG5leHBvcnRzLmhhc0RlZmF1bHRIVE1MTmFtZXNwYWNlID0gaGFzRGVmYXVsdEhUTUxOYW1lc3BhY2U7XG5leHBvcnRzLmhhc093biA9IGhhc093bjtcbmV4cG9ydHMuaXNIVE1MQm9vbGVhbkF0dHJpYnV0ZSA9IGlzSFRNTEJvb2xlYW5BdHRyaWJ1dGU7XG5leHBvcnRzLmlzSFRNTFJhd1RleHRFbGVtZW50ID0gaXNIVE1MUmF3VGV4dEVsZW1lbnQ7XG5leHBvcnRzLmlzSFRNTEVzY2FwYWJsZVJhd1RleHRFbGVtZW50ID0gaXNIVE1MRXNjYXBhYmxlUmF3VGV4dEVsZW1lbnQ7XG5leHBvcnRzLmlzSFRNTE1pbWVUeXBlID0gaXNIVE1MTWltZVR5cGU7XG5leHBvcnRzLmlzSFRNTFZvaWRFbGVtZW50ID0gaXNIVE1MVm9pZEVsZW1lbnQ7XG5leHBvcnRzLmlzVmFsaWRNaW1lVHlwZSA9IGlzVmFsaWRNaW1lVHlwZTtcbmV4cG9ydHMuTUlNRV9UWVBFID0gTUlNRV9UWVBFO1xuZXhwb3J0cy5OQU1FU1BBQ0UgPSBOQU1FU1BBQ0U7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@xmldom/xmldom/lib/conventions.js\n"); /***/ }), /***/ "./node_modules/@xmldom/xmldom/lib/dom-parser.js": /*!*******************************************************!*\ !*** ./node_modules/@xmldom/xmldom/lib/dom-parser.js ***! \*******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar conventions = __webpack_require__(/*! ./conventions */ \"./node_modules/@xmldom/xmldom/lib/conventions.js\");\nvar dom = __webpack_require__(/*! ./dom */ \"./node_modules/@xmldom/xmldom/lib/dom.js\");\nvar errors = __webpack_require__(/*! ./errors */ \"./node_modules/@xmldom/xmldom/lib/errors.js\");\nvar entities = __webpack_require__(/*! ./entities */ \"./node_modules/@xmldom/xmldom/lib/entities.js\");\nvar sax = __webpack_require__(/*! ./sax */ \"./node_modules/@xmldom/xmldom/lib/sax.js\");\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar hasDefaultHTMLNamespace = conventions.hasDefaultHTMLNamespace;\nvar isHTMLMimeType = conventions.isHTMLMimeType;\nvar isValidMimeType = conventions.isValidMimeType;\nvar MIME_TYPE = conventions.MIME_TYPE;\nvar NAMESPACE = conventions.NAMESPACE;\nvar ParseError = errors.ParseError;\n\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to <https://www.w3.org/TR/xml11/#sec-line-ends>:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA,\n * > 2. the two-character sequence #xD #x85,\n * > 3. the single character #x85,\n * > 4. the single character #x2028,\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n * @prettierignore\n */\nfunction normalizeLineEndings(input) {\n\treturn input.replace(/\\r[\\n\\u0085]/g, '\\n').replace(/[\\r\\u0085\\u2028]/g, '\\n');\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {typeof assign} [assign]\n * The method to use instead of `conventions.assign`, which is used to copy values from\n * `options` before they are used for parsing.\n * @property {typeof DOMHandler} [domHandler]\n * For internal testing: The class for creating an instance for handling events from the SAX\n * parser.\n * *****Warning: By configuring a faulty implementation, the specified behavior can completely\n * be broken.*****.\n * @property {Function} [errorHandler]\n * DEPRECATED! use `onError` instead.\n * @property {function(level:ErrorLevel, message:string, context: DOMHandler):void}\n * [onError]\n * A function that is invoked for every error that occurs during parsing.\n *\n * If it is not provided, all errors are reported to `console.error`\n * and only `fatalError`s are thrown as a `ParseError`,\n * which prevents any further processing.\n * If the provided method throws, a `ParserError` is thrown,\n * which prevents any further processing.\n *\n * Be aware that many `warning`s are considered an error that prevents further processing in\n * most implementations.\n * @property {boolean} [locator=true]\n * Configures if the nodes created during parsing will have a `lineNumber` and a `columnNumber`\n * attribute describing their location in the XML string.\n * Default is true.\n * @property {(string) => string} [normalizeLineEndings]\n * used to replace line endings before parsing, defaults to `normalizeLineEndings`\n * @property {Object} [xmlns]\n * The XML namespaces that should be assumed when parsing.\n * The default namespace can be provided by the key that is the empty string.\n * When the `mimeType` for HTML, XHTML or SVG are passed to `parseFromString`,\n * the default namespace that will be used,\n * will be overridden according to the specification.\n * @see {@link normalizeLineEndings}\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code from a string\n * into a DOM `Document`.\n *\n * ***xmldom is different from the spec in that it allows an `options` parameter,\n * to control the behavior***.\n *\n * @class\n * @param {DOMParserOptions} [options]\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options) {\n\toptions = options || { locator: true };\n\n\t/**\n\t * The method to use instead of `conventions.assign`, which is used to copy values from\n\t * `options`\n\t * before they are used for parsing.\n\t *\n\t * @type {conventions.assign}\n\t * @private\n\t * @see {@link conventions.assign}\n\t * @readonly\n\t */\n\tthis.assign = options.assign || conventions.assign;\n\n\t/**\n\t * For internal testing: The class for creating an instance for handling events from the SAX\n\t * parser.\n\t * *****Warning: By configuring a faulty implementation, the specified behavior can completely\n\t * be broken*****.\n\t *\n\t * @type {typeof DOMHandler}\n\t * @private\n\t * @readonly\n\t */\n\tthis.domHandler = options.domHandler || DOMHandler;\n\n\t/**\n\t * A function that is invoked for every error that occurs during parsing.\n\t *\n\t * If it is not provided, all errors are reported to `console.error`\n\t * and only `fatalError`s are thrown as a `ParseError`,\n\t * which prevents any further processing.\n\t * If the provided method throws, a `ParserError` is thrown,\n\t * which prevents any further processing.\n\t *\n\t * Be aware that many `warning`s are considered an error that prevents further processing in\n\t * most implementations.\n\t *\n\t * @type {function(level:ErrorLevel, message:string, context: DOMHandler):void}\n\t * @see {@link onErrorStopParsing}\n\t * @see {@link onWarningStopParsing}\n\t */\n\tthis.onError = options.onError || options.errorHandler;\n\tif (options.errorHandler && typeof options.errorHandler !== 'function') {\n\t\tthrow new TypeError('errorHandler object is no longer supported, switch to onError!');\n\t} else if (options.errorHandler) {\n\t\toptions.errorHandler('warning', 'The `errorHandler` option has been deprecated, use `onError` instead!', this);\n\t}\n\n\t/**\n\t * used to replace line endings before parsing, defaults to `normalizeLineEndings`\n\t *\n\t * @type {(string) => string}\n\t * @readonly\n\t */\n\tthis.normalizeLineEndings = options.normalizeLineEndings || normalizeLineEndings;\n\n\t/**\n\t * Configures if the nodes created during parsing will have a `lineNumber` and a\n\t * `columnNumber`\n\t * attribute describing their location in the XML string.\n\t * Default is true.\n\t *\n\t * @type {boolean}\n\t * @readonly\n\t */\n\tthis.locator = !!options.locator;\n\n\t/**\n\t * The default namespace can be provided by the key that is the empty string.\n\t * When the `mimeType` for HTML, XHTML or SVG are passed to `parseFromString`,\n\t * the default namespace that will be used,\n\t * will be overridden according to the specification.\n\t *\n\t * @type {Readonly<Object>}\n\t * @readonly\n\t */\n\tthis.xmlns = this.assign(Object.create(null), options.xmlns);\n}\n\n/**\n * Parses `source` using the options in the way configured by the `DOMParserOptions` of `this`\n * `DOMParser`. If `mimeType` is `text/html` an HTML `Document` is created,\n * otherwise an XML `Document` is created.\n *\n * __It behaves different from the description in the living standard__:\n * - Uses the `options` passed to the `DOMParser` constructor to modify the behavior.\n * - Any unexpected input is reported to `onError` with either a `warning`,\n * `error` or `fatalError` level.\n * - Any `fatalError` throws a `ParseError` which prevents further processing.\n * - Any error thrown by `onError` is converted to a `ParseError` which prevents further\n * processing - If no `Document` was created during parsing it is reported as a `fatalError`.\n * *****Warning: By configuring