//fgnass.github.com/spin.js#v2.0.0 !function(a, b) { "object" == typeof exports ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.Spinner = b() }(this, function() { "use strict"; function a(a, b) { var c, d = document.createElement(a || "div"); for (c in b) d[c] = b[c]; return d } function b(a) { for (var b = 1, c = arguments.length; c > b; b++) a.appendChild(arguments[b]); return a } function c(a, b, c, d) { var e = ["opacity", b, ~~(100 * a), c, d].join("-") , f = .01 + c / d * 100 , g = Math.max(1 - (1 - a) / b * (100 - f), a) , h = j.substring(0, j.indexOf("Animation")).toLowerCase() , i = h && "-" + h + "-" || ""; return l[e] || (m.insertRule("@" + i + "keyframes " + e + "{0%{opacity:" + g + "}" + f + "%{opacity:" + a + "}" + (f + .01) + "%{opacity:1}" + (f + b) % 100 + "%{opacity:" + a + "}100%{opacity:" + g + "}}", m.cssRules.length), l[e] = 1), e } function d(a, b) { var c, d, e = a.style; for (b = b.charAt(0).toUpperCase() + b.slice(1), d = 0; d < k.length; d++) if (c = k[d] + b, void 0 !== e[c]) return c; return void 0 !== e[b] ? b : void 0 } function e(a, b) { for (var c in b) a.style[d(a, c) || c] = b[c]; return a } function f(a) { for (var b = 1; b < arguments.length; b++) { var c = arguments[b]; for (var d in c) void 0 === a[d] && (a[d] = c[d]) } return a } function g(a, b) { return "string" == typeof a ? a : a[b % a.length] } function h(a) { this.opts = f(a || {}, h.defaults, n) } function i() { function c(b, c) { return a("<" + b + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', c) } m.addRule(".spin-vml", "behavior:url(#default#VML)"), h.prototype.lines = function(a, d) { function f() { return e(c("group", { coordsize: k + " " + k, coordorigin: -j + " " + -j }), { width: k, height: k }) } function h(a, h, i) { b(m, b(e(f(), { rotation: 360 / d.lines * a + "deg", left: ~~h }), b(e(c("roundrect", { arcsize: d.corners }), { width: j, height: d.width, left: d.radius, top: -d.width >> 1, filter: i }), c("fill", { color: g(d.color, a), opacity: d.opacity }), c("stroke", { opacity: 0 })))) } var i, j = d.length + d.width, k = 2 * j, l = 2 * -(d.width + d.length) + "px", m = e(f(), { position: "absolute", top: l, left: l }); if (d.shadow) for (i = 1; i <= d.lines; i++) h(i, -2, "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)"); for (i = 1; i <= d.lines; i++) h(i); return b(a, m) } , h.prototype.opacity = function(a, b, c, d) { var e = a.firstChild; d = d.shadow && d.lines || 0, e && b + d < e.childNodes.length && (e = e.childNodes[b + d], e = e && e.firstChild, e = e && e.firstChild, e && (e.opacity = c)) } } var j, k = ["webkit", "Moz", "ms", "O"], l = {}, m = function() { var c = a("style", { type: "text/css" }); return b(document.getElementsByTagName("head")[0], c), c.sheet || c.styleSheet }(), n = { lines: 12, length: 7, width: 5, radius: 10, rotate: 0, corners: 1, color: "#000", direction: 1, speed: 1, trail: 100, opacity: .25, fps: 20, zIndex: 2e9, className: "spinner", top: "50%", left: "50%", position: "absolute" }; h.defaults = {}, f(h.prototype, { spin: function(b) { this.stop(); { var c = this , d = c.opts , f = c.el = e(a(0, { className: d.className }), { position: d.position, width: 0, zIndex: d.zIndex }); d.radius + d.length + d.width } if (b && (b.insertBefore(f, b.firstChild || null), e(f, { left: d.left, top: d.top })), f.setAttribute("role", "progressbar"), c.lines(f, c.opts), !j) { var g, h = 0, i = (d.lines - 1) * (1 - d.direction) / 2, k = d.fps, l = k / d.speed, m = (1 - d.opacity) / (l * d.trail / 100), n = l / d.lines; !function o() { h++; for (var a = 0; a < d.lines; a++) g = Math.max(1 - (h + (d.lines - a) * n) % l * m, d.opacity), c.opacity(f, a * d.direction + i, g, d); c.timeout = c.el && setTimeout(o, ~~(1e3 / k)) }() } return c }, stop: function() { var a = this.el; return a && (clearTimeout(this.timeout), a.parentNode && a.parentNode.removeChild(a), this.el = void 0), this }, lines: function(d, f) { function h(b, c) { return e(a(), { position: "absolute", width: f.length + f.width + "px", height: f.width + "px", background: b, boxShadow: c, transformOrigin: "left", transform: "rotate(" + ~~(360 / f.lines * k + f.rotate) + "deg) translate(" + f.radius + "px,0)", borderRadius: (f.corners * f.width >> 1) + "px" }) } for (var i, k = 0, l = (f.lines - 1) * (1 - f.direction) / 2; k < f.lines; k++) i = e(a(), { position: "absolute", top: 1 + ~(f.width / 2) + "px", transform: f.hwaccel ? "translate3d(0,0,0)" : "", opacity: f.opacity, animation: j && c(f.opacity, f.trail, l + k * f.direction, f.lines) + " " + 1 / f.speed + "s linear infinite" }), f.shadow && b(i, e(h("#000", "0 0 4px #000"), { top: "2px" })), b(d, b(i, h(g(f.color, k), "0 0 1px rgba(0,0,0,.1)"))); return d }, opacity: function(a, b, c) { b < a.childNodes.length && (a.childNodes[b].style.opacity = c) } }); var o = e(a("group"), { behavior: "url(#default#VML)" }); return !d(o, "transform") && o.adj ? i() : j = d(o, "animation"), h }); /*! @license DOMPurify 2.4.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.3/LICENSE */ !function(e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).DOMPurify = t() }(this, (function() { "use strict"; function e(t) { return e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , e(t) } function t(e, n) { return t = Object.setPrototypeOf || function(e, t) { return e.__proto__ = t, e } , t(e, n) } function n() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {} ))), !0 } catch (e) { return !1 } } function r(e, o, a) { return r = n() ? Reflect.construct : function(e, n, r) { var o = [null]; o.push.apply(o, n); var a = new (Function.bind.apply(e, o)); return r && t(a, r.prototype), a } , r.apply(null, arguments) } function o(e) { return function(e) { if (Array.isArray(e)) return a(e) }(e) || function(e) { if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e) }(e) || function(e, t) { if (!e) return; if ("string" == typeof e) return a(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return a(e, t) }(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function a(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r } var i = Object.hasOwnProperty , l = Object.setPrototypeOf , c = Object.isFrozen , u = Object.getPrototypeOf , s = Object.getOwnPropertyDescriptor , m = Object.freeze , f = Object.seal , p = Object.create , d = "undefined" != typeof Reflect && Reflect , h = d.apply , g = d.construct; h || (h = function(e, t, n) { return e.apply(t, n) } ), m || (m = function(e) { return e } ), f || (f = function(e) { return e } ), g || (g = function(e, t) { return r(e, o(t)) } ); var y, b = O(Array.prototype.forEach), v = O(Array.prototype.pop), T = O(Array.prototype.push), N = O(String.prototype.toLowerCase), A = O(String.prototype.toString), E = O(String.prototype.match), w = O(String.prototype.replace), S = O(String.prototype.indexOf), x = O(String.prototype.trim), _ = O(RegExp.prototype.test), k = (y = TypeError, function() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return g(y, t) } ); function O(e) { return function(t) { for (var n = arguments.length, r = new Array(n > 1 ? n - 1 : 0), o = 1; o < n; o++) r[o - 1] = arguments[o]; return h(e, t, r) } } function D(e, t, n) { n = n || N, l && l(e, null); for (var r = t.length; r--; ) { var o = t[r]; if ("string" == typeof o) { var a = n(o); a !== o && (c(t) || (t[r] = a), o = a) } e[o] = !0 } return e } function L(e) { var t, n = p(null); for (t in e) !0 === h(i, e, [t]) && (n[t] = e[t]); return n } function R(e, t) { for (; null !== e; ) { var n = s(e, t); if (n) { if (n.get) return O(n.get); if ("function" == typeof n.value) return O(n.value) } e = u(e) } return function(e) { return console.warn("fallback value for", e), null } } var M = m(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]) , C = m(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]) , I = m(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]) , F = m(["animate", "color-profile", "cursor", "discard", "fedropshadow", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]) , U = m(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover"]) , H = m(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]) , z = m(["#text"]) , P = m(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]) , j = m(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]) , B = m(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]) , G = m(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]) , W = f(/\{\{[\w\W]*|[\w\W]*\}\}/gm) , q = f(/<%[\w\W]*|[\w\W]*%>/gm) , Y = f(/\${[\w\W]*}/gm) , $ = f(/^data-[\-\w.\u00B7-\uFFFF]/) , K = f(/^aria-[\-\w]+$/) , V = f(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i) , X = f(/^(?:\w+script|data):/i) , Z = f(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g) , J = f(/^html$/i) , Q = function() { return "undefined" == typeof window ? null : window } , ee = function(t, n) { if ("object" !== e(t) || "function" != typeof t.createPolicy) return null; var r = null , o = "data-tt-policy-suffix"; n.currentScript && n.currentScript.hasAttribute(o) && (r = n.currentScript.getAttribute(o)); var a = "dompurify" + (r ? "#" + r : ""); try { return t.createPolicy(a, { createHTML: function(e) { return e }, createScriptURL: function(e) { return e } }) } catch (e) { return console.warn("TrustedTypes policy " + a + " could not be created."), null } }; var te = function t() { var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Q() , r = function(e) { return t(e) }; if (r.version = "2.4.3", r.removed = [], !n || !n.document || 9 !== n.document.nodeType) return r.isSupported = !1, r; var a = n.document , i = n.document , l = n.DocumentFragment , c = n.HTMLTemplateElement , u = n.Node , s = n.Element , f = n.NodeFilter , p = n.NamedNodeMap , d = void 0 === p ? n.NamedNodeMap || n.MozNamedAttrMap : p , h = n.HTMLFormElement , g = n.DOMParser , y = n.trustedTypes , O = s.prototype , te = R(O, "cloneNode") , ne = R(O, "nextSibling") , re = R(O, "childNodes") , oe = R(O, "parentNode"); if ("function" == typeof c) { var ae = i.createElement("template"); ae.content && ae.content.ownerDocument && (i = ae.content.ownerDocument) } var ie = ee(y, a) , le = ie ? ie.createHTML("") : "" , ce = i , ue = ce.implementation , se = ce.createNodeIterator , me = ce.createDocumentFragment , fe = ce.getElementsByTagName , pe = a.importNode , de = {}; try { de = L(i).documentMode ? i.documentMode : {} } catch (e) {} var he = {}; r.isSupported = "function" == typeof oe && ue && void 0 !== ue.createHTMLDocument && 9 !== de; var ge, ye, be = W, ve = q, Te = Y, Ne = $, Ae = K, Ee = X, we = Z, Se = V, xe = null, _e = D({}, [].concat(o(M), o(C), o(I), o(U), o(z))), ke = null, Oe = D({}, [].concat(o(P), o(j), o(B), o(G))), De = Object.seal(Object.create(null, { tagNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null }, attributeNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null }, allowCustomizedBuiltInElements: { writable: !0, configurable: !1, enumerable: !0, value: !1 } })), Le = null, Re = null, Me = !0, Ce = !0, Ie = !1, Fe = !1, Ue = !1, He = !1, ze = !1, Pe = !1, je = !1, Be = !1, Ge = !0, We = !1, qe = "user-content-", Ye = !0, $e = !1, Ke = {}, Ve = null, Xe = D({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]), Ze = null, Je = D({}, ["audio", "video", "img", "source", "image", "track"]), Qe = null, et = D({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), tt = "http://www.w3.org/1998/Math/MathML", nt = "http://www.w3.org/2000/svg", rt = "http://www.w3.org/1999/xhtml", ot = rt, at = !1, it = null, lt = D({}, [tt, nt, rt], A), ct = ["application/xhtml+xml", "text/html"], ut = "text/html", st = null, mt = i.createElement("form"), ft = function(e) { return e instanceof RegExp || e instanceof Function }, pt = function(t) { st && st === t || (t && "object" === e(t) || (t = {}), t = L(t), ge = ge = -1 === ct.indexOf(t.PARSER_MEDIA_TYPE) ? ut : t.PARSER_MEDIA_TYPE, ye = "application/xhtml+xml" === ge ? A : N, xe = "ALLOWED_TAGS"in t ? D({}, t.ALLOWED_TAGS, ye) : _e, ke = "ALLOWED_ATTR"in t ? D({}, t.ALLOWED_ATTR, ye) : Oe, it = "ALLOWED_NAMESPACES"in t ? D({}, t.ALLOWED_NAMESPACES, A) : lt, Qe = "ADD_URI_SAFE_ATTR"in t ? D(L(et), t.ADD_URI_SAFE_ATTR, ye) : et, Ze = "ADD_DATA_URI_TAGS"in t ? D(L(Je), t.ADD_DATA_URI_TAGS, ye) : Je, Ve = "FORBID_CONTENTS"in t ? D({}, t.FORBID_CONTENTS, ye) : Xe, Le = "FORBID_TAGS"in t ? D({}, t.FORBID_TAGS, ye) : {}, Re = "FORBID_ATTR"in t ? D({}, t.FORBID_ATTR, ye) : {}, Ke = "USE_PROFILES"in t && t.USE_PROFILES, Me = !1 !== t.ALLOW_ARIA_ATTR, Ce = !1 !== t.ALLOW_DATA_ATTR, Ie = t.ALLOW_UNKNOWN_PROTOCOLS || !1, Fe = t.SAFE_FOR_TEMPLATES || !1, Ue = t.WHOLE_DOCUMENT || !1, Pe = t.RETURN_DOM || !1, je = t.RETURN_DOM_FRAGMENT || !1, Be = t.RETURN_TRUSTED_TYPE || !1, ze = t.FORCE_BODY || !1, Ge = !1 !== t.SANITIZE_DOM, We = t.SANITIZE_NAMED_PROPS || !1, Ye = !1 !== t.KEEP_CONTENT, $e = t.IN_PLACE || !1, Se = t.ALLOWED_URI_REGEXP || Se, ot = t.NAMESPACE || rt, t.CUSTOM_ELEMENT_HANDLING && ft(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (De.tagNameCheck = t.CUSTOM_ELEMENT_HANDLING.tagNameCheck), t.CUSTOM_ELEMENT_HANDLING && ft(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (De.attributeNameCheck = t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), t.CUSTOM_ELEMENT_HANDLING && "boolean" == typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (De.allowCustomizedBuiltInElements = t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Fe && (Ce = !1), je && (Pe = !0), Ke && (xe = D({}, o(z)), ke = [], !0 === Ke.html && (D(xe, M), D(ke, P)), !0 === Ke.svg && (D(xe, C), D(ke, j), D(ke, G)), !0 === Ke.svgFilters && (D(xe, I), D(ke, j), D(ke, G)), !0 === Ke.mathMl && (D(xe, U), D(ke, B), D(ke, G))), t.ADD_TAGS && (xe === _e && (xe = L(xe)), D(xe, t.ADD_TAGS, ye)), t.ADD_ATTR && (ke === Oe && (ke = L(ke)), D(ke, t.ADD_ATTR, ye)), t.ADD_URI_SAFE_ATTR && D(Qe, t.ADD_URI_SAFE_ATTR, ye), t.FORBID_CONTENTS && (Ve === Xe && (Ve = L(Ve)), D(Ve, t.FORBID_CONTENTS, ye)), Ye && (xe["#text"] = !0), Ue && D(xe, ["html", "head", "body"]), xe.table && (D(xe, ["tbody"]), delete Le.tbody), m && m(t), st = t) }, dt = D({}, ["mi", "mo", "mn", "ms", "mtext"]), ht = D({}, ["foreignobject", "desc", "title", "annotation-xml"]), gt = D({}, ["title", "style", "font", "a", "script"]), yt = D({}, C); D(yt, I), D(yt, F); var bt = D({}, U); D(bt, H); var vt = function(e) { var t = oe(e); t && t.tagName || (t = { namespaceURI: ot, tagName: "template" }); var n = N(e.tagName) , r = N(t.tagName); return !!it[e.namespaceURI] && (e.namespaceURI === nt ? t.namespaceURI === rt ? "svg" === n : t.namespaceURI === tt ? "svg" === n && ("annotation-xml" === r || dt[r]) : Boolean(yt[n]) : e.namespaceURI === tt ? t.namespaceURI === rt ? "math" === n : t.namespaceURI === nt ? "math" === n && ht[r] : Boolean(bt[n]) : e.namespaceURI === rt ? !(t.namespaceURI === nt && !ht[r]) && (!(t.namespaceURI === tt && !dt[r]) && (!bt[n] && (gt[n] || !yt[n]))) : !("application/xhtml+xml" !== ge || !it[e.namespaceURI])) } , Tt = function(e) { T(r.removed, { element: e }); try { e.parentNode.removeChild(e) } catch (t) { try { e.outerHTML = le } catch (t) { e.remove() } } } , Nt = function(e, t) { try { T(r.removed, { attribute: t.getAttributeNode(e), from: t }) } catch (e) { T(r.removed, { attribute: null, from: t }) } if (t.removeAttribute(e), "is" === e && !ke[e]) if (Pe || je) try { Tt(t) } catch (e) {} else try { t.setAttribute(e, "") } catch (e) {} } , At = function(e) { var t, n; if (ze) e = "" + e; else { var r = E(e, /^[\r\n\t ]+/); n = r && r[0] } "application/xhtml+xml" === ge && ot === rt && (e = '' + e + ""); var o = ie ? ie.createHTML(e) : e; if (ot === rt) try { t = (new g).parseFromString(o, ge) } catch (e) {} if (!t || !t.documentElement) { t = ue.createDocument(ot, "template", null); try { t.documentElement.innerHTML = at ? le : o } catch (e) {} } var a = t.body || t.documentElement; return e && n && a.insertBefore(i.createTextNode(n), a.childNodes[0] || null), ot === rt ? fe.call(t, Ue ? "html" : "body")[0] : Ue ? t.documentElement : a } , Et = function(e) { return se.call(e.ownerDocument || e, e, f.SHOW_ELEMENT | f.SHOW_COMMENT | f.SHOW_TEXT, null, !1) } , wt = function(e) { return e instanceof h && ("string" != typeof e.nodeName || "string" != typeof e.textContent || "function" != typeof e.removeChild || !(e.attributes instanceof d) || "function" != typeof e.removeAttribute || "function" != typeof e.setAttribute || "string" != typeof e.namespaceURI || "function" != typeof e.insertBefore || "function" != typeof e.hasChildNodes) } , St = function(t) { return "object" === e(u) ? t instanceof u : t && "object" === e(t) && "number" == typeof t.nodeType && "string" == typeof t.nodeName } , xt = function(e, t, n) { he[e] && b(he[e], (function(e) { e.call(r, t, n, st) } )) } , _t = function(e) { var t; if (xt("beforeSanitizeElements", e, null), wt(e)) return Tt(e), !0; if (_(/[\u0080-\uFFFF]/, e.nodeName)) return Tt(e), !0; var n = ye(e.nodeName); if (xt("uponSanitizeElement", e, { tagName: n, allowedTags: xe }), e.hasChildNodes() && !St(e.firstElementChild) && (!St(e.content) || !St(e.content.firstElementChild)) && _(/<[/\w]/g, e.innerHTML) && _(/<[/\w]/g, e.textContent)) return Tt(e), !0; if ("select" === n && _(/