text: /*! highlight.js v9.17.1 | BSD3 License | git.io/hljslicense */!function(b){var a="object"==typeof window&&window||"object"==typeof self&&self;"undefined"==typeof exports||exports.nodeType?a&&(a.hljs=b({}),"function"==typeof define&&define.amd&&define([],function(){return a.hljs})):b(exports)}(function(a){var r=[],m=Object.keys,f={},j={},h=!0,E=/^(no-?highlight|plain|text)$/i,C=/\blang(?:uage)?-([\w-]+)\b/i,B=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,k={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},o="</span>",A="Could not find the language '{}', did you forget to load/include a language module?",c={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},F="of and for in not or if then".split(" "),D;function b(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function l(a){return a.nodeName.toLowerCase()}function u(a){return E.test(a)}function e(c){var a,b={},d=Array.prototype.slice.call(arguments,1);for(a in c)b[a]=c[a];return d.forEach(function(c){for(a in c)b[a]=c[a]}),b}function s(b){var a=[];return function d(e,c){for(var b=e.firstChild;b;b=b.nextSibling)3===b.nodeType?c+=b.nodeValue.length:1===b.nodeType&&(a.push({event:"start",offset:c,node:b}),c=d(b,c),l(b).match(/br|hr|img|input/)||a.push({event:"stop",offset:c,node:b}));return c}(b,0),a}function z(a,d,h){var e=0,g="",f=[],c;function i(){return a.length&&d.length?a[0].offset!==d[0].offset?a[0].offset<d[0].offset?a:d:"start"===d[0].event?a:d:a.length?a:d}function j(a){g+="<"+l(a)+r.map.call(a.attributes,function(a){return" "+a.nodeName+'="'+b(a.value).replace(/"/g,"&quot;")+'"'}).join("")+">"}function k(a){g+="</"+l(a)+">"}function m(a){("start"===a.event?j:k)(a.node)}for(;a.length||d.length;)if(c=i(),g+=b(h.substring(e,c[0].offset)),e=c[0].offset,c===a){for(f.reverse().forEach(k);m(c.splice(0,1)[0]),(c=i())===a&&c.length&&c[0].offset===e;);f.reverse().forEach(j)}else"start"===c[0].event?f.push(c[0].node):f.pop(),m(c.splice(0,1)[0]);return g+b(h.substr(e))}function w(a){return a.v&&!a.cached_variants&&(a.cached_variants=a.v.map(function(b){return e(a,{v:null},b)})),a.cached_variants?a.cached_variants:function b(a){return!!a&&(a.eW||b(a.starts))}(a)?[e(a,{starts:a.starts?e(a.starts):null})]:Object.isFrozen(a)?[e(a)]:[a]}function t(a){if(k&&!a.langApiRestored){for(var b in a.langApiRestored=!0,k)a[b]&&(a[k[b]]=a[b]);(a.c||[]).concat(a.v||[]).forEach(t)}}function x(a,d){var b={};return"string"==typeof a?c("keyword",a):m(a).forEach(function(b){c(b,a[b])}),b;function c(c,a){d&&(a=a.toLowerCase()),a.split(" ").forEach(function(f){var d,e,a=f.split("|");b[a[0]]=[c,(d=a[0],(e=a[1])?Number(e):function(a){return-1!=F.indexOf(a.toLowerCase())}(d)?0:1)]})}}function y(a){function c(a){return a&&a.source||a}function b(b,d){return new RegExp(c(b),"m"+(a.cI?"i":"")+(d?"g":""))}function d(a){var f,d,g={},h=[],e={},k=1,j,l;function i(a,b){g[k]=a,h.push([a,b]),k+=new RegExp(b.toString()+"|").exec("").length-1+1}for(j=0;j<a.c.length;j++)i(d=a.c[j],d.bK?"\\.?(?:"+d.b+")\\.?":d.b);return a.tE&&i("end",a.tE),a.i&&i("illegal",a.i),l=h.map(function(a){return a[1]}),f=b(function(f,i){for(var j=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,g=0,b="",e=0,h,d,a;e<f.length;e++){h=g+=1,d=c(f[e]);for(0<e&&(b+=i),b+="(";0<d.length;){if(a=j.exec(d),null==a){b+=d;break}b+=d.substring(0,a.index),d=d.substring(a.index+a[0].length),"\\"==a[0][0]&&a[1]?b+="\\"+String(Number(a[1])+h):(b+=a[0],"("==a[0]&&g++)}b+=")"}return b}(l,"|"),!0),e.lastIndex=0,e.exec=function(i){var d,b,c;if(0===h.length)return null;if(f.lastIndex=e.lastIndex,b=f.exec(i),!b)return null;for(c=0;c<b.length;c++)if(null!=b[c]&&null!=g[""+c]){d=g[""+c];break}return"string"==typeof d?(b.type=d,b.extra=[a.i,a.tE]):(b.type="begin",b.rule=d),b},e}if(a.c&&-1!=a.c.indexOf("self")){if(!h)throw new Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.");a.c=a.c.filter(function(a){return"self"!=a})}!function g(e,f){e.compiled||(e.compiled=!0,e.k=e.k||e.bK,e.k&&(e.k=x(e.k,a.cI)),e.lR=b(e.l||/\w+/,!0),f&&(e.bK&&(e.b="\\b("+e.bK.split(" ").join("|")+")\\b"),e.b||(e.b=/\B|\b/),e.bR=b(e.b),e.endSameAsBegin&&(e.e=e.b),e.e||e.eW||(e.e=/\B|\b/),e.e&&(e.eR=b(e.e)),e.tE=c(e.e)||"",e.eW&&f.tE&&(e.tE+=(e.e?"|":"")+f.tE)),e.i&&(e.iR=b(e.i)),null==e.relevance&&(e.relevance=1),e.c||(e.c=[]),e.c=Array.prototype.concat.apply([],e.c.map(function(a){return w("self"===a?e:a)})),e.c.forEach(function(a){g(a,e)}),e.starts&&g(e.starts,f),e.t=d(e))}(a)}function i(p,k,E,D){var s,l,g,a,v,j,e,m,q,u,r;function t(b,a,d,e){if(!d&&""===a)return"";if(!b)return a;var f='<span class="'+(e?"":c.classPrefix);return(f+=b+'">')+a+(d?"":o)}function w(){j+=null!=a.sL?function(){var d="string"==typeof a.sL,c;return d&&!f[a.sL]?b(e):(c=d?i(a.sL,e,!0,v[a.sL]):n(e,a.sL.length?a.sL:void 0),0<a.relevance&&(m+=c.relevance),d&&(v[a.sL]=c.top),t(c.language,c.value,!1,!0))}():function(){var g,f,c,d,h,i,j;if(!a.k)return b(e);for(d="",f=0,a.lR.lastIndex=0,c=a.lR.exec(e);c;)d+=b(e.substring(f,c.index)),h=a,i=c,j=l.cI?i[0].toLowerCase():i[0],(g=h.k.hasOwnProperty(j)&&h.k[j])?(m+=g[1],d+=t(g[0],b(c[0]))):d+=b(c[0]),f=a.lR.lastIndex,c=a.lR.exec(e);return d+b(e.substr(f))}(),e=""}function x(b){j+=b.cN?t(b.cN,"",!0):"",a=Object.create(b,{parent:{value:a}})}function C(c){var b=c[0],a=c.rule;return a&&a.endSameAsBegin&&(a.eR=new RegExp(b.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),a.skip?e+=b:(a.eB&&(e+=b),w(),a.rB||a.eB||(e=b)),x(a),a.rB?0:b.length}function B(f){var d=f[0],g=k.substr(f.index),b=function f(a,c){if(b=a.eR,d=c,(e=b&&b.exec(d))&&0===e.index){for(;a.endsParent&&a.parent;)a=a.parent;return a}var b,d,e;if(a.eW)return f(a.parent,c)}(a,g),c;if(b){c=a;for(c.skip?e+=d:(c.rE||c.eE||(e+=d),w(),c.eE&&(e=d));a.cN&&(j+=o),a.skip||a.sL||(m+=a.relevance),(a=a.parent)!==b.parent;);return b.starts&&(b.endSameAsBegin&&(b.starts.eR=b.eR),x(b.starts)),c.rE?0:d.length}}s={};function z(f,b){var c=b&&b[0],d;if(e+=f,null==c)return w(),0;if("begin"==s.type&&"end"==b.type&&s.index==b.index&&""===c)return e+=k.slice(b.index,b.index+1),1;if("begin"===(s=b).type)return C(b);if("illegal"===b.type&&!E)throw new Error('Illegal lexeme "'+c+'" for mode "'+(a.cN||"<unnamed>")+'"');if("end"===b.type)if(d=B(b),null!=d)return d;return e+=c,c.length}if(l=d(p),!l)throw console.error(A.replace("{}",p)),new Error('Unknown language: "'+p+'"');y(l),a=D||l,v={},j="";for(g=a;g!==l;g=g.parent)g.cN&&(j=t(g.cN,"",!0)+j);e="",m=0;try{for(q,u,r=0;a.t.lastIndex=r,q=a.t.exec(k);)u=z(k.substring(r,q.index),q),r=q.index+u;for(z(k.substr(r)),g=a;g.parent;g=g.parent)g.cN&&(j+=o);return{relevance:m,value:j,i:!1,language:p,top:a}}catch(c){if(c.message&&-1!==c.message.indexOf("Illegal"))return{i:!0,relevance:0,value:b(k)};if(h)return{relevance:0,value:b(k),language:p,top:a,errorRaised:c};throw c}}function n(h,g){g=g||c.languages||m(f);var a={relevance:0,value:b(h)},e=a;return g.filter(d).filter(v).forEach(function(c){var b=i(c,h,!1);b.language=c,b.relevance>e.relevance&&(e=b),b.relevance>a.relevance&&(e=a,a=b)}),e.language&&(a.second_best=e),a}function p(a){return c.tabReplace||c.useBR?a.replace(B,function(a,b){return c.useBR&&"\n"===a?"<br>":c.tabReplace?b.replace(/\t/g,c.tabReplace):""}):a}function q(b){var e,o,a,r,g,h,l,q,m,f,k=function(c){var b,e,g,f,a=c.className+" ",h;if(a+=c.parentNode?c.parentNode.className:"",e=C.exec(a))return h=d(e[1]),h,h?e[1]:"no-highlight";for(b=0,g=(a=a.split(/\s+/)).length;b<g;b++)if(u(f=a[b])||d(f))return f}(b);u(k)||(c.useBR?(e=document.createElement("div")).innerHTML=b.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n"):e=b,g=e.textContent,a=k?i(k,g,!0):n(g),(o=s(e)).length&&((r=document.createElement("div")).innerHTML=a.value,a.value=z(o,s(r),g)),a.value=p(a.value),b.innerHTML=a.value,b.className=(h=b.className,l=k,q=a.language,m=l?j[l]:q,f=[h.trim()],h.match(/\bhljs\b/)||f.push("hljs"),-1===h.indexOf(m)&&f.push(m),f.join(" ").trim()),b.result={language:a.language,re:a.relevance},a.second_best&&(b.second_best={language:a.second_best.language,re:a.second_best.relevance}))}function g(){if(!g.called){g.called=!0;var a=document.querySelectorAll("pre code");r.forEach.call(a,q)}}D={disableAutodetect:!0};function d(a){return a=(a||"").toLowerCase(),f[a]||f[j[a]]}function v(b){var a=d(b);return a&&!a.disableAutodetect}return a.highlight=i,a.highlightAuto=n,a.fixMarkup=p,a.highlightBlock=q,a.configure=function(a){c=e(c,a)},a.initHighlighting=g,a.initHighlightingOnLoad=function(){window.addEventListener("DOMContentLoaded",g,!1),window.addEventListener("load",g,!1)},a.registerLanguage=function(c,d){var b;try{b=d(a)}catch(a){if(console.error("Language definition for '{}' could not be registered.".replace("{}",c)),!h)throw a;console.error(a),b=D}t(f[c]=b),b.rawDefinition=d.bind(null,a),b.aliases&&b.aliases.forEach(function(a){j[a]=c})},a.listLanguages=function(){return m(f)},a.getLanguage=d,a.requireLanguage=function(a){var b=d(a);if(b)return b;throw new Error("The '{}' language is required, but not loaded.".replace("{}",a))},a.autoDetection=v,a.inherit=e,a.debugMode=function(){h=!1},a.IR=a.IDENT_RE="[a-zA-Z]\\w*",a.UIR=a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NR=a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.CNR=a.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BNR=a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RSR=a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BE=a.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",relevance:0},a.ASM=a.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={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|they|like|more)\b/},a.C=a.COMMENT=function(c,d,e){var b=a.inherit({cN:"comment",b:c,e:d,c:[]},e||{});return b.c.push(a.PWM),b.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),b},a.CLCM=a.C_LINE_COMMENT_MODE=a.C("//","$"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C("/\\*","\\*/"),a.HCM=a.HASH_COMMENT_MODE=a.C("#","$"),a.NM=a.NUMBER_MODE={cN:"number",b:a.NR,relevance:0},a.CNM=a.C_NUMBER_MODE={cN:"number",b:a.CNR,relevance:0},a.BNM=a.BINARY_NUMBER_MODE={cN:"number",b:a.BNR,relevance:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:"number",b:a.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)?",relevance:0},a.RM=a.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[a.BE,{b:/\[/,e:/\]/,relevance:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:"title",b:a.IR,relevance:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:"title",b:a.UIR,relevance:0},a.METHOD_GUARD={b:"\\.\\s*"+a.UIR,relevance:0},[a.BE,a.ASM,a.QSM,a.PWM,a.C,a.CLCM,a.CBCM,a.HCM,a.NM,a.CNM,a.BNM,a.CSSNM,a.RM,a.TM,a.UTM,a.METHOD_GUARD].forEach(function(a){!function b(a){Object.freeze(a);var c="function"==typeof a;return Object.getOwnPropertyNames(a).forEach(function(d){!a.hasOwnProperty(d)||null===a[d]||"object"!=typeof a[d]&&"function"!=typeof a[d]||c&&("caller"===d||"callee"===d||"arguments"===d)||Object.isFrozen(a[d])||b(a[d])}),a}(a)}),a}),hljs.registerLanguage("bash",function(a){var b={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},c={cN:"string",b:/"/,e:/"/,c:[a.BE,b,{cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]}]};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,relevance:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[a.inherit(a.TM,{b:/\w[\w\d_]*/})],relevance:0},a.HCM,c,{cN:"",b:/\\"/},{cN:"string",b:/'/,e:/'/},b]}}),hljs.registerLanguage("shell",function(a){return{aliases:["console"],c:[{cN:"meta",b:"^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]",starts:{e:"$",sL:"bash"}}]}}),hljs.registerLanguage("ruby",function(a){var f="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",c={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},j={cN:"doctag",b:"@[A-Za-z]+"},g={b:"#<",e:">"},b=[a.C("#","$",{c:[j]}),a.C("^\\=begin","^\\=end",{c:[j],relevance:10}),a.C("^__END__","\\n$")],e={cN:"subst",b:"#\\{",e:"}",k:c},h={cN:"string",c:[a.BE,e],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,rB:!0,c:[{b:/<<[-~]?'?/},{b:/\w+/,endSameAsBegin:!0,c:[a.BE,e]}]}]},i={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:c},d=[h,g,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[a.inherit(a.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+a.IR+"::)?"+a.IR}]}].concat(b)},{cN:"function",bK:"def",e:"$|;",c:[a.inherit(a.TM,{b:f}),i].concat(b)},{b:a.IR+"::"},{cN:"symbol",b:a.UIR+"(\\!|\\?)?:",relevance:0},{cN:"symbol",b:":(?!\\s)",c:[h,{b:f}],relevance:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:c},{b:"("+a.RSR+"|unless)\\s*",k:"unless",c:[g,{cN:"regexp",c:[a.BE,e],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(b),relevance:0}].concat(b),k;return e.c=d,k=[{b:/^\s*=>/,starts:{e:"$",c:i.c=d}},{cN:"meta",b:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{e:"$",c:d}}],{aliases:["rb","gemspec","podspec","thor","irb"],k:c,i:/\/\*/,c:b.concat(k).concat(d)}}),hljs.registerLanguage("yaml",function(a){var b="true false yes no null",c={cN:"string",relevance:0,v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/\S+/}],c:[a.BE,{cN:"template-variable",v:[{b:",e:"},{b:"%{",e:"}"}]}]};return{cI:!0,aliases:["yml","YAML","yaml"],c:[{cN:"attr",v:[{b:"\\w[\\w :\\/.-]*:(?=[ 	]|$)"},{b:'"\\w[\\w :\\/.-]*":(?=[ 	]|$)'},{b:"'\\w[\\w :\\/.-]*':(?=[ 	]|$)"}]},{cN:"meta",b:"^---s*$",relevance:10},{cN:"string",b:"[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*"},{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0,relevance:0},{cN:"type",b:"!"+a.UIR},{cN:"type",b:"!!"+a.UIR},{cN:"meta",b:"&"+a.UIR+"$"},{cN:"meta",b:"\\*"+a.UIR+"$"},{cN:"bullet",b:"\\-(?=[ ]|$)",relevance:0},a.HCM,{bK:b,k:{literal:b}},{cN:"number",b:a.CNR+"\\b"},c]}});const featuredImageClass='image_featured',imageScalableClass='image-scalable',scaleImageClass='image-scale',pageHasLoaded='DOMContentLoaded',doc=document.documentElement,inline=":inline",parentURL=window.location.protocol+"//"+window.location.host+"/";let showImagePosition="false";const showImagePositionLabel='Figure';function isObj(a){return!!(a&&typeof a=='object'&&a!==null)}function createEl(a='div'){return document.createElement(a)}function elem(b,c=document){let a=c.querySelector(b);return a!=!1&&a}function elems(b,c=document){let a=c.querySelectorAll(b);return!!a.length&&a}function pushClass(b,a){isObj(b)&&a&&(elClass=b.classList,!elClass.contains(a)&&elClass.add(a))}function hasClasses(a){if(isObj(a)){const b=a.classList;return b.length}}(function(){const a=elems('code');a&&a.forEach(function(a){!!containsClass(a,'verbatim')&&pushClass(a,'noClass'),!hasClasses(a)&&pushClass(a,'noClass')})})();function deleteClass(b,a){isObj(b)&&a&&(elClass=b.classList,!!elClass.contains(a)&&elClass.remove(a))}function modifyClass(b,a){isObj(b)&&a&&(elClass=b.classList,elClass.contains(a)?elClass.remove(a):elClass.add(a))}function containsClass(a,b){if(isObj(a)&&b&&a!==document)return!!a.classList.contains(b)}function elemAttribute(b,c,a=null){if(a)b.setAttribute(c,a);else return a=b.getAttribute(c),a||!1}function wrapEl(a,b){a.parentNode.insertBefore(b,a),b.appendChild(a)}function deleteChars(c,b){let a=c;if(Array.isArray(b))for(let c=0;c<b.length;c++)a=a.replace(b[c],'');else a=a.replace(b,'');return a}function isBlank(a){return!a||a.trim().length===0}function isMatch(a,b){if(isObj(a)){if(b.isArray){let c=b.map(function(b){return a.matches(b)});return c.includes(!0)}return a.matches(b)}}function copyToClipboard(d){let a,b,c;a=createEl('textarea'),a.value=d,a.setAttribute('readonly',''),a.style.position='absolute',a.style.left='-9999px',b=document.getSelection(),doc.appendChild(a),c=b.rangeCount>0&&b.getRangeAt(0),a.select(),document.execCommand('copy'),doc.removeChild(a),c&&(b.removeAllRanges(),b.addRange(c))}const iconsPath='icons/';function loadSvg(a,b,c=iconsPath){const d=`${parentURL}${c}${a}.svg`;fetch(d).then(a=>a.text()).then(a=>{b.innerHTML=a})}function getMobileOperatingSystem(){let a=navigator.userAgent||navigator.vendor||window.opera;return/android/i.test(a)?"Android":/iPad|iPhone|iPod/.test(a)&&!window.MSStream?"iOS":"unknown"}function horizontalSwipe(c,e,f){let a=0,b=0,d=null;function g(){return b+50<a?'left':b<a+50&&'right'}c.addEventListener('touchstart',b=>{a=b.changedTouches[0].screenX}),c.addEventListener('touchend',a=>{b=a.changedTouches[0].screenX,d=g(),d===f&&e()})}function parseBoolean(a){let b;switch(a=a.trim().toLowerCase(),a){case'true':return!0;case'false':return!1;default:return void 0}}(function(){const a=elem('body'),b=navigator.platform.toLowerCase();b.includes("win")&&pushClass(a,'windows')})();const codeActionButtons=[{icon:'copy',id:'copy',title:'Copy Code',show:!0},{icon:'order',id:'lines',title:'Toggle Line Numbers',show:!0},{icon:'carly',id:'wrap',title:'Toggle Line Wrap',show:!1},{icon:'expand',id:'expand',title:'Toggle code block expand',show:!1}],body=elem('body'),maxLines=parseInt(body.dataset.code),copyId='panel_copy',wrapId='panel_wrap',linesId='panel_lines',panelExpand='panel_expand',panelExpanded='panel_expanded',panelHide='panel_hide',panelFrom='panel_from',panelBox='panel_box',fullHeight='initial',highlightWrap='highlight_wrap';function wrapOrphanedPreElements(){const a=elems('pre');Array.from(a).forEach(function(a){const b=a.parentNode,c=!containsClass(b,'highlight');if(c){const b=createEl();b.className='highlight';const c=createEl();c.className=highlightWrap,wrapEl(a,b),wrapEl(b,c)}})}wrapOrphanedPreElements();function codeBlocks(){const a=elems('code'),b=Array.from(a).filter(function(a){return hasClasses(a)&&!Array.from(a.classList).includes('noClass')}).map(function(a){return a});return b}function codeBlockFits(a){const b=a.offsetWidth,c=a.parentNode.parentNode.offsetWidth;return b<=c}function maxHeightIsSet(a){let b=a.style.maxHeight;return b.includes('px')}function restrainCodeBlockHeight(b){const c=b[maxLines-1];let a=fullHeight;if(c){const d=c.offsetTop;if(d!==0){a=`${d}px`;const c=b[0].parentNode,e=c.closest('.highlight'),f=containsClass(e,panelExpanded);f||(c.dataset.height=a,c.style.maxHeight=a)}}}const blocks=codeBlocks();function collapseCodeBlock(a){const b=elems('.ln',a),c=b.length;if(c>maxLines){const c=createEl();pushClass(c,panelExpand),pushClass(c,panelFrom),c.title="Toggle code block expand",c.textContent="...";const d=a.closest('.highlight');window.setTimeout(function(){const a=d.nextElementSibling.lastElementChild;deleteClass(a,panelHide)},150),restrainCodeBlockHeight(b);const e=a.parentNode.parentNode;e.appendChild(c)}}blocks.forEach(function(a){collapseCodeBlock(a)});function actionPanel(){const a=createEl();return a.className=panelBox,codeActionButtons.forEach(function(c){const b=createEl('a');b.href='#',b.title=c.title,b.className=`icon panel_icon panel_${c.id}`,!c.show&&pushClass(b,panelHide),loadSvg(c.icon,b),a.appendChild(b)}),a}function toggleLineNumbers(a){a.forEach(function(a,b){modifyClass(a,'pre_nolines')}),restrainCodeBlockHeight(a)}function toggleLineWrap(a){modifyClass(a,'pre_wrap');const b=elems('.ln',a);restrainCodeBlockHeight(b)}function copyCode(a){lineNumbers=elems('.ln',a),lineNumbers.length&&lineNumbers.forEach(function(a){a.remove()});const b=a.textContent;copyToClipboard(b)}function disableCodeLineNumbers(a){const b=elems('.ln',a);toggleLineNumbers(b)}(function(){const c=codeBlocks(),b=highlightWrap;c.forEach(function(a){const e=elem('body').dataset.lines;parseBoolean(e)===!1&&disableCodeLineNumbers(a);const f=a.parentNode.parentNode,c=createEl();c.className=b,wrapEl(f,c);const d=actionPanel(),g=elem(`.${wrapId}`,d);!codeBlockFits(a)&&deleteClass(g,panelHide),c.appendChild(d)});function a(a,b){return a.matches(`.${b}`)||a.closest(`.${b}`)}function d(a,b,e='active'){const c=e,d=a.matches(`.${b}`)?a:a.closest(`.${b}`);deleteClass(d,c),setTimeout(function(){modifyClass(d,c)},50)}doc.addEventListener('click',function(e){const c=e.target,f=a(c,copyId),g=a(c,wrapId),h=a(c,linesId),i=a(c,panelExpand),j=f||g||h||i;if(j){e.preventDefault(),d(c,'icon');const a=c.closest(`.${b}`).firstElementChild.firstElementChild;let j=elems('.ln',a);if(!!g&&toggleLineWrap(a),!!h&&toggleLineNumbers(j),i){let b=a.firstElementChild;const c=b.closest('.highlight');maxHeightIsSet(b)?(b.style.maxHeight=fullHeight,pushClass(c,panelExpanded)):(b.style.maxHeight=b.dataset.height,deleteClass(c,panelExpanded))}if(f){const b=a.cloneNode(!0);copyCode(b)}}}),function(){const a=codeBlocks();a.forEach(function(b){let a=b.dataset.lang;if(a=a==='sh'?'bash':a,a!=="fallback"){const c=createEl();c.textContent=a,pushClass(c,'lang'),b.closest(`.${highlightWrap}`).appendChild(c)}})}()})(),function(){const c='lit',a='dim',d='colorMode',h='--color-mode',e='data-mode',b=window.localStorage;function i(){let b=c+a;b=[...b];let d=getComputedStyle(doc).getPropertyValue(h).replace(/\"/g,'').trim();return d=[...d].filter(function(a){return b.includes(a)}),d.join('')}function f(f){f?(b.setItem(d,c),elemAttribute(doc,e,c)):(b.setItem(d,a),elemAttribute(doc,e,a))}function g(c=!1){const g=i()==a,h=b.getItem(d);h?c?f(g):elemAttribute(doc,e,h):c===!0&&f(g)}g(),doc.addEventListener('click',function(b){let a=b.target,c='color_choice',d='color_animate',e=containsClass(a,c);e&&(pushClass(a,d),g(!0))})}();function fileClosure(){(function(){const b=new Date,c=b.getFullYear(),a=elem('.year');!!a&&(a.innerHTML=`${c}`)})(),function(){let a=elems('a');a&&Array.from(a).forEach(function(a){let d,c,e,f,g,h,b,i;b=elemAttribute(a,'href'),i=!!(b&&typeof b=='string'&&b.startsWith('http')&&!b.startsWith(parentURL)),i&&(d='target',c='rel',e='_blank',f='noopener',g=elemAttribute(a,d),h=elemAttribute(a,c),!g&&elemAttribute(a,d,e),!h&&elemAttribute(a,c,f))})}();let j=[],e,a,o,g,c,h=['h2','h3','h4','h5','h6'];g=document.URL,h.forEach(function(b){const a=elem('.post_content');a&&(e=a.getElementsByTagName(b),Array.prototype.push.apply(j,e))}),j.forEach(function(b){a=createEl('a'),loadSvg('link',a),a.className='link icon',c=b.getAttribute('id'),c&&(a.href=`${g}#${c}`,b.appendChild(a),pushClass(b,'link_owner'))});let i=elems('ol li');i&&i.forEach(function(a){let b=a.children[0],c=isMatch(b,h);!!c&&pushClass(a,'align')});function b(b){const a=document.createElement('div'),c='link_yanked';a.classList.add(c),a.innerText='Link Copied',elem(`.${c}`,b)||(b.appendChild(a),setTimeout(function(){b.removeChild(a)},3e3))}(function(){let c,d,e,f,a;c='link',d=elems(`.${c}`),d&&document.addEventListener('click',function(d){a=d.target,f=a.parentNode,(a&&containsClass(a,c)||containsClass(f,c))&&(d.preventDefault(),e=a.href!=void 0?a.href:a.parentNode.href,copyToClipboard(e),a.href!=void 0?b(a):b(a.parentNode))})})(),function(){let e,f,j,d,g,c,h,i,a;e='copy',f='copy_done',j='excerpt',h='post_copy',i='post_card',doc.addEventListener('click',function(l){a=l.target,d=containsClass(a,e);let m=a.closest(`.${e}`);if(d||m){let b=d||m;g=containsClass(b,h),g?(c=a.closest(`.${j}`).previousElementSibling,c=!!containsClass(c,i)&&elemAttribute(c,'href')):c=window.location.href,c&&(copyToClipboard(c),pushClass(b,f))}const k='.link_yank',n=a.matches(k),o=a.closest(k);if(n||o){l.preventDefault();const c=o?elemAttribute(a.closest(k),'href'):elemAttribute(a,'href');copyToClipboard(c),n?b(a):b(a.parentNode)}})}(),function(){let a,b,c;a=elem('.aside'),b=a?a.previousElementSibling:null,a&&b.nodeName.toLowerCase()==='h3'&&(c=Array.from(a.children),c.length<1&&b.remove())}(),function(){let a=elem('.btn_back'),b=window.history;a&&a.addEventListener('click',function(){b.back()})}();function m(){const b=document.documentElement;let a=b.dataset.figures;return a&&(showImagePosition=a),showImagePosition==="true"}function k(a){let b=containsClass(a[0],featuredImageClass)?-1:0;a.forEach(a=>{let c=a.alt;const f=a.parentNode.parentNode,e=c.split('::').map(a=>a.trim());e.length>1&&e[1].split(' ').filter(Boolean).forEach(b=>{pushClass(a,b),c=e[0]});const h=[':left',':right'];h.forEach(function(a){const b=c.includes(a);b&&(pushClass(f,`float_${a.replace(":","")}`),c=c.replace(a,""))});const g=c.includes(":inline");c=c.replace(":inline",""),g&&modifyClass(f,'inline');let d=a.title.trim().length?a.title.trim():c;if(d.length&&!containsClass(a,'alt'&&!g)){b+=1,a.dataset.pos=b;const c=m(),e=a.dataset.pos;d=c?`${showImagePositionLabel} ${e}: ${d}`:d,desc.textContent=d,a.matches(`.${featuredImageClass}`)||a.insertAdjacentHTML('afterend',desc.outerHTML)}}),hljs.initHighlightingOnLoad()}function l(b,a=[]){a&&a.forEach(function(a){window.setTimeout(function(){let d=a.naturalWidth,e=b.offsetWidth,c=d/e;c>1&&(pushClass(a.parentNode.parentNode,imageScalableClass),a.parentNode.parentNode.dataset.scale=c)},100)})}(function(){let a=elem('.post_content'),b=!!a&&a.querySelectorAll('img');!!b&&k(b),l(a,b)})(),doc.addEventListener('click',function(b){let a=b.target;if(isClickableImage=a.matches(`.${imageScalableClass}`)||a.closest(`.${imageScalableClass}`),isClickableImage){let b=containsClass(a.children[0],imageScalableClass);b&&modifyClass(a,scaleImageClass)}if(isClickableImage){let b=a.closest('figure');modifyClass(b,scaleImageClass)}});const d=elems('table');if(d){const a='scrollable';d.forEach(function(c){const b=createEl();b.className=a,wrapEl(c,b)})}function f(a=null){const h='post_tags_toggle',c='tags_hide',b='jswidgetopen',d=elem(`.${b}`);a=a===null?d:a;const i=a.matches(`.${b}`),e=a.matches(`.${h}`),j=a.matches(`.${c}`)||a.closest(`.${c}`),f=e||j,g=f||i;if(g)if(f)if(e){let c=a.nextElementSibling;pushClass(c,b)}else deleteClass(d,b);else!!g&&deleteClass(a,b)}(function(){doc.addEventListener('click',function(a){const b=a.target;f(b)}),horizontalSwipe(doc,f,'left')})(),function(){doc.addEventListener('click',function(c){const a=c.target,b='jsopen',d='.nav_close',k=elem(d),l=a.matches(d)||a.closest(d),g=k.firstElementChild.firstElementChild;if(l&&(c.preventDefault(),modifyClass(doc,b),modifyClass(g,'isopen')),!a.closest('.nav')&&elem(`.${b}`)){modifyClass(doc,b);let a=containsClass(doc,b);!a&&modifyClass(g,'isopen')}const h='nav_item',j='nav_sub',i='nav_open',e=a.matches(`.${h}`),f=a.closest(`.${h}`);if(e||f){const b=e?a:f,d=b.nextElementSibling,g=d?d.matches(`.${j}`):null;g&&(c.preventDefault(),Array.from(b.parentNode.parentNode.children).forEach(function(c){const a=c.firstElementChild;a!=b&&deleteClass(a,i)}),modifyClass(b,i))}})}();function n(){const a=navigator.userAgent.toLowerCase(),b=a.includes('android')||a.includes('iphone');return b}(function(){const a=elem('.to_top'),d=getMobileOperatingSystem(),e='ios';a&&d==='iOS'&&pushClass(a,e);const c=a.parentNode.offsetWidth,f=doc.offsetWidth;let b=(f-c)/2;const g=a.offsetWidth;b=b+c-g,n()||(a.style.left=`${b}px`)})(),function(){doc.addEventListener('click',function(c){const b='active',a=c.target,d=a.matches('.tags_sort')||a.matches('.tags_sort span');if(d){const c=a.closest('.tags_list'),d=elem('.tags_sort',c);modifyClass(d,'sorted');const e=elems('.post_tag',c);Array.from(e).forEach(function(a){const c=a.dataset.position,d=containsClass(a,b);a.style.order=d?0:-c,modifyClass(a,b)})}})}(),function(){doc.addEventListener('click',function(c){const a='.linkedin',b=c.target;(b.matches(a)||b.closest(a))&&window.open('http://www.linkedin.com/shareArticle?mini=true&url='+encodeURIComponent(window.location.href),'','left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0')})}()}window.addEventListener(pageHasLoaded,fileClosure())