window.PR_SHOULD_USE_CONTINUATION=true;window.PR_TAB_WIDTH=8;window.PR_normalizedHtml=window.PR=window.prettyPrintOne=window.prettyPrint=void 0;window._pr_isIE6=function(){var A=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);window._pr_isIE6=function(){return A};return A};(function(){function x(Au){Au=Au.split(/ /g);var Av={};for(var At=Au.length;--At>=0;){var As=Au[At];if(As){Av[As]=null}}return Av}var N="break continue do else for if return while ";var d=N+"auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile ";var W=d+"catch class delete false import new operator private protected public this throw true try ";var P=W+"alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ";var g=W+"boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ";var Ap=g+"as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ";var f=W+"debugger eval export function get null set undefined var with Infinity NaN ";var Y="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ";var Ac=N+"and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ";var K=N+"alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ";var Ab=N+"case done elif esac eval fi function in local set then until ";var m=(P+Ap+f+Y+Ac+K+Ab);var p="str";var l="kwd";var O="com";var Al="typ";var z="lit";var Ai="pun";var w="pln";var Q="tag";var v="dec";var Ae="src";var Ao="atn";var S="atv";var Ak="nocode";function Aq(As){return(As>="a"&&As<="z")||(As>="A"&&As<="Z")}function o(Av,At,As,Au){Av.unshift(As,Au||0);try{At.splice.apply(At,Av)}finally{Av.splice(0,2)}}var Aj=function(){var Au=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=","~","break","case","continue","delete","do","else","finally","instanceof","return","throw","try","typeof"];var Av="(?:(?:(?:^|[^0-9.])\\.{1,3})|(?:(?:^|[^\\+])\\+)|(?:(?:^|[^\\-])-)";for(var As=0;As<Au.length;++As){var At=Au[As];if(Aq(At.charAt(0))){Av+="|\\b"+At}else{Av+="|"+At.replace(/([^=<>:&])/g,"\\$1")}}Av+="|^)\\s*$";return new RegExp(Av)}();var t=/&/g;var Aa=/</g;var X=/>/g;var k=/\"/g;function e(As){return As.replace(t,"&amp;").replace(Aa,"&lt;").replace(X,"&gt;").replace(k,"&quot;")}function R(As){return As.replace(t,"&amp;").replace(Aa,"&lt;").replace(X,"&gt;")}var E=/&lt;/g;var c=/&gt;/g;var D=/&apos;/g;var I=/&quot;/g;var Ar=/&amp;/g;var j=/&nbsp;/g;function T(Av){var Ax=Av.indexOf("&");if(Ax<0){return Av}for(--Ax;(Ax=Av.indexOf("&#",Ax+1))>=0;){var As=Av.indexOf(";",Ax);if(As>=0){var Au=Av.substring(Ax+3,As);var Aw=10;if(Au&&Au.charAt(0)==="x"){Au=Au.substring(1);Aw=16}var At=parseInt(Au,Aw);if(!isNaN(At)){Av=(Av.substring(0,Ax)+String.fromCharCode(At)+Av.substring(As+1))}}}return Av.replace(E,"<").replace(c,">").replace(D,"'").replace(I,'"').replace(Ar,"&").replace(j," ")}function s(As){return"XMP"===As.tagName}function An(Aw,Au){switch(Aw.nodeType){case 1:var At=Aw.tagName.toLowerCase();Au.push("<",At);for(var Av=0;Av<Aw.attributes.length;++Av){var As=Aw.attributes[Av];if(!As.specified){continue}Au.push(" ");An(As,Au)}Au.push(">");for(var Ax=Aw.firstChild;Ax;Ax=Ax.nextSibling){An(Ax,Au)}if(Aw.firstChild||!/^(?:br|link|img)$/.test(At)){Au.push("</",At,">")}break;case 2:Au.push(Aw.name.toLowerCase(),'="',e(Aw.value),'"');break;case 3:case 4:Au.push(R(Aw.nodeValue));break}}var Am=null;function B(Av){if(null===Am){var At=document.createElement("PRE");At.appendChild(document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));Am=!/</.test(At.innerHTML)}if(Am){var Au=Av.innerHTML;if(s(Av)){Au=R(Au)}return Au}var As=[];for(var Aw=Av.firstChild;Aw;Aw=Aw.nextSibling){An(Aw,As)}return As.join("")}function Ah(Au){var As="                ";var At=0;return function(Ay){var Aw=null;var AB=0;for(var Ax=0,AA=Ay.length;Ax<AA;++Ax){var Az=Ay.charAt(Ax);switch(Az){case"\t":if(!Aw){Aw=[]}Aw.push(Ay.substring(AB,Ax));var Av=Au-(At%Au);At+=Av;for(;Av>=0;Av-=As.length){Aw.push(As.substring(0,Av))}AB=Ax+1;break;case"\n":At=0;break;default:++At}}if(!Aw){return Ay}Aw.push(Ay.substring(AB));return Aw.join("")}}var r=/(?:[^<]+|<!--[\s\S]*?-->|<!\[CDATA\[([\s\S]*?)\]\]>|<\/?[a-zA-Z][^>]*>|<)/g;var V=/^<!--/;var u=/^<\[CDATA\[/;var U=/^<br\b/i;var H=/^<(\/?)([a-zA-Z]+)/;function b(AE){var AA=AE.match(r);var AD=[];var Av=0;var As=[];if(AA){for(var Az=0,Au=AA.length;Az<Au;++Az){var AB=AA[Az];if(AB.length>1&&AB.charAt(0)==="<"){if(V.test(AB)){continue}if(u.test(AB)){AD.push(AB.substring(9,AB.length-3));Av+=AB.length-12}else{if(U.test(AB)){AD.push("\n");++Av}else{if(AB.indexOf(Ak)>=0&&Ad(AB)){var At=AB.match(H)[2];var Ay=1;var Ax;end_tag_loop:for(Ax=Az+1;Ax<Au;++Ax){var AC=AA[Ax].match(H);if(AC&&AC[2]===At){if(AC[1]==="/"){if(--Ay===0){break end_tag_loop}}else{++Ay}}}if(Ax<Au){As.push(Av,AA.slice(Az,Ax+1).join(""));Az=Ax}else{As.push(Av,AB)}}else{As.push(Av,AB)}}}}else{var Aw=T(AB);AD.push(Aw);Av+=Aw.length}}}return{source:AD.join(""),tags:As}}function Ad(As){return !!As.replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,' $1="$2$3$4"').match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/)}function n(Ax,Av,Aw,At){if(!Av){return}var As=Aw.call({},Av);if(Ax){for(var Au=As.length;(Au-=2)>=0;){As[Au]+=Ax}}At.push.apply(At,As)}function J(Au,At){var As={};(function(){var Ay=Au.concat(At);for(var Az=Ay.length;--Az>=0;){var AC=Ay[Az];var AA=AC[3];if(AA){for(var AB=AA.length;--AB>=0;){As[AA.charAt(AB)]=AC}}}})();var Ax=At.length;var Aw=/\S/;var Av=function(Ay,AO){AO=AO||0;var AB=[AO,w];var AN="";var AC=0;var AF=Ay;while(AF.length){var AM;var AD=null;var AE;var Az=As[AF.charAt(0)];if(Az){AE=AF.match(Az[1]);AD=AE[0];AM=Az[0]}else{for(var AK=0;AK<Ax;++AK){Az=At[AK];var AL=Az[2];if(AL&&!AL.test(AN)){continue}AE=AF.match(Az[1]);if(AE){AD=AE[0];AM=Az[0];break}}if(!AD){AM=w;AD=AF.substring(0,1)}}var AI="lang-"===AM.substring(0,5);if(AI&&!(AE&&AE[1])){AI=false;AM=Ae}if(!AI){AB.push(AO+AC,AM)}else{var AH=AE[1];var AG=AD.indexOf(AH);var AA=AG+AH.length;var AP=AM.substring(5);if(!a.hasOwnProperty(AP)){AP=/^\s*</.test(AH)?"default-markup":"default-code"}var AJ=AB.length-10;n(AO+AC,AD.substring(0,AG),Av,AB);n(AO+AC+AG,AD.substring(AG,AA),a[AP],AB);n(AO+AC+AA,AD.substring(AA),Av,AB)}AC+=AD.length;AF=AF.substring(AD.length);if(AM!==O&&Aw.test(AD)){AN=AD}}return AB};return Av}var A=J([],[[w,/^[^<?]+/,null],[v,/^<!\w[^>]*(?:>|$)/,null],[O,/^<!--[\s\S]*?(?:-->|$)/,null],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/,null],["lang-",/^<%([\s\S]+?)(?:%>|$)/,null],[Ai,/^(?:<[%?]|[%?]>)/,null],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i,null],["lang-js",/^<script\b[^>]*>([\s\S]+?)<\/script\b[^>]*>/i,null],["lang-css",/^<style\b[^>]*>([\s\S]+?)<\/style\b[^>]*>/i,null],[Q,/^<\/?\w[^<>]*>/,null]]);var Z=/^(<[^>]*>)([\s\S]*)(<\/[^>]*>)$/;function Af(Ax){var Au=A(Ax);for(var Aw=0;Aw<Au.length;Aw+=2){if(Au[Aw+1]===Ae){var Ay,At;Ay=Au[Aw];At=Aw+2<Au.length?Au[Aw+2]:Ax.length;var As=Ax.substring(Ay,At);var Av=As.match(Z);if(Av){Au.splice(Aw,2,Ay,Q,Ay+Av[1].length,Ae,Ay+Av[1].length+(Av[2]||"").length,Q)}}}return Au}var y=J([[S,/^\'[^\']*(?:\'|$)/,null,"'"],[S,/^\"[^\"]*(?:\"|$)/,null,'"'],[Ai,/^[<>\/=]+/,null,"<>/="]],[[Q,/^[\w:\-]+/,/^</],[S,/^[\w\-]+/,/^=/],[Ao,/^[\w:\-]+/,null],[w,/^\s+/,null," \t\r\n"]]);function i(Ax,At){for(var Av=0;Av<At.length;Av+=2){var Aw=At[Av+1];if(Aw===Q){var Az,As;Az=At[Av];As=Av+2<At.length?At[Av+2]:Ax.length;var Au=Ax.substring(Az,As);var Ay=y(Au,Az);o(Ay,At,Av,2);Av+=Ay.length-2}}return At}function M(Av){var Ax=[],Au=[];if(Av.tripleQuotedStrings){Ax.push([p,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(Av.multiLineStrings){Ax.push([p,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{Ax.push([p,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}Au.push([w,/^(?:[^\'\"\`\/\#]+)/,null," \r\n"]);if(Av.hashComments){Ax.push([O,/^#[^\r\n]*/,null,"#"])}if(Av.cStyleComments){Au.push([O,/^\/\/[^\r\n]*/,null]);Au.push([O,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(Av.regexLiterals){var Az=("^/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+(?:/|$)");Au.push([p,new RegExp(Az),Aj])}var Aw=x(Av.keywords);Av=null;var At=J(Ax,Au);var Ay=J([],[[w,/^\s+/,null," \r\n"],[w,/^[a-z_$@][a-z_$@0-9]*/i,null],[z,/^0x[a-f0-9]+[a-z]/i,null],[z,/^(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?[a-z]*/i,null,"123456789"],[Ai,/^[^\s\w\.$@]+/,null]]);function As(AA,AE){for(var AI=0;AI<AE.length;AI+=2){var AB=AE[AI+1];if(AB===w){var AC,AG,AK,AJ;AC=AE[AI];AG=AI+2<AE.length?AE[AI+2]:AA.length;AK=AA.substring(AC,AG);AJ=Ay(AK,AC);for(var AH=0,AD=AJ.length;AH<AD;AH+=2){var AL=AJ[AH+1];if(AL===w){var AN=AJ[AH];var AM=AH+2<AD?AJ[AH+2]:AK.length;var AF=AA.substring(AN,AM);if(AF==="."){AJ[AH+1]=Ai}else{if(AF in Aw){AJ[AH+1]=l}else{if(/^@?[A-Z][A-Z$]*[a-z][A-Za-z$]*$/.test(AF)){AJ[AH+1]=AF.charAt(0)==="@"?z:Al}}}}}o(AJ,AE,AI,2);AI+=AJ.length-2}}return AE}return function(AB){var AA=At(AB);AA=As(AB,AA);return AA}}var Ag=M({keywords:m,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function C(As,AA){var AH=false;for(var AE=0;AE<AA.length;AE+=2){var Au=AA[AE+1];var Aw,AC;if(Au===Ao){Aw=AA[AE];AC=AE+2<AA.length?AA[AE+2]:As.length;AH=/^on|^style$/i.test(As.substring(Aw,AC))}else{if(Au===S){if(AH){Aw=AA[AE];AC=AE+2<AA.length?AA[AE+2]:As.length;var AF=As.substring(Aw,AC);var At=AF.length;var Az=(At>=2&&/^[\"\']/.test(AF)&&AF.charAt(0)===AF.charAt(At-1));var Av;var Ax;var AB;if(Az){Ax=Aw+1;AB=AC-1;Av=AF}else{Ax=Aw+1;AB=AC-1;Av=AF.substring(1,AF.length-1)}var AG=Ag(Av);for(var AD=0,Ay=AG.length;AD<Ay;AD+=2){AG[AD]+=Ax}if(Az){AG.push(AB,S);o(AG,AA,AE+2,0)}else{o(AG,AA,AE,2)}}AH=false}}}return AA}function L(At){var As=Af(At);As=i(At,As);As=C(At,As);return As}function q(AI,At,Ax){var AA=[];var AH=0;var Aw=null;var AB=null;var Au=0;var AG=0;var Ay=Ah(window.PR_TAB_WIDTH);var Av=/([\r\n ]) /g;var AE=/(^| ) /gm;var Az=/\r\n?|\n/g;var AC=/[ \r\n]$/;var AD=true;function AF(AJ){if(AJ>AH){if(Aw&&Aw!==AB){AA.push("</span>");Aw=null}if(!Aw&&AB){Aw=AB;AA.push('<span class="',Aw,'">')}var AK=R(Ay(AI.substring(AH,AJ))).replace(AD?AE:Av,"$1&nbsp;");AD=AC.test(AK);AA.push(AK.replace(Az,"<br />"));AH=AJ}}while(true){var As;if(Au<At.length){if(AG<Ax.length){As=At[Au]<=Ax[AG]}else{As=true}}else{As=false}if(As){AF(At[Au]);if(Aw){AA.push("</span>");Aw=null}AA.push(At[Au+1]);Au+=2}else{if(AG<Ax.length){AF(Ax[AG]);AB=Ax[AG+1];AG+=2}else{break}}}AF(AI.length);if(Aw){AA.push("</span>")}return AA.join("")}var a={};function G(Au,Av){for(var As=Av.length;--As>=0;){var At=Av[As];if(!a.hasOwnProperty(At)){a[At]=Au}else{if("console" in window){console.log("cannot override language handler %s",At)}}}}G(Ag,["default-code"]);G(L,["default-markup","htm","html","mxml","xhtml","xml","xsl"]);G(M({keywords:P,hashComments:true,cStyleComments:true}),["c","cc","cpp","cxx","cyc","m"]);G(M({keywords:Ap,hashComments:true,cStyleComments:true}),["cs"]);G(M({keywords:g,cStyleComments:true}),["java"]);G(M({keywords:Ab,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);G(M({keywords:Ac,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);G(M({keywords:Y,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);G(M({keywords:K,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);G(M({keywords:f,cStyleComments:true,regexLiterals:true}),["js"]);function h(Ax,Av){try{var Ay=b(Ax);var Au=Ay.source;var As=Ay.tags;if(!a.hasOwnProperty(Av)){Av=/^\s*</.test(Au)?"default-markup":"default-code"}var At=a[Av].call({},Au);return q(Au,As,At)}catch(Aw){if("console" in window){console.log(Aw);console.trace()}return Ax}}function F(AA){var Aw=window._pr_isIE6();var Az=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")];var As=[];for(var Ay=0;Ay<Az.length;++Ay){for(var Ax=0,Au=Az[Ay].length;Ax<Au;++Ax){As.push(Az[Ay][Ax])}}Az=null;var Av=0;function At(){var AG=(window.PR_SHOULD_USE_CONTINUATION?new Date().getTime()+250:Infinity);for(;Av<As.length&&new Date().getTime()<AG;Av++){var AH=As[Av];var AD=AH.className.match(/\blang-(\w+)\b/);if(AD){AD=AD[1]}var AM=false;for(var AB=AH.parentNode;AB;AB=AB.parentNode){if((AB.tagName==="pre"||AB.tagName==="code"||AB.tagName==="xmp")&&AB.className&&AB.className.indexOf("prettyprint")>=0){AM=true;break}}if(!AM){var AJ=B(AH);AJ=AJ.replace(/(?:\r\n?|\n)$/,"");var AN=h(AJ,AD);if(!s(AH)){AH.innerHTML=AN}else{var AC=document.createElement("PRE");for(var AF=0;AF<AH.attributes.length;++AF){var AO=AH.attributes[AF];if(AO.specified){var AK=AO.name.toLowerCase();if(AK==="class"){AC.className=AO.value}else{AC.setAttribute(AO.name,AO.value)}}}AC.innerHTML=AN;AH.parentNode.replaceChild(AC,AH);AH=AC}if(Aw&&AH.tagName==="PRE"){var AI=AH.getElementsByTagName("br");for(var AE=AI.length;--AE>=0;){var AL=AI[AE];AL.parentNode.replaceChild(document.createTextNode("\r"),AL)}}}}if(Av<As.length){setTimeout(At,250)}else{if(AA){AA()}}}At()}window.PR_normalizedHtml=An;window.prettyPrintOne=h;window.prettyPrint=F;window.PR={createSimpleLexer:J,registerLangHandler:G,sourceDecorator:M,PR_ATTRIB_NAME:Ao,PR_ATTRIB_VALUE:S,PR_COMMENT:O,PR_DECLARATION:v,PR_KEYWORD:l,PR_LITERAL:z,PR_NOCODE:Ak,PR_PLAIN:w,PR_PUNCTUATION:Ai,PR_SOURCE:Ae,PR_STRING:p,PR_TAG:Q,PR_TYPE:Al}})();
