/*! highlight.js v9.9.0 | BSD3 License | git.io/hljslicense */ !(function (e) { var n = ('object' == typeof window && window) || ('object' == typeof self && self) 'undefined' != typeof exports ? e(exports) : n && ((n.hljs = e({})), 'function' == typeof define && define.amd && define([], function () { return n.hljs })) })(function (e) { function n(e) { return e.replace(/[&<>]/gm, function (e) { return I[e] }) } function t(e) { return e.nodeName.toLowerCase() } function r(e, n) { var t = e && e.exec(n) return t && 0 === t.index } function i(e) { return k.test(e) } function a(e) { var n, t, r, a, o = e.className + ' ' if (((o += e.parentNode ? e.parentNode.className : ''), (t = B.exec(o)))) return R(t[1]) ? t[1] : 'no-highlight' for (o = o.split(/\s+/), n = 0, r = o.length; r > n; n++) if (((a = o[n]), i(a) || R(a))) return a } function o(e, n) { var t, r = {} for (t in e) r[t] = e[t] if (n) for (t in n) r[t] = n[t] return r } function u(e) { var n = [] return ( (function r(e, i) { for (var a = e.firstChild; a; a = a.nextSibling) 3 === a.nodeType ? (i += a.nodeValue.length) : 1 === a.nodeType && (n.push({ event: 'start', offset: i, node: a }), (i = r(a, i)), t(a).match(/br|hr|img|input/) || n.push({ event: 'stop', offset: i, node: a })) return i })(e, 0), n ) } function c(e, r, i) { function a() { return e.length && r.length ? e[0].offset !== r[0].offset ? e[0].offset < r[0].offset ? e : r : 'start' === r[0].event ? e : r : e.length ? e : r } function o(e) { function r(e) { return ' ' + e.nodeName + '="' + n(e.value) + '"' } l += '<' + t(e) + w.map.call(e.attributes, r).join('') + '>' } function u(e) { l += '' } function c(e) { ;('start' === e.event ? o : u)(e.node) } for (var s = 0, l = '', f = []; e.length || r.length; ) { var g = a() if (((l += n(i.substring(s, g[0].offset))), (s = g[0].offset), g === e)) { f.reverse().forEach(u) do c(g.splice(0, 1)[0]), (g = a()) while (g === e && g.length && g[0].offset === s) f.reverse().forEach(o) } else 'start' === g[0].event ? f.push(g[0].node) : f.pop(), c(g.splice(0, 1)[0]) } return l + n(i.substr(s)) } function s(e) { function n(e) { return (e && e.source) || e } function t(t, r) { return new RegExp(n(t), 'm' + (e.cI ? 'i' : '') + (r ? 'g' : '')) } function r(i, a) { if (!i.compiled) { if (((i.compiled = !0), (i.k = i.k || i.bK), i.k)) { var u = {}, c = function (n, t) { e.cI && (t = t.toLowerCase()), t.split(' ').forEach(function (e) { var t = e.split('|') u[t[0]] = [n, t[1] ? Number(t[1]) : 1] }) } 'string' == typeof i.k ? c('keyword', i.k) : E(i.k).forEach(function (e) { c(e, i.k[e]) }), (i.k = u) } ;(i.lR = t(i.l || /\w+/, !0)), a && (i.bK && (i.b = '\\b(' + i.bK.split(' ').join('|') + ')\\b'), i.b || (i.b = /\B|\b/), (i.bR = t(i.b)), i.e || i.eW || (i.e = /\B|\b/), i.e && (i.eR = t(i.e)), (i.tE = n(i.e) || ''), i.eW && a.tE && (i.tE += (i.e ? '|' : '') + a.tE)), i.i && (i.iR = t(i.i)), null == i.r && (i.r = 1), i.c || (i.c = []) var s = [] i.c.forEach(function (e) { e.v ? e.v.forEach(function (n) { s.push(o(e, n)) }) : s.push('self' === e ? i : e) }), (i.c = s), i.c.forEach(function (e) { r(e, i) }), i.starts && r(i.starts, a) var l = i.c .map(function (e) { return e.bK ? '\\.?(' + e.b + ')\\.?' : e.b }) .concat([i.tE, i.i]) .map(n) .filter(Boolean) i.t = l.length ? t(l.join('|'), !0) : { exec: function () { return null }, } } } r(e) } function l(e, t, i, a) { function o(e, n) { var t, i for (t = 0, i = n.c.length; i > t; t++) if (r(n.c[t].bR, e)) return n.c[t] } function u(e, n) { if (r(e.eR, n)) { for (; e.endsParent && e.parent; ) e = e.parent return e } return e.eW ? u(e.parent, n) : void 0 } function c(e, n) { return !i && r(n.iR, e) } function g(e, n) { var t = N.cI ? n[0].toLowerCase() : n[0] return e.k.hasOwnProperty(t) && e.k[t] } function h(e, n, t, r) { var i = r ? '' : y.classPrefix, a = ''), a + n + o } function p() { var e, t, r, i if (!E.k) return n(B) for (i = '', t = 0, E.lR.lastIndex = 0, r = E.lR.exec(B); r; ) (i += n(B.substring(t, r.index))), (e = g(E, r)), e ? ((M += e[1]), (i += h(e[0], n(r[0])))) : (i += n(r[0])), (t = E.lR.lastIndex), (r = E.lR.exec(B)) return i + n(B.substr(t)) } function d() { var e = 'string' == typeof E.sL if (e && !x[E.sL]) return n(B) var t = e ? l(E.sL, B, !0, L[E.sL]) : f(B, E.sL.length ? E.sL : void 0) return E.r > 0 && (M += t.r), e && (L[E.sL] = t.top), h(t.language, t.value, !1, !0) } function b() { ;(k += null != E.sL ? d() : p()), (B = '') } function v(e) { ;(k += e.cN ? h(e.cN, '', !0) : ''), (E = Object.create(e, { parent: { value: E } })) } function m(e, n) { if (((B += e), null == n)) return b(), 0 var t = o(n, E) if (t) return ( t.skip ? (B += n) : (t.eB && (B += n), b(), t.rB || t.eB || (B = n)), v(t, n), t.rB ? 0 : n.length ) var r = u(E, n) if (r) { var i = E i.skip ? (B += n) : (i.rE || i.eE || (B += n), b(), i.eE && (B = n)) do E.cN && (k += C), E.skip || (M += E.r), (E = E.parent) while (E !== r.parent) return r.starts && v(r.starts, ''), i.rE ? 0 : n.length } if (c(n, E)) throw new Error('Illegal lexeme "' + n + '" for mode "' + (E.cN || '') + '"') return (B += n), n.length || 1 } var N = R(e) if (!N) throw new Error('Unknown language: "' + e + '"') s(N) var w, E = a || N, L = {}, k = '' for (w = E; w !== N; w = w.parent) w.cN && (k = h(w.cN, '', !0) + k) var B = '', M = 0 try { for (var I, j, O = 0; ; ) { if (((E.t.lastIndex = O), (I = E.t.exec(t)), !I)) break ;(j = m(t.substring(O, I.index), I[0])), (O = I.index + j) } for (m(t.substr(O)), w = E; w.parent; w = w.parent) w.cN && (k += C) return { r: M, value: k, language: e, top: E } } catch (T) { if (T.message && -1 !== T.message.indexOf('Illegal')) return { r: 0, value: n(t) } throw T } } function f(e, t) { t = t || y.languages || E(x) var r = { r: 0, value: n(e) }, i = r return ( t.filter(R).forEach(function (n) { var t = l(n, e, !1) ;(t.language = n), t.r > i.r && (i = t), t.r > r.r && ((i = r), (r = t)) }), i.language && (r.second_best = i), r ) } function g(e) { return y.tabReplace || y.useBR ? e.replace(M, function (e, n) { return y.useBR && '\n' === e ? '
' : y.tabReplace ? n.replace(/\t/g, y.tabReplace) : void 0 }) : e } function h(e, n, t) { var r = n ? L[n] : t, i = [e.trim()] return ( e.match(/\bhljs\b/) || i.push('hljs'), -1 === e.indexOf(r) && i.push(r), i.join(' ').trim() ) } function p(e) { var n, t, r, o, s, p = a(e) i(p) || (y.useBR ? ((n = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')), (n.innerHTML = e.innerHTML.replace(/\n/g, '').replace(//g, '\n'))) : (n = e), (s = n.textContent), (r = p ? l(p, s, !0) : f(s)), (t = u(n)), t.length && ((o = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')), (o.innerHTML = r.value), (r.value = c(t, u(o), s))), (r.value = g(r.value)), (e.innerHTML = r.value), (e.className = h(e.className, p, r.language)), (e.result = { language: r.language, re: r.r }), r.second_best && (e.second_best = { language: r.second_best.language, re: r.second_best.r })) } function d(e) { y = o(y, e) } function b() { if (!b.called) { b.called = !0 var e = document.querySelectorAll('pre code') w.forEach.call(e, p) } } function v() { addEventListener('DOMContentLoaded', b, !1), addEventListener('load', b, !1) } function m(n, t) { var r = (x[n] = t(e)) r.aliases && r.aliases.forEach(function (e) { L[e] = n }) } function N() { return E(x) } function R(e) { return (e = (e || '').toLowerCase()), x[e] || x[L[e]] } var w = [], E = Object.keys, x = {}, L = {}, k = /^(no-?highlight|plain|text)$/i, B = /\blang(?:uage)?-([\w-]+)\b/i, M = /((^(<[^>]+>|\t|)+|(?:\n)))/gm, C = '
', y = { classPrefix: 'hljs-', tabReplace: null, useBR: !1, languages: void 0 }, I = { '&': '&', '<': '<', '>': '>' } return ( (e.highlight = l), (e.highlightAuto = f), (e.fixMarkup = g), (e.highlightBlock = p), (e.configure = d), (e.initHighlighting = b), (e.initHighlightingOnLoad = v), (e.registerLanguage = m), (e.listLanguages = N), (e.getLanguage = R), (e.inherit = o), (e.IR = '[a-zA-Z]\\w*'), (e.UIR = '[a-zA-Z_]\\w*'), (e.NR = '\\b\\d+(\\.\\d+)?'), (e.CNR = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'), (e.BNR = '\\b(0b[01]+)'), (e.RSR = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'), (e.BE = { b: '\\\\[\\s\\S]', r: 0 }), (e.ASM = { cN: 'string', b: "'", e: "'", i: '\\n', c: [e.BE] }), (e.QSM = { cN: 'string', b: '"', e: '"', i: '\\n', c: [e.BE] }), (e.PWM = { b: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/, }), (e.C = function (n, t, r) { var i = e.inherit({ cN: 'comment', b: n, e: t, c: [] }, r || {}) return i.c.push(e.PWM), i.c.push({ cN: 'doctag', b: '(?:TODO|FIXME|NOTE|BUG|XXX):', r: 0 }), i }), (e.CLCM = e.C('//', '$')), (e.CBCM = e.C('/\\*', '\\*/')), (e.HCM = e.C('#', '$')), (e.NM = { cN: 'number', b: e.NR, r: 0 }), (e.CNM = { cN: 'number', b: e.CNR, r: 0 }), (e.BNM = { cN: 'number', b: e.BNR, r: 0 }), (e.CSSNM = { cN: 'number', b: e.NR + '(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?', r: 0, }), (e.RM = { cN: 'regexp', b: /\//, e: /\/[gimuy]*/, i: /\n/, c: [e.BE, { b: /\[/, e: /\]/, r: 0, c: [e.BE] }], }), (e.TM = { cN: 'title', b: e.IR, r: 0 }), (e.UTM = { cN: 'title', b: e.UIR, r: 0 }), (e.METHOD_GUARD = { b: '\\.\\s*' + e.UIR, r: 0 }), e ) }) hljs.registerLanguage('javascript', function (e) { var r = '[A-Za-z$_][0-9A-Za-z$_]*', t = { keyword: 'in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as', literal: 'true false null undefined NaN Infinity', built_in: 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise', }, a = { cN: 'number', v: [{ b: '\\b(0[bB][01]+)' }, { b: '\\b(0[oO][0-7]+)' }, { b: e.CNR }], r: 0, }, n = { cN: 'subst', b: '\\$\\{', e: '\\}', k: t, c: [] }, c = { cN: 'string', b: '`', e: '`', c: [e.BE, n] } n.c = [e.ASM, e.QSM, c, a, e.RM] var s = n.c.concat([e.CBCM, e.CLCM]) return { aliases: ['js', 'jsx'], k: t, c: [ { cN: 'meta', r: 10, b: /^\s*['"]use (strict|asm)['"]/ }, { cN: 'meta', b: /^#!/, e: /$/ }, e.ASM, e.QSM, c, e.CLCM, e.CBCM, a, { b: /[{,]\s*/, r: 0, c: [{ b: r + '\\s*:', rB: !0, r: 0, c: [{ cN: 'attr', b: r, r: 0 }] }], }, { b: '(' + e.RSR + '|\\b(case|return|throw)\\b)\\s*', k: 'return throw case', c: [ e.CLCM, e.CBCM, e.RM, { cN: 'function', b: '(\\(.*?\\)|' + r + ')\\s*=>', rB: !0, e: '\\s*=>', c: [ { cN: 'params', v: [{ b: r }, { b: /\(\s*\)/ }, { b: /\(/, e: /\)/, eB: !0, eE: !0, k: t, c: s }], }, ], }, { b: //, sL: 'xml', c: [ { b: /<\w+\s*\/>/, skip: !0 }, { b: /<\w+/, e: /(\/\w+|\w+\/)>/, skip: !0, c: [{ b: /<\w+\s*\/>/, skip: !0 }, 'self'], }, ], }, ], r: 0, }, { cN: 'function', bK: 'function', e: /\{/, eE: !0, c: [e.inherit(e.TM, { b: r }), { cN: 'params', b: /\(/, e: /\)/, eB: !0, eE: !0, c: s }], i: /\[|%/, }, { b: /\$[(.]/ }, e.METHOD_GUARD, { cN: 'class', bK: 'class', e: /[{;=]/, eE: !0, i: /[:"\[\]]/, c: [{ bK: 'extends' }, e.UTM], }, { bK: 'constructor', e: /\{/, eE: !0 }, ], i: /#(?!!)/, } }) // Line numbers plugin !(function (e) { 'use strict' function t() { 'complete' === document.readyState ? n() : e.addEventListener('DOMContentLoaded', n) } function n() { try { var e = document.querySelectorAll('code.hljs') for (var t in e) e.hasOwnProperty(t) && r(e[t]) } catch (n) { console.error('LineNumbers error: ', n) } } function r(e) { if ('object' == typeof e) { var t = e.parentNode, n = o(t.textContent) if (n > 1) { for (var r = '', c = 0; n > c; c++) r += c + 1 + '\n' var l = document.createElement('code') ;(l.className = 'hljs hljs-line-numbers'), (l.style['float'] = 'left'), (l.textContent = r), t.insertBefore(l, e) } } } function o(e) { if (0 === e.length) return 0 var t = /\r\n|\r|\n/g, n = e.match(t) return (n = n ? n.length : 0), e[e.length - 1].match(t) || (n += 1), n } 'undefined' == typeof e.hljs ? console.error('highlight.js not detected!') : ((e.hljs.initLineNumbersOnLoad = t), (e.hljs.lineNumbersBlock = r)) })(window)