if(!window.SyntaxHighlighter){var SyntaxHighlighter=function(){var A={defaults:{"class-name":"","first-line":1,"font-size":null,highlight:null,"smart-tabs":true,"tab-size":4,ruler:false,gutter:true,toolbar:true,collapse:false,"auto-links":true,light:false},config:{clipboardSwf:null,toolbarItemWidth:16,toolbarItemHeight:16,bloggerMode:false,tagName:"pre",strings:{expandSource:"expand source",viewSource:"view source",copyToClipboard:"copy to clipboard",copyToClipboardConfirmation:"The code is in your clipboard now",alert:"SyntaxHighlighter\n\n",noBrush:"Can't find brush for: ",brushNotHtmlScript:"Brush wasn't configured for html-script option: "},debug:false},vars:{discoveredBrushes:null,spaceWidth:null,highlighters:{}},brushes:{},regexLib:{multiLineCComments:/\/\*[\s\S]*?\*\//gm,singleLineCComments:/\/\/.*$/gm,singleLinePerlComments:/#.*$/gm,doubleQuotedString:/"(?:\.|(\\\")|[^\""\n])*"/g,singleQuotedString:/'(?:\.|(\\\')|[^\''\n])*'/g,multiLineDoubleQuotedString:/"(?:\.|(\\\")|[^\""])*"/g,multiLineSingleQuotedString:/'(?:\.|(\\\')|[^\''])*'/g,url:/\w+:\/\/[\w-.\/?%&=]*/g,phpScriptTags:{left:/(&lt;|<)\?=?/g,right:/\?(&gt;|>)/g},aspScriptTags:{left:/(&lt;|<)%=?/g,right:/%(&gt;|>)/g},scriptScriptTags:{left:/(&lt;|<)\s*script.*?(&gt;|>)/gi,right:/(&lt;|<)\/\s*script\s*(&gt;|>)/gi}},toolbar:{create:function(D){var H=document.createElement("DIV"),B=A.toolbar.items;H.className="toolbar";for(var C in B){var F=B[C],G=new F(D),E=G.create();D.toolbarCommands[C]=G;if(E==null){continue}if(typeof (E)=="string"){E=A.toolbar.createButton(E,D.id,C)}E.className+="item "+C;H.appendChild(E)}return H},createButton:function(F,C,G){var D=document.createElement("a"),I=D.style,E=A.config,H=E.toolbarItemWidth,B=E.toolbarItemHeight;D.href="#"+G;D.title=F;D.highlighterId=C;D.commandName=G;D.innerHTML=F;if(isNaN(H)==false){I.width=H+"px"}if(isNaN(B)==false){I.height=B+"px"}D.onclick=function(J){try{A.toolbar.executeCommand(this,J||window.event,this.highlighterId,this.commandName)}catch(J){A.utils.alert(J.message)}return false};return D},executeCommand:function(F,G,B,E,D){var C=A.vars.highlighters[B],H;if(C==null||(H=C.toolbarCommands[E])==null){return null}return H.execute(F,G,D)},items:{expandSource:function(B){this.create=function(){if(B.getParam("collapse")!=true){return }return A.config.strings.expandSource};this.execute=function(D,E,C){var F=B.div;D.parentNode.removeChild(D);F.className=F.className.replace("collapsed","")}},viewSource:function(B){this.create=function(){return A.config.strings.viewSource};this.execute=function(D,G,C){var F=A.utils.fixForBlogger(B.originalCode).replace(/</g,"&lt;"),E=A.utils.popup("","_blank",750,400,"location=0, resizable=1, menubar=0, scrollbars=1");F=A.utils.unindent(F);E.document.write("<pre>"+F+"</pre>");E.document.close()}},copyToClipboard:function(D){var E,C,B=D.id;this.create=function(){var G=A.config;if(G.clipboardSwf==null){return null}function L(O){var M="";for(var N in O){M+="<param name='"+N+"' value='"+O[N]+"'/>"}return M}function F(O){var M="";for(var N in O){M+=" "+N+"='"+O[N]+"'"}return M}var K={width:G.toolbarItemWidth,height:G.toolbarItemHeight,id:B+"_clipboard",type:"application/x-shockwave-flash",title:A.config.strings.copyToClipboard},J={allowScriptAccess:"always",wmode:"transparent",flashVars:"highlighterId="+B,menu:"false"},I=G.clipboardSwf,H;if(/msie/i.test(navigator.userAgent)){H="<object"+F({classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",codebase:"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"})+F(K)+">"+L(J)+L({movie:I})+"</object>"}else{H="<embed"+F(K)+F(J)+F({src:I})+"/>"}E=document.createElement("div");E.innerHTML=H;return E};this.execute=function(G,I,F){var J=F.command;switch(J){case"get":var H=A.utils.unindent(A.utils.fixForBlogger(D.originalCode).replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&"));if(window.clipboardData){window.clipboardData.setData("text",H)}else{return A.utils.unindent(H)}case"ok":A.utils.alert(A.config.strings.copyToClipboardConfirmation);break;case"error":A.utils.alert(F.message);break}}}}},utils:{guid:function(B){return B+Math.round(Math.random()*1000000).toString()},merge:function(E,D){var B={},C;for(C in E){B[C]=E[C]}for(C in D){B[C]=D[C]}return B},toBoolean:function(B){switch(B){case"true":return true;case"false":return false}return B},popup:function(F,E,G,C,D){var B=(screen.width-G)/2,I=(screen.height-C)/2;D+=", left="+B+", top="+I+", width="+G+", height="+C;D=D.replace(/^,/,"");var H=window.open(F,E,D);H.focus();return H},addEvent:function(D,B,C){if(D.attachEvent){D["e"+B+C]=C;D[B+C]=function(){D["e"+B+C](window.event)};D.attachEvent("on"+B,D[B+C])}else{D.addEventListener(B,C,false)}},alert:function(B){alert(A.config.strings.alert+B)},findBrush:function(F,H){var G=A.vars.discoveredBrushes,B=null;if(G==null){G={};for(var D in A.brushes){var C=A.brushes[D].aliases;if(C==null){continue}for(var E=0;E<C.length;E++){G[C[E]]=D}}A.vars.discoveredBrushes=G}B=A.brushes[G[F]];if(B==null&&H!=false){A.utils.alert(A.config.strings.noBrush+F)}return B},eachLine:function(D,E){var B=D.split("\n");for(var C=0;C<B.length;C++){B[C]=E(B[C])}return B.join("\n")},createRuler:function(){var E=document.createElement("div"),D=document.createElement("div"),C=10,B=1;while(B<=150){if(B%C===0){E.innerHTML+=B;B+=(B+"").length}else{E.innerHTML+="&middot;";B++}}D.className="ruler line";D.appendChild(E);return D},trimFirstAndLastLines:function(B){return B.replace(/^[ ]*[\n]+|[\n]*[ ]*$/g,"")},parseParams:function(H){var D,C={},E=new XRegExp("^\\[(?<values>(.*?))\\]$"),F=new XRegExp("(?<name>[\\w-]+)\\s*:\\s*(?<value>[\\w-%#]+|\\[.*?\\]|\".*?\"|'.*?')\\s*;?","g");while((D=F.exec(H))!=null){var G=D.value.replace(/^['"]|['"]$/g,"");if(G!=null&&E.test(G)){var B=E.exec(G);G=B.values.length>0?B.values.split(/\s*,\s*/):[]}C[D.name]=G}return C},decorate:function(C,B){if(C==null||C.length==0||C=="\n"){return C}C=C.replace(/</g,"&lt;");C=C.replace(/ {2,}/g,function(D){var E="";for(var F=0;F<D.length-1;F++){E+="&nbsp;"}return E+" "});if(B!=null){C=A.utils.eachLine(C,function(D){if(D.length==0){return""}var E="";D=D.replace(/^(&nbsp;| )+/,function(F){E=F;return""});if(D.length==0){return E}return E+'<code class="'+B+'">'+D+"</code>"})}return C},padNumber:function(D,C){var B=D.toString();while(B.length<C){B="0"+B}return B},measureSpace:function(){var C=document.createElement("div"),H,J=0,F=document.body,D=A.utils.guid("measureSpace"),I='<div class="',G="</div>",E="</span>";C.innerHTML=I+'syntaxhighlighter">'+I+'lines">'+I+'line">'+I+'content"><span class="block"><span id="'+D+'">&nbsp;'+E+E+G+G+G+G;F.appendChild(C);H=document.getElementById(D);if(/opera/i.test(navigator.userAgent)){var B=window.getComputedStyle(H,null);J=parseInt(B.getPropertyValue("width"))}else{J=H.offsetWidth}F.removeChild(C);return J},processTabs:function(D,E){var C="";for(var B=0;B<E;B++){C+=" "}return D.replace(/\t/g,C)},processSmartTabs:function(F,G){var B=F.split("\n"),E="\t",C="";for(var D=0;D<50;D++){C+="                    "}function H(I,K,J){return I.substr(0,K)+C.substr(0,J)+I.substr(K+1,I.length)}F=A.utils.eachLine(F,function(I){if(I.indexOf(E)==-1){return I}var K=0;while((K=I.indexOf(E))!=-1){var J=G-K%G;I=H(I,K,J)}return I});return F},fixForBlogger:function(B){return(A.config.bloggerMode==true)?B.replace(/<br\s*\/?>|&lt;br\s*\/?&gt;/gi,"\n"):B},trim:function(B){return B.replace(/\s*$/g,"").replace(/^\s*/,"")},unindent:function(I){var C=A.utils.fixForBlogger(I).split("\n"),H=new Array(),F=/^\s*/,E=1000;for(var D=0;D<C.length&&E>0;D++){var B=C[D];if(A.utils.trim(B).length==0){continue}var G=F.exec(B);if(G==null){return I}E=Math.min(G[0].length,E)}if(E>0){for(var D=0;D<C.length;D++){C[D]=C[D].substr(E)}}return C.join("\n")},matchesSortCallback:function(C,B){if(C.index<B.index){return -1}else{if(C.index>B.index){return 1}else{if(C.length<B.length){return -1}else{if(C.length>B.length){return 1}}}}return 0},getMatches:function(F,G){function H(I,J){return[new A.Match(I[0],I.index,J.css)]}var D=0,C=null,B=[],E=G.func?G.func:H;while((C=G.regex.exec(F))!=null){B=B.concat(E(C,G))}return B},processUrls:function(B){return B.replace(A.regexLib.url,function(C){return'<a href="'+C+'">'+C+"</a>"})}},highlight:function(G,E){function D(P){var N=[];for(var O=0;O<P.length;O++){N.push(P[O])}return N}var B=E?[E]:D(document.getElementsByTagName(A.config.tagName)),H="innerHTML",K=null;if(B.length===0){return }for(var F=0;F<B.length;F++){var I=B[F],C=A.utils.parseParams(I.className),L;C=A.utils.merge(G,C);L=C.brush;if(L==null){continue}if(C["html-script"]=="true"){K=new A.HtmlScript(L)}else{var J=A.utils.findBrush(L);if(J){K=new J()}else{continue}}K.highlight(I[H],C);var M=K.div;if(A.config.debug){M=document.createElement("textarea");M.value=K.div.innerHTML;M.style.width="70em";M.style.height="30em"}I.parentNode.replaceChild(M,I)}},all:function(B){A.utils.addEvent(window,"load",function(){A.highlight(B)})}};A.Match=function(D,B,C){this.value=D;this.index=B;this.length=D.length;this.css=C};A.Match.prototype.toString=function(){return this.value};A.HtmlScript=function(B){var C=A.utils.findBrush(B),G=new A.brushes.Xml(),F=null;if(C==null){return }C=new C();this.xmlBrush=G;if(C.htmlScript==null){A.utils.alert(A.config.strings.brushNotHtmlScript+B);return }G.regexList.push({regex:C.htmlScript.code,func:E});function D(I,J){for(var H=0;H<I.length;H++){I[H].index+=J}}function E(N,I){var H=N.code,M=[],L=C.regexList,J=N.index+N.left.length,O=C.htmlScript,P;for(var K=0;K<L.length;K++){P=A.utils.getMatches(H,L[K]);D(P,J);M=M.concat(P)}if(O.left!=null&&N.left!=null){P=A.utils.getMatches(N.left,O.left);D(P,N.index);M=M.concat(P)}if(O.right!=null&&N.right!=null){P=A.utils.getMatches(N.right,O.right);D(P,N.index+N[0].lastIndexOf(N.right));M=M.concat(P)}return M}};A.HtmlScript.prototype.highlight=function(B,C){this.xmlBrush.highlight(B,C);this.div=this.xmlBrush.div};A.Highlighter=function(){};A.Highlighter.prototype={getParam:function(D,C){var B=this.params[D];return A.utils.toBoolean(B==null?C:B)},create:function(B){return document.createElement(B)},isMatchNested:function(B){for(var C=0;C<this.matches.length;C++){var D=this.matches[C];if(D===null){continue}if((B.index>D.index)&&(B.index<D.index+D.length)){return true}}return false},findMatches:function(E,D){var B=[];if(E!=null){for(var C=0;C<E.length;C++){B=B.concat(A.utils.getMatches(D,E[C]))}}B=B.sort(A.utils.matchesSortCallback);return B},removeNestedMatches:function(){for(var B=0;B<this.matches.length;B++){if(this.isMatchNested(this.matches[B])){this.matches[B]=null}}},createDisplayLines:function(B){var L=B.split(/\n/g),J=parseInt(this.getParam("first-line")),G=(J+L.length).toString().length,K=this.getParam("highlight",[]);B="";for(var F=0;F<L.length;F++){var M=L[F],C=/^(&nbsp;|\s)+/.exec(M),I="line alt"+(F%2==0?1:2),D=A.utils.padNumber(J+F,G),E=K.indexOf((J+F).toString())!=-1,H=null;if(C!=null){H=C[0].toString();M=M.substr(H.length);H=H.replace(/&nbsp;/g," ");C=A.vars.spaceWidth*H.length}else{C=0}M=A.utils.trim(M);if(M.length==0){M="&nbsp;"}if(E){I+=" highlighted"}B+='<div class="'+I+'"><code class="number">'+D+'</code><span class="content">'+(H!=null?'<code class="spaces">'+H.replace(/\s/g,"&nbsp;")+"</code>":"")+'<span class="block" style="margin-left: '+C+'px !important;">'+M+"</span></span></div>"}return B},processMatches:function(E,F){var H=0,B="",G=A.utils.decorate;for(var D=0;D<F.length;D++){var C=F[D];if(C===null||C.length===0){continue}B+=G(E.substr(H,C.index-H),"plain")+G(C.value,C.css);H=C.index+C.length}B+=G(E.substr(H),"plain");return B},highlight:function(C,F){var B=A.config,E=A.vars,G,D;this.params={};this.div=null;this.lines=null;this.code=null;this.bar=null;this.toolbarCommands={};this.id=A.utils.guid("highlighter_");E.highlighters[this.id]=this;if(C===null){C=""}if(E.spaceWidth===null){E.spaceWidth=A.utils.measureSpace()}this.params=A.utils.merge(A.defaults,F||{});if(this.getParam("light")==true){this.params.toolbar=this.params.gutter=false}this.div=G=this.create("DIV");this.lines=this.create("DIV");this.lines.className="lines";G.className="syntaxhighlighter";G.id=this.id;if(this.getParam("collapse")){G.className+=" collapsed"}if(this.getParam("gutter")==false){G.className+=" nogutter"}G.className+=" "+this.getParam("class-name");G.style.fontSize=this.getParam("font-size","");this.originalCode=C;this.code=A.utils.trimFirstAndLastLines(C).replace(/\r/g," ");D=this.getParam("tab-size");this.code=this.getParam("smart-tabs")==true?A.utils.processSmartTabs(this.code,D):A.utils.processTabs(this.code,D);this.code=A.utils.unindent(this.code);if(this.getParam("toolbar")){this.bar=this.create("DIV");this.bar.className="bar";this.bar.appendChild(A.toolbar.create(this));G.appendChild(this.bar)}if(this.getParam("ruler")){G.appendChild(A.utils.createRuler())}G.appendChild(this.lines);this.matches=this.findMatches(this.regexList,this.code);this.removeNestedMatches();C=this.processMatches(this.code,this.matches);C=this.createDisplayLines(A.utils.trim(C));if(this.getParam("auto-links")){C=A.utils.processUrls(C)}this.lines.innerHTML=C},getKeywords:function(B){B=B.replace(/^\s+|\s+$/g,"").replace(/\s+/g,"\\b|\\b");return"\\b"+B+"\\b"},forHtmlScript:function(B){this.htmlScript={left:{regex:B.left,css:"script"},right:{regex:B.right,css:"script"},code:new XRegExp("(?<left>"+B.left.source+")(?<code>.*?)(?<right>"+B.right.source+")","sgi")}}};return A}()}if(!Array.indexOf){Array.prototype.indexOf=function(A,C){C=Math.max(C||0,0);for(var B=C;B<this.length;B++){if(this[B]==A){return B}}return -1}}if(!window.XRegExp){(function(){var E={exec:RegExp.prototype.exec,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},D={part:/(?:[^\\([#\s.]+|\\(?!k<[\w$]+>|[pP]{[^}]+})[\S\s]?|\((?=\?(?!#|<[\w$]+>)))+|(\()(?:\?(?:(#)[^)]*\)|<([$\w]+)>))?|\\(?:k<([\w$]+)>|[pP]{([^}]+)})|(\[\^?)|([\S\s])/g,replaceVar:/(?:[^$]+|\$(?![1-9$&`']|{[$\w]+}))+|\$(?:([1-9]\d*|[$&`'])|{([$\w]+)})/g,extended:/^(?:\s+|#.*)+/,quantifier:/^(?:[?*+]|{\d+(?:,\d*)?})/,classLeft:/&&\[\^?/g,classRight:/]/g},B=function(I,G,H){for(var F=H||0;F<I.length;F++){if(I[F]===G){return F}}return -1},C=/()??/.exec("")[1]!==undefined,A={};XRegExp=function(O,I){if(O instanceof RegExp){if(I!==undefined){throw TypeError("can't supply flags when constructing one RegExp from another")}return O.addFlags()}var I=I||"",F=I.indexOf("s")>-1,K=I.indexOf("x")>-1,P=false,R=[],H=[],G=D.part,L,J,N,M,Q;G.lastIndex=0;while(L=E.exec.call(G,O)){if(L[2]){if(!D.quantifier.test(O.slice(G.lastIndex))){H.push("(?:)")}}else{if(L[1]){R.push(L[3]||null);if(L[3]){P=true}H.push("(")}else{if(L[4]){M=B(R,L[4]);H.push(M>-1?"\\"+(M+1)+(isNaN(O.charAt(G.lastIndex))?"":"(?:)"):L[0])}else{if(L[5]){H.push(A.unicode?A.unicode.get(L[5],L[0].charAt(1)==="P"):L[0])}else{if(L[6]){if(O.charAt(G.lastIndex)==="]"){H.push(L[6]==="["?"(?!)":"[\\S\\s]");G.lastIndex++}else{J=XRegExp.matchRecursive("&&"+O.slice(L.index),D.classLeft,D.classRight,"",{escapeChar:"\\"})[0];H.push(L[6]+J+"]");G.lastIndex+=J.length+1}}else{if(L[7]){if(F&&L[7]==="."){H.push("[\\S\\s]")}else{if(K&&D.extended.test(L[7])){N=E.exec.call(D.extended,O.slice(G.lastIndex-1))[0].length;if(!D.quantifier.test(O.slice(G.lastIndex-1+N))){H.push("(?:)")}G.lastIndex+=N-1}else{H.push(L[7])}}}else{H.push(L[0])}}}}}}}Q=RegExp(H.join(""),E.replace.call(I,/[sx]+/g,""));Q._x={source:O,captureNames:P?R:null};return Q};XRegExp.addPlugin=function(F,G){A[F]=G};RegExp.prototype.exec=function(J){var H=E.exec.call(this,J),G,I,F;if(H){if(C&&H.length>1){F=new RegExp("^"+this.source+"$(?!\\s)",this.getNativeFlags());E.replace.call(H[0],F,function(){for(I=1;I<arguments.length-2;I++){if(arguments[I]===undefined){H[I]=undefined}}})}if(this._x&&this._x.captureNames){for(I=1;I<H.length;I++){G=this._x.captureNames[I-1];if(G){H[G]=H[I]}}}if(this.global&&this.lastIndex>(H.index+H[0].length)){this.lastIndex--}}return H}})()}RegExp.prototype.getNativeFlags=function(){return(this.global?"g":"")+(this.ignoreCase?"i":"")+(this.multiline?"m":"")+(this.extended?"x":"")+(this.sticky?"y":"")};RegExp.prototype.addFlags=function(A){var B=new XRegExp(this.source,(A||"")+this.getNativeFlags());if(this._x){B._x={source:this._x.source,captureNames:this._x.captureNames?this._x.captureNames.slice(0):null}}return B};RegExp.prototype.call=function(A,B){return this.exec(B)};RegExp.prototype.apply=function(B,A){return this.exec(A[0])};XRegExp.cache=function(C,A){var B="/"+C+"/"+(A||"");return XRegExp.cache[B]||(XRegExp.cache[B]=new XRegExp(C,A))};XRegExp.escape=function(A){return A.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,"\\$&")};XRegExp.matchRecursive=function(P,D,S,F,B){var B=B||{},V=B.escapeChar,K=B.valueNames,F=F||"",Q=F.indexOf("g")>-1,C=F.indexOf("i")>-1,H=F.indexOf("m")>-1,U=F.indexOf("y")>-1,F=F.replace(/y/g,""),D=D instanceof RegExp?(D.global?D:D.addFlags("g")):new XRegExp(D,"g"+F),S=S instanceof RegExp?(S.global?S:S.addFlags("g")):new XRegExp(S,"g"+F),I=[],A=0,J=0,N=0,L=0,M,E,O,R,G,T;if(V){if(V.length>1){throw SyntaxError("can't supply more than one escape character")}if(H){throw TypeError("can't supply escape character when using the multiline flag")}G=XRegExp.escape(V);T=new RegExp("^(?:"+G+"[\\S\\s]|(?:(?!"+D.source+"|"+S.source+")[^"+G+"])+)+",C?"i":"")}while(true){D.lastIndex=S.lastIndex=N+(V?(T.exec(P.slice(N))||[""])[0].length:0);O=D.exec(P);R=S.exec(P);if(O&&R){if(O.index<=R.index){R=null}else{O=null}}if(O||R){J=(O||R).index;N=(O?D:S).lastIndex}else{if(!A){break}}if(U&&!A&&J>L){break}if(O){if(!A++){M=J;E=N}}else{if(R&&A){if(!--A){if(K){if(K[0]&&M>L){I.push([K[0],P.slice(L,M),L,M])}if(K[1]){I.push([K[1],P.slice(M,E),M,E])}if(K[2]){I.push([K[2],P.slice(E,J),E,J])}if(K[3]){I.push([K[3],P.slice(J,N),J,N])}}else{I.push(P.slice(E,J))}L=N;if(!Q){break}}}else{D.lastIndex=S.lastIndex=0;throw Error("subject data contains unbalanced delimiters")}}if(J===N){N++}}if(Q&&!U&&K&&K[0]&&P.length>L){I.push([K[0],P.slice(L),L,P.length])}D.lastIndex=S.lastIndex=0;return I};
