/*

 This file is part of SyntaxHighlighter.

 SyntaxHighlighter is free software: you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 SyntaxHighlighter is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.

 This file is part of SyntaxHighlighter.

 SyntaxHighlighter is free software: you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 SyntaxHighlighter is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.

 This file is part of SyntaxHighlighter.

 SyntaxHighlighter is free software: you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 SyntaxHighlighter is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
*/
if(!window.SyntaxHighlighter)var SyntaxHighlighter=function(){var f={defaults:{"class-name":"","first-line":1,"pad-line-numbers":true,highlight:null,"smart-tabs":true,"tab-size":4,gutter:true,toolbar:true,collapse:false,"auto-links":true,light:false,"wrap-lines":true,"html-script":false},config:{useScriptTags:true,clipboardSwf:null,toolbarItemWidth:16,toolbarItemHeight:16,bloggerMode:false,stripBrs:false,tagName:"pre",strings:{expandSource:"show source",viewSource:"view source",copyToClipboard:"copy to clipboard",
copyToClipboardConfirmation:"The code is in your clipboard now",print:"print",help:"?",alert:"SyntaxHighlighter\n\n",noBrush:"Can't find brush for: ",brushNotHtmlScript:"Brush wasn't configured for html-script option: ",aboutDialog:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>About SyntaxHighlighter</title></head><body style="font-family:Geneva,Arial,Helvetica,sans-serif;background-color:#fff;color:#000;font-size:1em;text-align:center;"><div style="text-align:center;margin-top:3em;"><div style="font-size:xx-large;">SyntaxHighlighter</div><div style="font-size:.75em;margin-bottom:4em;"><div>version 2.1.364 (October 15 2009)</div><div><a href="http://alexgorbatchev.com" target="_blank" style="color:#0099FF;text-decoration:none;">http://alexgorbatchev.com</a></div><div>If you like this script, please <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2930402" style="color:#0099FF;text-decoration:none;">donate</a> to keep development active!</div></div><div>JavaScript code syntax highlighter.</div><div>Copyright 2004-2009 Alex Gorbatchev.</div></div></body></html>'},
debug:false},vars:{discoveredBrushes:null,spaceWidth:null,printFrame:null,highlighters:{}},brushes:{},regexLib:{multiLineCComments:/\/\*[\s\S]*?\*\//gm,singleLineCComments:/\/\/.*$/gm,singleLinePerlComments:/#.*$/gm,doubleQuotedString:/"([^\\"\n]|\\.)*"/g,singleQuotedString:/'([^\\'\n]|\\.)*'/g,multiLineDoubleQuotedString:/"([^\\"]|\\.)*"/g,multiLineSingleQuotedString:/'([^\\']|\\.)*'/g,xmlComments:/(&lt;|<)!--[\s\S]*?--(&gt;|>)/gm,url:/&lt;\w+:\/\/[\w-.\/?%&=@:;]*&gt;|\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(a){var b=document.createElement("DIV"),d=f.toolbar.items;b.className="toolbar";for(var c in d){var e=d[c];e=new e(a);var g=e.create();a.toolbarCommands[c]=e;if(g!=null){if(typeof g=="string")g=f.toolbar.createButton(g,a.id,c);g.className+="item "+c;b.appendChild(g)}}return b},
createButton:function(a,b,d){var c=document.createElement("a"),e=c.style,g=f.config,h=g.toolbarItemWidth;g=g.toolbarItemHeight;c.href="#"+d;c.title=a;c.highlighterId=b;c.commandName=d;c.innerHTML=a;if(isNaN(h)==false)e.width=h+"px";if(isNaN(g)==false)e.height=g+"px";c.onclick=function(k){try{f.toolbar.executeCommand(this,k||window.event,this.highlighterId,this.commandName)}catch(i){f.utils.alert(i.message)}return false};return c},executeCommand:function(a,b,d,c,e){d=f.vars.highlighters[d];var g;if(d==
null||(g=d.toolbarCommands[c])==null)return null;return g.execute(a,b,e)},items:{expandSource:function(a){this.create=function(){if(a.getParam("collapse")==true)return f.config.strings.expandSource};this.execute=function(b){var d=a.div;b.parentNode.removeChild(b);d.className=d.className.replace("collapsed","")}},viewSource:function(a){this.create=function(){return f.config.strings.viewSource};this.execute=function(){var b=f.utils.fixInputString(a.originalCode).replace(/</g,"&lt;"),d=f.utils.popup("",
"_blank",750,400,"location=0, resizable=1, menubar=0, scrollbars=1");b=f.utils.unindent(b);d.document.write("<pre>"+b+"</pre>");d.document.close()}},copyToClipboard:function(a){var b,d=a.id;this.create=function(){function c(i){var m="";for(var l in i)m+="<param name='"+l+"' value='"+i[l]+"'/>";return m}function e(i){var m="";for(var l in i)m+=" "+l+"='"+i[l]+"'";return m}var g=f.config;if(g.clipboardSwf==null)return null;var h={width:g.toolbarItemWidth,height:g.toolbarItemHeight,id:d+"_clipboard",
type:"application/x-shockwave-flash",title:f.config.strings.copyToClipboard},k={allowScriptAccess:"always",wmode:"transparent",flashVars:"highlighterId="+d,menu:"false"};g=g.clipboardSwf;h=/msie/i.test(navigator.userAgent)?"<object"+e({classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",codebase:"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"})+e(h)+">"+c(k)+c({movie:g})+"</object>":"<embed"+e(h)+e(k)+e({src:g})+"/>";b=document.createElement("div");b.innerHTML=
h;return b};this.execute=function(c,e,g){c=g.command;switch(c){case "get":g=f.utils.unindent(f.utils.fixInputString(a.originalCode).replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&"));if(window.clipboardData)window.clipboardData.setData("text",g);else return f.utils.unindent(g);case "ok":f.utils.alert(f.config.strings.copyToClipboardConfirmation);break;case "error":f.utils.alert(g.message);break}}},printSource:function(a){this.create=function(){return f.config.strings.print};this.execute=
function(){function b(e,g){g=g.getElementsByTagName("link");for(var h=0;h<g.length;h++)g[h].rel.toLowerCase()=="stylesheet"&&/shCore\.css$/.test(g[h].href)&&e.write('<link type="text/css" rel="stylesheet" href="'+g[h].href+'"></link>')}var d=document.createElement("IFRAME"),c=null;f.vars.printFrame!=null&&document.body.removeChild(f.vars.printFrame);f.vars.printFrame=d;d.style.cssText="position:absolute;width:0px;height:0px;left:-500px;top:-500px;";document.body.appendChild(d);c=d.contentWindow.document;
b(c,window.document);c.write('<div class="'+a.div.className.replace("collapsed","")+' printing">'+a.div.innerHTML+"</div>");c.close();d.contentWindow.focus();d.contentWindow.print()}},about:function(){this.create=function(){return f.config.strings.help};this.execute=function(){var a=f.utils.popup("","_blank",500,250,"scrollbars=0"),b=a.document;b.write(f.config.strings.aboutDialog);b.close();a.focus()}}}},utils:{indexOf:function(a,b,d){for(d=d=Math.max(d||0,0);d<a.length;d++)if(a[d]==b)return d;return-1},
guid:function(a){return a+Math.round(Math.random()*1E6).toString()},merge:function(a,b){var d={},c;for(c in a)d[c]=a[c];for(c in b)d[c]=b[c];return d},toBoolean:function(a){switch(a){case "true":return true;case "false":return false}return a},popup:function(a,b,d,c,e){var g=(screen.width-d)/2,h=(screen.height-c)/2;e+=", left="+g+", top="+h+", width="+d+", height="+c;e=e.replace(/^,/,"");a=window.open(a,b,e);a.focus();return a},addEvent:function(a,b,d){if(a.attachEvent){a["e"+b+d]=d;a[b+d]=function(){a["e"+
b+d](window.event)};a.attachEvent("on"+b,a[b+d])}else a.addEventListener(b,d,false)},alert:function(a){alert(f.config.strings.alert+a)},findBrush:function(a,b){var d=f.vars.discoveredBrushes,c=null;if(d==null){d={};for(var e in f.brushes){c=f.brushes[e].aliases;if(c!=null){f.brushes[e].name=e.toLowerCase();for(var g=0;g<c.length;g++)d[c[g]]=e}}f.vars.discoveredBrushes=d}c=f.brushes[d[a]];c==null&&b!=false&&f.utils.alert(f.config.strings.noBrush+a);return c},eachLine:function(a,b){a=a.split("\n");
for(var d=0;d<a.length;d++)a[d]=b(a[d]);return a.join("\n")},trimFirstAndLastLines:function(a){return a.replace(/^[ ]*[\n]+|[\n]*[ ]*$/g,"")},parseParams:function(a){for(var b,d={},c=new XRegExp("^\\[(?<values>(.*?))\\]$"),e=new XRegExp("(?<name>[\\w-]+)\\s*:\\s*(?<value>[\\w-%#]+|\\[.*?\\]|\".*?\"|'.*?')\\s*;?","g");(b=e.exec(a))!=null;){var g=b.value.replace(/^['"]|['"]$/g,"");if(g!=null&&c.test(g)){g=c.exec(g);g=g.values.length>0?g.values.split(/\s*,\s*/):[]}d[b.name]=g}return d},decorate:function(a,
b){if(a==null||a.length==0||a=="\n")return a;a=a.replace(/</g,"&lt;");a=a.replace(/ {2,}/g,function(d){for(var c="",e=0;e<d.length-1;e++)c+="&nbsp;";return c+" "});if(b!=null)a=f.utils.eachLine(a,function(d){if(d.length==0)return"";var c="";d=d.replace(/^(&nbsp;| )+/,function(e){c=e;return""});if(d.length==0)return c;return c+'<code class="'+b+'">'+d+"</code>"});return a},padNumber:function(a,b){for(a=a.toString();a.length<b;)a="0"+a;return a},measureSpace:function(){var a=document.createElement("div"),
b;b=0;var d=document.body;b=f.utils.guid("measureSpace");var c='<div class="',e="</div>",g="</span>";a.innerHTML=c+'syntaxhighlighter">'+c+'lines">'+c+'line">'+c+'content"><span class="block"><span id="'+b+'">&nbsp;'+g+g+e+e+e+e;d.appendChild(a);b=document.getElementById(b);if(/opera/i.test(navigator.userAgent)){b=window.getComputedStyle(b,null);b=parseInt(b.getPropertyValue("width"))}else b=b.offsetWidth;d.removeChild(a);return b},processTabs:function(a,b){for(var d="",c=0;c<b;c++)d+=" ";return a.replace(/\t/g,
d)},processSmartTabs:function(a,b){function d(h,k,i){return h.substr(0,k)+e.substr(0,i)+h.substr(k+1,h.length)}a.split("\n");for(var c="\t",e="",g=0;g<50;g++)e+="                    ";return a=f.utils.eachLine(a,function(h){if(h.indexOf(c)==-1)return h;for(var k=0;(k=h.indexOf(c))!=-1;){var i=b-k%b;h=d(h,k,i)}return h})},fixInputString:function(a){var b=/<br\s*\/?>|&lt;br\s*\/?&gt;/gi;if(f.config.bloggerMode==true)a=a.replace(b,"\n");if(f.config.stripBrs==true)a=a.replace(b,"");return a},trim:function(a){return a.replace(/^\s+|\s+$/g,
"")},unindent:function(a){for(var b=f.utils.fixInputString(a).split("\n"),d=/^\s*/,c=1E3,e=0;e<b.length&&c>0;e++){var g=b[e];if(f.utils.trim(g).length!=0){g=d.exec(g);if(g==null)return a;c=Math.min(g[0].length,c)}}if(c>0)for(e=0;e<b.length;e++)b[e]=b[e].substr(c);return b.join("\n")},matchesSortCallback:function(a,b){if(a.index<b.index)return-1;else if(a.index>b.index)return 1;else if(a.length<b.length)return-1;else if(a.length>b.length)return 1;return 0},getMatches:function(a,b){function d(h,k){return[new f.Match(h[0],
h.index,k.css)]}for(var c=null,e=[],g=b.func?b.func:d;(c=b.regex.exec(a))!=null;)e=e.concat(g(c,b));return e},processUrls:function(a){var b="&lt;",d="&gt;";return a.replace(f.regexLib.url,function(c){var e="",g="";if(c.indexOf(b)==0){g=b;c=c.substring(b.length)}if(c.indexOf(d)==c.length-d.length){c=c.substring(0,c.length-d.length);e=d}return g+'<a href="'+c+'">'+c+"</a>"+e})},getSyntaxHighlighterScriptTags:function(){for(var a=document.getElementsByTagName("script"),b=[],d=0;d<a.length;d++)a[d].type==
"syntaxhighlighter"&&b.push(a[d]);return b},stripCData:function(a){var b="<![CDATA[",d="]]\>",c=f.utils.trim(a),e=false;if(c.indexOf(b)==0){c=c.substring(b.length);e=true}if(c.indexOf(d)==c.length-d.length){c=c.substring(0,c.length-d.length);e=true}return e?c:a}},highlight:function(a,b){function d(n){for(var j=[],o=0;o<n.length;o++)j.push(n[o]);return j}b=b?[b]:d(document.getElementsByTagName(f.config.tagName));var c="innerHTML",e=null,g=f.config;if(g.useScriptTags)b=b.concat(f.utils.getSyntaxHighlighterScriptTags());
if(b.length!==0)for(var h=0;h<b.length;h++){var k=b[h],i=f.utils.parseParams(k.className),m,l;i=f.utils.merge(a,i);m=i.brush;if(m!=null){if(i["html-script"]=="true"||f.defaults["html-script"]==true){e=new f.HtmlScript(m);m="htmlscript"}else if(e=f.utils.findBrush(m)){m=e.name;e=new e}else continue;l=k[c];if(g.useScriptTags)l=f.utils.stripCData(l);i["brush-name"]=m;e.highlight(l,i);i=e.div;if(f.config.debug){i=document.createElement("textarea");i.value=e.div.innerHTML;i.style.width="70em";i.style.height=
"30em"}k.parentNode.replaceChild(i,k)}}},all:function(a){f.utils.addEvent(window,"load",function(){f.highlight(a)})}};f.Match=function(a,b,d){this.value=a;this.index=b;this.length=a.length;this.css=d;this.brushName=null};f.Match.prototype.toString=function(){return this.value};f.HtmlScript=function(a){function b(h,k){for(var i=0;i<h.length;i++)h[i].index+=k}function d(h){for(var k=h.code,i=[],m=e.regexList,l=h.index+h.left.length,n=e.htmlScript,j,o=0;o<m.length;o++){j=f.utils.getMatches(k,m[o]);b(j,
l);i=i.concat(j)}if(n.left!=null&&h.left!=null){j=f.utils.getMatches(h.left,n.left);b(j,h.index);i=i.concat(j)}if(n.right!=null&&h.right!=null){j=f.utils.getMatches(h.right,n.right);b(j,h.index+h[0].lastIndexOf(h.right));i=i.concat(j)}for(h=0;h<i.length;h++)i[h].brushName=c.name;return i}var c=f.utils.findBrush(a),e,g=new f.brushes.Xml;if(c!=null){e=new c;this.xmlBrush=g;e.htmlScript==null?f.utils.alert(f.config.strings.brushNotHtmlScript+a):g.regexList.push({regex:e.htmlScript.code,func:d})}};f.HtmlScript.prototype.highlight=
function(a,b){this.xmlBrush.highlight(a,b);this.div=this.xmlBrush.div};f.Highlighter=function(){};f.Highlighter.prototype={getParam:function(a,b){a=this.params[a];return f.utils.toBoolean(a==null?b:a)},create:function(a){return document.createElement(a)},findMatches:function(a,b){var d=[];if(a!=null)for(var c=0;c<a.length;c++)if(typeof a[c]=="object")d=d.concat(f.utils.getMatches(b,a[c]));return d.sort(f.utils.matchesSortCallback)},removeNestedMatches:function(){for(var a=this.matches,b=0;b<a.length;b++)if(a[b]!==
null)for(var d=a[b],c=d.index+d.length,e=b+1;e<a.length&&a[b]!==null;e++){var g=a[e];if(g!==null)if(g.index>c)break;else if(g.index==d.index&&g.length>d.length)this.matches[b]=null;else if(g.index>=d.index&&g.index<c)this.matches[e]=null}},createDisplayLines:function(a){var b=a.split(/\n/g),d=parseInt(this.getParam("first-line")),c=this.getParam("pad-line-numbers"),e=this.getParam("highlight",[]),g=this.getParam("gutter");a="";if(c==true)c=(d+b.length-1).toString().length;else if(isNaN(c)==true)c=
0;for(var h=0;h<b.length;h++){var k=b[h],i=/^(&nbsp;|\s)+/.exec(k),m="alt"+(h%2==0?1:2),l=f.utils.padNumber(d+h,c),n=f.utils.indexOf(e,(d+h).toString())!=-1,j=null;if(i!=null){j=i[0].toString();k=k.substr(j.length)}k=f.utils.trim(k);if(k.length==0)k="&nbsp;";if(n)m+=" highlighted";a+='<div class="line '+m+'"><table><tr>'+(g?'<td class="number"><code>'+l+"</code></td>":"")+'<td class="content">'+(j!=null?'<code class="spaces">'+j.replace(" ","&nbsp;")+"</code>":"")+k+"</td></tr></table></div>"}return a},
processMatches:function(a,b){function d(l){return(l=l?l.brushName||h:h)?l+" ":""}for(var c=0,e="",g=f.utils.decorate,h=this.getParam("brush-name",""),k=0;k<b.length;k++){var i=b[k],m;if(!(i===null||i.length===0)){m=d(i);e+=g(a.substr(c,i.index-c),m+"plain")+g(i.value,m+i.css);c=i.index+i.length}}e+=g(a.substr(c),d()+"plain");return e},highlight:function(a,b){var d=f.vars;this.params={};this.bar=this.code=this.lines=this.div=null;this.toolbarCommands={};this.id=f.utils.guid("highlighter_");d.highlighters[this.id]=
this;if(a===null)a="";this.params=f.utils.merge(f.defaults,b||{});if(this.getParam("light")==true)this.params.toolbar=this.params.gutter=false;this.div=b=this.create("DIV");this.lines=this.create("DIV");this.lines.className="lines";className="syntaxhighlighter";b.id=this.id;if(this.getParam("collapse"))className+=" collapsed";if(this.getParam("gutter")==false)className+=" nogutter";if(this.getParam("wrap-lines")==false)this.lines.className+=" no-wrap";className+=" "+this.getParam("class-name");className+=
" "+this.getParam("brush-name");b.className=className;this.originalCode=a;this.code=f.utils.trimFirstAndLastLines(a).replace(/\r/g," ");a=this.getParam("tab-size");this.code=this.getParam("smart-tabs")==true?f.utils.processSmartTabs(this.code,a):f.utils.processTabs(this.code,a);this.code=f.utils.unindent(this.code);if(this.getParam("toolbar")){this.bar=this.create("DIV");this.bar.className="bar";this.bar.appendChild(f.toolbar.create(this));b.appendChild(this.bar);var c=this.bar;function e(){c.className=
c.className.replace("show","")}b.onmouseover=function(){e();c.className+=" show"};b.onmouseout=function(){e()}}b.appendChild(this.lines);this.matches=this.findMatches(this.regexList,this.code);this.removeNestedMatches();a=this.processMatches(this.code,this.matches);a=this.createDisplayLines(f.utils.trim(a));if(this.getParam("auto-links"))a=f.utils.processUrls(a);this.lines.innerHTML=a},getKeywords:function(a){a=a.replace(/^\s+|\s+$/g,"").replace(/\s+/g,"|");return"\\b(?:"+a+")\\b"},forHtmlScript:function(a){this.htmlScript=
{left:{regex:a.left,css:"script"},right:{regex:a.right,css:"script"},code:new XRegExp("(?<left>"+a.left.source+")(?<code>.*?)(?<right>"+a.right.source+")","sgi")}}};return f}();
window.XRegExp||function(){var f={exec:RegExp.prototype.exec,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},a={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(e,g,h){for(h=h||0;h<e.length;h++)if(e[h]===g)return h;return-1},d=/()??/.exec("")[1]!==undefined,c={};XRegExp=function(e,g){if(e instanceof RegExp){if(g!==undefined)throw TypeError("can't supply flags when constructing one RegExp from another");return e.addFlags()}g=g||"";var h=g.indexOf("s")>-1,k=g.indexOf("x")>-1,i=false,m=[],l=[],n=a.part,j,o;for(n.lastIndex=0;j=f.exec.call(n,e);)if(j[2])a.quantifier.test(e.slice(n.lastIndex))||l.push("(?:)");else if(j[1]){m.push(j[3]||null);if(j[3])i=
true;l.push("(")}else if(j[4]){o=b(m,j[4]);l.push(o>-1?"\\"+(o+1)+(isNaN(e.charAt(n.lastIndex))?"":"(?:)"):j[0])}else if(j[5])l.push(c.unicode?c.unicode.get(j[5],j[0].charAt(1)==="P"):j[0]);else if(j[6])if(e.charAt(n.lastIndex)==="]"){l.push(j[6]==="["?"(?!)":"[\\S\\s]");n.lastIndex++}else{o=XRegExp.matchRecursive("&&"+e.slice(j.index),a.classLeft,a.classRight,"",{escapeChar:"\\"})[0];l.push(j[6]+o+"]");n.lastIndex+=o.length+1}else if(j[7])if(h&&j[7]===".")l.push("[\\S\\s]");else if(k&&a.extended.test(j[7])){j=
f.exec.call(a.extended,e.slice(n.lastIndex-1))[0].length;a.quantifier.test(e.slice(n.lastIndex-1+j))||l.push("(?:)");n.lastIndex+=j-1}else l.push(j[7]);else l.push(j[0]);g=RegExp(l.join(""),f.replace.call(g,/[sx]+/g,""));g._x={source:e,captureNames:i?m:null};return g};XRegExp.addPlugin=function(e,g){c[e]=g};RegExp.prototype.exec=function(e){var g=f.exec.call(this,e),h;if(g){if(d&&g.length>1){e=new RegExp("^"+this.source+"$(?!\\s)",this.getNativeFlags());f.replace.call(g[0],e,function(){for(h=1;h<
arguments.length-2;h++)if(arguments[h]===undefined)g[h]=undefined})}if(this._x&&this._x.captureNames)for(h=1;h<g.length;h++)if(e=this._x.captureNames[h-1])g[e]=g[h];this.global&&this.lastIndex>g.index+g[0].length&&this.lastIndex--}return g}}();RegExp.prototype.getNativeFlags=function(){return(this.global?"g":"")+(this.ignoreCase?"i":"")+(this.multiline?"m":"")+(this.extended?"x":"")+(this.sticky?"y":"")};
RegExp.prototype.addFlags=function(f){f=new XRegExp(this.source,(f||"")+this.getNativeFlags());if(this._x)f._x={source:this._x.source,captureNames:this._x.captureNames?this._x.captureNames.slice(0):null};return f};RegExp.prototype.call=function(f,a){return this.exec(a)};RegExp.prototype.apply=function(f,a){return this.exec(a[0])};XRegExp.cache=function(f,a){var b="/"+f+"/"+(a||"");return XRegExp.cache[b]||(XRegExp.cache[b]=new XRegExp(f,a))};
XRegExp.escape=function(f){return f.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,"\\$&")};
XRegExp.matchRecursive=function(f,a,b,d,c){c=c||{};var e=c.escapeChar;c=c.valueNames;d=d||"";var g=d.indexOf("g")>-1,h=d.indexOf("i")>-1,k=d.indexOf("m")>-1,i=d.indexOf("y")>-1;d=d.replace(/y/g,"");a=a instanceof RegExp?a.global?a:a.addFlags("g"):new XRegExp(a,"g"+d);b=b instanceof RegExp?b.global?b:b.addFlags("g"):new XRegExp(b,"g"+d);d=[];var m=0,l=0,n=0,j=0,o,p,q;if(e){if(e.length>1)throw SyntaxError("can't supply more than one escape character");if(k)throw TypeError("can't supply escape character when using the multiline flag");
q=XRegExp.escape(e);q=new RegExp("^(?:"+q+"[\\S\\s]|(?:(?!"+a.source+"|"+b.source+")[^"+q+"])+)+",h?"i":"")}for(;1;){a.lastIndex=b.lastIndex=n+(e?(q.exec(f.slice(n))||[""])[0].length:0);h=a.exec(f);k=b.exec(f);if(h&&k)if(h.index<=k.index)k=null;else h=null;if(h||k){l=(h||k).index;n=(h?a:b).lastIndex}else if(!m)break;if(i&&!m&&l>j)break;if(h){if(!m++){o=l;p=n}}else if(k&&m){if(!--m){if(c){c[0]&&o>j&&d.push([c[0],f.slice(j,o),j,o]);c[1]&&d.push([c[1],f.slice(o,p),o,p]);c[2]&&d.push([c[2],f.slice(p,
l),p,l]);c[3]&&d.push([c[3],f.slice(l,n),l,n])}else d.push(f.slice(p,l));j=n;if(!g)break}}else{a.lastIndex=b.lastIndex=0;throw Error("subject data contains unbalanced delimiters");}l===n&&n++}g&&!i&&c&&c[0]&&f.length>j&&d.push([c[0],f.slice(j),j,f.length]);a.lastIndex=b.lastIndex=0;return d};
SyntaxHighlighter.brushes.CSharp=function(){function f(b){var d=b[0].indexOf("///")==0?"color1":"comments";return[new SyntaxHighlighter.Match(b[0],b.index,d)]}var a="abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach get goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed set short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void while";this.regexList=
[{regex:SyntaxHighlighter.regexLib.singleLineCComments,func:f},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:/@"(?:[^"]|"")*"/g,css:"string"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/^\s*#.*/gm,css:"preprocessor"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"},{regex:/\bpartial(?=\s+(?:class|interface|struct)\b)/g,css:"keyword"},{regex:/\byield(?=\s+(?:return|break)\b)/g,
css:"keyword"}];this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags)};SyntaxHighlighter.brushes.CSharp.prototype=new SyntaxHighlighter.Highlighter;SyntaxHighlighter.brushes.CSharp.aliases=["c#","c-sharp","csharp"];
SyntaxHighlighter.brushes.Xml=function(){function f(a){var b=SyntaxHighlighter.Match,d=a[0],c=(new XRegExp("(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)","xg")).exec(d),e=[];if(a.attributes!=null)for(var g,h=new XRegExp("(?<name> [\\w:\\-\\.]+)\\s*=\\s*(?<value> \".*?\"|'.*?'|\\w+)","xg");(g=h.exec(d))!=null;){e.push(new b(g.name,a.index+g.index,"color1"));e.push(new b(g.value,a.index+g.index+g[0].indexOf(g.value),"string"))}c!=null&&e.push(new b(c.name,a.index+c[0].indexOf(c.name),"keyword"));return e}
this.regexList=[{regex:new XRegExp("(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)","gm"),css:"color2"},{regex:SyntaxHighlighter.regexLib.xmlComments,css:"comments"},{regex:new XRegExp("(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)","sg"),func:f}]};SyntaxHighlighter.brushes.Xml.prototype=new SyntaxHighlighter.Highlighter;SyntaxHighlighter.brushes.Xml.aliases=["xml","xhtml","xslt","html"];