",{text:t})}}},functionAttributes:["beforeOpen","afterOpen","beforeContent","afterContent","beforeClose","afterClose"],readElementConfig:function(t,r){var n=this,a=new RegExp("^data-"+r+"-(.*)"),o={};return t&&t.attributes&&e.each(t.attributes,function(){var t=this.name.match(a);if(t){var r=this.value,i=e.camelCase(t[1]);if(e.inArray(i,n.functionAttributes)>=0)r=new Function(r);else try{r=e.parseJSON(r)}catch(s){}o[i]=r}}),o},extend:function(t,r){var n=function(){this.constructor=t};return n.prototype=this.prototype,t.prototype=new n,t.__super__=this.prototype,e.extend(t,this,r),t.defaults=t.prototype,t},attach:function(t,r,n){var a=this;"object"!==("undefined"==typeof r?"undefined":_typeof(r))||r instanceof e!=!1||n||(n=r,r=void 0),n=e.extend({},n);var o,i=n.namespace||a.defaults.namespace,s=e.extend({},a.defaults,a.readElementConfig(t[0],i),n);return t.on(s.openTrigger+"."+s.namespace,s.filter,function(i){var l=e.extend({$source:t,$currentTarget:e(this)},a.readElementConfig(t[0],s.namespace),a.readElementConfig(this,s.namespace),n),c=o||e(this).data("featherlight-persisted")||new a(r,l);"shared"===c.persist?o=c:c.persist!==!1&&e(this).data("featherlight-persisted",c),l.$currentTarget.blur(),c.open(i)}),t},current:function(){var e=this.opened();return e[e.length-1]||null},opened:function(){var t=this;return n(),e.grep(r,function(e){return e instanceof t})},close:function(e){var t=this.current();if(t)return t.close(e)},_onReady:function(){var t=this;t.autoBind&&(e(t.autoBind).each(function(){t.attach(e(this))}),e(document).on("click",t.autoBind,function(r){r.isDefaultPrevented()||"featherlight"===r.namespace||(r.preventDefault(),t.attach(e(r.currentTarget)),e(r.target).trigger("click.featherlight"))}))},_callbackChain:{onKeyUp:function(t,r){return 27===r.keyCode?(this.closeOnEsc&&e.featherlight.close(r),!1):t(r)},onResize:function(e,t){return this.resize(this.$content.naturalWidth,this.$content.naturalHeight),e(t)},afterContent:function(e,t){var r=e(t);return this.onResize(t),r}}}),e.featherlight=t,e.fn.featherlight=function(e,r){return t.attach(this,e,r)},e(document).ready(function(){t._onReady()})}(jQuery);var _typeof="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};!function(e){var t="object"==("undefined"==typeof window?"undefined":_typeof(window))&&window||"object"==("undefined"==typeof self?"undefined":_typeof(self))&&self;"undefined"!=typeof exports?e(exports):t&&(t.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return t.hljs}))}(function(e){function t(e){return e.replace(/[&<>]/gm,function(e){return M[e]})}function r(e){return e.nodeName.toLowerCase()}function n(e,t){var r=e&&e.exec(t);return r&&0===r.index}function a(e){return P.test(e)}function o(e){var t,r,n,o,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",r=N.exec(i))return S(r[1])?r[1]:"no-highlight";for(i=i.split(/\s+/),t=0,n=i.length;n>t;t++)if(o=i[t],a(o)||S(o))return o}function i(e,t){var r,n={};for(r in e)n[r]=e[r];if(t)for(r in t)n[r]=t[r];return n}function s(e){var t=[];return function n(e,a){for(var o=e.firstChild;o;o=o.nextSibling)3===o.nodeType?a+=o.nodeValue.length:1===o.nodeType&&(t.push({event:"start",offset:a,node:o}),a=n(o,a),r(o).match(/br|hr|img|input/)||t.push({event:"stop",offset:a,node:o}));return a}(e,0),t}function l(e,n,a){function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset
"}function s(e){u+=""+r(e)+">"}function l(e){("start"===e.event?i:s)(e.node)}for(var c=0,u="",f=[];e.length||n.length;){var p=o();if(u+=t(a.substring(c,p[0].offset)),c=p[0].offset,p===e){f.reverse().forEach(s);do l(p.splice(0,1)[0]),p=o();while(p===e&&p.length&&p[0].offset===c);f.reverse().forEach(i)}else"start"===p[0].event?f.push(p[0].node):f.pop(),l(p.splice(0,1)[0])}return u+t(a.substr(c))}function c(e){function t(e){return e&&e.source||e}function r(r,n){return new RegExp(t(r),"m"+(e.cI?"i":"")+(n?"g":""))}function n(a,o){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var s={},l=function(t,r){e.cI&&(r=r.toLowerCase()),r.split(" ").forEach(function(e){var r=e.split("|");s[r[0]]=[t,r[1]?Number(r[1]):1]})};"string"==typeof a.k?l("keyword",a.k):x(a.k).forEach(function(e){l(e,a.k[e])}),a.k=s}a.lR=r(a.l||/\w+/,!0),o&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=r(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=r(a.e)),a.tE=t(a.e)||"",a.eW&&o.tE&&(a.tE+=(a.e?"|":"")+o.tE)),a.i&&(a.iR=r(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]);var c=[];a.c.forEach(function(e){e.v?e.v.forEach(function(t){c.push(i(e,t))}):c.push("self"===e?a:e)}),a.c=c,a.c.forEach(function(e){n(e,a)}),a.starts&&n(a.starts,o);var u=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(t).filter(Boolean);a.t=u.length?r(u.join("|"),!0):{exec:function(){return null}}}}n(e)}function u(e,r,a,o){function i(e,t){var r,a;for(r=0,a=t.c.length;a>r;r++)if(n(t.c[r].bR,e))return t.c[r]}function s(e,t){if(n(e.eR,t)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?s(e.parent,t):void 0}function l(e,t){return!a&&n(t.iR,e)}function p(e,t){var r=v.cI?t[0].toLowerCase():t[0];return e.k.hasOwnProperty(r)&&e.k[r]}function d(e,t,r,n){var a=n?"":O.classPrefix,o='',o+t+i}function g(){var e,r,n,a;if(!x.k)return t(N);for(a="",r=0,x.lR.lastIndex=0,n=x.lR.exec(N);n;)a+=t(N.substring(r,n.index)),e=p(x,n),e?(E+=e[1],a+=d(e[0],t(n[0]))):a+=t(n[0]),r=x.lR.lastIndex,n=x.lR.exec(N);return a+t(N.substr(r))}function m(){var e="string"==typeof x.sL;if(e&&!C[x.sL])return t(N);var r=e?u(x.sL,N,!0,k[x.sL]):f(N,x.sL.length?x.sL:void 0);return x.r>0&&(E+=r.r),e&&(k[x.sL]=r.top),d(r.language,r.value,!1,!0)}function b(){P+=null!=x.sL?m():g(),N=""}function h(e){P+=e.cN?d(e.cN,"",!0):"",x=Object.create(e,{parent:{value:x}})}function y(e,t){if(N+=e,null==t)return b(),0;var r=i(t,x);if(r)return r.skip?N+=t:(r.eB&&(N+=t),b(),r.rB||r.eB||(N=t)),h(r,t),r.rB?0:t.length;var n=s(x,t);if(n){var a=x;a.skip?N+=t:(a.rE||a.eE||(N+=t),b(),a.eE&&(N=t));do x.cN&&(P+=T),x.skip||(E+=x.r),x=x.parent;while(x!==n.parent);return n.starts&&h(n.starts,""),a.rE?0:t.length}if(l(t,x))throw new Error('Illegal lexeme "'+t+'" for mode "'+(x.cN||"")+'"');return N+=t,t.length||1}var v=S(e);if(!v)throw new Error('Unknown language: "'+e+'"');c(v);var w,x=o||v,k={},P="";for(w=x;w!==v;w=w.parent)w.cN&&(P=d(w.cN,"",!0)+P);var N="",E=0;try{for(var M,I,A=0;x.t.lastIndex=A,M=x.t.exec(r),M;)I=y(r.substring(A,M.index),M[0]),A=M.index+I;for(y(r.substr(A)),w=x;w.parent;w=w.parent)w.cN&&(P+=T);return{r:E,value:P,language:e,top:x}}catch(D){if(D.message&&-1!==D.message.indexOf("Illegal"))return{r:0,value:t(r)};throw D}}function f(e,r){r=r||O.languages||x(C);var n={r:0,value:t(e)},a=n;return r.filter(S).forEach(function(t){var r=u(t,e,!1);r.language=t,r.r>a.r&&(a=r),r.r>n.r&&(a=n,n=r)}),a.language&&(n.second_best=a),n}function p(e){return O.tabReplace||O.useBR?e.replace(E,function(e,t){return O.useBR&&"\n"===e?"
":O.tabReplace?t.replace(/\t/g,O.tabReplace):void 0}):e}function d(e,t,r){var n=t?k[t]:r,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(n)&&a.push(n),a.join(" ").trim()}function g(e){var t,r,n,i,c,g=o(e);a(g)||(O.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/
/g,"\n")):t=e,c=t.textContent,n=g?u(g,c,!0):f(c),r=s(t),r.length&&(i=document.createElementNS("http://www.w3.org/1999/xhtml","div"),i.innerHTML=n.value,n.value=l(r,s(i),c)),n.value=p(n.value),e.innerHTML=n.value,e.className=d(e.className,g,n.language),e.result={language:n.language,re:n.r},n.second_best&&(e.second_best={language:n.second_best.language,re:n.second_best.r}))}function m(e){O=i(O,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,g)}}function h(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function y(t,r){var n=C[t]=r(e);n.aliases&&n.aliases.forEach(function(e){k[e]=t})}function v(){return x(C)}function S(e){return e=(e||"").toLowerCase(),C[e]||C[k[e]]}var w=[],x=Object.keys,C={},k={},P=/^(no-?highlight|plain|text)$/i,N=/\blang(?:uage)?-([\w-]+)\b/i,E=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,T="",O={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},M={"&":"&","<":"<",">":">"};return e.highlight=u,e.highlightAuto=f,e.fixMarkup=p,e.highlightBlock=g,e.configure=m,e.initHighlighting=b,e.initHighlightingOnLoad=h,e.registerLanguage=y,e.listLanguages=v,e.getLanguage=S,e.inherit=i,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(t,r,n){var a=e.inherit({cN:"comment",b:t,e:r,c:[]},n||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},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("xml",function(e){var t="[A-Za-z0-9\\._:-]+",r={eW:!0,i:/,r:0,c:[{cN:"attr",b:t,r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},e.C("",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"?",e:"/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},r]}]}}),hljs.registerLanguage("go",function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range end type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune id autoplay Get",literal:"true false iota nil Pages with",built_in:"append cap close complex highlight copy imag len make new panic print println real recover delete Site Data tweet speakerdeck youtube ref relref vimeo instagram gist figure innershortcode"};return{aliases:["golang"],k:t,i:"",c:[e.CLCM,e.CBCM,{cN:"string",v:[e.QSM,{b:"'",e:"[^\\\\]'"},{b:"`",e:"`"}]},{cN:"number",v:[{b:e.CNR+"[dflsi]",r:1},e.CNM]},{b:/:=/},{cN:"function",bK:"func",e:/\s*\{/,eE:!0,c:[e.TM,{cN:"params",b:/\(/,e:/\)/,k:t,i:/["']/}]}]}}),hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}}),hljs.registerLanguage("handlebars",function(e){var t={"builtin-name":"each in with if else unless bindattr action collection debugger log outlet template unbound view yield"};return{aliases:["hbs","html.hbs","html.handlebars"],cI:!0,sL:"xml",c:[e.C("{{!(--)?","(--)?}}"),{cN:"template-tag",b:/\{\{[#\/]/,e:/\}\}/,c:[{cN:"name",b:/[a-zA-Z\.-]+/,k:t,starts:{eW:!0,r:0,c:[e.QSM]}}]},{cN:"template-variable",b:/\{\{/,e:/\}\}/,k:t}]}}),hljs.registerLanguage("apache",function(e){var t={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:!0,c:[e.HCM,{cN:"section",b:"?",e:">"},{cN:"attribute",b:/\w+/,r:0,k:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"meta",b:"\\s\\[",e:"\\]$"},{cN:"variable",b:"[\\$%]\\{",e:"\\}",c:["self",t]},t,e.QSM]}}],i:/\S/}}),hljs.registerLanguage("ini",function(e){var t={cN:"string",c:[e.BE],v:[{b:"'''",e:"'''",r:10},{b:'"""',e:'"""',r:10},{b:'"',e:'"'},{b:"'",e:"'"}]};return{aliases:["toml"],cI:!0,i:/\S/,c:[e.C(";","$"),e.HCM,{cN:"section",b:/^\s*\[+/,e:/\]+/},{b:/^[a-z0-9\[\]_-]+\s*=\s*/,e:"$",rB:!0,c:[{cN:"attr",b:/[a-z0-9\[\]_-]+/},{b:/=/,eW:!0,r:0,c:[{cN:"literal",b:/\bon|off|true|false|yes|no\b/},{cN:"variable",v:[{b:/\$[\w\d"][\w\d_]*/},{b:/\$\{(.*?)}/}]},t,{cN:"number",b:/([\+\-]+)?[\d]+_[\d_]+/},e.NM]}]}]}}),hljs.registerLanguage("css",function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",r={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:t,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,r]}]}}),hljs.registerLanguage("asciidoc",function(e){return{aliases:["adoc"],c:[e.C("^/{4,}\\n","\\n/{4,}$",{r:10}),e.C("^//","$",{r:0}),{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"section",r:10,v:[{b:"^(={1,5}) .+?( \\1)?$"},{b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{cN:"meta",b:"^:.+?:",e:"\\s",eE:!0,r:10},{cN:"meta",b:"^\\[.+?\\]$",r:0},{cN:"quote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"symbol",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"string",v:[{b:"``.+?''"},{b:"`.+?'"}]},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{b:"^'{3,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:!0,c:[{b:"(link|image:?):",r:0},{cN:"link",b:"\\w",e:"[^\\[]+",r:0},{cN:"string",b:"\\[",e:"\\]",eB:!0,eE:!0,r:0}],r:10}]}}),hljs.registerLanguage("ruby",function(e){var t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={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"},n={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},o=[e.C("#","$",{c:[n]}),e.C("^\\=begin","^\\=end",{c:[n],r:10}),e.C("^__END__","\\n$")],i={cN:"subst",b:"#\\{",e:"}",k:r},s={cN:"string",c:[e.BE,i],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+$/,e:/^\s*\w+$/}]},l={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},c=[s,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(o)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:t}),l].concat(o)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[s,{b:t}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:r},{b:"("+e.RSR+"|unless)\\s*",c:[a,{cN:"regexp",c:[e.BE,i],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(o),r:0}].concat(o);i.c=c,l.c=c;var u="[>?]>",f="[\\w#]+\\(\\w+\\):\\d+:\\d+>",p="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",d=[{b:/^\s*=>/,starts:{e:"$",c:c}},{cN:"meta",b:"^("+u+"|"+f+"|"+p+")",starts:{e:"$",c:c}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:o.concat(d).concat(c)}}),hljs.registerLanguage("yaml",function(e){var t={literal:"{ } true false yes no Yes No True False null"},r="^[ \\-]*",n="[a-zA-Z_][\\w\\-]*",a={cN:"attr",v:[{b:r+n+":"},{b:r+'"'+n+'":'},{b:r+"'"+n+"':"}]},o={cN:"template-variable",v:[{b:"{{",e:"}}"},{b:"%{",e:"}"}]},i={cN:"string",r:0,v:[{b:/'/,e:/'/},{b:/"/,e:/"/}],c:[e.BE,o]};return{cI:!0,aliases:["yml","YAML","yaml"],c:[a,{cN:"meta",b:"^---s*$",r:10},{cN:"string",b:"[\\|>] *$",rE:!0,c:i.c,e:a.v[0].b},{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0,r:0},{cN:"type",b:"!!"+e.UIR},{cN:"meta",b:"&"+e.UIR+"$"},{cN:"meta",b:"\\*"+e.UIR+"$"},{cN:"bullet",b:"^ *-",r:0},i,e.HCM,e.CNM],k:t}}),hljs.registerLanguage("powershell",function(e){var t={b:"`[\\s\\S]",r:0},r={cN:"variable",v:[{b:/\$[\w\d][\w\d_:]*/}]},n={cN:"literal",b:/\$(null|true|false)\b/},a={cN:"string",v:[{b:/"/,e:/"/},{b:/@"/,e:/^"@/}],c:[t,r,{cN:"variable",b:/\$[A-z]/,e:/[^A-z]/}]},o={cN:"string",v:[{b:/'/,e:/'/},{b:/@'/,e:/^'@/}]},i={cN:"doctag",v:[{b:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{b:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]},s=e.inherit(e.C(null,null),{v:[{b:/#/,e:/$/},{b:/<#/,e:/#>/}],c:[i]});return{aliases:["ps"],l:/-?[A-z\.\-]+/,cI:!0,k:{keyword:"if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch",built_in:"Add-Computer Add-Content Add-History Add-JobTrigger Add-Member Add-PSSnapin Add-Type Checkpoint-Computer Clear-Content Clear-EventLog Clear-History Clear-Host Clear-Item Clear-ItemProperty Clear-Variable Compare-Object Complete-Transaction Connect-PSSession Connect-WSMan Convert-Path ConvertFrom-Csv ConvertFrom-Json ConvertFrom-SecureString ConvertFrom-StringData ConvertTo-Csv ConvertTo-Html ConvertTo-Json ConvertTo-SecureString ConvertTo-Xml Copy-Item Copy-ItemProperty Debug-Process Disable-ComputerRestore Disable-JobTrigger Disable-PSBreakpoint Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan Disable-ScheduledJob Enable-ComputerRestore Enable-JobTrigger Enable-PSBreakpoint Enable-PSRemoting Enable-PSSessionConfiguration Enable-ScheduledJob Enable-WSManCredSSP Enter-PSSession Exit-PSSession Export-Alias Export-Clixml Export-Console Export-Counter Export-Csv Export-FormatData Export-ModuleMember Export-PSSession ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-ComputerRestorePoint Get-Content Get-ControlPanelItem Get-Counter Get-Credential Get-Culture Get-Date Get-Event Get-EventLog Get-EventSubscriber Get-ExecutionPolicy Get-FormatData Get-Host Get-HotFix Get-Help Get-History Get-IseSnippet Get-Item Get-ItemProperty Get-Job Get-JobTrigger Get-Location Get-Member Get-Module Get-PfxCertificate Get-Process Get-PSBreakpoint Get-PSCallStack Get-PSDrive Get-PSProvider Get-PSSession Get-PSSessionConfiguration Get-PSSnapin Get-Random Get-ScheduledJob Get-ScheduledJobOption Get-Service Get-TraceSource Get-Transaction Get-TypeData Get-UICulture Get-Unique Get-Variable Get-Verb Get-WinEvent Get-WmiObject Get-WSManCredSSP Get-WSManInstance Group-Object Import-Alias Import-Clixml Import-Counter Import-Csv Import-IseSnippet Import-LocalizedData Import-PSSession Import-Module Invoke-AsWorkflow Invoke-Command Invoke-Expression Invoke-History Invoke-Item Invoke-RestMethod Invoke-WebRequest Invoke-WmiMethod Invoke-WSManAction Join-Path Limit-EventLog Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Event New-EventLog New-IseSnippet New-Item New-ItemProperty New-JobTrigger New-Object New-Module New-ModuleManifest New-PSDrive New-PSSession New-PSSessionConfigurationFile New-PSSessionOption New-PSTransportOption New-PSWorkflowExecutionOption New-PSWorkflowSession New-ScheduledJobOption New-Service New-TimeSpan New-Variable New-WebServiceProxy New-WinEvent New-WSManInstance New-WSManSessionOption Out-Default Out-File Out-GridView Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Receive-Job Register-EngineEvent Register-ObjectEvent Register-PSSessionConfiguration Register-ScheduledJob Register-WmiEvent Remove-Computer Remove-Event Remove-EventLog Remove-Item Remove-ItemProperty Remove-Job Remove-JobTrigger Remove-Module Remove-PSBreakpoint Remove-PSDrive Remove-PSSession Remove-PSSnapin Remove-TypeData Remove-Variable Remove-WmiObject Remove-WSManInstance Rename-Computer Rename-Item Rename-ItemProperty Reset-ComputerMachinePassword Resolve-Path Restart-Computer Restart-Service Restore-Computer Resume-Job Resume-Service Save-Help Select-Object Select-String Select-Xml Send-MailMessage Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-JobTrigger Set-Location Set-PSBreakpoint Set-PSDebug Set-PSSessionConfiguration Set-ScheduledJob Set-ScheduledJobOption Set-Service Set-StrictMode Set-TraceSource Set-Variable Set-WmiInstance Set-WSManInstance Set-WSManQuickConfig Show-Command Show-ControlPanelItem Show-EventLog Sort-Object Split-Path Start-Job Start-Process Start-Service Start-Sleep Start-Transaction Start-Transcript Stop-Computer Stop-Job Stop-Process Stop-Service Stop-Transcript Suspend-Job Suspend-Service Tee-Object Test-ComputerSecureChannel Test-Connection Test-ModuleManifest Test-Path Test-PSSessionConfigurationFile Trace-Command Unblock-File Undo-Transaction Unregister-Event Unregister-PSSessionConfiguration Unregister-ScheduledJob Update-FormatData Update-Help Update-List Update-TypeData Use-Transaction Wait-Event Wait-Job Wait-Process Where-Object Write-Debug Write-Error Write-EventLog Write-Host Write-Output Write-Progress Write-Verbose Write-Warning Add-MDTPersistentDrive Disable-MDTMonitorService Enable-MDTMonitorService Get-MDTDeploymentShareStatistics Get-MDTMonitorData Get-MDTOperatingSystemCatalog Get-MDTPersistentDrive Import-MDTApplication Import-MDTDriver Import-MDTOperatingSystem Import-MDTPackage Import-MDTTaskSequence New-MDTDatabase Remove-MDTMonitorData Remove-MDTPersistentDrive Restore-MDTPersistentDrive Set-MDTMonitorData Test-MDTDeploymentShare Test-MDTMonitorData Update-MDTDatabaseSchema Update-MDTDeploymentShare Update-MDTLinkedDS Update-MDTMedia Update-MDTMedia Add-VamtProductKey Export-VamtData Find-VamtManagedMachine Get-VamtConfirmationId Get-VamtProduct Get-VamtProductKey Import-VamtData Initialize-VamtData Install-VamtConfirmationId Install-VamtProductActivation Install-VamtProductKey Update-VamtProduct",nomarkup:"-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace"},c:[t,e.NM,a,o,n,r,s]}}),hljs.registerLanguage("scss",function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",r={cN:"variable",b:"(\\$"+t+")\\b"},n={cN:"number",b:"#[0-9A-Fa-f]+"};return{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:!0,i:"[^\\s]",starts:{eW:!0,eE:!0,c:[n,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"meta",b:"!important"}]}},{cI:!0,i:"[=/|']",c:[e.CLCM,e.CBCM,{cN:"selector-id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"selector-class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"selector-attr",b:"\\[",e:"\\]",i:"$"},{cN:"selector-tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},r,{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
+},{b:":",e:";",c:[r,n,e.CSSNM,e.QSM,e.ASM,{cN:"meta",b:"!important"}]},{b:"@",e:"[{;]",k:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",c:[r,e.QSM,e.ASM,n,e.CSSNM,{b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}}),hljs.registerLanguage("json",function(e){var t={literal:"true false null"},r=[e.QSM,e.CNM],n={e:",",eW:!0,eE:!0,c:r,k:t},a={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(n,{b:/:/})],i:"\\S"},o={b:"\\[",e:"\\]",c:[e.inherit(n)],i:"\\S"};return r.splice(r.length,0,a,o),{c:r,k:t,i:"\\S"}}),hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},r={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},n={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh","git"],l:/-?[a-z\._]+/,k:{keyword:"hugo if | then else elif fi for while in do done case esac function yoursite.com",literal:"true -b branch false posts events authors",built_in:"break cd checkout continue eval exec exit export getopts hash pwd readonly new 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 yoursite 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*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,r,n,t]}}),hljs.registerLanguage("http",function(e){var t="HTTP/[0-9\\.]+";return{aliases:["https"],i:"\\S",c:[{b:"^"+t,e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{b:"^[A-Z]+ (.*?) "+t+"$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" ",eB:!0,eE:!0},{b:t},{cN:"keyword",b:"[A-Z]+"}]},{cN:"attribute",b:"^\\w",e:": ",eE:!0,i:"\\n|\\s|=",starts:{e:"$",r:0}},{b:"\\n\\n",starts:{sL:[],eW:!0}}]}}),hljs.registerLanguage("javascript",function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",r={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"},n={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},a={cN:"subst",b:"\\$\\{",e:"\\}",k:r,c:[]},o={cN:"string",b:"`",e:"`",c:[e.BE,a]};a.c=[e.ASM,e.QSM,o,n,e.RM];var i=a.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:r,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,o,e.CLCM,e.CBCM,n,{b:/[{,]\s*/,r:0,c:[{b:t+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:t,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:"(\\(.*?\\)|"+t+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:t},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:r,c:i}]}]},{b:/,e:/(\/\w+|\w+\/)>/,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:t}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:i}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}}),hljs.initHighlightingOnLoad(),function(){function e(e){for(var t=0;t0){var r=e[t].alt.split("class=")[0],n=e[t].alt.split("class=")[1];e[t].setAttribute("alt",r),e[t].classList.add(n)}else if(e[t].alt.indexOf("id=")>0){var r=e[t].alt.split("id=")[0],a=e[t].alt.split("id=")[1];e[t].setAttribute("alt",r),e[t].id=a}}var t=document.querySelectorAll(".body-copy img");t.length<1||e(t)}(),$(".top-menu-item-link.true").on("click",function(e){e.preventDefault(),e.stopPropagation();var t=$(this).next("ul"),r=t.is(":visible"),n=r?"slideUp":"slideDown",a=r?200:400;t.velocity(n,{easing:"easeOutQuart",duration:a})}),$("#navigation-toggle").on("click",function(e){e.preventDefault(),e.stopPropagation(),$("#site-navigation,.all-content-wrapper,#navigation-toggle,#site-footer").toggleClass("navigation-open")}),$("#all-content-wrapper").on("click",function(){$(".site-navigation.navigation-open")&&$(".site-navigation.navigation-open,.all-content-wrapper.navigation-open,#navigation-toggle,#site-footer").removeClass("navigation-open")}),$(".body-copy").on("click",function(){$(".toc-toggle.toc-open")&&(document.getElementById("toc").classList.remove("toc-open"),document.getElementById("toc-toggle").classList.remove("toc-open"))}),$(document).ready(function(){$("a.heading-link,#toc a").on("click",function(e){e.preventDefault(),e.stopPropagation();var t=$(this).attr("href"),r=t.split("#")[1];$(t).velocity("scroll",{duration:500,offset:-80,easing:"ease-in-out"}),location.hash=r})}),$("#toggle-search").on("click",function(e){e.preventDefault(),e.stopPropagation(),$("#site-search-form").toggleClass("search-open"),window.setTimeout(function(){var e=document.getElementById("search-input");e.focus()},800)}),function(){var e=document.querySelectorAll("#TableOfContents > ul a"),t=document.getElementById("toc");t&&e.length<2?t.remove():e.length>1&&document.getElementById("toc-toggle").addEventListener("click",toggleToc,!1)}();
\ No newline at end of file
diff --git a/themes/hugodocs/pipeline/js/scripts/featherlight.js b/themes/hugodocs/pipeline/js/scripts/featherlight.js
new file mode 100755
index 000000000..471227824
--- /dev/null
+++ b/themes/hugodocs/pipeline/js/scripts/featherlight.js
@@ -0,0 +1,565 @@
+/**
+ * Featherlight - ultra slim jQuery lightbox
+ * Version 1.5.0 - http://noelboss.github.io/featherlight/
+ *
+ * Copyright 2016, Noël Raoul Bossart (http://www.noelboss.com)
+ * MIT Licensed.
+**/
+// Modification IIFE for digital.cap.org to wrap all images in feather anchor first
+(function() {
+ $('.body-copy img').each(function() {
+ $(this).wrap('');
+ });
+})();
+(function($) {
+ "use strict";
+
+ if('undefined' === typeof $) {
+ if('console' in window){ window.console.info('Too much lightness, Featherlight needs jQuery.'); }
+ return;
+ }
+
+ /* Featherlight is exported as $.featherlight.
+ It is a function used to open a featherlight lightbox.
+
+ [tech]
+ Featherlight uses prototype inheritance.
+ Each opened lightbox will have a corresponding object.
+ That object may have some attributes that override the
+ prototype's.
+ Extensions created with Featherlight.extend will have their
+ own prototype that inherits from Featherlight's prototype,
+ thus attributes can be overriden either at the object level,
+ or at the extension level.
+ To create callbacks that chain themselves instead of overriding,
+ use chainCallbacks.
+ For those familiar with CoffeeScript, this correspond to
+ Featherlight being a class and the Gallery being a class
+ extending Featherlight.
+ The chainCallbacks is used since we don't have access to
+ CoffeeScript's `super`.
+ */
+
+ function Featherlight($content, config) {
+ if(this instanceof Featherlight) { /* called with new */
+ this.id = Featherlight.id++;
+ this.setup($content, config);
+ this.chainCallbacks(Featherlight._callbackChain);
+ } else {
+ var fl = new Featherlight($content, config);
+ fl.open();
+ return fl;
+ }
+ }
+
+ var opened = [],
+ pruneOpened = function(remove) {
+ opened = $.grep(opened, function(fl) {
+ return fl !== remove && fl.$instance.closest('body').length > 0;
+ } );
+ return opened;
+ };
+
+ // structure({iframeMinHeight: 44, foo: 0}, 'iframe')
+ // #=> {min-height: 44}
+ var structure = function(obj, prefix) {
+ var result = {},
+ regex = new RegExp('^' + prefix + '([A-Z])(.*)');
+ for (var key in obj) {
+ var match = key.match(regex);
+ if (match) {
+ var dasherized = (match[1] + match[2].replace(/([A-Z])/g, '-$1')).toLowerCase();
+ result[dasherized] = obj[key];
+ }
+ }
+ return result;
+ };
+
+ /* document wide key handler */
+ var eventMap = { keyup: 'onKeyUp', resize: 'onResize' };
+
+ var globalEventHandler = function(event) {
+ $.each(Featherlight.opened().reverse(), function() {
+ if (!event.isDefaultPrevented()) {
+ if (false === this[eventMap[event.type]](event)) {
+ event.preventDefault(); event.stopPropagation(); return false;
+ }
+ }
+ });
+ };
+
+ var toggleGlobalEvents = function(set) {
+ if(set !== Featherlight._globalHandlerInstalled) {
+ Featherlight._globalHandlerInstalled = set;
+ var events = $.map(eventMap, function(_, name) { return name+'.'+Featherlight.prototype.namespace; } ).join(' ');
+ $(window)[set ? 'on' : 'off'](events, globalEventHandler);
+ }
+ };
+
+ Featherlight.prototype = {
+ constructor: Featherlight,
+ /*** defaults ***/
+ /* extend featherlight with defaults and methods */
+ namespace: 'featherlight', /* Name of the events and css class prefix */
+ targetAttr: 'data-featherlight', /* Attribute of the triggered element that contains the selector to the lightbox content */
+ variant: null, /* Class that will be added to change look of the lightbox */
+ resetCss: false, /* Reset all css */
+ background: null, /* Custom DOM for the background, wrapper and the closebutton */
+ openTrigger: 'click', /* Event that triggers the lightbox */
+ closeTrigger: 'click', /* Event that triggers the closing of the lightbox */
+ filter: null, /* Selector to filter events. Think $(...).on('click', filter, eventHandler) */
+ root: 'body', /* Where to append featherlights */
+ openSpeed: 250, /* Duration of opening animation */
+ closeSpeed: 250, /* Duration of closing animation */
+ closeOnClick: 'background', /* Close lightbox on click ('background', 'anywhere' or false) */
+ closeOnEsc: true, /* Close lightbox when pressing esc */
+ closeIcon: '✕', /* Close icon */
+ loading: '', /* Content to show while initial content is loading */
+ persist: false, /* If set, the content will persist and will be shown again when opened again. 'shared' is a special value when binding multiple elements for them to share the same content */
+ otherClose: null, /* Selector for alternate close buttons (e.g. "a.close") */
+ beforeOpen: $.noop, /* Called before open. can return false to prevent opening of lightbox. Gets event as parameter, this contains all data */
+ beforeContent: $.noop, /* Called when content is loaded. Gets event as parameter, this contains all data */
+ beforeClose: $.noop, /* Called before close. can return false to prevent opening of lightbox. Gets event as parameter, this contains all data */
+ afterOpen: $.noop, /* Called after open. Gets event as parameter, this contains all data */
+ afterContent: $.noop, /* Called after content is ready and has been set. Gets event as parameter, this contains all data */
+ afterClose: $.noop, /* Called after close. Gets event as parameter, this contains all data */
+ onKeyUp: $.noop, /* Called on key up for the frontmost featherlight */
+ onResize: $.noop, /* Called after new content and when a window is resized */
+ type: null, /* Specify type of lightbox. If unset, it will check for the targetAttrs value. */
+ contentFilters: ['jquery', 'image', 'html', 'ajax', 'iframe', 'text'], /* List of content filters to use to determine the content */
+
+ /*** methods ***/
+ /* setup iterates over a single instance of featherlight and prepares the background and binds the events */
+ setup: function(target, config){
+ /* all arguments are optional */
+ if (typeof target === 'object' && target instanceof $ === false && !config) {
+ config = target;
+ target = undefined;
+ }
+
+ var self = $.extend(this, config, {target: target}),
+ css = !self.resetCss ? self.namespace : self.namespace+'-reset', /* by adding -reset to the classname, we reset all the default css */
+ $background = $(self.background || [
+ '',
+ '
',
+ '
',
+ self.closeIcon,
+ '',
+ '
' + self.loading + '
',
+ '
',
+ '
'].join('')),
+ closeButtonSelector = '.'+self.namespace+'-close' + (self.otherClose ? ',' + self.otherClose : '');
+
+ self.$instance = $background.clone().addClass(self.variant); /* clone DOM for the background, wrapper and the close button */
+
+ /* close when click on background/anywhere/null or closebox */
+ self.$instance.on(self.closeTrigger+'.'+self.namespace, function(event) {
+ var $target = $(event.target);
+ if( ('background' === self.closeOnClick && $target.is('.'+self.namespace))
+ || 'anywhere' === self.closeOnClick
+ || $target.closest(closeButtonSelector).length ){
+ self.close(event);
+ event.preventDefault();
+ }
+ });
+
+ return this;
+ },
+
+ /* this method prepares the content and converts it into a jQuery object or a promise */
+ getContent: function(){
+ if(this.persist !== false && this.$content) {
+ return this.$content;
+ }
+ var self = this,
+ filters = this.constructor.contentFilters,
+ readTargetAttr = function(name){ return self.$currentTarget && self.$currentTarget.attr(name); },
+ targetValue = readTargetAttr(self.targetAttr),
+ data = self.target || targetValue || '';
+
+ /* Find which filter applies */
+ var filter = filters[self.type]; /* check explicit type like {type: 'image'} */
+
+ /* check explicit type like data-featherlight="image" */
+ if(!filter && data in filters) {
+ filter = filters[data];
+ data = self.target && targetValue;
+ }
+ data = data || readTargetAttr('href') || '';
+
+ /* check explicity type & content like {image: 'photo.jpg'} */
+ if(!filter) {
+ for(var filterName in filters) {
+ if(self[filterName]) {
+ filter = filters[filterName];
+ data = self[filterName];
+ }
+ }
+ }
+
+ /* otherwise it's implicit, run checks */
+ if(!filter) {
+ var target = data;
+ data = null;
+ $.each(self.contentFilters, function() {
+ filter = filters[this];
+ if(filter.test) {
+ data = filter.test(target);
+ }
+ if(!data && filter.regex && target.match && target.match(filter.regex)) {
+ data = target;
+ }
+ return !data;
+ });
+ if(!data) {
+ if('console' in window){ window.console.error('Featherlight: no content filter found ' + (target ? ' for "' + target + '"' : ' (no target specified)')); }
+ return false;
+ }
+ }
+ /* Process it */
+ return filter.process.call(self, data);
+ },
+
+ /* sets the content of $instance to $content */
+ setContent: function($content){
+ var self = this;
+ /* we need a special class for the iframe */
+ if($content.is('iframe') || $('iframe', $content).length > 0){
+ self.$instance.addClass(self.namespace+'-iframe');
+ }
+
+ self.$instance.removeClass(self.namespace+'-loading');
+
+ /* replace content by appending to existing one before it is removed
+ this insures that featherlight-inner remain at the same relative
+ position to any other items added to featherlight-content */
+ self.$instance.find('.'+self.namespace+'-inner')
+ .not($content) /* excluded new content, important if persisted */
+ .slice(1).remove().end() /* In the unexpected event where there are many inner elements, remove all but the first one */
+ .replaceWith($.contains(self.$instance[0], $content[0]) ? '' : $content);
+
+ self.$content = $content.addClass(self.namespace+'-inner');
+
+ return self;
+ },
+
+ /* opens the lightbox. "this" contains $instance with the lightbox, and with the config.
+ Returns a promise that is resolved after is successfully opened. */
+ open: function(event){
+ var self = this;
+ self.$instance.hide().appendTo(self.root);
+ if((!event || !event.isDefaultPrevented())
+ && self.beforeOpen(event) !== false) {
+
+ if(event){
+ event.preventDefault();
+ }
+ var $content = self.getContent();
+
+ if($content) {
+ opened.push(self);
+
+ toggleGlobalEvents(true);
+
+ self.$instance.fadeIn(self.openSpeed);
+ self.beforeContent(event);
+
+ /* Set content and show */
+ return $.when($content)
+ .always(function($content){
+ self.setContent($content);
+ self.afterContent(event);
+ })
+ .then(self.$instance.promise())
+ /* Call afterOpen after fadeIn is done */
+ .done(function(){ self.afterOpen(event); });
+ }
+ }
+ self.$instance.detach();
+ return $.Deferred().reject().promise();
+ },
+
+ /* closes the lightbox. "this" contains $instance with the lightbox, and with the config
+ returns a promise, resolved after the lightbox is successfully closed. */
+ close: function(event){
+ var self = this,
+ deferred = $.Deferred();
+
+ if(self.beforeClose(event) === false) {
+ deferred.reject();
+ } else {
+
+ if (0 === pruneOpened(self).length) {
+ toggleGlobalEvents(false);
+ }
+
+ self.$instance.fadeOut(self.closeSpeed,function(){
+ self.$instance.detach();
+ self.afterClose(event);
+ deferred.resolve();
+ });
+ }
+ return deferred.promise();
+ },
+
+ /* resizes the content so it fits in visible area and keeps the same aspect ratio.
+ Does nothing if either the width or the height is not specified.
+ Called automatically on window resize.
+ Override if you want different behavior. */
+ resize: function(w, h) {
+ if (w && h) {
+ /* Reset apparent image size first so container grows */
+ this.$content.css('width', '').css('height', '');
+ /* Calculate the worst ratio so that dimensions fit */
+ /* Note: -1 to avoid rounding errors */
+ var ratio = Math.max(
+ w / (parseInt(this.$content.parent().css('width'),10)-1),
+ h / (parseInt(this.$content.parent().css('height'),10)-1));
+ /* Resize content */
+ if (ratio > 1) {
+ ratio = h / Math.floor(h / ratio); /* Round ratio down so height calc works */
+ this.$content.css('width', '' + w / ratio + 'px').css('height', '' + h / ratio + 'px');
+ }
+ }
+ },
+
+ /* Utility function to chain callbacks
+ [Warning: guru-level]
+ Used be extensions that want to let users specify callbacks but
+ also need themselves to use the callbacks.
+ The argument 'chain' has callback names as keys and function(super, event)
+ as values. That function is meant to call `super` at some point.
+ */
+ chainCallbacks: function(chain) {
+ for (var name in chain) {
+ this[name] = $.proxy(chain[name], this, $.proxy(this[name], this));
+ }
+ }
+ };
+
+ $.extend(Featherlight, {
+ id: 0, /* Used to id single featherlight instances */
+ autoBind: '[data-featherlight]', /* Will automatically bind elements matching this selector. Clear or set before onReady */
+ defaults: Featherlight.prototype, /* You can access and override all defaults using $.featherlight.defaults, which is just a synonym for $.featherlight.prototype */
+ /* Contains the logic to determine content */
+ contentFilters: {
+ jquery: {
+ regex: /^[#.]\w/, /* Anything that starts with a class name or identifiers */
+ test: function(elem) { return elem instanceof $ && elem; },
+ process: function(elem) { return this.persist !== false ? $(elem) : $(elem).clone(true); }
+ },
+ image: {
+ regex: /\.(png|jpg|jpeg|gif|tiff|bmp|svg)(\?\S*)?$/i,
+ process: function(url) {
+ var self = this,
+ deferred = $.Deferred(),
+ img = new Image(),
+ $img = $('
');
+ img.onload = function() {
+ /* Store naturalWidth & height for IE8 */
+ $img.naturalWidth = img.width; $img.naturalHeight = img.height;
+ deferred.resolve( $img );
+ };
+ img.onerror = function() { deferred.reject($img); };
+ img.src = url;
+ return deferred.promise();
+ }
+ },
+ html: {
+ regex: /^\s*<[\w!][^<]*>/, /* Anything that starts with some kind of valid tag */
+ process: function(html) { return $(html); }
+ },
+ ajax: {
+ regex: /./, /* At this point, any content is assumed to be an URL */
+ process: function(url) {
+ var self = this,
+ deferred = $.Deferred();
+ /* we are using load so one can specify a target with: url.html #targetelement */
+ var $container = $('').load(url, function(response, status){
+ if ( status !== "error" ) {
+ deferred.resolve($container.contents());
+ }
+ deferred.fail();
+ });
+ return deferred.promise();
+ }
+ },
+ iframe: {
+ process: function(url) {
+ var deferred = new $.Deferred();
+ var $content = $('')
+ .hide()
+ .attr('src', url)
+ .css(structure(this, 'iframe'))
+ .on('load', function() { deferred.resolve($content.show()); })
+ // We can't move an