(function(){var G="";var D=(function(){return this;})();var C=function(H,J,I){if(typeof H!=="string"){if(C.original){C.original.apply(window,arguments);}else{console.error("dropping module because define wasn't a string.");console.trace();}return ;}if(arguments.length==2){I=J;}if(!C.modules){C.modules={};}C.modules[H]=I;};var A=function(O,J,N){if(Object.prototype.toString.call(J)==="[object Array]"){var M=[];for(var I=0,H=J.length;I<H;++I){var L=F(O,J[I]);if(!L&&A.original){return A.original.apply(window,arguments);}M.push(L);}if(N){N.apply(null,M);}}else{if(typeof J==="string"){var K=F(O,J);if(!K&&A.original){return A.original.apply(window,arguments);}if(N){N();}return K;}else{if(A.original){return A.original.apply(window,arguments);}}}};var E=function(L,H){if(H.indexOf("!")!==-1){var K=H.split("!");return E(L,K[0])+"!"+E(L,K[1]);}if(H.charAt(0)=="."){var J=L.split("/").slice(0,-1).join("/");H=J+"/"+H;while(H.indexOf(".")!==-1&&I!=H){var I=H;H=H.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"");}}return H;};var F=function(N,I){I=E(N,I);var K=C.modules[I];if(!K){return null;}if(typeof K==="function"){var H={};var J={id:I,uri:"",exports:H,packaged:true};var M=function(O,P){return A(I,O,P);};var L=K(M,H,J);H=L||J.exports;C.modules[I]=H;return H;}return K;};function B(J){if(typeof requirejs!=="undefined"){var K=D.define;D.define=function(N,L,M){if(typeof M!=="function"){return K.apply(this,arguments);}return K(N,L,function(P,O,Q){if(L[2]=="module"){Q.packaged=true;}return M.apply(this,arguments);});};D.define.packaged=true;return ;}var I=function(L,M){return A("",L,M);};I.packaged=true;var H=D;if(J){if(!D[J]){D[J]={};}H=D[J];}if(H.define){C.original=H.define;}H.define=C;if(H.require){A.original=H.require;}H.require=I;}B(G);})();define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/multi_select","ace/worker/worker_client","ace/keyboard/hash_handler","ace/keyboard/state_handler","ace/placeholder","ace/config","ace/theme/textmate"],function(D,F,C){D("./lib/fixoldbrowsers");var G=D("./lib/dom");var J=D("./lib/event");var H=D("./editor").Editor;var A=D("./edit_session").EditSession;var B=D("./undomanager").UndoManager;var E=D("./virtual_renderer").VirtualRenderer;var I=D("./multi_select").MultiSelect;D("./worker/worker_client");D("./keyboard/hash_handler");D("./keyboard/state_handler");D("./placeholder");F.config=D("./config");F.edit=function(M){if(typeof (M)=="string"){M=document.getElementById(M);}if(M.env&&M.env.editor instanceof H){return M.env.editor;}var N=new A(G.getInnerText(M));N.setUndoManager(new B());M.innerHTML="";var L=new H(new E(M,D("./theme/textmate")));new I(L);L.setSession(N);var K={};K.document=N;K.editor=L;L.resize();J.addListener(window,"resize",function(){L.resize();});M.env=K;L.env=K;return L;};});
/*
    Copyright (c) 2009, 280 North Inc. http://280north.com/
    MIT License. http://github.com/280north/narwhal/blob/master/README.md
*/
define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(B,A,C){B("./regexp");B("./es5-shim");});define("ace/lib/regexp",["require","exports","module"],function(B,A,C){var H={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},F=H.exec.call(/()??/,"")[1]===undefined,E=function(){var I=/^/g;H.test.call(I,"");return !I.lastIndex;}();if(E&&F){return ;}RegExp.prototype.exec=function(M){var K=H.exec.apply(this,arguments),J,I;if(typeof (M)=="string"&&K){if(!F&&K.length>1&&D(K,"")>-1){I=RegExp(this.source,H.replace.call(G(this),"g",""));H.replace.call(M.slice(K.index),I,function(){for(var N=1;N<arguments.length-2;N++){if(arguments[N]===undefined){K[N]=undefined;}}});}if(this._xregexp&&this._xregexp.captureNames){for(var L=1;L<K.length;L++){J=this._xregexp.captureNames[L-1];if(J){K[J]=K[L];}}}if(!E&&this.global&&!K[0].length&&(this.lastIndex>K.index)){this.lastIndex--;}}return K;};if(!E){RegExp.prototype.test=function(J){var I=H.exec.call(this,J);if(I&&this.global&&!I[0].length&&(this.lastIndex>I.index)){this.lastIndex--;}return !!I;};}function G(I){return(I.global?"g":"")+(I.ignoreCase?"i":"")+(I.multiline?"m":"")+(I.extended?"x":"")+(I.sticky?"y":"");}function D(L,J,K){if(Array.prototype.indexOf){return L.indexOf(J,K);}for(var I=K||0;I<L.length;I++){if(L[I]===J){return I;}}return -1;}});
/*
    Copyright (c) 2009, 280 North Inc. http://280north.com/
    MIT License. http://github.com/280north/narwhal/blob/master/README.md
*/
define("ace/lib/es5-shim",["require","exports","module"],function(G,AD,E){if(!Function.prototype.bind){Function.prototype.bind=function I(AL){var AM=this;if(typeof AM!="function"){throw new TypeError();}var AJ=U.call(arguments,1);var AK=function(){if(this instanceof AK){var AP=function(){};AP.prototype=AM.prototype;var AO=new AP;var AN=AM.apply(AO,AJ.concat(U.call(arguments)));if(AN!==null&&Object(AN)===AN){return AN;}return AO;}else{return AM.apply(AL,AJ.concat(U.call(arguments)));}};return AK;};}var C=Function.prototype.call;var k=Array.prototype;var Z=Object.prototype;var U=k.slice;var H=C.bind(Z.toString);var t=C.bind(Z.hasOwnProperty);var AB;var AH;var AA;var AF;var Q;if((Q=t(Z,"__defineGetter__"))){AB=C.bind(Z.__defineGetter__);AH=C.bind(Z.__defineSetter__);AA=C.bind(Z.__lookupGetter__);AF=C.bind(Z.__lookupSetter__);}if(!Array.isArray){Array.isArray=function c(AJ){return H(AJ)=="[object Array]";};}if(!Array.prototype.forEach){Array.prototype.forEach=function D(AJ){var AK=l(this),AM=arguments[1],AL=0,AN=AK.length>>>0;if(H(AJ)!="[object Function]"){throw new TypeError();}while(AL<AN){if(AL in AK){AJ.call(AM,AK[AL],AL,AK);}AL++;}};}if(!Array.prototype.map){Array.prototype.map=function j(AK){var AL=l(this),AO=AL.length>>>0,AJ=Array(AO),AN=arguments[1];if(H(AK)!="[object Function]"){throw new TypeError();}for(var AM=0;AM<AO;AM++){if(AM in AL){AJ[AM]=AK.call(AN,AL[AM],AM,AL);}}return AJ;};}if(!Array.prototype.filter){Array.prototype.filter=function q(AK){var AL=l(this),AO=AL.length>>>0,AJ=[],AN=arguments[1];if(H(AK)!="[object Function]"){throw new TypeError();}for(var AM=0;AM<AO;AM++){if(AM in AL&&AK.call(AN,AL[AM],AM,AL)){AJ.push(AL[AM]);}}return AJ;};}if(!Array.prototype.every){Array.prototype.every=function o(AJ){var AK=l(this),AN=AK.length>>>0,AM=arguments[1];if(H(AJ)!="[object Function]"){throw new TypeError();}for(var AL=0;AL<AN;AL++){if(AL in AK&&!AJ.call(AM,AK[AL],AL,AK)){return false;}}return true;};}if(!Array.prototype.some){Array.prototype.some=function x(AJ){var AK=l(this),AN=AK.length>>>0,AM=arguments[1];if(H(AJ)!="[object Function]"){throw new TypeError();}for(var AL=0;AL<AN;AL++){if(AL in AK&&AJ.call(AM,AK[AL],AL,AK)){return true;}}return false;};}if(!Array.prototype.reduce){Array.prototype.reduce=function R(AK){var AL=l(this),AN=AL.length>>>0;if(H(AK)!="[object Function]"){throw new TypeError();}if(!AN&&arguments.length==1){throw new TypeError();}var AM=0;var AJ;if(arguments.length>=2){AJ=arguments[1];}else{do{if(AM in AL){AJ=AL[AM++];break;}if(++AM>=AN){throw new TypeError();}}while(true);}for(;AM<AN;AM++){if(AM in AL){AJ=AK.call(void 0,AJ,AL[AM],AM,AL);}}return AJ;};}if(!Array.prototype.reduceRight){Array.prototype.reduceRight=function b(AK){var AL=l(this),AN=AL.length>>>0;if(H(AK)!="[object Function]"){throw new TypeError();}if(!AN&&arguments.length==1){throw new TypeError();}var AJ,AM=AN-1;if(arguments.length>=2){AJ=arguments[1];}else{do{if(AM in AL){AJ=AL[AM--];break;}if(--AM<0){throw new TypeError();}}while(true);}do{if(AM in this){AJ=AK.call(void 0,AJ,AL[AM],AM,AL);}}while(AM--);return AJ;};}if(!Array.prototype.indexOf){Array.prototype.indexOf=function W(AK){var AJ=l(this),AM=AJ.length>>>0;if(!AM){return -1;}var AL=0;if(arguments.length>1){AL=u(arguments[1]);}AL=AL>=0?AL:Math.max(0,AM+AL);for(;AL<AM;AL++){if(AL in AJ&&AJ[AL]===AK){return AL;}}return -1;};}if(!Array.prototype.lastIndexOf){Array.prototype.lastIndexOf=function s(AK){var AJ=l(this),AM=AJ.length>>>0;if(!AM){return -1;}var AL=AM-1;if(arguments.length>1){AL=Math.min(AL,u(arguments[1]));}AL=AL>=0?AL:AM-Math.abs(AL);for(;AL>=0;AL--){if(AL in AJ&&AK===AJ[AL]){return AL;}}return -1;};}if(!Object.getPrototypeOf){Object.getPrototypeOf=function AE(AJ){return AJ.__proto__||(AJ.constructor?AJ.constructor.prototype:Z);};}if(!Object.getOwnPropertyDescriptor){var B="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function a(AL,AM){if((typeof AL!="object"&&typeof AL!="function")||AL===null){throw new TypeError(B+AL);}if(!t(AL,AM)){return ;}var AN,AJ,AO;AN={enumerable:true,configurable:true};if(Q){var AK=AL.__proto__;AL.__proto__=Z;var AJ=AA(AL,AM);var AO=AF(AL,AM);AL.__proto__=AK;if(AJ||AO){if(AJ){AN.get=AJ;}if(AO){AN.set=AO;}return AN;}}AN.value=AL[AM];return AN;};}if(!Object.getOwnPropertyNames){Object.getOwnPropertyNames=function r(AJ){return Object.keys(AJ);};}if(!Object.create){Object.create=function K(AL,AM){var AK;if(AL===null){AK={__proto__:null};}else{if(typeof AL!="object"){throw new TypeError("typeof prototype["+(typeof AL)+"] != 'object'");}var AJ=function(){};AJ.prototype=AL;AK=new AJ();AK.__proto__=AL;}if(AM!==void 0){Object.defineProperties(AK,AM);}return AK;};}function e(AJ){try{Object.defineProperty(AJ,"sentinel",{});return"sentinel" in AJ;}catch(AK){}}if(Object.defineProperty){var J=e({});var g=typeof document=="undefined"||e(document.createElement("div"));if(!J||!g){var d=Object.defineProperty;}}if(!Object.defineProperty||d){var F="Property description must be an object: ";var v="Object.defineProperty called on non-object: ";var P="getters & setters can not be defined on this javascript engine";Object.defineProperty=function y(AK,AM,AN){if((typeof AK!="object"&&typeof AK!="function")||AK===null){throw new TypeError(v+AK);}if((typeof AN!="object"&&typeof AN!="function")||AN===null){throw new TypeError(F+AN);}if(d){try{return d.call(Object,AK,AM,AN);}catch(AL){}}if(t(AN,"value")){if(Q&&(AA(AK,AM)||AF(AK,AM))){var AJ=AK.__proto__;AK.__proto__=Z;delete AK[AM];AK[AM]=AN.value;AK.__proto__=AJ;}else{AK[AM]=AN.value;}}else{if(!Q){throw new TypeError(P);}if(t(AN,"get")){AB(AK,AM,AN.get);}if(t(AN,"set")){AH(AK,AM,AN.set);}}return AK;};}if(!Object.defineProperties){Object.defineProperties=function m(AJ,AK){for(var AL in AK){if(t(AK,AL)){Object.defineProperty(AJ,AL,AK[AL]);}}return AJ;};}if(!Object.seal){Object.seal=function w(AJ){return AJ;};}if(!Object.freeze){Object.freeze=function T(AJ){return AJ;};}try{Object.freeze(function(){});}catch(M){Object.freeze=(function T(AK){return function AJ(AL){if(typeof AL=="function"){return AL;}else{return AK(AL);}};})(Object.freeze);}if(!Object.preventExtensions){Object.preventExtensions=function n(AJ){return AJ;};}if(!Object.isSealed){Object.isSealed=function AI(AJ){return false;};}if(!Object.isFrozen){Object.isFrozen=function z(AJ){return false;};}if(!Object.isExtensible){Object.isExtensible=function S(AK){if(Object(AK)===AK){throw new TypeError();}var AJ="";while(t(AK,AJ)){AJ+="?";}AK[AJ]=true;var AL=t(AK,AJ);delete AK[AJ];return AL;};}if(!Object.keys){var O=true,V=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],L=V.length;for(var X in {toString:null}){O=false;}Object.keys=function i(AL){if((typeof AL!="object"&&typeof AL!="function")||AL===null){throw new TypeError("Object.keys called on a non-object");}var AO=[];for(var AK in AL){if(t(AL,AK)){AO.push(AK);}}if(O){for(var AM=0,AN=L;AM<AN;AM++){var AJ=V[AM];if(t(AL,AJ)){AO.push(AJ);}}}return AO;};}if(!Date.prototype.toISOString||(new Date(-62198755200000).toISOString().indexOf("-000001")===-1)){Date.prototype.toISOString=function N(){var AJ,AL,AM,AK;if(!isFinite(this)){throw new RangeError;}AJ=[this.getUTCMonth()+1,this.getUTCDate(),this.getUTCHours(),this.getUTCMinutes(),this.getUTCSeconds()];AK=this.getUTCFullYear();AK=(AK<0?"-":(AK>9999?"+":""))+("00000"+Math.abs(AK)).slice(0<=AK&&AK<=9999?-4:-6);AL=AJ.length;while(AL--){AM=AJ[AL];if(AM<10){AJ[AL]="0"+AM;}}return AK+"-"+AJ.slice(0,2).join("-")+"T"+AJ.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z";};}if(!Date.now){Date.now=function AC(){return new Date().getTime();};}if(!Date.prototype.toJSON){Date.prototype.toJSON=function p(AJ){if(typeof this.toISOString!="function"){throw new TypeError();}return this.toISOString();};}if(Date.parse("+275760-09-13T00:00:00.000Z")!==8640000000000000){Date=(function(AL){var AJ=function AJ(AQ,AV,AO,AU,AT,AW,AP){var AR=arguments.length;if(this instanceof AL){var AS=AR==1&&String(AQ)===AQ?new AL(AJ.parse(AQ)):AR>=7?new AL(AQ,AV,AO,AU,AT,AW,AP):AR>=6?new AL(AQ,AV,AO,AU,AT,AW):AR>=5?new AL(AQ,AV,AO,AU,AT):AR>=4?new AL(AQ,AV,AO,AU):AR>=3?new AL(AQ,AV,AO):AR>=2?new AL(AQ,AV):AR>=1?new AL(AQ):new AL();AS.constructor=AJ;return AS;}return AL.apply(this,arguments);};var AM=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var AK in AL){AJ[AK]=AL[AK];}AJ.now=AL.now;AJ.UTC=AL.UTC;AJ.prototype=AL.prototype;AJ.prototype.constructor=AJ;AJ.parse=function AN(AR){var AQ=AM.exec(AR);if(AQ){AQ.shift();for(var AS=1;AS<7;AS++){AQ[AS]=+(AQ[AS]||(AS<3?1:0));if(AS==1){AQ[AS]--;}}var AP=+AQ.pop(),AV=+AQ.pop(),AO=AQ.pop();var AU=0;if(AO){if(AV>23||AP>59){return NaN;}AU=(AV*60+AP)*60000*(AO=="+"?-1:1);}var AT=+AQ[0];if(0<=AT&&AT<=99){AQ[0]=AT+400;return AL.UTC.apply(this,AQ)+AU-12622780800000;}return AL.UTC.apply(this,AQ)+AU;}return AL.parse.apply(this,arguments);};return AJ;})(Date);}var AG="\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";if(!String.prototype.trim||AG.trim()){AG="["+AG+"]";var f=new RegExp("^"+AG+AG+"*"),Y=new RegExp(AG+AG+"*$");String.prototype.trim=function A(){return String(this).replace(f,"").replace(Y,"");};}var u=function(AJ){AJ=+AJ;if(AJ!==AJ){AJ=0;}else{if(AJ!==0&&AJ!==(1/0)&&AJ!==-(1/0)){AJ=(AJ>0||-1)*Math.floor(Math.abs(AJ));}}return AJ;};var h="a"[0]!="a",l=function(AJ){if(AJ==null){throw new TypeError();}if(h&&typeof AJ=="string"&&AJ){return AJ.split("");}return Object(AJ);};});define("ace/lib/dom",["require","exports","module"],function(C,A,D){var B="http://www.w3.org/1999/xhtml";A.createElement=function(F,G){return document.createElementNS?document.createElementNS(G||B,F):document.createElement(F);};A.setText=function(F,G){if(F.innerText!==undefined){F.innerText=G;}if(F.textContent!==undefined){F.textContent=G;}};A.hasCssClass=function(H,F){var G=H.className.split(/\s+/g);return G.indexOf(F)!==-1;};A.addCssClass=function(G,F){if(!A.hasCssClass(G,F)){G.className+=" "+F;}};A.removeCssClass=function(I,G){var H=I.className.split(/\s+/g);while(true){var F=H.indexOf(G);if(F==-1){break;}H.splice(F,1);}I.className=H.join(" ");};A.toggleCssClass=function(I,G){var H=I.className.split(/\s+/g),J=true;while(true){var F=H.indexOf(G);if(F==-1){break;}J=false;H.splice(F,1);}if(J){H.push(G);}I.className=H.join(" ");return J;};A.setCssClass=function(H,G,F){if(F){A.addCssClass(H,G);}else{A.removeCssClass(H,G);}};A.hasCssString=function(I,H){var F=0,G;H=H||document;if(H.createStyleSheet&&(G=H.styleSheets)){while(F<G.length){if(G[F++].owningElement.id===I){return true;}}}else{if((G=H.getElementsByTagName("style"))){while(F<G.length){if(G[F++].id===I){return true;}}}}return false;};A.importCssString=function E(H,J,I){I=I||document;if(J&&A.hasCssString(J,I)){return null;}var G;if(I.createStyleSheet){G=I.createStyleSheet();G.cssText=H;if(J){G.owningElement.id=J;}}else{G=I.createElementNS?I.createElementNS(B,"style"):I.createElement("style");G.appendChild(I.createTextNode(H));if(J){G.id=J;}var F=I.getElementsByTagName("head")[0]||I.documentElement;F.appendChild(G);}};A.importCssStylsheet=function(H,I){if(I.createStyleSheet){I.createStyleSheet(H);}else{var G=A.createElement("link");G.rel="stylesheet";G.href=H;var F=I.getElementsByTagName("head")[0]||I.documentElement;F.appendChild(G);}};A.getInnerWidth=function(F){return(parseInt(A.computedStyle(F,"paddingLeft"),10)+parseInt(A.computedStyle(F,"paddingRight"),10)+F.clientWidth);};A.getInnerHeight=function(F){return(parseInt(A.computedStyle(F,"paddingTop"),10)+parseInt(A.computedStyle(F,"paddingBottom"),10)+F.clientHeight);};if(window.pageYOffset!==undefined){A.getPageScrollTop=function(){return window.pageYOffset;};A.getPageScrollLeft=function(){return window.pageXOffset;};}else{A.getPageScrollTop=function(){return document.body.scrollTop;};A.getPageScrollLeft=function(){return document.body.scrollLeft;};}if(window.getComputedStyle){A.computedStyle=function(F,G){if(G){return(window.getComputedStyle(F,"")||{})[G]||"";}return window.getComputedStyle(F,"")||{};};}else{A.computedStyle=function(F,G){if(G){return F.currentStyle[G];}return F.currentStyle;};}A.scrollbarWidth=function(G){var H=A.createElement("p");H.style.width="100%";H.style.minWidth="0px";H.style.height="200px";var J=A.createElement("div");var K=J.style;K.position="absolute";K.left="-10000px";K.overflow="hidden";K.width="200px";K.minWidth="0px";K.height="150px";J.appendChild(H);var F=G.body||G.documentElement;F.appendChild(J);var I=H.offsetWidth;K.overflow="scroll";var L=H.offsetWidth;if(I==L){L=J.clientWidth;}F.removeChild(J);return I-L;};A.setInnerHtml=function(H,F){var G=H.cloneNode(false);G.innerHTML=F;H.parentNode.replaceChild(G,H);return G;};A.setInnerText=function(G,H){var F=G.ownerDocument;if(F.body&&"textContent" in F.body){G.textContent=H;}else{G.innerText=H;}};A.getInnerText=function(G){var F=G.ownerDocument;if(F.body&&"textContent" in F.body){return G.textContent;}else{return G.innerText||G.textContent||"";}};A.getParentWindow=function(F){return F.defaultView||F.parentWindow;};});define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent","ace/lib/dom"],function(C,B,D){var E=C("./keys");var A=C("./useragent");var H=C("./dom");B.addListener=function(J,I,L){if(J.addEventListener){return J.addEventListener(I,L,false);}if(J.attachEvent){var K=function(){L(window.event);};L._wrapper=K;J.attachEvent("on"+I,K);}};B.removeListener=function(J,I,K){if(J.removeEventListener){return J.removeEventListener(I,K,false);}if(J.detachEvent){J.detachEvent("on"+I,K._wrapper||K);}};B.stopEvent=function(I){B.stopPropagation(I);B.preventDefault(I);return false;};B.stopPropagation=function(I){if(I.stopPropagation){I.stopPropagation();}else{I.cancelBubble=true;}};B.preventDefault=function(I){if(I.preventDefault){I.preventDefault();}else{I.returnValue=false;}};B.getButton=function(I){if(I.type=="dblclick"){return 0;}if(I.type=="contextmenu"||(I.ctrlKey&&A.isMac)){return 2;}if(I.preventDefault){return I.button;}else{return{1:0,2:2,4:1}[I.button];}};if(document.documentElement.setCapture){B.capture=function(L,K,J){function N(O){K(O);return B.stopPropagation(O);}var M=false;function I(O){K(O);if(!M){M=true;J(O);}B.removeListener(L,"mousemove",K);B.removeListener(L,"mouseup",I);B.removeListener(L,"losecapture",I);L.releaseCapture();}B.addListener(L,"mousemove",K);B.addListener(L,"mouseup",I);B.addListener(L,"losecapture",I);L.setCapture();};}else{B.capture=function(L,K,J){function M(N){K(N);N.stopPropagation();}function I(N){K&&K(N);J&&J(N);document.removeEventListener("mousemove",M,true);document.removeEventListener("mouseup",I,true);N.stopPropagation();}document.addEventListener("mousemove",M,true);document.addEventListener("mouseup",I,true);};}B.addMouseWheelListener=function(J,L){var I=8;var K=function(M){if(M.wheelDelta!==undefined){if(M.wheelDeltaX!==undefined){M.wheelX=-M.wheelDeltaX/I;M.wheelY=-M.wheelDeltaY/I;}else{M.wheelX=0;M.wheelY=-M.wheelDelta/I;}}else{if(M.axis&&M.axis==M.HORIZONTAL_AXIS){M.wheelX=(M.detail||0)*5;M.wheelY=0;}else{M.wheelX=0;M.wheelY=(M.detail||0)*5;}}L(M);};B.addListener(J,"DOMMouseScroll",K);B.addListener(J,"mousewheel",K);};B.addMultiMouseDownListener=function(L,I,N,Q){var R=0;var P,O,J;var K={2:"dblclick",3:"tripleclick",4:"quadclick"};var M=function(T){if(B.getButton(T)!=0){R=0;}else{var S=Math.abs(T.clientX-P)>5||Math.abs(T.clientY-O)>5;if(!J||S){R=0;}R+=1;if(J){clearTimeout(J);}J=setTimeout(function(){J=null;},I[R-1]||600);}if(R==1){P=T.clientX;O=T.clientY;}N[Q]("mousedown",T);if(R>4){R=0;}else{if(R>1){return N[Q](K[R],T);}}};B.addListener(L,"mousedown",M);A.isOldIE&&B.addListener(L,"dblclick",M);};function G(L,K,J){var I=0;if((A.isOpera&&!("KeyboardEvent" in window))&&A.isMac){I=0|(K.metaKey?1:0)|(K.altKey?2:0)|(K.shiftKey?4:0)|(K.ctrlKey?8:0);}else{I=0|(K.ctrlKey?1:0)|(K.altKey?2:0)|(K.shiftKey?4:0)|(K.metaKey?8:0);}if(J in E.MODIFIER_KEYS){switch(E.MODIFIER_KEYS[J]){case"Alt":I=2;break;case"Shift":I=4;break;case"Ctrl":I=1;break;default:I=8;break;}J=0;}if(I&8&&(J==91||J==93)){J=0;}if(!I&&!(J in E.FUNCTION_KEYS)&&!(J in E.PRINTABLE_KEYS)){return false;}return L(K,I,J);}B.addCommandKeyListener=function(J,M){var I=B.addListener;if(A.isOldGecko||(A.isOpera&&!("KeyboardEvent" in window))){var L=null;I(J,"keydown",function(N){L=N.keyCode;});I(J,"keypress",function(N){return G(M,N,L);});}else{var K=null;I(J,"keydown",function(N){K=N.keyIdentifier||N.keyCode;return G(M,N,N.keyCode);});}};if(window.postMessage){var F=1;B.nextTick=function(L,K){K=K||window;var I="zero-timeout-message-"+F;B.addListener(K,"message",function J(M){if(M.data==I){B.stopPropagation(M);B.removeListener(K,"message",J);L();}});K.postMessage(I,"*");};}else{B.nextTick=function(J,I){I=I||window;window.setTimeout(J,0);};}});define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(C,A,D){var E=C("./oop");var B=(function(){var G={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}};for(var H in G.FUNCTION_KEYS){var F=G.FUNCTION_KEYS[H].toUpperCase();G[F]=parseInt(H,10);}E.mixin(G,G.MODIFIER_KEYS);E.mixin(G,G.PRINTABLE_KEYS);E.mixin(G,G.FUNCTION_KEYS);return G;})();E.mixin(A,B);A.keyCodeToString=function(F){return(B[F]||String.fromCharCode(F)).toLowerCase();};});define("ace/lib/oop",["require","exports","module"],function(B,A,C){A.inherits=(function(){var D=function(){};return function(F,E){D.prototype=E.prototype;F.super_=E.prototype;F.prototype=new D();F.prototype.constructor=F;};}());A.mixin=function(F,D){for(var E in D){F[E]=D[E];}};A.implement=function(E,D){A.mixin(E,D);};});define("ace/lib/useragent",["require","exports","module"],function(B,A,D){var E=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase();var C=navigator.userAgent;A.isWin=(E=="win");A.isMac=(E=="mac");A.isLinux=(E=="linux");A.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]);A.isOldIE=A.isIE&&A.isIE<9;A.isGecko=A.isMozilla=window.controllers&&window.navigator.product==="Gecko";A.isOldGecko=A.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4;A.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]";A.isWebKit=parseFloat(C.split("WebKit/")[1])||undefined;A.isChrome=parseFloat(C.split(" Chrome/")[1])||undefined;A.isAIR=C.indexOf("AdobeAIR")>=0;A.isIPad=C.indexOf("iPad")>=0;A.isTouchPad=C.indexOf("TouchPad")>=0;A.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"};A.getOS=function(){if(A.isMac){return A.OS.MAC;}else{if(A.isLinux){return A.OS.LINUX;}else{return A.OS.WINDOWS;}}};});define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(G,J,C){G("./lib/fixoldbrowsers");var O=G("./lib/oop");var B=G("./lib/lang");var D=G("./lib/useragent");var L=G("./keyboard/textinput").TextInput;var I=G("./mouse/mouse_handler").MouseHandler;var N=G("./mouse/fold_handler").FoldHandler;var H=G("./keyboard/keybinding").KeyBinding;var A=G("./edit_session").EditSession;var F=G("./search").Search;var E=G("./range").Range;var Q=G("./lib/event_emitter").EventEmitter;var P=G("./commands/command_manager").CommandManager;var K=G("./commands/default_commands").commands;var M=function(S,T){var R=S.getContainerElement();this.container=R;this.renderer=S;this.commands=new P(D.isMac?"mac":"win",K);this.textInput=new L(S.getTextAreaContainer(),this);this.renderer.textarea=this.textInput.getElement();this.keyBinding=new H(this);if(D.isIPad){}else{this.$mouseHandler=new I(this);new N(this);}this.$blockScrolling=0;this.$search=new F().set({wrap:true});this.setSession(T||new A(""));};(function(){O.implement(this,Q);this.setKeyboardHandler=function(R){this.keyBinding.setKeyboardHandler(R);};this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler();};this.setSession=function(T){if(this.session==T){return ;}if(this.session){var S=this.session;this.session.removeEventListener("change",this.$onDocumentChange);this.session.removeEventListener("changeMode",this.$onChangeMode);this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate);this.session.removeEventListener("changeTabSize",this.$onChangeTabSize);this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode);this.session.removeEventListener("onChangeFold",this.$onChangeFold);this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker);this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation);this.session.removeEventListener("changeOverwrite",this.$onCursorChange);this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange);this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);var R=this.session.getSelection();R.removeEventListener("changeCursor",this.$onCursorChange);R.removeEventListener("changeSelection",this.$onSelectionChange);}this.session=T;this.$onDocumentChange=this.onDocumentChange.bind(this);T.addEventListener("change",this.$onDocumentChange);this.renderer.setSession(T);this.$onChangeMode=this.onChangeMode.bind(this);T.addEventListener("changeMode",this.$onChangeMode);this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this);T.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate);this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer);T.addEventListener("changeTabSize",this.$onChangeTabSize);this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this);T.addEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.$onChangeWrapMode=this.onChangeWrapMode.bind(this);T.addEventListener("changeWrapMode",this.$onChangeWrapMode);this.$onChangeFold=this.onChangeFold.bind(this);T.addEventListener("changeFold",this.$onChangeFold);this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this);this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.$onChangeBackMarker=this.onChangeBackMarker.bind(this);this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker);this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this);this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.$onChangeAnnotation=this.onChangeAnnotation.bind(this);this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation);this.$onCursorChange=this.onCursorChange.bind(this);this.session.addEventListener("changeOverwrite",this.$onCursorChange);this.$onScrollTopChange=this.onScrollTopChange.bind(this);this.session.addEventListener("changeScrollTop",this.$onScrollTopChange);this.$onScrollLeftChange=this.onScrollLeftChange.bind(this);this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange);this.selection=T.getSelection();this.selection.addEventListener("changeCursor",this.$onCursorChange);this.$onSelectionChange=this.onSelectionChange.bind(this);this.selection.addEventListener("changeSelection",this.$onSelectionChange);this.onChangeMode();this.$blockScrolling+=1;this.onCursorChange();this.$blockScrolling-=1;this.onScrollTopChange();this.onScrollLeftChange();this.onSelectionChange();this.onChangeFrontMarker();this.onChangeBackMarker();this.onChangeBreakpoint();this.onChangeAnnotation();this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit();this.renderer.updateFull();this._emit("changeSession",{session:T,oldSession:S});};this.getSession=function(){return this.session;};this.setValue=function(R,S){this.session.doc.setValue(R);if(!S){this.selectAll();}else{if(S==1){this.navigateFileEnd();}else{if(S==-1){this.navigateFileStart();}}}return R;};this.getValue=function(){return this.session.getValue();};this.getSelection=function(){return this.selection;};this.resize=function(R){this.renderer.onResize(R);};this.setTheme=function(R){this.renderer.setTheme(R);};this.getTheme=function(){return this.renderer.getTheme();};this.setStyle=function(R){this.renderer.setStyle(R);};this.unsetStyle=function(R){this.renderer.unsetStyle(R);};this.setFontSize=function(R){this.container.style.fontSize=R;this.renderer.updateFontSize();};this.$highlightBrackets=function(){if(this.session.$bracketHighlight){this.session.removeMarker(this.session.$bracketHighlight);this.session.$bracketHighlight=null;}if(this.$highlightPending){return ;}var R=this;this.$highlightPending=true;setTimeout(function(){R.$highlightPending=false;var T=R.session.findMatchingBracket(R.getCursorPosition());if(T){var S=new E(T.row,T.column,T.row,T.column+1);R.session.$bracketHighlight=R.session.addMarker(S,"ace_bracket","text");}},10);};this.focus=function(){var R=this;setTimeout(function(){R.textInput.focus();});this.textInput.focus();};this.isFocused=function(){return this.textInput.isFocused();};this.blur=function(){this.textInput.blur();};this.onFocus=function(){if(this.$isFocused){return ;}this.$isFocused=true;this.renderer.showCursor();this.renderer.visualizeFocus();this._emit("focus");};this.onBlur=function(){if(!this.$isFocused){return ;}this.$isFocused=false;this.renderer.hideCursor();this.renderer.visualizeBlur();this._emit("blur");};this.$cursorChange=function(){this.renderer.updateCursor();};this.onDocumentChange=function(T){var U=T.data;var R=U.range;var S;if(R.start.row==R.end.row&&U.action!="insertLines"&&U.action!="removeLines"){S=R.end.row;}else{S=Infinity;}this.renderer.updateLines(R.start.row,S);this._emit("change",T);this.$cursorChange();};this.onTokenizerUpdate=function(S){var R=S.data;this.renderer.updateLines(R.first,R.last);};this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop());};this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft());};this.onCursorChange=function(){this.$cursorChange();if(!this.$blockScrolling){this.renderer.scrollCursorIntoView();}this.$highlightBrackets();this.$updateHighlightActiveLine();};this.$updateHighlightActiveLine=function(){var S=this.getSession();if(S.$highlightLineMarker){S.removeMarker(S.$highlightLineMarker);}S.$highlightLineMarker=null;if(this.$highlightActiveLine){var U=this.getCursorPosition();var T=this.session.getFoldLine(U.row);if((this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var R;if(T){R=new E(T.start.row,0,T.end.row+1,0);}else{R=new E(U.row,0,U.row+1,0);}S.$highlightLineMarker=S.addMarker(R,"ace_active_line","background");}}};this.onSelectionChange=function(V){var U=this.session;if(U.$selectionMarker){U.removeMarker(U.$selectionMarker);}U.$selectionMarker=null;if(!this.selection.isEmpty()){var R=this.selection.getRange();var T=this.getSelectionStyle();U.$selectionMarker=U.addMarker(R,"ace_selection",T);}else{this.$updateHighlightActiveLine();}var S=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(S);};this.$getSelectionHighLightRegexp=function(){var X=this.session;var U=this.getSelectionRange();if(U.isEmpty()||U.isMultiLine()){return ;}var Y=U.start.column-1;var W=U.end.column+1;var S=X.getLine(U.start.row);var R=S.length;var V=S.substring(Math.max(Y,0),Math.min(W,R));if((Y>=0&&/^[\w\d]/.test(V))||(W<=R&&/[\w\d]$/.test(V))){return ;}V=S.substring(U.start.column,U.end.column);if(!/^[\w\d]+$/.test(V)){return ;}var T=this.$search.$assembleRegExp({wholeWord:true,caseSensitive:true,needle:V});return T;};this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers();};this.onChangeBackMarker=function(){this.renderer.updateBackMarkers();};this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints();};this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations());};this.onChangeMode=function(){this.renderer.updateText();};this.onChangeWrapLimit=function(){this.renderer.updateFull();};this.onChangeWrapMode=function(){this.renderer.onResize(true);};this.onChangeFold=function(){this.$updateHighlightActiveLine();this.renderer.updateFull();};this.getCopyText=function(){var R="";if(!this.selection.isEmpty()){R=this.session.getTextRange(this.getSelectionRange());}this._emit("copy",R);return R;};this.onCopy=function(){this.commands.exec("copy",this);};this.onCut=function(){this.commands.exec("cut",this);};this.onPaste=function(R){this._emit("paste",R);this.insert(R);};this.insert=function(c){var S=this.session;var d=S.getMode();var V=this.getCursorPosition();if(this.getBehavioursEnabled()){var a=d.transformAction(S.getState(V.row),"insertion",this,S,c);if(a){c=a.text;}}c=c.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){V=this.session.remove(this.getSelectionRange());this.clearSelection();}else{if(this.session.getOverwrite()){var e=new E.fromPoints(V,V);e.end.column+=c.length;this.session.remove(e);}}this.clearSelection();var W=V.column;var g=S.getState(V.row);var j=d.checkOutdent(g,S.getLine(V.row),c);var Y=S.getLine(V.row);var R=d.getNextLineIndent(g,Y.slice(0,V.column),S.getTabString());var T=S.insert(V,c);if(a&&a.selection){if(a.selection.length==2){this.selection.setSelectionRange(new E(V.row,W+a.selection[0],V.row,W+a.selection[1]));}else{this.selection.setSelectionRange(new E(V.row+a.selection[0],a.selection[1],V.row+a.selection[2],a.selection[3]));}}var g=S.getState(V.row);if(S.getDocument().isNewLine(c)){this.moveCursorTo(V.row+1,0);var f=S.getTabSize();var U=Number.MAX_VALUE;for(var X=V.row+1;X<=T.row;++X){var Z=0;Y=S.getLine(X);for(var h=0;h<Y.length;++h){if(Y.charAt(h)=="\t"){Z+=f;}else{if(Y.charAt(h)==" "){Z+=1;}else{break;}}}if(/[^\s]/.test(Y)){U=Math.min(Z,U);}}for(var X=V.row+1;X<=T.row;++X){var b=U;Y=S.getLine(X);for(var h=0;h<Y.length&&b>0;++h){if(Y.charAt(h)=="\t"){b-=f;}else{if(Y.charAt(h)==" "){b-=1;}}}S.remove(new E(X,0,X,h));}S.indentRows(V.row+1,T.row,R);}if(j){d.autoOutdent(g,S,V.row);}};this.onTextInput=function(R){this.keyBinding.onTextInput(R);};this.onCommandKey=function(T,R,S){this.keyBinding.onCommandKey(T,R,S);};this.setOverwrite=function(R){this.session.setOverwrite(R);};this.getOverwrite=function(){return this.session.getOverwrite();};this.toggleOverwrite=function(){this.session.toggleOverwrite();};this.setScrollSpeed=function(R){this.$mouseHandler.setScrollSpeed(R);};this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed();};this.setDragDelay=function(R){this.$mouseHandler.setDragDelay(R);};this.getDragDelay=function(){return this.$mouseHandler.getDragDelay();};this.$selectionStyle="line";this.setSelectionStyle=function(R){if(this.$selectionStyle==R){return ;}this.$selectionStyle=R;this.onSelectionChange();this._emit("changeSelectionStyle",{data:R});};this.getSelectionStyle=function(){return this.$selectionStyle;};this.$highlightActiveLine=true;this.setHighlightActiveLine=function(R){if(this.$highlightActiveLine==R){return ;}this.$highlightActiveLine=R;this.$updateHighlightActiveLine();};this.getHighlightActiveLine=function(){return this.$highlightActiveLine;};this.$highlightGutterLine=true;this.setHighlightGutterLine=function(R){if(this.$highlightGutterLine==R){return ;}this.renderer.setHighlightGutterLine(R);this.$highlightGutterLine=R;};this.getHighlightGutterLine=function(){return this.$highlightGutterLine;};this.$highlightSelectedWord=true;this.setHighlightSelectedWord=function(R){if(this.$highlightSelectedWord==R){return ;}this.$highlightSelectedWord=R;this.$onSelectionChange();};this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord;};this.setAnimatedScroll=function(R){this.renderer.setAnimatedScroll(R);};this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll();};this.setShowInvisibles=function(R){if(this.getShowInvisibles()==R){return ;}this.renderer.setShowInvisibles(R);};this.getShowInvisibles=function(){return this.renderer.getShowInvisibles();};this.setShowPrintMargin=function(R){this.renderer.setShowPrintMargin(R);};this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin();};this.setPrintMarginColumn=function(R){this.renderer.setPrintMarginColumn(R);};this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn();};this.$readOnly=false;this.setReadOnly=function(R){this.$readOnly=R;};this.getReadOnly=function(){return this.$readOnly;};this.$modeBehaviours=true;this.setBehavioursEnabled=function(R){this.$modeBehaviours=R;};this.getBehavioursEnabled=function(){return this.$modeBehaviours;};this.setShowFoldWidgets=function(R){var S=this.renderer.$gutterLayer;if(S.getShowFoldWidgets()==R){return ;}this.renderer.$gutterLayer.setShowFoldWidgets(R);this.$showFoldWidgets=R;this.renderer.updateFull();};this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets();};this.setFadeFoldWidgets=function(R){this.renderer.setFadeFoldWidgets(R);};this.getFadeFoldWidgets=function(){return this.renderer.getFadeFoldWidgets();};this.remove=function(S){if(this.selection.isEmpty()){if(S=="left"){this.selection.selectLeft();}else{this.selection.selectRight();}}var R=this.getSelectionRange();if(this.getBehavioursEnabled()){var U=this.session;var T=U.getState(R.start.row);var V=U.getMode().transformAction(T,"deletion",this,U,R);if(V){R=V;}}this.session.remove(R);this.clearSelection();};this.removeWordRight=function(){if(this.selection.isEmpty()){this.selection.selectWordRight();}this.session.remove(this.getSelectionRange());this.clearSelection();};this.removeWordLeft=function(){if(this.selection.isEmpty()){this.selection.selectWordLeft();}this.session.remove(this.getSelectionRange());this.clearSelection();};this.removeToLineStart=function(){if(this.selection.isEmpty()){this.selection.selectLineStart();}this.session.remove(this.getSelectionRange());this.clearSelection();};this.removeToLineEnd=function(){if(this.selection.isEmpty()){this.selection.selectLineEnd();}var R=this.getSelectionRange();if(R.start.column==R.end.column&&R.start.row==R.end.row){R.end.column=0;R.end.row++;}this.session.remove(R);this.clearSelection();};this.splitLine=function(){if(!this.selection.isEmpty()){this.session.remove(this.getSelectionRange());this.clearSelection();}var R=this.getCursorPosition();this.insert("\n");this.moveCursorToPosition(R);};this.transposeLetters=function(){if(!this.selection.isEmpty()){return ;}var V=this.getCursorPosition();var T=V.column;if(T===0){return ;}var R=this.session.getLine(V.row);var U,S;if(T<R.length){U=R.charAt(T)+R.charAt(T-1);S=new E(V.row,T-1,V.row,T+1);}else{U=R.charAt(T-1)+R.charAt(T-2);S=new E(V.row,T-2,V.row,T);}this.session.replace(S,U);};this.toLowerCase=function(){var S=this.getSelectionRange();if(this.selection.isEmpty()){this.selection.selectWord();}var R=this.getSelectionRange();var T=this.session.getTextRange(R);this.session.replace(R,T.toLowerCase());this.selection.setSelectionRange(S);};this.toUpperCase=function(){var S=this.getSelectionRange();if(this.selection.isEmpty()){this.selection.selectWord();}var R=this.getSelectionRange();var T=this.session.getTextRange(R);this.session.replace(R,T.toUpperCase());this.selection.setSelectionRange(S);};this.indent=function(){var X=this.session;var S=this.getSelectionRange();if(S.start.row<S.end.row||S.start.column<S.end.column){var W=this.$getSelectedRows();X.indentRows(W.first,W.last,"\t");}else{var Y;if(this.session.getUseSoftTabs()){var T=X.getTabSize(),R=this.getCursorPosition(),U=X.documentToScreenColumn(R.row,R.column),V=(T-U%T);Y=B.stringRepeat(" ",V);}else{Y="\t";}return this.insert(Y);}};this.blockOutdent=function(){var R=this.session.getSelection();this.session.outdentRows(R.getRange());};this.toggleCommentLines=function(){var S=this.session.getState(this.getCursorPosition().row);var R=this.$getSelectedRows();this.session.getMode().toggleCommentLines(S,this.session,R.first,R.last);};this.removeLines=function(){var S=this.$getSelectedRows();var R;if(S.first===0||S.last+1<this.session.getLength()){R=new E(S.first,0,S.last+1,0);}else{R=new E(S.first-1,this.session.getLine(S.first-1).length,S.last,this.session.getLine(S.last).length);}this.session.remove(R);this.clearSelection();};this.duplicateSelection=function(){var V=this.selection;var W=this.session;var S=V.getRange();if(S.isEmpty()){var X=S.start.row;W.duplicateLines(X,X);}else{var T=V.isBackwards();var R=V.isBackwards()?S.start:S.end;var U=W.insert(R,W.getTextRange(S),false);S.start=R;S.end=U;V.setSelectionRange(S,T);}};this.moveLinesDown=function(){this.$moveLines(function(S,R){return this.session.moveLinesDown(S,R);});};this.moveLinesUp=function(){this.$moveLines(function(S,R){return this.session.moveLinesUp(S,R);});};this.moveText=function(R,S){if(this.$readOnly){return null;}return this.session.moveText(R,S);};this.copyLinesUp=function(){this.$moveLines(function(S,R){this.session.duplicateLines(S,R);return 0;});};this.copyLinesDown=function(){this.$moveLines(function(S,R){return this.session.duplicateLines(S,R);});};this.$moveLines=function(S){var W=this.$getSelectedRows();var V=this.selection;if(!V.isMultiLine()){var R=V.getRange();var T=V.isBackwards();}var U=S.call(this,W.first,W.last);if(R){R.start.row+=U;R.end.row+=U;V.setSelectionRange(R,T);}else{V.setSelectionAnchor(W.last+U+1,0);V.$moveSelection(function(){V.moveCursorTo(W.first+U,0);});}};this.$getSelectedRows=function(){var R=this.getSelectionRange().collapseRows();return{first:R.start.row,last:R.end.row};};this.onCompositionStart=function(R){this.renderer.showComposition(this.getCursorPosition());};this.onCompositionUpdate=function(R){this.renderer.setCompositionText(R);};this.onCompositionEnd=function(){this.renderer.hideComposition();};this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow();};this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow();};this.isRowVisible=function(R){return(R>=this.getFirstVisibleRow()&&R<=this.getLastVisibleRow());};this.isRowFullyVisible=function(R){return(R>=this.renderer.getFirstFullyVisibleRow()&&R<=this.renderer.getLastFullyVisibleRow());};this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1;};this.$moveByPage=function(T,R){var V=this.renderer;var S=this.renderer.layerConfig;var U=T*Math.floor(S.height/S.lineHeight);this.$blockScrolling++;if(R==true){this.selection.$moveSelection(function(){this.moveCursorBy(U,0);});}else{if(R==false){this.selection.moveCursorBy(U,0);this.selection.clearSelection();}}this.$blockScrolling--;var W=V.scrollTop;V.scrollBy(0,U*S.lineHeight);if(R!=null){V.scrollCursorIntoView(null,0.5);}V.animateScrolling(W);};this.selectPageDown=function(){this.$moveByPage(1,true);};this.selectPageUp=function(){this.$moveByPage(-1,true);};this.gotoPageDown=function(){this.$moveByPage(1,false);};this.gotoPageUp=function(){this.$moveByPage(-1,false);};this.scrollPageDown=function(){this.$moveByPage(1);};this.scrollPageUp=function(){this.$moveByPage(-1);};this.scrollToRow=function(R){this.renderer.scrollToRow(R);};this.scrollToLine=function(S,R,T,U){this.renderer.scrollToLine(S,R,T,U);};this.centerSelection=function(){var R=this.getSelectionRange();var S={row:Math.floor(R.start.row+(R.end.row-R.start.row)/2),column:Math.floor(R.start.column+(R.end.column-R.start.column)/2)};this.renderer.alignCursor(S,0.5);};this.getCursorPosition=function(){return this.selection.getCursor();};this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition());};this.getSelectionRange=function(){return this.selection.getRange();};this.selectAll=function(){this.$blockScrolling+=1;this.selection.selectAll();this.$blockScrolling-=1;};this.clearSelection=function(){this.selection.clearSelection();};this.moveCursorTo=function(S,R){this.selection.moveCursorTo(S,R);};this.moveCursorToPosition=function(R){this.selection.moveCursorToPosition(R);};this.jumpToMatching=function(R){var T=this.getCursorPosition();var S=this.session.getBracketRange(T);if(!S){S=this.find({needle:/[{}()\[\]]/g,preventScroll:true,start:{row:T.row,column:T.column-1}});if(!S){return ;}var U=S.start;if(U.row==T.row&&Math.abs(U.column-T.column)<2){S=this.session.getBracketRange(U);}}U=S&&S.cursor||U;if(U){if(R){if(S&&S.isEqual(this.getSelectionRange())){this.clearSelection();}else{this.selection.selectTo(U.row,U.column);}}else{this.clearSelection();this.moveCursorTo(U.row,U.column);}}};this.gotoLine=function(R,T,S){this.selection.clearSelection();this.session.unfold({row:R-1,column:T||0});this.$blockScrolling+=1;this.moveCursorTo(R-1,T||0);this.$blockScrolling-=1;if(!this.isRowFullyVisible(R-1)){this.scrollToLine(R-1,true,S);}};this.navigateTo=function(S,R){this.clearSelection();this.moveCursorTo(S,R);};this.navigateUp=function(R){this.selection.clearSelection();R=R||1;this.selection.moveCursorBy(-R,0);};this.navigateDown=function(R){this.selection.clearSelection();R=R||1;this.selection.moveCursorBy(R,0);};this.navigateLeft=function(S){if(!this.selection.isEmpty()){var R=this.getSelectionRange().start;this.moveCursorToPosition(R);}else{S=S||1;while(S--){this.selection.moveCursorLeft();}}this.clearSelection();};this.navigateRight=function(S){if(!this.selection.isEmpty()){var R=this.getSelectionRange().end;this.moveCursorToPosition(R);}else{S=S||1;while(S--){this.selection.moveCursorRight();}}this.clearSelection();};this.navigateLineStart=function(){this.selection.moveCursorLineStart();this.clearSelection();};this.navigateLineEnd=function(){this.selection.moveCursorLineEnd();this.clearSelection();};this.navigateFileEnd=function(){var R=this.renderer.scrollTop;this.selection.moveCursorFileEnd();this.clearSelection();this.renderer.animateScrolling(R);};this.navigateFileStart=function(){var R=this.renderer.scrollTop;this.selection.moveCursorFileStart();this.clearSelection();this.renderer.animateScrolling(R);};this.navigateWordRight=function(){this.selection.moveCursorWordRight();this.clearSelection();};this.navigateWordLeft=function(){this.selection.moveCursorWordLeft();this.clearSelection();};this.replace=function(T,S){if(S){this.$search.set(S);}var R=this.$search.find(this.session);var U=0;if(!R){return U;}if(this.$tryReplace(R,T)){U=1;}if(R!==null){this.selection.setSelectionRange(R);this.renderer.scrollSelectionIntoView(R.start,R.end);}return U;};this.replaceAll=function(V,S){if(S){this.$search.set(S);}var R=this.$search.findAll(this.session);var W=0;if(!R.length){return W;}this.$blockScrolling+=1;var U=this.getSelectionRange();this.clearSelection();this.selection.moveCursorTo(0,0);for(var T=R.length-1;T>=0;--T){if(this.$tryReplace(R[T],V)){W++;}}this.selection.setSelectionRange(U);this.$blockScrolling-=1;return W;};this.$tryReplace=function(S,T){var R=this.session.getTextRange(S);T=this.$search.replace(R,T);if(T!==null){S.end=this.session.replace(S,T);return S;}else{return null;}};this.getLastSearchOptions=function(){return this.$search.getOptions();};this.find=function(V,U,S){if(!U){U={};}if(typeof V=="string"||V instanceof RegExp){U.needle=V;}else{if(typeof V=="object"){O.mixin(U,V);}}var R=this.selection.getRange();if(U.needle==null){V=this.session.getTextRange(R)||this.$search.$options.needle;if(!V){R=this.session.getWordRange(R.start.row,R.start.column);V=this.session.getTextRange(R);}this.$search.set({needle:V});}this.$search.set(U);if(!U.start){this.$search.set({start:R});}var T=this.$search.find(this.session);if(U.preventScroll){return T;}if(T){this.revealRange(T,S);return T;}if(U.backwards){R.start=R.end;}else{R.end=R.start;}this.selection.setRange(R);};this.findNext=function(S,R){this.find({skipCurrent:true,backwards:false},S,R);};this.findPrevious=function(S,R){this.find(S,{skipCurrent:true,backwards:true},R);};this.revealRange=function(S,R){this.$blockScrolling+=1;this.session.unfold(S);this.selection.setSelectionRange(S);this.$blockScrolling-=1;var T=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(S.start,S.end,0.5);if(R!=false){this.renderer.animateScrolling(T);}};this.undo=function(){this.$blockScrolling++;this.session.getUndoManager().undo();this.$blockScrolling--;this.renderer.scrollCursorIntoView(null,0.5);};this.redo=function(){this.$blockScrolling++;this.session.getUndoManager().redo();this.$blockScrolling--;this.renderer.scrollCursorIntoView(null,0.5);};this.destroy=function(){this.renderer.destroy();};}).call(M.prototype);J.Editor=M;});define("ace/lib/lang",["require","exports","module"],function(B,A,C){A.stringReverse=function(F){return F.split("").reverse().join("");};A.stringRepeat=function(F,G){return new Array(G+1).join(F);};var D=/^\s\s*/;var E=/\s\s*$/;A.stringTrimLeft=function(F){return F.replace(D,"");};A.stringTrimRight=function(F){return F.replace(E,"");};A.copyObject=function(G){var H={};for(var F in G){H[F]=G[F];}return H;};A.copyArray=function(I){var H=[];for(var G=0,F=I.length;G<F;G++){if(I[G]&&typeof I[G]=="object"){H[G]=this.copyObject(I[G]);}else{H[G]=I[G];}}return H;};A.deepCopy=function(G){if(typeof G!="object"){return G;}var H=G.constructor();for(var F in G){if(typeof G[F]=="object"){H[F]=this.deepCopy(G[F]);}else{H[F]=G[F];}}return H;};A.arrayToMap=function(F){var H={};for(var G=0;G<F.length;G++){H[F[G]]=1;}return H;};A.arrayRemove=function(H,G){for(var F=0;F<=H.length;F++){if(G===H[F]){H.splice(F,1);}}};A.escapeRegExp=function(F){return F.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");};A.getMatchOffsets=function(G,F){var H=[];G.replace(F,function(I){H.push({offset:arguments[arguments.length-2],length:I.length});});return H;};A.deferredCall=function(G){var I=null;var H=function(){I=null;G();};var F=function(J){F.cancel();I=setTimeout(H,J||0);return F;};F.schedule=F;F.call=function(){this.cancel();G();return F;};F.cancel=function(){clearTimeout(I);I=null;return F;};return F;};});define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom"],function(C,B,D){var F=C("../lib/event");var A=C("../lib/useragent");var G=C("../lib/dom");var E=function(M,T){var Q=G.createElement("textarea");if(A.isTouchPad){Q.setAttribute("x-palm-disable-auto-cap",true);}Q.setAttribute("wrap","off");Q.style.top="-2em";M.insertBefore(Q,M.firstChild);var H=A.isIE?"\x01":"\x01";W();var R=false;var U=false;var I=false;var Z="";function X(a){try{if(a){Q.value=H;Q.selectionStart=0;Q.selectionEnd=1;}else{Q.select();}}catch(b){}}function W(b){if(!U){var a=b||Q.value;if(a){if(a.length>1){if(a.charAt(0)==H){a=a.substr(1);}else{if(a.charAt(a.length-1)==H){a=a.slice(0,-1);}}}if(a&&a!=H){if(I){T.onPaste(a);}else{T.onTextInput(a);}}}}U=false;I=false;X(true);}var L=function(a){if(!R){W(a.data);}setTimeout(function(){if(!R){X(true);}},0);};var Y=function(a){setTimeout(function(){if(!R){W();}},0);};var S=function(a){R=true;T.onCompositionStart();setTimeout(V,0);};var V=function(){if(!R){return ;}T.onCompositionUpdate(Q.value);};var J=function(a){R=false;T.onCompositionEnd();};var O=function(b){U=true;var a=T.getCopyText();if(a){Q.value=a;}else{b.preventDefault();}X();setTimeout(function(){W();},0);};var K=function(b){U=true;var a=T.getCopyText();if(a){Q.value=a;T.onCut();}else{b.preventDefault();}X();setTimeout(function(){W();},0);};F.addCommandKeyListener(Q,T.onCommandKey.bind(T));F.addListener(Q,"input",A.isIE?Y:L);F.addListener(Q,"paste",function(a){I=true;if(a.clipboardData&&a.clipboardData.getData){W(a.clipboardData.getData("text/plain"));a.preventDefault();}else{Y();}});if("onbeforecopy" in Q&&typeof clipboardData!=="undefined"){F.addListener(Q,"beforecopy",function(b){if(Z){return ;}var a=T.getCopyText();if(a){clipboardData.setData("Text",a);}else{b.preventDefault();}});F.addListener(M,"keydown",function(b){if(b.ctrlKey&&b.keyCode==88){var a=T.getCopyText();if(a){clipboardData.setData("Text",a);T.onCut();}F.preventDefault(b);}});F.addListener(Q,"cut",K);}else{if(A.isOpera){F.addListener(M,"keydown",function(b){if((A.isMac&&!b.metaKey)||!b.ctrlKey){return ;}if((b.keyCode==88||b.keyCode==67)){var a=T.getCopyText();if(a){Q.value=a;Q.select();if(b.keyCode==88){T.onCut();}}}});}else{F.addListener(Q,"copy",O);F.addListener(Q,"cut",K);}}F.addListener(Q,"compositionstart",S);if(A.isGecko){F.addListener(Q,"text",V);}if(A.isWebKit){F.addListener(Q,"keyup",V);}F.addListener(Q,"compositionend",J);F.addListener(Q,"blur",function(){T.onBlur();});F.addListener(Q,"focus",function(){T.onFocus();X();});this.focus=function(){X();Q.focus();};this.blur=function(){Q.blur();};function N(){return document.activeElement===Q;}this.isFocused=N;this.getElement=function(){return Q;};this.onContextMenu=function(a){if(!Z){Z=Q.style.cssText;}Q.style.cssText="position:fixed; z-index:100000;left:"+(a.clientX-2)+"px; top:"+(a.clientY-2)+"px;";if(T.selection.isEmpty()){Q.value="";}if(a.type!="mousedown"){return ;}if(T.renderer.$keepTextAreaAtCursor){T.renderer.$keepTextAreaAtCursor=null;}if(A.isGecko&&A.isWin){F.capture(T.container,function(b){Q.style.left=b.clientX-2+"px";Q.style.top=b.clientY-2+"px";},P);}};function P(){setTimeout(function(){if(Z){Q.style.cssText=Z;Z="";}W();if(T.renderer.$keepTextAreaAtCursor==null){T.renderer.$keepTextAreaAtCursor=true;T.renderer.$moveTextAreaToCursor();}},0);}this.onContextMenuClose=P;if(!A.isGecko){F.addListener(Q,"contextmenu",function(a){T.textInput.onContextMenu(a);P();});}};B.TextInput=E;});define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop"],function(D,F,C){var A=D("../lib/event");var I=D("./default_handlers").DefaultHandlers;var B=D("./default_gutter_handler").GutterHandler;var H=D("./mouse_event").MouseEvent;var G=D("./dragdrop").DragdropHandler;var E=function(K){this.editor=K;new I(this);new B(this);new G(this);A.addListener(K.container,"mousedown",function(M){K.focus();return A.preventDefault(M);});var L=K.renderer.getMouseEventTarget();A.addListener(L,"click",this.onMouseEvent.bind(this,"click"));A.addListener(L,"mousemove",this.onMouseMove.bind(this,"mousemove"));A.addMultiMouseDownListener(L,[300,300,250],this,"onMouseEvent");A.addMouseWheelListener(K.container,this.onMouseWheel.bind(this,"mousewheel"));var J=K.renderer.$gutter;A.addListener(J,"mousedown",this.onMouseEvent.bind(this,"guttermousedown"));A.addListener(J,"click",this.onMouseEvent.bind(this,"gutterclick"));A.addListener(J,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick"));A.addListener(J,"mousemove",this.onMouseMove.bind(this,"gutter"));};(function(){this.$scrollSpeed=1;this.setScrollSpeed=function(J){this.$scrollSpeed=J;};this.getScrollSpeed=function(){return this.$scrollSpeed;};this.onMouseEvent=function(J,K){this.editor._emit(J,new H(K,this.editor));};this.$dragDelay=250;this.setDragDelay=function(J){this.$dragDelay=J;};this.getDragDelay=function(){return this.$dragDelay;};this.onMouseMove=function(J,L){var K=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!K||!K.length){return ;}this.editor._emit(J,new H(L,this.editor));};this.onMouseWheel=function(J,K){var L=new H(K,this.editor);L.speed=this.$scrollSpeed*2;L.wheelX=K.wheelX;L.wheelY=K.wheelY;this.editor._emit(J,L);};this.setState=function(J){this.state=J;};this.captureMouse=function(M,O){if(O){this.setState(O);}this.x=M.x;this.y=M.y;var N=this.editor.renderer;if(N.$keepTextAreaAtCursor){N.$keepTextAreaAtCursor=null;}var K=this;var Q=function(R){K.x=R.clientX;K.y=R.clientY;};var P=function(R){clearInterval(J);K[K.state+"End"]&&K[K.state+"End"](R);K.$clickSelection=null;if(N.$keepTextAreaAtCursor==null){N.$keepTextAreaAtCursor=true;N.$moveTextAreaToCursor();}};var L=function(){K[K.state]&&K[K.state]();};A.capture(this.editor.container,Q,P);var J=setInterval(L,20);};}).call(E.prototype);F.MouseHandler=E;});define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/useragent"],function(D,F,B){var E=D("../lib/dom");var C=D("../lib/useragent");var I=5;function H(L){L.$clickSelection=null;var K=L.editor;K.setDefaultHandler("mousedown",this.onMouseDown.bind(L));K.setDefaultHandler("dblclick",this.onDoubleClick.bind(L));K.setDefaultHandler("tripleclick",this.onTripleClick.bind(L));K.setDefaultHandler("quadclick",this.onQuadClick.bind(L));K.setDefaultHandler("mousewheel",this.onScroll.bind(L));var J=["select","startSelect","drag","dragEnd","dragWait","dragWaitEnd","startDrag","focusWait"];J.forEach(function(M){L[M]=this[M];},this);L.selectByLines=this.extendSelectionBy.bind(L,"getLineRange");L.selectByWords=this.extendSelectionBy.bind(L,"getWordRange");L.$focusWaitTimout=250;}(function(){this.onMouseDown=function(O){var M=O.inSelection();var Q=O.getDocumentPosition();this.mousedownEvent=O;var N=this.editor;var J=this;var L=O.getButton();if(L!==0){var P=N.getSelectionRange();var K=P.isEmpty();if(K){N.moveCursorToPosition(Q);N.selection.clearSelection();}N.textInput.onContextMenu(O.domEvent);return ;}if(M&&!N.isFocused()){N.focus();if(this.$focusWaitTimout&&!this.$clickSelection){this.setState("focusWait");this.captureMouse(O);return O.preventDefault();}}if(!M||this.$clickSelection||O.getShiftKey()){this.startSelect(Q);}else{if(M){this.mousedownEvent.time=(new Date()).getTime();this.setState("dragWait");}}this.captureMouse(O);return O.preventDefault();};this.startSelect=function(J){J=J||this.editor.renderer.screenToTextCoordinates(this.x,this.y);if(this.mousedownEvent.getShiftKey()){this.editor.selection.selectToPosition(J);}else{if(!this.$clickSelection){this.editor.moveCursorToPosition(J);this.editor.selection.clearSelection();}}this.setState("select");};this.select=function(){var J,K=this.editor;var N=K.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var L=this.$clickSelection.comparePoint(N);if(L==-1){J=this.$clickSelection.end;}else{if(L==1){J=this.$clickSelection.start;}else{var M=G(this.$clickSelection,N);N=M.cursor;J=M.anchor;}}K.selection.setSelectionAnchor(J.row,J.column);}K.selection.selectToPosition(N);K.renderer.scrollCursorIntoView();};this.extendSelectionBy=function(K){var M,N=this.editor;var Q=N.renderer.screenToTextCoordinates(this.x,this.y);var L=N.selection[K](Q.row,Q.column);if(this.$clickSelection){var J=this.$clickSelection.comparePoint(L.start);var P=this.$clickSelection.comparePoint(L.end);if(J==-1&&P<=0){M=this.$clickSelection.end;if(L.end.row!=Q.row||L.end.column!=Q.column){Q=L.start;}}else{if(P==1&&J>=0){M=this.$clickSelection.start;if(L.start.row!=Q.row||L.start.column!=Q.column){Q=L.end;}}else{if(J==-1&&P==1){Q=L.end;M=L.start;}else{var O=G(this.$clickSelection,Q);Q=O.cursor;M=O.anchor;}}}N.selection.setSelectionAnchor(M.row,M.column);}N.selection.selectToPosition(Q);N.renderer.scrollCursorIntoView();};this.startDrag=function(){var K=this.editor;this.setState("drag");this.dragRange=K.getSelectionRange();var J=K.getSelectionStyle();this.dragSelectionMarker=K.session.addMarker(this.dragRange,"ace_selection",J);K.clearSelection();E.addCssClass(K.container,"ace_dragging");if(!this.$dragKeybinding){this.$dragKeybinding={handleKeyboard:function(N,M,L,O){if(L=="esc"){return{command:this.command};}},command:{exec:function(M){var L=M.$mouseHandler;L.dragCursor=null;L.dragEnd();L.startSelect();}}};}K.keyBinding.addKeyboardHandler(this.$dragKeybinding);};this.focusWait=function(){var K=A(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);var J=(new Date()).getTime();if(K>I||J-this.mousedownEvent.time>this.$focusWaitTimout){this.startSelect();}};this.dragWait=function(L){var M=A(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);var K=(new Date()).getTime();var J=this.editor;if(M>I){this.startSelect();}else{if(K-this.mousedownEvent.time>J.getDragDelay()){this.startDrag();}}};this.dragWaitEnd=function(J){this.mousedownEvent.domEvent=J;this.startSelect();};this.drag=function(){var J=this.editor;this.dragCursor=J.renderer.screenToTextCoordinates(this.x,this.y);J.moveCursorToPosition(this.dragCursor);J.renderer.scrollCursorIntoView();};this.dragEnd=function(O){var M=this.editor;var J=this.dragCursor;var L=this.dragRange;E.removeCssClass(M.container,"ace_dragging");M.session.removeMarker(this.dragSelectionMarker);M.keyBinding.removeKeyboardHandler(this.$dragKeybinding);if(!J){return ;}M.clearSelection();if(O&&(O.ctrlKey||O.altKey)){var N=M.session;var K=L;K.end=N.insert(J,N.getTextRange(L));K.start=J;}else{if(L.contains(J.row,J.column)){return ;}else{var K=M.moveText(L,J);}}if(!K){return ;}M.selection.setSelectionRange(K);};this.onDoubleClick=function(L){var N=L.getDocumentPosition();var K=this.editor;var M=K.session;var J=M.getBracketRange(N);if(J){if(J.isEmpty()){J.start.column--;J.end.column++;}this.$clickSelection=J;this.setState("select");return ;}this.$clickSelection=K.selection.getWordRange(N.row,N.column);this.setState("selectByWords");};this.onTripleClick=function(K){var L=K.getDocumentPosition();var J=this.editor;this.setState("selectByLines");this.$clickSelection=J.selection.getLineRange(L.row);};this.onQuadClick=function(K){var J=this.editor;J.selectAll();this.$clickSelection=J.getSelectionRange();this.setState("null");};this.onScroll=function(M){var L=this.editor;var K=L.renderer.isScrollableBy(M.wheelX*M.speed,M.wheelY*M.speed);if(K){this.$passScrollEvent=false;}else{if(this.$passScrollEvent){return ;}if(!this.$scrollStopTimeout){var J=this;this.$scrollStopTimeout=setTimeout(function(){J.$passScrollEvent=true;J.$scrollStopTimeout=null;},200);}}L.renderer.scrollBy(M.wheelX*M.speed,M.wheelY*M.speed);return M.preventDefault();};}).call(H.prototype);F.DefaultHandlers=H;function A(K,J,M,L){return Math.sqrt(Math.pow(M-K,2)+Math.pow(L-J,2));}function G(J,L){if(J.start.row==J.end.row){var K=2*L.column-J.start.column-J.end.column;}else{var K=2*L.row-J.start.row-J.end.row;}if(K<0){return{cursor:J.start,anchor:J.end};}else{return{cursor:J.end,anchor:J.start};}}});define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom"],function(C,B,D){var E=C("../lib/dom");function A(G){var F=G.editor;G.editor.setDefaultHandler("guttermousedown",function(K){var J=K.domEvent.target;if(J.className.indexOf("ace_gutter-cell")==-1){return ;}if(!F.isFocused()){return ;}var I=parseInt(E.computedStyle(J).paddingLeft);if(K.x<I+J.getBoundingClientRect().left+1){return ;}var L=K.getDocumentPosition().row;var H=F.session.selection;if(K.getShiftKey()){H.selectTo(L,0);}else{G.$clickSelection=F.selection.getLineRange(L);}G.captureMouse(K,"selectByLines");return K.preventDefault();});}B.GutterHandler=A;});define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(C,B,D){var F=C("../lib/event");var A=C("../lib/useragent");var E=B.MouseEvent=function(H,G){this.domEvent=H;this.editor=G;this.x=this.clientX=H.clientX;this.y=this.clientY=H.clientY;this.$pos=null;this.$inSelection=null;this.propagationStopped=false;this.defaultPrevented=false;};(function(){this.stopPropagation=function(){F.stopPropagation(this.domEvent);this.propagationStopped=true;};this.preventDefault=function(){F.preventDefault(this.domEvent);this.defaultPrevented=true;};this.stop=function(){this.stopPropagation();this.preventDefault();};this.getDocumentPosition=function(){if(this.$pos){return this.$pos;}this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY);return this.$pos;};this.inSelection=function(){if(this.$inSelection!==null){return this.$inSelection;}var G=this.editor;if(G.getReadOnly()){this.$inSelection=false;}else{var I=G.getSelectionRange();if(I.isEmpty()){this.$inSelection=false;}else{var H=this.getDocumentPosition();this.$inSelection=I.contains(H.row,H.column);}}return this.$inSelection;};this.getButton=function(){return F.getButton(this.domEvent);};this.getShiftKey=function(){return this.domEvent.shiftKey;};this.getAccelKey=A.isMac?function(){return this.domEvent.metaKey;}:function(){return this.domEvent.ctrlKey;};}).call(E.prototype);});define("ace/mouse/dragdrop",["require","exports","module","ace/lib/event"],function(C,B,D){var E=C("../lib/event");var A=function(N){var K=N.editor;var G,O,M;var H,J,P;var Q,F=0;var L=K.container;E.addListener(L,"dragenter",function(S){console.log(S.type,F,S.target);F++;if(!G){J=K.getSelectionRange();P=K.selection.isBackwards();var R=K.getSelectionStyle();G=K.session.addMarker(J,"ace_selection",R);K.clearSelection();clearInterval(H);H=setInterval(I,20);}return E.preventDefault(S);});E.addListener(L,"dragover",function(R){O=R.clientX;M=R.clientY;return E.preventDefault(R);});var I=function(){Q=K.renderer.screenToTextCoordinates(O,M);K.moveCursorToPosition(Q);K.renderer.scrollCursorIntoView();};E.addListener(L,"dragleave",function(R){console.log(R.type,F,R.target);F--;if(F>0){return ;}console.log(R.type,F,R.target);clearInterval(H);K.session.removeMarker(G);G=null;K.selection.setSelectionRange(J,P);return E.preventDefault(R);});E.addListener(L,"drop",function(R){console.log(R.type,F,R.target);F=0;clearInterval(H);K.session.removeMarker(G);G=null;J.end=K.session.insert(Q,R.dataTransfer.getData("Text"));J.start=Q;K.focus();K.selection.setSelectionRange(J);return E.preventDefault(R);});};B.DragdropHandler=A;});define("ace/mouse/fold_handler",["require","exports","module"],function(B,A,C){function D(E){E.on("click",function(I){var F=I.getDocumentPosition();var H=E.session;var G=H.getFoldAt(F.row,F.column,1);if(G){if(I.getAccelKey()){H.removeFold(G);}else{H.expandFold(G);}I.stop();}});E.on("gutterclick",function(F){if(F.domEvent.target.className.indexOf("ace_fold-widget")!=-1){var G=F.getDocumentPosition().row;E.session.onFoldWidgetClick(G,F.domEvent);F.stop();}});}A.FoldHandler=D;});define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(C,A,D){var B=C("../lib/keys");var E=C("../lib/event");var F=function(G){this.$editor=G;this.$data={};this.$handlers=[];this.setDefaultHandler(G.commands);};(function(){this.setDefaultHandler=function(G){this.removeKeyboardHandler(this.$defaultHandler);this.$defaultHandler=G;this.addKeyboardHandler(G,0);this.$data={editor:this.$editor};};this.setKeyboardHandler=function(G){if(this.$handlers[this.$handlers.length-1]==G){return ;}while(this.$handlers[1]){this.removeKeyboardHandler(this.$handlers[1]);}this.addKeyboardHandler(G,1);};this.addKeyboardHandler=function(H,I){if(!H){return ;}var G=this.$handlers.indexOf(H);if(G!=-1){this.$handlers.splice(G,1);}if(I==undefined){this.$handlers.push(H);}else{this.$handlers.splice(I,0,H);}if(G==-1&&H.attach){H.attach(this.$editor);}};this.removeKeyboardHandler=function(H){var G=this.$handlers.indexOf(H);if(G==-1){return false;}this.$handlers.splice(G,1);H.detach&&H.detach(this.$editor);return true;};this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1];};this.$callKeyboardHandlers=function(K,H,M,L){var J;for(var I=this.$handlers.length;I--;){J=this.$handlers[I].handleKeyboard(this.$data,K,H,M,L);if(J&&J.command){break;}}if(!J||!J.command){return false;}var N=false;var G=this.$editor.commands;if(J.command!="null"){N=G.exec(J.command,this.$editor,J.args,L);}else{N=J.passEvent!=true;}if(N&&L&&K!=-1){E.stopEvent(L);}return N;};this.onCommandKey=function(J,H,I){var G=B.keyCodeToString(I);this.$callKeyboardHandlers(H,G,I,J);};this.onTextInput=function(H){var G=this.$callKeyboardHandlers(-1,H);if(!G){this.$editor.commands.exec("insertstring",this.$editor,H);}};}).call(F.prototype);A.KeyBinding=F;});define("ace/edit_session",["require","exports","module","ace/config","ace/lib/oop","ace/lib/lang","ace/lib/net","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(G,I,C){var E=G("./config");var L=G("./lib/oop");var B=G("./lib/lang");var M=G("./lib/net");var O=G("./lib/event_emitter").EventEmitter;var N=G("./selection").Selection;var H=G("./mode/text").Mode;var F=G("./range").Range;var J=G("./document").Document;var D=G("./background_tokenizer").BackgroundTokenizer;var K=G("./search_highlight").SearchHighlight;var A=function(Q,P){this.$modified=true;this.$breakpoints=[];this.$frontMarkers={};this.$backMarkers={};this.$markerId=1;this.$resetRowCache(0);this.$wrapData=[];this.$foldData=[];this.$rowLengthCache=[];this.$undoSelect=true;this.$foldData.toString=function(){var R="";this.forEach(function(S){R+="\n"+S.toString();});return R;};if(typeof Q=="object"&&Q.getLine){this.setDocument(Q);}else{this.setDocument(new J(Q));}this.selection=new N(this);this.setMode(P);};(function(){L.implement(this,O);this.setDocument=function(Y){if(this.doc){throw new Error("Document is already set");}this.doc=Y;Y.on("change",this.onChange.bind(this));this.on("changeFold",this.onChangeFold.bind(this));if(this.bgTokenizer){this.bgTokenizer.setDocument(this.getDocument());this.bgTokenizer.start(0);}};this.getDocument=function(){return this.doc;};this.$resetRowCache=function(Z){if(!Z){this.$docRowCache=[];this.$screenRowCache=[];return ;}var a=this.$getRowCacheIndex(this.$docRowCache,Z)+1;var Y=this.$docRowCache.length;this.$docRowCache.splice(a,Y);this.$screenRowCache.splice(a,Y);};this.$getRowCacheIndex=function(Z,d){var Y=0;var b=Z.length-1;while(Y<=b){var a=(Y+b)>>1;var e=Z[a];if(d>e){Y=a+1;}else{if(d<e){b=a-1;}else{return a;}}}return Y&&Y-1;};this.onChangeFold=function(Z){var Y=Z.data;this.$resetRowCache(Y.start.row);};this.onChange=function(Z){var a=Z.data;this.$modified=true;this.$resetRowCache(a.range.start.row);var Y=this.$updateInternalDataOnChange(Z);if(!this.$fromUndo&&this.$undoManager&&!a.ignore){this.$deltasDoc.push(a);if(Y&&Y.length!=0){this.$deltasFold.push({action:"removeFolds",folds:Y});}this.$informUndoManager.schedule();}this.bgTokenizer.$updateOnChange(a);this._emit("change",Z);};this.setValue=function(Y){this.doc.setValue(Y);this.selection.moveCursorTo(0,0);this.selection.clearSelection();this.$resetRowCache(0);this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];this.getUndoManager().reset();};this.getValue=this.toString=function(){return this.doc.getValue();};this.getSelection=function(){return this.selection;};this.getState=function(Y){return this.bgTokenizer.getState(Y);};this.getTokens=function(Y){return this.bgTokenizer.getTokens(Y);};this.getTokenAt=function(d,a){var b=this.bgTokenizer.getTokens(d);var Z,e=0;if(a==null){Y=b.length-1;e=this.getLine(d).length;}else{for(var Y=0;Y<b.length;Y++){e+=b[Y].value.length;if(e>=a){break;}}}Z=b[Y];if(!Z){return null;}Z.index=Y;Z.start=e-Z.value.length;return Z;};this.highlight=function(Z){if(!this.$searchHighlight){var Y=new K(null,"ace_selected_word","text");this.$searchHighlight=this.addDynamicMarker(Y);}this.$searchHighlight.setRegexp(Z);};this.setUndoManager=function(Z){this.$undoManager=Z;this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];if(this.$informUndoManager){this.$informUndoManager.cancel();}if(Z){var Y=this;this.$syncInformUndoManager=function(){Y.$informUndoManager.cancel();if(Y.$deltasFold.length){Y.$deltas.push({group:"fold",deltas:Y.$deltasFold});Y.$deltasFold=[];}if(Y.$deltasDoc.length){Y.$deltas.push({group:"doc",deltas:Y.$deltasDoc});Y.$deltasDoc=[];}if(Y.$deltas.length>0){Z.execute({action:"aceupdate",args:[Y.$deltas,Y]});}Y.$deltas=[];};this.$informUndoManager=B.deferredCall(this.$syncInformUndoManager);}};this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}};this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager;},this.getTabString=function(){if(this.getUseSoftTabs()){return B.stringRepeat(" ",this.getTabSize());}else{return"\t";}};this.$useSoftTabs=true;this.setUseSoftTabs=function(Y){if(this.$useSoftTabs===Y){return ;}this.$useSoftTabs=Y;};this.getUseSoftTabs=function(){return this.$useSoftTabs;};this.$tabSize=4;this.setTabSize=function(Y){if(isNaN(Y)||this.$tabSize===Y){return ;}this.$modified=true;this.$rowLengthCache=[];this.$tabSize=Y;this._emit("changeTabSize");};this.getTabSize=function(){return this.$tabSize;};this.isTabStop=function(Y){return this.$useSoftTabs&&(Y.column%this.$tabSize==0);};this.$overwrite=false;this.setOverwrite=function(Y){if(this.$overwrite==Y){return ;}this.$overwrite=Y;this._emit("changeOverwrite");};this.getOverwrite=function(){return this.$overwrite;};this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite);};this.getBreakpoints=function(){return this.$breakpoints;};this.setBreakpoints=function(Z){this.$breakpoints=[];for(var Y=0;Y<Z.length;Y++){this.$breakpoints[Z[Y]]=true;}this._emit("changeBreakpoint",{});};this.clearBreakpoints=function(){this.$breakpoints=[];this._emit("changeBreakpoint",{});};this.setBreakpoint=function(Y){this.$breakpoints[Y]=true;this._emit("changeBreakpoint",{});};this.clearBreakpoint=function(Y){delete this.$breakpoints[Y];this._emit("changeBreakpoint",{});};this.addMarker=function(a,b,c,Z){var d=this.$markerId++;var Y={range:a,type:c||"line",renderer:typeof c=="function"?c:null,clazz:b,inFront:!!Z,id:d};if(Z){this.$frontMarkers[d]=Y;this._emit("changeFrontMarker");}else{this.$backMarkers[d]=Y;this._emit("changeBackMarker");}return d;};this.addDynamicMarker=function(Y,Z){if(!Y.update){return ;}var a=this.$markerId++;Y.id=a;Y.inFront=!!Z;if(Z){this.$frontMarkers[a]=Y;this._emit("changeFrontMarker");}else{this.$backMarkers[a]=Y;this._emit("changeBackMarker");}return Y;};this.removeMarker=function(Z){var Y=this.$frontMarkers[Z]||this.$backMarkers[Z];if(!Y){return ;}var a=Y.inFront?this.$frontMarkers:this.$backMarkers;if(Y){delete (a[Z]);this._emit(Y.inFront?"changeFrontMarker":"changeBackMarker");}};this.getMarkers=function(Y){return Y?this.$frontMarkers:this.$backMarkers;};this.setAnnotations=function(a){this.$annotations={};for(var Z=0;Z<a.length;Z++){var Y=a[Z];var b=Y.row;if(this.$annotations[b]){this.$annotations[b].push(Y);}else{this.$annotations[b]=[Y];}}this._emit("changeAnnotation",{});};this.getAnnotations=function(){return this.$annotations||{};};this.clearAnnotations=function(){this.$annotations={};this._emit("changeAnnotation",{});};this.$detectNewLine=function(Z){var Y=Z.match(/^.*?(\r?\n)/m);if(Y){this.$autoNewLine=Y[1];}else{this.$autoNewLine="\n";}};this.getWordRange=function(d,c){var a=this.getLine(d);var Y=false;if(c>0){Y=!!a.charAt(c-1).match(this.tokenRe);}if(!Y){Y=!!a.charAt(c).match(this.tokenRe);}if(Y){var b=this.tokenRe;}else{if(/^\s+$/.test(a.slice(c-1,c+1))){var b=/\s/;}else{var b=this.nonTokenRe;}}var e=c;if(e>0){do{e--;}while(e>=0&&a.charAt(e).match(b));e++;}var Z=c;while(Z<a.length&&a.charAt(Z).match(b)){Z++;}return new F(d,e,d,Z);};this.getAWordRange=function(a,Z){var b=this.getWordRange(a,Z);var Y=this.getLine(b.end.row);while(Y.charAt(b.end.column).match(/[ \t]/)){b.end.column+=1;}return b;};this.setNewLineMode=function(Y){this.doc.setNewLineMode(Y);};this.getNewLineMode=function(){return this.doc.getNewLineMode();};this.$useWorker=true;this.setUseWorker=function(Y){if(this.$useWorker==Y){return ;}this.$useWorker=Y;this.$stopWorker();if(Y){this.$startWorker();}};this.getUseWorker=function(){return this.$useWorker;};this.onReloadTokenizer=function(Z){var Y=Z.data;this.bgTokenizer.start(Y.first);this._emit("tokenizerUpdate",Z);};this.$modes={};this._loadMode=function(d,f){if(!this.$modes["null"]){this.$modes["null"]=this.$modes["ace/mode/text"]=new H();}if(this.$modes[d]){return f(this.$modes[d]);}var Y=this;var b;try{b=G(d);}catch(c){}if(b&&b.Mode){return Z(b);}if(!this.$mode){this.$setModePlaceholder();}a(d,function(){G([d],Z);});function Z(e){if(Y.$modes[d]){return f(Y.$modes[d]);}Y.$modes[d]=new e.Mode();Y.$modes[d].$id=d;Y._emit("loadmode",{name:d,mode:Y.$modes[d]});f(Y.$modes[d]);}function a(e,g){if(!E.get("packaged")){return g();}M.loadScript(E.moduleUrl(e,"mode"),g);}};this.$setModePlaceholder=function(){this.$mode=this.$modes["null"];var Z=this.$mode.getTokenizer();if(!this.bgTokenizer){this.bgTokenizer=new D(Z);var Y=this;this.bgTokenizer.addEventListener("update",function(a){Y._emit("tokenizerUpdate",a);});}else{this.bgTokenizer.setTokenizer(Z);}this.bgTokenizer.setDocument(this.getDocument());this.tokenRe=this.$mode.tokenRe;this.nonTokenRe=this.$mode.nonTokenRe;};this.$mode=null;this.$modeId=null;this.setMode=function(b){b=b||"null";if(typeof b==="string"){if(this.$modeId==b){return ;}this.$modeId=b;var Y=this;this._loadMode(b,function(c){if(Y.$modeId!==b){return ;}Y.setMode(c);});return ;}if(this.$mode===b){return ;}this.$mode=b;this.$modeId=b.$id;this.$stopWorker();if(this.$useWorker){this.$startWorker();}var a=b.getTokenizer();if(a.addEventListener!==undefined){var Z=this.onReloadTokenizer.bind(this);a.addEventListener("update",Z);}if(!this.bgTokenizer){this.bgTokenizer=new D(a);var Y=this;this.bgTokenizer.addEventListener("update",function(c){Y._emit("tokenizerUpdate",c);});}else{this.bgTokenizer.setTokenizer(a);}this.bgTokenizer.setDocument(this.getDocument());this.bgTokenizer.start(0);this.tokenRe=b.tokenRe;this.nonTokenRe=b.nonTokenRe;this.$setFolding(b.foldingRules);this._emit("changeMode");};this.$stopWorker=function(){if(this.$worker){this.$worker.terminate();}this.$worker=null;};this.$startWorker=function(){if(typeof Worker!=="undefined"&&!G.noWorker){try{this.$worker=this.$mode.createWorker(this);}catch(Y){console.log("Could not load worker");console.log(Y);this.$worker=null;}}else{this.$worker=null;}};this.getMode=function(){return this.$mode;};this.$scrollTop=0;this.setScrollTop=function(Y){Y=Math.round(Math.max(0,Y));if(this.$scrollTop===Y){return ;}this.$scrollTop=Y;this._emit("changeScrollTop",Y);};this.getScrollTop=function(){return this.$scrollTop;};this.$scrollLeft=0;this.setScrollLeft=function(Y){Y=Math.round(Math.max(0,Y));if(this.$scrollLeft===Y){return ;}this.$scrollLeft=Y;this._emit("changeScrollLeft",Y);};this.getScrollLeft=function(){return this.$scrollLeft;};this.getScreenWidth=function(){this.$computeWidth();return this.screenWidth;};this.$computeWidth=function(Z){if(this.$modified||Z){this.$modified=false;if(this.$useWrapMode){return this.screenWidth=this.$wrapLimit;}var g=this.doc.getAllLines();var Y=this.$rowLengthCache;var a=0;var f=0;var e=this.$foldData[f];var c=e?e.start.row:Infinity;var d=g.length;for(var b=0;b<d;b++){if(b>c){b=e.end.row+1;if(b>=d){break;}e=this.$foldData[f++];c=e?e.start.row:Infinity;}if(Y[b]==null){Y[b]=this.$getStringScreenWidth(g[b])[0];}if(Y[b]>a){a=Y[b];}}this.screenWidth=a;}};this.getLine=function(Y){return this.doc.getLine(Y);};this.getLines=function(Z,Y){return this.doc.getLines(Z,Y);};this.getLength=function(){return this.doc.getLength();};this.getTextRange=function(Y){return this.doc.getTextRange(Y||this.selection.getRange());};this.insert=function(Y,Z){return this.doc.insert(Y,Z);};this.remove=function(Y){return this.doc.remove(Y);};this.undoChanges=function(b,a){if(!b.length){return ;}this.$fromUndo=true;var Y=null;for(var Z=b.length-1;Z!=-1;Z--){var c=b[Z];if(c.group=="doc"){this.doc.revertDeltas(c.deltas);Y=this.$getUndoSelection(c.deltas,true,Y);}else{c.deltas.forEach(function(d){this.addFolds(d.folds);},this);}}this.$fromUndo=false;Y&&this.$undoSelect&&!a&&this.selection.setSelectionRange(Y);return Y;};this.redoChanges=function(b,a){if(!b.length){return ;}this.$fromUndo=true;var Y=null;for(var Z=0;Z<b.length;Z++){var c=b[Z];if(c.group=="doc"){this.doc.applyDeltas(c.deltas);Y=this.$getUndoSelection(c.deltas,false,Y);}}this.$fromUndo=false;Y&&this.$undoSelect&&!a&&this.selection.setSelectionRange(Y);return Y;};this.setUndoSelect=function(Y){this.$undoSelect=Y;};this.$getUndoSelection=function(Y,Z,f){function c(j){var i=j.action=="insertText"||j.action=="insertLines";return Z?!i:i;}var h=Y[0];var b,g;var d=false;if(c(h)){b=h.range.clone();d=true;}else{b=F.fromPoints(h.range.start,h.range.start);d=false;}for(var a=1;a<Y.length;a++){h=Y[a];if(c(h)){g=h.range.start;if(b.compare(g.row,g.column)==-1){b.setStart(h.range.start);}g=h.range.end;if(b.compare(g.row,g.column)==1){b.setEnd(h.range.end);}d=true;}else{g=h.range.start;if(b.compare(g.row,g.column)==-1){b=F.fromPoints(h.range.start,h.range.start);}d=false;}}if(f!=null){var e=f.compareRange(b);if(e==1){b.setStart(f.start);}else{if(e==-1){b.setEnd(f.end);}}}return b;},this.replace=function(Y,Z){return this.doc.replace(Y,Z);};this.moveText=function(c,d){var e=this.getTextRange(c);this.remove(c);var f=d.row;var b=d.column;if(!c.isMultiLine()&&c.start.row==f&&c.end.column<b){b-=e.length;}if(c.isMultiLine()&&c.end.row<f){var g=this.doc.$split(e);f-=g.length-1;}var Z=f+c.end.row-c.start.row;var a=c.isMultiLine()?c.end.column:b+c.end.column-c.start.column;var Y=new F(f,b,Z,a);this.insert(Y.start,e);return Y;};this.indentRows=function(Z,Y,b){b=b.replace(/\t/g,this.getTabString());for(var a=Z;a<=Y;a++){this.insert({row:a,column:0},b);}};this.outdentRows=function(a){var e=a.collapseRows();var Z=new F(0,0,0,0);var d=this.getTabSize();for(var c=e.start.row;c<=e.end.row;++c){var Y=this.getLine(c);Z.start.row=c;Z.end.row=c;for(var b=0;b<d;++b){if(Y.charAt(b)!=" "){break;}}if(b<d&&Y.charAt(b)=="\t"){Z.start.column=b;Z.end.column=b+1;}else{Z.start.column=0;Z.end.column=b;}this.remove(Z);}};this.moveLinesUp=function(a,Y){if(a<=0){return 0;}var Z=this.doc.removeLines(a,Y);this.doc.insertLines(a-1,Z);return -1;};this.moveLinesDown=function(a,Y){if(Y>=this.doc.getLength()-1){return 0;}var Z=this.doc.removeLines(a,Y);this.doc.insertLines(a+1,Z);return 1;};this.duplicateLines=function(b,a){var b=this.$clipRowToDocument(b);var a=this.$clipRowToDocument(a);var Y=this.getLines(b,a);this.doc.insertLines(b,Y);var Z=a-b+1;return Z;};this.$clipRowToDocument=function(Y){return Math.max(0,Math.min(Y,this.doc.getLength()-1));};this.$clipColumnToRow=function(Z,Y){if(Y<0){return 0;}return Math.min(this.doc.getLine(Z).length,Y);};this.$clipPositionToDocument=function(a,Z){Z=Math.max(0,Z);if(a<0){a=0;Z=0;}else{var Y=this.doc.getLength();if(a>=Y){a=Y-1;Z=this.doc.getLine(Y-1).length;}else{Z=Math.min(this.doc.getLine(a).length,Z);}}return{row:a,column:Z};};this.$clipRangeToDocument=function(Z){if(Z.start.row<0){Z.start.row=0;Z.start.column=0;}else{Z.start.column=this.$clipColumnToRow(Z.start.row,Z.start.column);}var Y=this.doc.getLength()-1;if(Z.end.row>Y){Z.end.row=Y;Z.end.column=this.doc.getLine(Y).length;}else{Z.end.column=this.$clipColumnToRow(Z.end.row,Z.end.column);}return Z;};this.$wrapLimit=80;this.$useWrapMode=false;this.$wrapLimitRange={min:null,max:null};this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a;this.$modified=true;this.$resetRowCache(0);if(a){var Y=this.getLength();this.$wrapData=[];for(var Z=0;Z<Y;Z++){this.$wrapData.push([]);}this.$updateWrapData(0,Y-1);}this._emit("changeWrapMode");}};this.getUseWrapMode=function(){return this.$useWrapMode;};this.setWrapLimitRange=function(Z,Y){if(this.$wrapLimitRange.min!==Z||this.$wrapLimitRange.max!==Y){this.$wrapLimitRange.min=Z;this.$wrapLimitRange.max=Y;this.$modified=true;this._emit("changeWrapMode");}};this.adjustWrapLimit=function(Z){var Y=this.$constrainWrapLimit(Z);if(Y!=this.$wrapLimit&&Y>0){this.$wrapLimit=Y;this.$modified=true;if(this.$useWrapMode){this.$updateWrapData(0,this.getLength()-1);this.$resetRowCache(0);this._emit("changeWrapLimit");}return true;}return false;};this.$constrainWrapLimit=function(Z){var a=this.$wrapLimitRange.min;if(a){Z=Math.max(a,Z);}var Y=this.$wrapLimitRange.max;if(Y){Z=Math.min(Y,Z);}return Math.max(1,Z);};this.getWrapLimit=function(){return this.$wrapLimit;};this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max};};this.$updateInternalDataOnChange=function(j){var f=this.$useWrapMode;var h;var c=j.data.action;var b=j.data.range.start.row;var p=j.data.range.end.row;var Z=j.data.range.start;var d=j.data.range.end;var Y=null;if(c.indexOf("Lines")!=-1){if(c=="insertLines"){p=b+(j.data.lines.length);}else{p=b;}h=j.data.lines?j.data.lines.length:p-b;}else{h=p-b;}if(h!=0){if(c.indexOf("remove")!=-1){this[f?"$wrapData":"$rowLengthCache"].splice(b,h);var a=this.$foldData;Y=this.getFoldsInRange(j.data.range);this.removeFolds(Y);var n=this.getFoldLine(d.row);var o=0;if(n){n.addRemoveChars(d.row,d.column,Z.column-d.column);n.shiftRow(-h);var m=this.getFoldLine(b);if(m&&m!==n){m.merge(n);n=m;}o=a.indexOf(n)+1;}for(o;o<a.length;o++){var n=a[o];if(n.start.row>=d.row){n.shiftRow(-h);}}p=b;}else{var k;if(f){k=[b,0];for(var g=0;g<h;g++){k.push([]);}this.$wrapData.splice.apply(this.$wrapData,k);}else{k=Array(h);k.unshift(b,0);this.$rowLengthCache.splice.apply(this.$rowLengthCache,k);}var a=this.$foldData;var n=this.getFoldLine(b);var o=0;if(n){var l=n.range.compareInside(Z.row,Z.column);if(l==0){n=n.split(Z.row,Z.column);n.shiftRow(h);n.addRemoveChars(p,0,d.column-Z.column);}else{if(l==-1){n.addRemoveChars(b,0,d.column-Z.column);n.shiftRow(h);}}o=a.indexOf(n)+1;}for(o;o<a.length;o++){var n=a[o];if(n.start.row>=b){n.shiftRow(h);}}}}else{h=Math.abs(j.data.range.start.column-j.data.range.end.column);if(c.indexOf("remove")!=-1){Y=this.getFoldsInRange(j.data.range);this.removeFolds(Y);h=-h;}var n=this.getFoldLine(b);if(n){n.addRemoveChars(b,Z.column,h);}}if(f&&this.$wrapData.length!=this.doc.getLength()){console.error("doc.getLength() and $wrapData.length have to be the same!");}if(f){this.$updateWrapData(b,p);}else{this.$updateRowLengthCache(b,p);}return Y;};this.$updateRowLengthCache=function(a,Z,Y){this.$rowLengthCache[a]=null;this.$rowLengthCache[Z]=null;};this.$updateWrapData=function(Y,e){var g=this.doc.getAllLines();var a=this.getTabSize();var Z=this.$wrapData;var f=this.$wrapLimit;var b;var c;var d=Y;e=Math.min(e,g.length-1);while(d<=e){c=this.getFoldLine(d,c);if(!c){b=this.$getDisplayTokens(B.stringTrimRight(g[d]));Z[d]=this.$computeWrapSplits(b,f,a);d++;}else{b=[];c.walk(function(n,m,l,h){var j;if(n){j=this.$getDisplayTokens(n,b.length);j[0]=V;for(var k=1;k<j.length;k++){j[k]=P;}}else{j=this.$getDisplayTokens(g[m].substring(h,l),b.length);}b=b.concat(j);}.bind(this),c.end.row,g[c.end.row].length+1);while(b.length!=0&&b[b.length-1]>=T){b.pop();}Z[c.start.row]=this.$computeWrapSplits(b,f,a);d=c.end.row+1;}}};var X=1,W=2,V=3,P=4,S=9,T=10,U=11,Q=12;this.$computeWrapSplits=function(c,g){if(c.length==0){return[];}var e=[];var Z=c.length;var b=0,Y=0;function f(j){var i=c.slice(b,j);var h=i.length;i.join("").replace(/12/g,function(){h-=1;}).replace(/2/g,function(){h-=1;});Y+=h;e.push(Y);b=j;}while(Z-b>g){var d=b+g;if(c[d]>=T){while(c[d]>=T){d++;}f(d);continue;}if(c[d]==V||c[d]==P){for(d;d!=b-1;d--){if(c[d]==V){break;}}if(d>b){f(d);continue;}d=b+g;for(d;d<c.length;d++){if(c[d]!=P){break;}}if(d==c.length){break;}f(d);continue;}var a=Math.max(d-10,b-1);while(d>a&&c[d]<V){d--;}while(d>a&&c[d]==S){d--;}if(d>a){f(++d);continue;}d=b+g;f(d);}return e;};this.$getDisplayTokens=function(d,b){var Y=[];var a;b=b||0;for(var Z=0;Z<d.length;Z++){var f=d.charCodeAt(Z);if(f==9){a=this.getScreenTabSize(Y.length+b);Y.push(U);for(var e=1;e<a;e++){Y.push(Q);}}else{if(f==32){Y.push(T);}else{if((f>39&&f<48)||(f>57&&f<64)){Y.push(S);}else{if(f>=4352&&R(f)){Y.push(X,W);}else{Y.push(X);}}}}}return Y;};this.$getStringScreenWidth=function(a,d,Y){if(d==0){return[0,0];}if(d==null){d=Infinity;}Y=Y||0;var b,Z;for(Z=0;Z<a.length;Z++){b=a.charCodeAt(Z);if(b==9){Y+=this.getScreenTabSize(Y);}else{if(b>=4352&&R(b)){Y+=2;}else{Y+=1;}}if(Y>d){break;}}return[Y,Z];};this.getRowLength=function(Y){if(!this.$useWrapMode||!this.$wrapData[Y]){return 1;}else{return this.$wrapData[Y].length+1;}};this.getRowHeight=function(Y,Z){return this.getRowLength(Z)*Y.lineHeight;};this.getScreenLastRowColumn=function(Y){var Z=this.screenToDocumentPosition(Y,Number.MAX_VALUE);return this.documentToScreenColumn(Z.row,Z.column);};this.getDocumentLastRowColumn=function(Y,a){var Z=this.documentToScreenRow(Y,a);return this.getScreenLastRowColumn(Z);};this.getDocumentLastRowColumnPosition=function(Y,a){var Z=this.documentToScreenRow(Y,a);return this.screenToDocumentPosition(Z,Number.MAX_VALUE/10);};this.getRowSplitData=function(Y){if(!this.$useWrapMode){return undefined;}else{return this.$wrapData[Y];}};this.getScreenTabSize=function(Y){return this.$tabSize-Y%this.$tabSize;};this.screenToDocumentRow=function(Z,Y){return this.screenToDocumentPosition(Z,Y).row;};this.screenToDocumentColumn=function(Z,Y){return this.screenToDocumentPosition(Z,Y).column;};this.screenToDocumentPosition=function(g,h){if(g<0){return{row:0,column:0};}var p;var a=0;var d=0;var b;var o=0;var c=0;var Z=this.$screenRowCache;var f=this.$getRowCacheIndex(Z,g);var n=Z[f];var m=this.$docRowCache[f];if(0<f&&f<Z.length){var o=Z[f];var a=this.$docRowCache[f];var Y=g>o||(g==o&&f==Z.length-1);}else{var Y=true;}var j=this.getLength()-1;var k=this.getNextFoldLine(a);var e=k?k.start.row:Infinity;while(o<=g){c=this.getRowLength(a);if(o+c-1>=g||a>=j){break;}else{o+=c;a++;if(a>e){a=k.end.row+1;k=this.getNextFoldLine(a,k);e=k?k.start.row:Infinity;}}if(Y){this.$docRowCache.push(a);this.$screenRowCache.push(o);}}if(k&&k.start.row<=a){p=this.getFoldDisplayLine(k);a=k.start.row;}else{if(o+c<=g||a>j){return{row:j,column:this.getLine(j).length};}else{p=this.getLine(a);k=null;}}if(this.$useWrapMode){var l=this.$wrapData[a];if(l){b=l[g-o];if(g>o&&l.length){d=l[g-o-1]||l[l.length-1];p=p.substring(d);}}}d+=this.$getStringScreenWidth(p,h)[1];if(this.$useWrapMode&&d>=b){d=b-1;}if(k){return k.idxToPosition(d);}return{row:a,column:d};};this.documentToScreenPosition=function(b,c){if(typeof c==="undefined"){var l=this.$clipPositionToDocument(b.row,b.column);}else{l=this.$clipPositionToDocument(b,c);}b=l.row;c=l.column;var g=0;var f=null;var h=null;h=this.getFoldAt(b,c,1);if(h){b=h.start.row;c=h.start.column;}var j,o=0;var a=this.$docRowCache;var e=this.$getRowCacheIndex(a,b);if(0<e&&e<a.length){var o=a[e];var g=this.$screenRowCache[e];var Z=b>o||(b==o&&e==a.length-1);}else{var Z=true;}var m=this.getNextFoldLine(o);var d=m?m.start.row:Infinity;while(o<b){if(o>=d){j=m.end.row+1;if(j>b){break;}m=this.getNextFoldLine(j,m);d=m?m.start.row:Infinity;}else{j=o+1;}g+=this.getRowLength(o);o=j;if(Z){this.$docRowCache.push(o);this.$screenRowCache.push(g);}}var Y="";if(m&&o>=d){Y=this.getFoldDisplayLine(m,b,c);f=m.start.row;}else{Y=this.getLine(b).substring(0,c);f=b;}if(this.$useWrapMode){var n=this.$wrapData[f];var k=0;while(Y.length>=n[k]){g++;k++;}Y=Y.substring(n[k-1]||0,Y.length);}return{row:g,column:this.$getStringScreenWidth(Y)[0]};};this.documentToScreenColumn=function(Z,Y){return this.documentToScreenPosition(Z,Y).column;};this.documentToScreenRow=function(Y,Z){return this.documentToScreenPosition(Y,Z).row;};this.getScreenLength=function(){var d=0;var Z=null;if(!this.$useWrapMode){d=this.getLength();var b=this.$foldData;for(var a=0;a<b.length;a++){Z=b[a];d-=Z.end.row-Z.start.row;}}else{var c=this.$wrapData.length;var e=0,a=0;var Z=this.$foldData[a++];var Y=Z?Z.start.row:Infinity;while(e<c){d+=this.$wrapData[e].length+1;e++;if(e>Y){e=Z.end.row+1;Z=this.$foldData[a++];Y=Z?Z.start.row:Infinity;}}}return d;};function R(Y){if(Y<4352){return false;}return Y>=4352&&Y<=4447||Y>=4515&&Y<=4519||Y>=4602&&Y<=4607||Y>=9001&&Y<=9002||Y>=11904&&Y<=11929||Y>=11931&&Y<=12019||Y>=12032&&Y<=12245||Y>=12272&&Y<=12283||Y>=12288&&Y<=12350||Y>=12353&&Y<=12438||Y>=12441&&Y<=12543||Y>=12549&&Y<=12589||Y>=12593&&Y<=12686||Y>=12688&&Y<=12730||Y>=12736&&Y<=12771||Y>=12784&&Y<=12830||Y>=12832&&Y<=12871||Y>=12880&&Y<=13054||Y>=13056&&Y<=19903||Y>=19968&&Y<=42124||Y>=42128&&Y<=42182||Y>=43360&&Y<=43388||Y>=44032&&Y<=55203||Y>=55216&&Y<=55238||Y>=55243&&Y<=55291||Y>=63744&&Y<=64255||Y>=65040&&Y<=65049||Y>=65072&&Y<=65106||Y>=65108&&Y<=65126||Y>=65128&&Y<=65131||Y>=65281&&Y<=65376||Y>=65504&&Y<=65510;}}).call(A.prototype);G("./edit_session/folding").Folding.call(A.prototype);G("./edit_session/bracket_match").BracketMatch.call(A.prototype);I.EditSession=A;});define("ace/config",["require","exports","module","ace/lib/lang"],function(D,A,E){var G=D("./lib/lang");var F=(function(){return this;})();var C={packaged:false,workerPath:"",modePath:"",themePath:"",suffix:".js",$moduleUrls:{}};A.get=function(H){if(!C.hasOwnProperty(H)){throw new Error("Unknown config key: "+H);}return C[H];};A.set=function(H,I){if(!C.hasOwnProperty(H)){throw new Error("Unknown config key: "+H);}C[H]=I;};A.all=function(){return G.copyObject(C);};A.moduleUrl=function(I,H){if(C.$moduleUrls[I]){return C.$moduleUrls[I];}var K=I.split("/");H=H||K[K.length-2]||"";var J=K[K.length-1].replace(H,"").replace(/(^[\-_])|([\-_]$)/,"");if(!J&&K.length>1){J=K[K.length-2];}return this.get(H+"Path")+"/"+H+"-"+J+this.get("suffix");};A.setModuleUrl=function(H,I){return C.$moduleUrls[H]=I;};A.init=function(){C.packaged=D.packaged||E.packaged||(F.define&&define.packaged);if(!F.document){return"";}var I={};var K="";var M=document.getElementsByTagName("script");for(var P=0;P<M.length;P++){var R=M[P];var H=R.src||R.getAttribute("src");if(!H){continue;}var O=R.attributes;for(var N=0,L=O.length;N<L;N++){var Q=O[N];if(Q.name.indexOf("data-ace-")===0){I[B(Q.name.replace(/^data-ace-/,""))]=Q.value;}}var J=H.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);if(J){K=J[1];}}if(K){I.base=I.base||K;I.packaged=true;}I.workerPath=I.workerPath||I.base;I.modePath=I.modePath||I.base;I.themePath=I.themePath||I.base;delete I.base;for(var S in I){if(typeof I[S]!=="undefined"){A.set(S,I[S]);}}};function B(H){return H.replace(/-(.)/g,function(I,J){return J.toUpperCase();});}});define("ace/lib/net",["require","exports","module"],function(C,B,D){B.get=function(E,G){var F=B.createXhr();F.open("GET",E,true);F.onreadystatechange=function(H){if(F.readyState===4){G(F.responseText);}};F.send(null);};var A=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];B.createXhr=function(){var H,E,F;if(typeof XMLHttpRequest!=="undefined"){return new XMLHttpRequest();}else{for(E=0;E<3;E++){F=A[E];try{H=new ActiveXObject(F);}catch(G){}if(H){A=[F];break;}}}if(!H){throw new Error("createXhr(): XMLHttpRequest not available");}return H;};B.loadScript=function(G,H){var E=document.getElementsByTagName("head")[0];var F=document.createElement("script");F.src=G;E.appendChild(F);F.onload=H;};});define("ace/lib/event_emitter",["require","exports","module"],function(B,A,C){var D={};D._emit=D._dispatchEvent=function(E,I){this._eventRegistry=this._eventRegistry||{};this._defaultHandlers=this._defaultHandlers||{};var H=this._eventRegistry[E]||[];var F=this._defaultHandlers[E];if(!H.length&&!F){return ;}I=I||{};I.type=E;if(!I.stopPropagation){I.stopPropagation=function(){this.propagationStopped=true;};}if(!I.preventDefault){I.preventDefault=function(){this.defaultPrevented=true;};}for(var G=0;G<H.length;G++){H[G](I);if(I.propagationStopped){break;}}if(F&&!I.defaultPrevented){return F(I);}};D.setDefaultHandler=function(E,F){this._defaultHandlers=this._defaultHandlers||{};if(this._defaultHandlers[E]){throw new Error("The default handler for '"+E+"' is already set");}this._defaultHandlers[E]=F;};D.on=D.addEventListener=function(E,G){this._eventRegistry=this._eventRegistry||{};var F=this._eventRegistry[E];if(!F){var F=this._eventRegistry[E]=[];}if(F.indexOf(G)==-1){F.push(G);}};D.removeListener=D.removeEventListener=function(E,H){this._eventRegistry=this._eventRegistry||{};var G=this._eventRegistry[E];if(!G){return ;}var F=G.indexOf(H);if(F!==-1){G.splice(F,1);}};D.removeAllListeners=function(E){if(this._eventRegistry){this._eventRegistry[E]=[];}};A.EventEmitter=D;});define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(B,A,C){var F=B("./lib/oop");var H=B("./lib/lang");var E=B("./lib/event_emitter").EventEmitter;var G=B("./range").Range;var D=function(J){this.session=J;this.doc=J.getDocument();this.clearSelection();this.lead=this.selectionLead=this.doc.createAnchor(0,0);this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var I=this;this.lead.on("change",function(K){I._emit("changeCursor");if(!I.$isEmpty){I._emit("changeSelection");}if(!I.$keepDesiredColumnOnChange&&K.old.column!=K.value.column){I.$desiredColumn=null;}});this.selectionAnchor.on("change",function(){if(!I.$isEmpty){I._emit("changeSelection");}});};(function(){F.implement(this,E);this.isEmpty=function(){return(this.$isEmpty||(this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column));};this.isMultiLine=function(){if(this.isEmpty()){return false;}return this.getRange().isMultiLine();};this.getCursor=function(){return this.lead.getPosition();};this.setSelectionAnchor=function(J,I){this.anchor.setPosition(J,I);if(this.$isEmpty){this.$isEmpty=false;this._emit("changeSelection");}};this.getSelectionAnchor=function(){if(this.$isEmpty){return this.getSelectionLead();}else{return this.anchor.getPosition();}};this.getSelectionLead=function(){return this.lead.getPosition();};this.shiftSelection=function(K){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+K);return ;}var J=this.getSelectionAnchor();var I=this.getSelectionLead();var L=this.isBackwards();if(!L||J.column!==0){this.setSelectionAnchor(J.row,J.column+K);}if(L||I.column!==0){this.$moveSelection(function(){this.moveCursorTo(I.row,I.column+K);});}};this.isBackwards=function(){var J=this.anchor;var I=this.lead;return(J.row>I.row||(J.row==I.row&&J.column>I.column));};this.getRange=function(){var J=this.anchor;var I=this.lead;if(this.isEmpty()){return G.fromPoints(I,I);}if(this.isBackwards()){return G.fromPoints(I,J);}else{return G.fromPoints(J,I);}};this.clearSelection=function(){if(!this.$isEmpty){this.$isEmpty=true;this._emit("changeSelection");}};this.selectAll=function(){var I=this.doc.getLength()-1;this.setSelectionAnchor(0,0);this.moveCursorTo(I,this.doc.getLine(I).length);};this.setRange=this.setSelectionRange=function(I,J){if(J){this.setSelectionAnchor(I.end.row,I.end.column);this.selectTo(I.start.row,I.start.column);}else{this.setSelectionAnchor(I.start.row,I.start.column);this.selectTo(I.end.row,I.end.column);}this.$desiredColumn=null;};this.$moveSelection=function(I){var J=this.lead;if(this.$isEmpty){this.setSelectionAnchor(J.row,J.column);}I.call(this);};this.selectTo=function(J,I){this.$moveSelection(function(){this.moveCursorTo(J,I);});};this.selectToPosition=function(I){this.$moveSelection(function(){this.moveCursorToPosition(I);});};this.selectUp=function(){this.$moveSelection(this.moveCursorUp);};this.selectDown=function(){this.$moveSelection(this.moveCursorDown);};this.selectRight=function(){this.$moveSelection(this.moveCursorRight);};this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft);};this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart);};this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd);};this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd);};this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart);};this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight);};this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft);};this.getWordRange=function(K,I){if(typeof I=="undefined"){var J=K||this.lead;K=J.row;I=J.column;}return this.session.getWordRange(K,I);};this.selectWord=function(){this.setSelectionRange(this.getWordRange());};this.selectAWord=function(){var J=this.getCursor();var I=this.session.getAWordRange(J.row,J.column);this.setSelectionRange(I);};this.getLineRange=function(M,K){var I=typeof M=="number"?M:this.lead.row;var J;var L=this.session.getFoldLine(I);if(L){I=L.start.row;J=L.end.row;}else{J=I;}if(K){return new G(I,0,J,this.session.getLine(J).length);}else{return new G(I,0,J+1,0);}};this.selectLine=function(){this.setSelectionRange(this.getLineRange());};this.moveCursorUp=function(){this.moveCursorBy(-1,0);};this.moveCursorDown=function(){this.moveCursorBy(1,0);};this.moveCursorLeft=function(){var K=this.lead.getPosition(),I;if(I=this.session.getFoldAt(K.row,K.column,-1)){this.moveCursorTo(I.start.row,I.start.column);}else{if(K.column==0){if(K.row>0){this.moveCursorTo(K.row-1,this.doc.getLine(K.row-1).length);}}else{var J=this.session.getTabSize();if(this.session.isTabStop(K)&&this.doc.getLine(K.row).slice(K.column-J,K.column).split(" ").length-1==J){this.moveCursorBy(0,-J);}else{this.moveCursorBy(0,-1);}}}};this.moveCursorRight=function(){var K=this.lead.getPosition(),I;if(I=this.session.getFoldAt(K.row,K.column,1)){this.moveCursorTo(I.end.row,I.end.column);}else{if(this.lead.column==this.doc.getLine(this.lead.row).length){if(this.lead.row<this.doc.getLength()-1){this.moveCursorTo(this.lead.row+1,0);}}else{var J=this.session.getTabSize();var K=this.lead;if(this.session.isTabStop(K)&&this.doc.getLine(K.row).slice(K.column,K.column+J).split(" ").length-1==J){this.moveCursorBy(0,J);}else{this.moveCursorBy(0,1);}}}};this.moveCursorLineStart=function(){var N=this.lead.row;var K=this.lead.column;var J=this.session.documentToScreenRow(N,K);var I=this.session.screenToDocumentPosition(J,0);var L=this.session.getDisplayLine(N,null,I.row,I.column);var M=L.match(/^\s*/);if(M[0].length==K){this.moveCursorTo(I.row,I.column);}else{this.moveCursorTo(I.row,I.column+M[0].length);}};this.moveCursorLineEnd=function(){var J=this.lead;var I=this.session.getDocumentLastRowColumnPosition(J.row,J.column);this.moveCursorTo(I.row,I.column);};this.moveCursorFileEnd=function(){var J=this.doc.getLength()-1;var I=this.doc.getLine(J).length;this.moveCursorTo(J,I);};this.moveCursorFileStart=function(){this.moveCursorTo(0,0);};this.moveCursorLongWordRight=function(){var N=this.lead.row;var L=this.lead.column;var I=this.doc.getLine(N);var M=I.substring(L);var K;this.session.nonTokenRe.lastIndex=0;this.session.tokenRe.lastIndex=0;var J=this.session.getFoldAt(N,L,1);if(J){this.moveCursorTo(J.end.row,J.end.column);return ;}if(K=this.session.nonTokenRe.exec(M)){L+=this.session.nonTokenRe.lastIndex;this.session.nonTokenRe.lastIndex=0;M=I.substring(L);}if(L>=I.length){this.moveCursorTo(N,I.length);this.moveCursorRight();if(N<this.doc.getLength()-1){this.moveCursorWordRight();}return ;}if(K=this.session.tokenRe.exec(M)){L+=this.session.tokenRe.lastIndex;this.session.tokenRe.lastIndex=0;}this.moveCursorTo(N,L);};this.moveCursorLongWordLeft=function(){var N=this.lead.row;var K=this.lead.column;var J;if(J=this.session.getFoldAt(N,K,-1)){this.moveCursorTo(J.start.row,J.start.column);return ;}var M=this.session.getFoldStringAt(N,K,-1);if(M==null){M=this.doc.getLine(N).substring(0,K);}var L=H.stringReverse(M);var I;this.session.nonTokenRe.lastIndex=0;this.session.tokenRe.lastIndex=0;if(I=this.session.nonTokenRe.exec(L)){K-=this.session.nonTokenRe.lastIndex;L=L.slice(this.session.nonTokenRe.lastIndex);this.session.nonTokenRe.lastIndex=0;}if(K<=0){this.moveCursorTo(N,0);this.moveCursorLeft();if(N>0){this.moveCursorWordLeft();}return ;}if(I=this.session.tokenRe.exec(L)){K-=this.session.tokenRe.lastIndex;this.session.tokenRe.lastIndex=0;}this.moveCursorTo(N,K);};this.$shortWordEndIndex=function(N){var J,I=0,M;var L=/\s/;var K=this.session.tokenRe;K.lastIndex=0;if(J=this.session.tokenRe.exec(N)){I=this.session.tokenRe.lastIndex;}else{while((M=N[I])&&L.test(M)){I++;}if(I<=1){K.lastIndex=0;while((M=N[I])&&!K.test(M)){K.lastIndex=0;I++;if(L.test(M)){if(I>2){I--;break;}else{while((M=N[I])&&L.test(M)){I++;}if(I>2){break;}}}}}}K.lastIndex=0;return I;};this.moveCursorShortWordRight=function(){var O=this.lead.row;var M=this.lead.column;var J=this.doc.getLine(O);var N=J.substring(M);var L=this.session.getFoldAt(O,M,1);if(L){return this.moveCursorTo(L.end.row,L.end.column);}if(M==J.length){var I=this.doc.getLength();do{O++;N=this.doc.getLine(O);}while(O<I&&/^\s*$/.test(N));if(!/^\s+/.test(N)){N="";}M=0;}var K=this.$shortWordEndIndex(N);this.moveCursorTo(O,M+K);};this.moveCursorShortWordLeft=function(){var N=this.lead.row;var L=this.lead.column;var K;if(K=this.session.getFoldAt(N,L,-1)){return this.moveCursorTo(K.start.row,K.start.column);}var I=this.session.getLine(N).substring(0,L);if(L==0){do{N--;I=this.doc.getLine(N);}while(N>0&&/^\s*$/.test(I));L=I.length;if(!/\s+$/.test(I)){I="";}}var M=H.stringReverse(I);var J=this.$shortWordEndIndex(M);return this.moveCursorTo(N,L-J);};this.moveCursorWordRight=function(){if(this.session.$selectLongWords){this.moveCursorLongWordRight();}else{this.moveCursorShortWordRight();}};this.moveCursorWordLeft=function(){if(this.session.$selectLongWords){this.moveCursorLongWordLeft();}else{this.moveCursorShortWordLeft();}};this.moveCursorBy=function(L,K){var J=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(K===0){if(this.$desiredColumn){J.column=this.$desiredColumn;}else{this.$desiredColumn=J.column;}}var I=this.session.screenToDocumentPosition(J.row+L,J.column);this.moveCursorTo(I.row,I.column+K,K===0);};this.moveCursorToPosition=function(I){this.moveCursorTo(I.row,I.column);};this.moveCursorTo=function(L,K,I){var J=this.session.getFoldAt(L,K,1);if(J){L=J.start.row;K=J.start.column;}this.$keepDesiredColumnOnChange=true;this.lead.setPosition(L,K);this.$keepDesiredColumnOnChange=false;if(!I){this.$desiredColumn=null;}};this.moveCursorToScreen=function(K,J,I){var L=this.session.screenToDocumentPosition(K,J);this.moveCursorTo(L.row,L.column,I);};this.detach=function(){this.lead.detach();this.anchor.detach();this.session=this.doc=null;};this.fromOrientedRange=function(I){this.setSelectionRange(I,I.cursor==I.start);this.$desiredColumn=I.desiredColumn||this.$desiredColumn;};this.toOrientedRange=function(I){var J=this.getRange();if(I){I.start.column=J.start.column;I.start.row=J.start.row;I.end.column=J.end.column;I.end.row=J.end.row;}else{I=J;}I.cursor=this.isBackwards()?I.start:I.end;I.desiredColumn=this.$desiredColumn;return I;};}).call(D.prototype);A.Selection=D;});define("ace/range",["require","exports","module"],function(B,A,C){var D=function(F,G,E,H){this.start={row:F,column:G};this.end={row:E,column:H};};(function(){this.isEqual=function(E){return this.start.row==E.start.row&&this.end.row==E.end.row&&this.start.column==E.start.column&&this.end.column==E.end.column;};this.toString=function(){return("Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]");};this.contains=function(F,E){return this.compare(F,E)==0;};this.compareRange=function(F){var G,E=F.end,H=F.start;G=this.compare(E.row,E.column);if(G==1){G=this.compare(H.row,H.column);if(G==1){return 2;}else{if(G==0){return 1;}else{return 0;}}}else{if(G==-1){return -2;}else{G=this.compare(H.row,H.column);if(G==-1){return -1;}else{if(G==1){return 42;}else{return 0;}}}}};this.comparePoint=function(E){return this.compare(E.row,E.column);};this.containsRange=function(E){return this.comparePoint(E.start)==0&&this.comparePoint(E.end)==0;};this.intersects=function(E){var F=this.compareRange(E);return(F==-1||F==0||F==1);};this.isEnd=function(F,E){return this.end.row==F&&this.end.column==E;};this.isStart=function(F,E){return this.start.row==F&&this.start.column==E;};this.setStart=function(F,E){if(typeof F=="object"){this.start.column=F.column;this.start.row=F.row;}else{this.start.row=F;this.start.column=E;}};this.setEnd=function(F,E){if(typeof F=="object"){this.end.column=F.column;this.end.row=F.row;}else{this.end.row=F;this.end.column=E;}};this.inside=function(F,E){if(this.compare(F,E)==0){if(this.isEnd(F,E)||this.isStart(F,E)){return false;}else{return true;}}return false;};this.insideStart=function(F,E){if(this.compare(F,E)==0){if(this.isEnd(F,E)){return false;}else{return true;}}return false;};this.insideEnd=function(F,E){if(this.compare(F,E)==0){if(this.isStart(F,E)){return false;}else{return true;}}return false;};this.compare=function(F,E){if(!this.isMultiLine()){if(F===this.start.row){return E<this.start.column?-1:(E>this.end.column?1:0);}}if(F<this.start.row){return -1;}if(F>this.end.row){return 1;}if(this.start.row===F){return E>=this.start.column?0:-1;}if(this.end.row===F){return E<=this.end.column?0:1;}return 0;};this.compareStart=function(F,E){if(this.start.row==F&&this.start.column==E){return -1;}else{return this.compare(F,E);}};this.compareEnd=function(F,E){if(this.end.row==F&&this.end.column==E){return 1;}else{return this.compare(F,E);}};this.compareInside=function(F,E){if(this.end.row==F&&this.end.column==E){return 1;}else{if(this.start.row==F&&this.start.column==E){return -1;}else{return this.compare(F,E);}}};this.clipRows=function(G,F){if(this.end.row>F){var E={row:F+1,column:0};}if(this.start.row>F){var H={row:F+1,column:0};}if(this.start.row<G){var H={row:G,column:0};}if(this.end.row<G){var E={row:G,column:0};}return D.fromPoints(H||this.start,E||this.end);};this.extend=function(H,F){var G=this.compare(H,F);if(G==0){return this;}else{if(G==-1){var I={row:H,column:F};}else{var E={row:H,column:F};}}return D.fromPoints(I||this.start,E||this.end);};this.isEmpty=function(){return(this.start.row==this.end.row&&this.start.column==this.end.column);};this.isMultiLine=function(){return(this.start.row!==this.end.row);};this.clone=function(){return D.fromPoints(this.start,this.end);};this.collapseRows=function(){if(this.end.column==0){return new D(this.start.row,0,Math.max(this.start.row,this.end.row-1),0);}else{return new D(this.start.row,0,this.end.row,0);}};this.toScreenRange=function(F){var E=F.documentToScreenPosition(this.start);var G=F.documentToScreenPosition(this.end);return new D(E.row,E.column,G.row,G.column);};}).call(D.prototype);D.fromPoints=function(F,E){return new D(F.row,F.column,E.row,E.column);};A.Range=D;});define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode"],function(E,C,F){var D=E("../tokenizer").Tokenizer;var B=E("./text_highlight_rules").TextHighlightRules;var H=E("./behaviour").Behaviour;var A=E("../unicode");var G=function(){this.$tokenizer=new D(new B().getRules());this.$behaviour=new H();};(function(){this.tokenRe=new RegExp("^["+A.packages.L+A.packages.Mn+A.packages.Mc+A.packages.Nd+A.packages.Pc+"\\$_]+","g");this.nonTokenRe=new RegExp("^(?:[^"+A.packages.L+A.packages.Mn+A.packages.Mc+A.packages.Nd+A.packages.Pc+"\\$_]|s])+","g");this.getTokenizer=function(){return this.$tokenizer;};this.toggleCommentLines=function(K,L,J,I){};this.getNextLineIndent=function(K,I,J){return"";};this.checkOutdent=function(K,I,J){return false;};this.autoOutdent=function(I,J,K){};this.$getIndent=function(I){var J=I.match(/^(\s+)/);if(J){return J[1];}return"";};this.createWorker=function(I){return null;};this.createModeDelegates=function(J){if(!this.$embeds){return ;}this.$modes={};for(var K=0;K<this.$embeds.length;K++){if(J[this.$embeds[K]]){this.$modes[this.$embeds[K]]=new J[this.$embeds[K]]();}}var I=["toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction"];for(var K=0;K<I.length;K++){(function(M){var N=I[K];var L=M[N];M[I[K]]=function(){return this.$delegator(N,arguments,L);};}(this));}};this.$delegator=function(P,K,J){var N=K[0];for(var M=0;M<this.$embeds.length;M++){if(!this.$modes[this.$embeds[M]]){continue;}var L=N.split(this.$embeds[M]);if(!L[0]&&L[1]){K[0]=L[1];var O=this.$modes[this.$embeds[M]];return O[P].apply(O,K);}}var I=J.apply(this,K);return J?I:undefined;};this.transformAction=function(N,M,K,O,P){if(this.$behaviour){var L=this.$behaviour.getBehaviours();for(var J in L){if(L[J][M]){var I=L[J][M].apply(this,arguments);if(I){return I;}}}}};}).call(G.prototype);C.Mode=G;});define("ace/tokenizer",["require","exports","module"],function(C,A,D){var B=function(M,I){I=I?"g"+I:"g";this.rules=M;this.regExps={};this.matchMappings={};for(var L in this.rules){var J=this.rules[L];var F=J;var H=[];var N=0;var E=this.matchMappings[L]={};for(var G=0;G<F.length;G++){if(F[G].regex instanceof RegExp){F[G].regex=F[G].regex.toString().slice(1,-1);}var O=new RegExp("(?:("+F[G].regex+")|(.))").exec("a").length-2;var K=F[G].regex.replace(/\\([0-9]+)/g,function(P,Q){return"\\"+(parseInt(Q,10)+N+1);});if(O>1&&F[G].token.length!==O-1){throw new Error("Matching groups and length of the token array don't match in rule #"+G+" of state "+L);}E[N]={rule:G,len:O};N+=O;H.push(K);}this.regExps[L]=new RegExp("(?:("+H.join(")|(")+")|(.))",I);}};(function(){this.getLineTokens=function(R,I){var G=I||"start";var F=this.rules[G];var E=this.matchMappings[G];var Q=this.regExps[G];Q.lastIndex=0;var K,N=[];var L=0;var H={type:null,value:""};while(K=Q.exec(R)){var M="text";var O=null;var P=[K[0]];for(var J=0;J<K.length-2;J++){if(K[J+1]===undefined){continue;}O=F[E[J].rule];if(E[J].len>1){P=K.slice(J+2,J+1+E[J].len);}if(typeof O.token=="function"){M=O.token.apply(this,P);}else{M=O.token;}if(O.next){G=O.next;F=this.rules[G];E=this.matchMappings[G];L=Q.lastIndex;Q=this.regExps[G];Q.lastIndex=L;}break;}if(P[0]){if(typeof M=="string"){P=[P.join("")];M=[M];}for(var J=0;J<P.length;J++){if(!P[J]){continue;}if((!O||O.merge||M[J]==="text")&&H.type===M[J]){H.value+=P[J];}else{if(H.type){N.push(H);}H={type:M[J],value:P[J]};}}}if(L==R.length){break;}L=Q.lastIndex;}if(H.type){N.push(H);}return{tokens:N,state:G};};}).call(B.prototype);A.Tokenizer=B;});define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(C,B,D){var E=C("../lib/lang");var A=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{token:"text",regex:".+"}]};};(function(){this.addRules=function(K,I){for(var G in K){var H=K[G];for(var F=0;F<H.length;F++){var J=H[F];if(J.next){J.next=I+J.next;}}this.$rules[I+G]=H;}};this.getRules=function(){return this.$rules;};this.embedRules=function(L,I,K,F){var J=new L().getRules();if(F){for(var H=0;H<F.length;H++){F[H]=I+F[H];}}else{F=[];for(var G in J){F.push(I+G);}}this.addRules(J,I);for(var H=0;H<F.length;H++){Array.prototype.unshift.apply(this.$rules[F[H]],E.deepCopy(K));}if(!this.$embeds){this.$embeds=[];}this.$embeds.push(I);};this.getEmbeds=function(){return this.$embeds;};}).call(A.prototype);B.TextHighlightRules=A;});define("ace/mode/behaviour",["require","exports","module"],function(B,A,C){var D=function(){this.$behaviours={};};(function(){this.add=function(E,F,G){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[E]:this.$behaviours[E]={};}this.$behaviours[E][F]=G;};this.addBehaviours=function(F){for(var E in F){for(var G in F[E]){this.add(E,G,F[E][G]);}}};this.remove=function(E){if(this.$behaviours&&this.$behaviours[E]){delete this.$behaviours[E];}};this.inherit=function(G,E){if(typeof G==="function"){var F=new G().getBehaviours(E);}else{var F=G.getBehaviours(E);}this.addBehaviours(F);};this.getBehaviours=function(G){if(!G){return this.$behaviours;}else{var E={};for(var F=0;F<G.length;F++){if(this.$behaviours[G[F]]){E[G[F]]=this.$behaviours[G[F]];}}return E;}};}).call(D.prototype);A.Behaviour=D;});define("ace/unicode",["require","exports","module"],function(C,B,D){B.packages={};A({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function A(G){var F=/\w{4}/g;for(var E in G){B.packages[E]=G[E].replace(F,"\\u$&");}}});define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(D,C,E){var G=D("./lib/oop");var F=D("./lib/event_emitter").EventEmitter;var H=D("./range").Range;var A=D("./anchor").Anchor;var B=function(I){this.$lines=[];if(I.length==0){this.$lines=[""];}else{if(Array.isArray(I)){this.insertLines(0,I);}else{this.insert({row:0,column:0},I);}}};(function(){G.implement(this,F);this.setValue=function(J){var I=this.getLength();this.remove(new H(0,0,I,this.getLine(I-1).length));this.insert({row:0,column:0},J);};this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter());};this.createAnchor=function(J,I){return new A(this,J,I);};if("aaa".split(/a/).length==0){this.$split=function(I){return I.replace(/\r\n|\r/g,"\n").split("\n");};}else{this.$split=function(I){return I.split(/\r\n|\r|\n/);};}this.$detectNewLine=function(J){var I=J.match(/^.*?(\r\n|\r|\n)/m);if(I){this.$autoNewLine=I[1];}else{this.$autoNewLine="\n";}};this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";case"auto":return this.$autoNewLine;}};this.$autoNewLine="\n";this.$newLineMode="auto";this.setNewLineMode=function(I){if(this.$newLineMode===I){return ;}this.$newLineMode=I;};this.getNewLineMode=function(){return this.$newLineMode;};this.isNewLine=function(I){return(I=="\r\n"||I=="\r"||I=="\n");};this.getLine=function(I){return this.$lines[I]||"";};this.getLines=function(J,I){return this.$lines.slice(J,I+1);};this.getAllLines=function(){return this.getLines(0,this.getLength());};this.getLength=function(){return this.$lines.length;};this.getTextRange=function(J){if(J.start.row==J.end.row){return this.$lines[J.start.row].substring(J.start.column,J.end.column);}else{var I=this.getLines(J.start.row+1,J.end.row-1);I.unshift((this.$lines[J.start.row]||"").substring(J.start.column));I.push((this.$lines[J.end.row]||"").substring(0,J.end.column));return I.join(this.getNewLineCharacter());}};this.$clipPosition=function(I){var J=this.getLength();if(I.row>=J){I.row=Math.max(0,J-1);I.column=this.getLine(J-1).length;}return I;};this.insert=function(I,M){if(!M||M.length===0){return I;}I=this.$clipPosition(I);if(this.getLength()<=1){this.$detectNewLine(M);}var K=this.$split(M);var L=K.splice(0,1)[0];var J=K.length==0?null:K.splice(K.length-1,1)[0];I=this.insertInLine(I,L);if(J!==null){I=this.insertNewLine(I);I=this.insertLines(I.row,K);I=this.insertInLine(I,J||"");}return I;};this.insertLines=function(M,J){if(J.length==0){return{row:M,column:0};}if(J.length>65535){var I=this.insertLines(M,J.slice(65535));J=J.slice(0,65535);}var L=[M,0];L.push.apply(L,J);this.$lines.splice.apply(this.$lines,L);var K=new H(M,0,M+J.length,0);var N={action:"insertLines",range:K,lines:J};this._emit("change",{data:N});return I||K.end;};this.insertNewLine=function(I){I=this.$clipPosition(I);var K=this.$lines[I.row]||"";this.$lines[I.row]=K.substring(0,I.column);this.$lines.splice(I.row+1,0,K.substring(I.column,K.length));var J={row:I.row+1,column:0};var L={action:"insertText",range:H.fromPoints(I,J),text:this.getNewLineCharacter()};this._emit("change",{data:L});return J;};this.insertInLine=function(I,L){if(L.length==0){return I;}var K=this.$lines[I.row]||"";this.$lines[I.row]=K.substring(0,I.column)+L+K.substring(I.column);var J={row:I.row,column:I.column+L.length};var M={action:"insertText",range:H.fromPoints(I,J),text:L};this._emit("change",{data:M});return J;};this.remove=function(J){J.start=this.$clipPosition(J.start);J.end=this.$clipPosition(J.end);if(J.isEmpty()){return J.start;}var M=J.start.row;var K=J.end.row;if(J.isMultiLine()){var L=J.start.column==0?M:M+1;var I=K-1;if(J.end.column>0){this.removeInLine(K,0,J.end.column);}if(I>=L){this.removeLines(L,I);}if(L!=M){this.removeInLine(M,J.start.column,this.getLine(M).length);this.removeNewLine(J.start.row);}}else{this.removeInLine(M,J.start.column,J.end.column);}return J.start;};this.removeInLine=function(M,K,P){if(K==P){return ;}var J=new H(M,K,M,P);var I=this.getLine(M);var L=I.substring(K,P);var O=I.substring(0,K)+I.substring(P,I.length);this.$lines.splice(M,1,O);var N={action:"removeText",range:J,text:L};this._emit("change",{data:N});return J.start;};this.removeLines=function(L,J){var I=new H(L,0,J+1,0);var K=this.$lines.splice(L,J-L+1);var M={action:"removeLines",range:I,nl:this.getNewLineCharacter(),lines:K};this._emit("change",{data:M});return K;};this.removeNewLine=function(M){var L=this.getLine(M);var I=this.getLine(M+1);var K=new H(M,L.length,M+1,0);var J=L+I;this.$lines.splice(M,2,J);var N={action:"removeText",range:K,text:this.getNewLineCharacter()};this._emit("change",{data:N});};this.replace=function(J,K){if(K.length==0&&J.isEmpty()){return J.start;}if(K==this.getTextRange(J)){return J.end;}this.remove(J);if(K){var I=this.insert(J.start,K);}else{I=J.start;}return I;};this.applyDeltas=function(K){for(var J=0;J<K.length;J++){var L=K[J];var I=H.fromPoints(L.range.start,L.range.end);if(L.action=="insertLines"){this.insertLines(I.start.row,L.lines);}else{if(L.action=="insertText"){this.insert(I.start,L.text);}else{if(L.action=="removeLines"){this.removeLines(I.start.row,I.end.row-1);}else{if(L.action=="removeText"){this.remove(I);}}}}}};this.revertDeltas=function(K){for(var J=K.length-1;J>=0;J--){var L=K[J];var I=H.fromPoints(L.range.start,L.range.end);if(L.action=="insertLines"){this.removeLines(I.start.row,I.end.row-1);}else{if(L.action=="insertText"){this.remove(I);}else{if(L.action=="removeLines"){this.insertLines(I.start.row,L.lines);}else{if(L.action=="removeText"){this.insert(I.start,L.text);}}}}}};}).call(B.prototype);C.Document=B;});define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(C,B,D){var F=C("./lib/oop");var E=C("./lib/event_emitter").EventEmitter;var A=B.Anchor=function(H,I,G){this.document=H;if(typeof G=="undefined"){this.setPosition(I.row,I.column);}else{this.setPosition(I,G);}this.$onChange=this.onChange.bind(this);H.on("change",this.$onChange);};(function(){F.implement(this,E);this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column);};this.getDocument=function(){return this.document;};this.onChange=function(I){var K=I.data;var G=K.range;if(G.start.row==G.end.row&&G.start.row!=this.row){return ;}if(G.start.row>this.row){return ;}if(G.start.row==this.row&&G.start.column>this.column){return ;}var J=this.row;var H=this.column;if(K.action==="insertText"){if(G.start.row===J&&G.start.column<=H){if(G.start.row===G.end.row){H+=G.end.column-G.start.column;}else{H-=G.start.column;J+=G.end.row-G.start.row;}}else{if(G.start.row!==G.end.row&&G.start.row<J){J+=G.end.row-G.start.row;}}}else{if(K.action==="insertLines"){if(G.start.row<=J){J+=G.end.row-G.start.row;}}else{if(K.action=="removeText"){if(G.start.row==J&&G.start.column<H){if(G.end.column>=H){H=G.start.column;}else{H=Math.max(0,H-(G.end.column-G.start.column));}}else{if(G.start.row!==G.end.row&&G.start.row<J){if(G.end.row==J){H=Math.max(0,H-G.end.column)+G.start.column;}J-=(G.end.row-G.start.row);}else{if(G.end.row==J){J-=G.end.row-G.start.row;H=Math.max(0,H-G.end.column)+G.start.column;}}}}else{if(K.action=="removeLines"){if(G.start.row<=J){if(G.end.row<=J){J-=G.end.row-G.start.row;}else{J=G.start.row;H=0;}}}}}}this.setPosition(J,H,true);};this.setPosition=function(J,I,G){var K;if(G){K={row:J,column:I};}else{K=this.$clipPositionToDocument(J,I);}if(this.row==K.row&&this.column==K.column){return ;}var H={row:this.row,column:this.column};this.row=K.row;this.column=K.column;this._emit("change",{old:H,value:K});};this.detach=function(){this.document.removeEventListener("change",this.$onChange);};this.$clipPositionToDocument=function(H,G){var I={};if(H>=this.document.getLength()){I.row=Math.max(0,this.document.getLength()-1);I.column=this.document.getLine(I.row).length;}else{if(H<0){I.row=0;I.column=0;}else{I.row=H;I.column=Math.min(this.document.getLine(I.row).length,Math.max(0,G));}}if(G<0){I.column=0;}return I;};}).call(A.prototype);});define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(C,B,E){var G=C("./lib/oop");var F=C("./lib/event_emitter").EventEmitter;var D=5000;var A=function(J,I){this.running=false;this.lines=[];this.states=[];this.currentLine=0;this.tokenizer=J;var H=this;this.$worker=function(){if(!H.running){return ;}var N=new Date();var O=H.currentLine;var M=H.doc;var L=0;var K=M.getLength();while(H.currentLine<K){H.$tokenizeRow(H.currentLine);while(H.lines[H.currentLine]){H.currentLine++;}L++;if((L%5==0)&&(new Date()-N)>20){H.fireUpdateEvent(O,H.currentLine-1);H.running=setTimeout(H.$worker,20);return ;}}H.running=false;H.fireUpdateEvent(O,K-1);};};(function(){G.implement(this,F);this.setTokenizer=function(H){this.tokenizer=H;this.lines=[];this.states=[];this.start(0);};this.setDocument=function(H){this.doc=H;this.lines=[];this.states=[];this.stop();};this.fireUpdateEvent=function(J,H){var I={first:J,last:H};this._emit("update",{data:I});};this.start=function(H){this.currentLine=Math.min(H||0,this.currentLine,this.doc.getLength());this.lines.splice(this.currentLine,this.lines.length);this.states.splice(this.currentLine,this.states.length);this.stop();this.running=setTimeout(this.$worker,700);};this.$updateOnChange=function(L){var J=L.range;var I=J.start.row;var H=J.end.row-I;if(H===0){this.lines[I]=null;}else{if(L.action=="removeText"||L.action=="removeLines"){this.lines.splice(I,H+1,null);this.states.splice(I,H+1,null);}else{var K=Array(H+1);K.unshift(I,1);this.lines.splice.apply(this.lines,K);this.states.splice.apply(this.states,K);}}this.currentLine=Math.min(I,this.currentLine,this.doc.getLength());this.stop();this.running=setTimeout(this.$worker,700);};this.stop=function(){if(this.running){clearTimeout(this.running);}this.running=false;};this.getTokens=function(H){return this.lines[H]||this.$tokenizeRow(H);};this.getState=function(H){if(this.currentLine==H){this.$tokenizeRow(H);}return this.states[H]||"start";};this.$tokenizeRow=function(K){var H=this.doc.getLine(K);var J=this.states[K-1];if(H.length>D){var L={value:H.substr(D),type:"text"};H=H.slice(0,D);}var I=this.tokenizer.getLineTokens(H,J);if(L){I.tokens.push(L);I.state="start";}if(this.states[K]!==I.state){this.states[K]=I.state;this.lines[K+1]=null;if(this.currentLine>K+1){this.currentLine=K+1;}}else{if(this.currentLine==K){this.currentLine=K+1;}}return this.lines[K]=I.tokens;};}).call(A.prototype);B.BackgroundTokenizer=A;});define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(B,A,C){var G=B("./lib/lang");var E=B("./lib/oop");var F=B("./range").Range;var D=function(I,H,J){this.setRegexp(I);this.clazz=H;this.type=J||"text";};(function(){this.setRegexp=function(H){if(this.regExp+""==H+""){return ;}this.regExp=H;this.cache=[];};this.update=function(N,O,P,J){if(!this.regExp){return ;}var I=J.firstRow,K=J.lastRow;for(var M=I;M<=K;M++){var H=this.cache[M];if(H==null){H=G.getMatchOffsets(P.getLine(M),this.regExp);H=H.map(function(Q){return new F(M,Q.offset,M,Q.offset+Q.length);});this.cache[M]=H.length?H:"";}for(var L=H.length;L--;){O.drawSingleLineMarker(N,H[L].toScreenRange(P),this.clazz,J,null,this.type);}}};}).call(D.prototype);A.SearchHighlight=D;});define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(D,C,E){var G=D("../range").Range;var H=D("./fold_line").FoldLine;var A=D("./fold").Fold;var F=D("../token_iterator").TokenIterator;function B(){this.getFoldAt=function(O,L,K){var N=this.getFoldLine(O);if(!N){return null;}var M=N.folds;for(var J=0;J<M.length;J++){var I=M[J];if(I.range.contains(O,L)){if(K==1&&I.range.isEnd(O,L)){continue;}else{if(K==-1&&I.range.isStart(O,L)){continue;}}return I;}}};this.getFoldsInRange=function(O){O=O.clone();var J=O.start;var L=O.end;var K=this.$foldData;var I=[];J.column+=1;L.column-=1;for(var N=0;N<K.length;N++){var Q=K[N].range.compareRange(O);if(Q==2){continue;}else{if(Q==-2){break;}}var R=K[N].folds;for(var M=0;M<R.length;M++){var P=R[M];Q=P.range.compareRange(O);if(Q==-2){break;}else{if(Q==2){continue;}else{if(Q==42){break;}}}I.push(P);}}return I;};this.getAllFolds=function(){var M=[];var K=this.$foldData;function L(N){M.push(N);if(!N.subFolds){return ;}for(var O=0;O<N.subFolds.length;O++){L(N.subFolds[O]);}}for(var J=0;J<K.length;J++){for(var I=0;I<K[J].folds.length;I++){L(K[J].folds[I]);}}return M;};this.getFoldStringAt=function(Q,J,I,P){P=P||this.getFoldLine(Q);if(!P){return null;}var L={end:{column:0}};var N,M;for(var K=0;K<P.folds.length;K++){M=P.folds[K];var O=M.range.compareEnd(Q,J);if(O==-1){N=this.getLine(M.start.row).substring(L.end.column,M.start.column);break;}else{if(O===0){return null;}}L=M;}if(!N){N=this.getLine(M.start.row).substring(L.end.column);}if(I==-1){return N.substring(0,J-L.end.column);}else{if(I==1){return N.substring(J-L.end.column);}else{return N;}}};this.getFoldLine=function(I,J){var L=this.$foldData;var K=0;if(J){K=L.indexOf(J);}if(K==-1){K=0;}for(K;K<L.length;K++){var M=L[K];if(M.start.row<=I&&M.end.row>=I){return M;}else{if(M.end.row>I){return null;}}}return null;};this.getNextFoldLine=function(I,J){var L=this.$foldData;var K=0;if(J){K=L.indexOf(J);}if(K==-1){K=0;}for(K;K<L.length;K++){var M=L[K];if(M.end.row>=I){return M;}}return null;};this.getFoldedRowCount=function(O,M){var L=this.$foldData,J=M-O+1;for(var K=0;K<L.length;K++){var N=L[K],I=N.end.row,P=N.start.row;if(I>=M){if(P<M){if(P>=O){J-=M-P;}else{J=0;}}break;}else{if(I>=O){if(P>=O){J-=I-P;}else{J-=I-O+1;}}}}return J;};this.$addFoldLine=function(I){this.$foldData.push(I);this.$foldData.sort(function(K,J){return K.start.row-J.start.row;});return I;};this.addFold=function(S,M){var I=this.$foldData;var Q=false;var P;if(S instanceof A){P=S;}else{P=new A(M,S);}this.$clipRangeToDocument(P.range);var V=P.start.row;var J=P.start.column;var K=P.end.row;var O=P.end.column;if(P.placeholder.length<2){throw"Placeholder has to be at least 2 characters";}if(V==K&&O-J<2){throw"The range has to be at least 2 characters width";}var N=this.getFoldAt(V,J,1);var U=this.getFoldAt(K,O,-1);if(N&&U==N){return N.addSubFold(P);}if((N&&!N.range.isStart(V,J))||(U&&!U.range.isEnd(K,O))){throw"A fold can't intersect already existing fold"+P.range+N.range;}var T=this.getFoldsInRange(P.range);if(T.length>0){this.removeFolds(T);P.subFolds=T;}for(var L=0;L<I.length;L++){var R=I[L];if(K==R.start.row){R.addFold(P);Q=true;break;}else{if(V==R.end.row){R.addFold(P);Q=true;if(!P.sameRow){var W=I[L+1];if(W&&W.start.row==K){R.merge(W);break;}}break;}else{if(K<=R.start.row){break;}}}}if(!Q){R=this.$addFoldLine(new H(this.$foldData,P));}if(this.$useWrapMode){this.$updateWrapData(R.start.row,R.start.row);}else{this.$updateRowLengthCache(R.start.row,R.start.row);}this.$modified=true;this._emit("changeFold",{data:P});return P;};this.addFolds=function(I){I.forEach(function(J){this.addFold(J);},this);};this.removeFold=function(L){var O=L.foldLine;var K=O.start.row;var J=O.end.row;var M=this.$foldData;var N=O.folds;if(N.length==1){M.splice(M.indexOf(O),1);}else{if(O.range.isEnd(L.end.row,L.end.column)){N.pop();O.end.row=N[N.length-1].end.row;O.end.column=N[N.length-1].end.column;}else{if(O.range.isStart(L.start.row,L.start.column)){N.shift();O.start.row=N[0].start.row;O.start.column=N[0].start.column;}else{if(L.sameRow){N.splice(N.indexOf(L),1);}else{var I=O.split(L.start.row,L.start.column);N=I.folds;N.shift();I.start.row=N[0].start.row;I.start.column=N[0].start.column;}}}}if(this.$useWrapMode){this.$updateWrapData(K,J);}else{this.$updateRowLengthCache(K,J);}this.$modified=true;this._emit("changeFold",{data:L});};this.removeFolds=function(K){var I=[];for(var J=0;J<K.length;J++){I.push(K[J]);}I.forEach(function(L){this.removeFold(L);},this);this.$modified=true;};this.expandFold=function(I){this.removeFold(I);I.subFolds.forEach(function(J){this.addFold(J);},this);I.subFolds=[];};this.expandFolds=function(I){I.forEach(function(J){this.expandFold(J);},this);};this.unfold=function(I,K){var J,L;if(I==null){J=new G(0,0,this.getLength(),0);}else{if(typeof I=="number"){J=new G(I,0,I,this.getLine(I).length);}else{if("row" in I){J=G.fromPoints(I,I);}else{J=I;}}}L=this.getFoldsInRange(J);if(K){this.removeFolds(L);}else{while(L.length){this.expandFolds(L);L=this.getFoldsInRange(J);}}};this.isRowFolded=function(I,J){return !!this.getFoldLine(I,J);};this.getRowFoldEnd=function(I,J){var K=this.getFoldLine(I,J);return(K?K.end.row:I);};this.getFoldDisplayLine=function(N,J,O,I,L){if(I==null){I=N.start.row;L=0;}if(J==null){J=N.end.row;O=this.getLine(J).length;}var M=this.doc;var K="";N.walk(function(S,R,Q,P){if(R<I){return ;}else{if(R==I){if(Q<L){return ;}P=Math.max(L,P);}}if(S){K+=S;}else{K+=M.getLine(R).substring(P,Q);}}.bind(this),J,O);return K;};this.getDisplayLine=function(M,N,J,K){var L=this.getFoldLine(M);if(!L){var I;I=this.doc.getLine(M);return I.substring(K||0,N||I.length);}else{return this.getFoldDisplayLine(L,M,N,J,K);}};this.$cloneFoldData=function(){var I=[];I=this.$foldData.map(function(K){var J=K.folds.map(function(L){return L.clone();});return new H(I,J);});return I;};this.toggleFold=function(K){var L=this.selection;var I=L.getRange();var J;var P;if(I.isEmpty()){var O=I.start;J=this.getFoldAt(O.row,O.column);if(J){this.expandFold(J);return ;}else{if(P=this.findMatchingBracket(O)){if(I.comparePoint(P)==1){I.end=P;}else{I.start=P;I.start.column++;I.end.column--;}}else{if(P=this.findMatchingBracket({row:O.row,column:O.column+1})){if(I.comparePoint(P)==1){I.end=P;}else{I.start=P;}I.start.column++;}else{I=this.getCommentFoldRange(O.row,O.column)||I;}}}}else{var M=this.getFoldsInRange(I);if(K&&M.length){this.expandFolds(M);return ;}else{if(M.length==1){J=M[0];}}}if(!J){J=this.getFoldAt(I.start.row,I.start.column);}if(J&&J.range.toString()==I.toString()){this.expandFold(J);return ;}var N="...";if(!I.isMultiLine()){N=this.getTextRange(I);if(N.length<4){return ;}N=N.trim().substring(0,2)+"..";}this.addFold(N,I);};this.getCommentFoldRange=function(N,M){var L=new F(this,N,M);var J=L.getCurrentToken();if(J&&/^comment|string/.test(J.type)){var I=new G();var K=new RegExp(J.type.replace(/\..*/,"\\."));do{J=L.stepBackward();}while(J&&K.test(J.type));L.stepForward();I.start.row=L.getCurrentTokenRow();I.start.column=L.getCurrentTokenColumn()+2;L=new F(this,N,M);do{J=L.stepForward();}while(J&&K.test(J.type));J=L.stepBackward();I.end.row=L.getCurrentTokenRow();I.end.column=L.getCurrentTokenColumn()+J.value.length;return I;}};this.foldAll=function(K,J){var L=this.foldWidgets;J=J||this.getLength();for(var N=K||0;N<J;N++){if(L[N]==null){L[N]=this.getFoldWidget(N);}if(L[N]!="start"){continue;}var I=this.getFoldWidgetRange(N);if(I&&I.end.row<J){try{this.addFold("...",I);}catch(M){}}}};this.$foldStyles={manual:1,markbegin:1,markbeginend:1};this.$foldStyle="markbegin";this.setFoldStyle=function(I){if(!this.$foldStyles[I]){throw new Error("invalid fold style: "+I+"["+Object.keys(this.$foldStyles).join(", ")+"]");}if(this.$foldStyle==I){return ;}this.$foldStyle=I;if(I=="manual"){this.unfold();}var J=this.$foldMode;this.$setFolding(null);this.$setFolding(J);};this.$setFolding=function(I){if(this.$foldMode==I){return ;}this.$foldMode=I;this.removeListener("change",this.$updateFoldWidgets);this._emit("changeAnnotation");if(!I||this.$foldStyle=="manual"){this.foldWidgets=null;return ;}this.foldWidgets=[];this.getFoldWidget=I.getFoldWidget.bind(I,this,this.$foldStyle);this.getFoldWidgetRange=I.getFoldWidgetRange.bind(I,this,this.$foldStyle);this.$updateFoldWidgets=this.updateFoldWidgets.bind(this);this.on("change",this.$updateFoldWidgets);};this.onFoldWidgetClick=function(P,O){var M=this.getFoldWidget(P);var I=this.getLine(P);var L=O.shiftKey;var N=L||O.ctrlKey||O.altKey||O.metaKey;var K;if(M=="end"){K=this.getFoldAt(P,0,-1);}else{K=this.getFoldAt(P,I.length,1);}if(K){if(N){this.removeFold(K);}else{this.expandFold(K);}return ;}var J=this.getFoldWidgetRange(P);if(J){if(!J.isMultiLine()){K=this.getFoldAt(J.start.row,J.start.column,1);if(K&&J.isEqual(K.range)){this.removeFold(K);return ;}}if(!L){this.addFold("...",J);}if(N){this.foldAll(J.start.row+1,J.end.row);}}else{if(N){this.foldAll(P+1,this.getLength());}O.target.className+=" invalid";}};this.updateFoldWidgets=function(L){var N=L.data;var J=N.range;var M=J.start.row;var I=J.end.row-M;if(I===0){this.foldWidgets[M]=null;}else{if(N.action=="removeText"||N.action=="removeLines"){this.foldWidgets.splice(M,I+1,null);}else{var K=Array(I+1);K.unshift(M,1);this.foldWidgets.splice.apply(this.foldWidgets,K);}}};}C.Folding=B;});define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(B,A,C){var D=B("../range").Range;function E(F,H){this.foldData=F;if(Array.isArray(H)){this.folds=H;}else{H=this.folds=[H];}var G=H[H.length-1];this.range=new D(H[0].start.row,H[0].start.column,G.end.row,G.end.column);this.start=this.range.start;this.end=this.range.end;this.folds.forEach(function(I){I.setFoldLine(this);},this);}(function(){this.shiftRow=function(F){this.start.row+=F;this.end.row+=F;this.folds.forEach(function(G){G.start.row+=F;G.end.row+=F;});};this.addFold=function(F){if(F.sameRow){if(F.start.row<this.startRow||F.endRow>this.endRow){throw"Can't add a fold to this FoldLine as it has no connection";}this.folds.push(F);this.folds.sort(function(H,G){return -H.range.compareEnd(G.start.row,G.start.column);});if(this.range.compareEnd(F.start.row,F.start.column)>0){this.end.row=F.end.row;this.end.column=F.end.column;}else{if(this.range.compareStart(F.end.row,F.end.column)<0){this.start.row=F.start.row;this.start.column=F.start.column;}}}else{if(F.start.row==this.end.row){this.folds.push(F);this.end.row=F.end.row;this.end.column=F.end.column;}else{if(F.end.row==this.start.row){this.folds.unshift(F);this.start.row=F.start.row;this.start.column=F.start.column;}else{throw"Trying to add fold to FoldRow that doesn't have a matching row";}}}F.foldLine=this;};this.containsRow=function(F){return F>=this.start.row&&F<=this.end.row;};this.walk=function(O,G,K){var F=0,N=this.folds,L,I,M,J=true;if(G==null){G=this.end.row;K=this.end.column;}for(var H=0;H<N.length;H++){L=N[H];I=L.range.compareStart(G,K);if(I==-1){O(null,G,K,F,J);return ;}M=O(null,L.start.row,L.start.column,F,J);M=!M&&O(L.placeholder,L.start.row,L.start.column,F);if(M||I==0){return ;}J=!L.sameRow;F=L.end.column;}O(null,G,K,F,J);};this.getNextFoldTo=function(J,H){var F,I;for(var G=0;G<this.folds.length;G++){F=this.folds[G];I=F.range.compareEnd(J,H);if(I==-1){return{fold:F,kind:"after"};}else{if(I==0){return{fold:F,kind:"inside"};}}}return null;};this.addRemoveChars=function(L,J,F){var H=this.getNextFoldTo(L,J),G,K;if(H){G=H.fold;if(H.kind=="inside"&&G.start.column!=J&&G.start.row!=L){window.console&&window.console.log(L,J,G);}else{if(G.start.row==L){K=this.folds;var I=K.indexOf(G);if(I==0){this.start.column+=F;}for(I;I<K.length;I++){G=K[I];G.start.column+=F;if(!G.sameRow){return ;}G.end.column+=F;}this.end.column+=F;}}}};this.split=function(M,K){var H=this.getNextFoldTo(M,K).fold,L=this.folds;var J=this.foldData;if(!H){return null;}var I=L.indexOf(H);var G=L[I-1];this.end.row=G.end.row;this.end.column=G.end.column;L=L.splice(I,L.length-I);var F=new E(J,L);J.splice(J.indexOf(this)+1,0,F);return F;};this.merge=function(H){var I=H.folds;for(var G=0;G<I.length;G++){this.addFold(I[G]);}var F=this.foldData;F.splice(F.indexOf(H),1);};this.toString=function(){var F=[this.range.toString()+": ["];this.folds.forEach(function(G){F.push("  "+G.toString());});F.push("]");return F.join("\n");};this.idxToPosition=function(F){var I=0;var G;for(var H=0;H<this.folds.length;H++){var G=this.folds[H];F-=G.start.column-I;if(F<0){return{row:G.start.row,column:G.start.column+F};}F-=G.placeholder.length;if(F<0){return G.start;}I=G.end.column;}return{row:this.end.row,column:this.end.column+F};};}).call(E.prototype);A.FoldLine=E;});define("ace/edit_session/fold",["require","exports","module"],function(C,B,D){var A=B.Fold=function(E,F){this.foldLine=null;this.placeholder=F;this.range=E;this.start=E.start;this.end=E.end;this.sameRow=E.start.row==E.end.row;this.subFolds=[];};(function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString();};this.setFoldLine=function(E){this.foldLine=E;this.subFolds.forEach(function(F){F.setFoldLine(E);});};this.clone=function(){var E=this.range.clone();var F=new A(E,this.placeholder);this.subFolds.forEach(function(G){F.subFolds.push(G.clone());});return F;};this.addSubFold=function(I){if(this.range.isEqual(I)){return this;}if(!this.range.containsRange(I)){throw"A fold can't intersect already existing fold"+I.range+this.range;}var M=I.range.start.row,E=I.range.start.column;for(var H=0,K=-1;H<this.subFolds.length;H++){K=this.subFolds[H].range.compare(M,E);if(K!=1){break;}}var L=this.subFolds[H];if(K==0){return L.addSubFold(I);}var M=I.range.end.row,E=I.range.end.column;for(var F=H,K=-1;F<this.subFolds.length;F++){K=this.subFolds[F].range.compare(M,E);if(K!=1){break;}}var G=this.subFolds[F];if(K==0){throw"A fold can't intersect already existing fold"+I.range+this.range;}var J=this.subFolds.splice(H,F-H,I);I.setFoldLine(this.foldLine);return I;};}).call(A.prototype);});define("ace/token_iterator",["require","exports","module"],function(B,A,C){var D=function(G,F,H){this.$session=G;this.$row=F;this.$rowTokens=G.getTokens(F);var E=G.getTokenAt(F,H);this.$tokenIndex=E?E.index:-1;};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0){this.$row=0;return null;}this.$rowTokens=this.$session.getTokens(this.$row);this.$tokenIndex=this.$rowTokens.length-1;}return this.$rowTokens[this.$tokenIndex];};this.stepForward=function(){var E=this.$session.getLength();this.$tokenIndex+=1;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1;if(this.$row>=E){this.$row=E-1;return null;}this.$rowTokens=this.$session.getTokens(this.$row);this.$tokenIndex=0;}return this.$rowTokens[this.$tokenIndex];};this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex];};this.getCurrentTokenRow=function(){return this.$row;};this.getCurrentTokenColumn=function(){var F=this.$rowTokens;var E=this.$tokenIndex;var G=F[E].start;if(G!==undefined){return G;}G=0;while(E>0){E-=1;G+=F[E].value.length;}return G;};}).call(D.prototype);A.TokenIterator=D;});define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(C,B,D){var E=C("../token_iterator").TokenIterator;var F=C("../range").Range;function A(){this.findMatchingBracket=function(G){if(G.column==0){return null;}var I=this.getLine(G.row).charAt(G.column-1);if(I==""){return null;}var H=I.match(/([\(\[\{])|([\)\]\}])/);if(!H){return null;}if(H[1]){return this.$findClosingBracket(H[1],G);}else{return this.$findOpeningBracket(H[2],G);}};this.getBracketRange=function(M){var G=this.getLine(M.row);var K=true,H;var J=G.charAt(M.column-1);var I=J&&J.match(/([\(\[\{])|([\)\]\}])/);if(!I){J=G.charAt(M.column);M={row:M.row,column:M.column+1};I=J&&J.match(/([\(\[\{])|([\)\]\}])/);K=false;}if(!I){return null;}if(I[1]){var L=this.$findClosingBracket(I[1],M);if(!L){return null;}H=F.fromPoints(M,L);if(!K){H.end.column++;H.start.column--;}H.cursor=H.end;}else{var L=this.$findOpeningBracket(I[2],M);if(!L){return null;}H=F.fromPoints(L,M);if(!K){H.start.column++;H.end.column--;}H.cursor=H.start;}return H;};this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"};this.$findOpeningBracket=function(G,M,P){var J=this.$brackets[G];var K=1;var L=new E(this,M.row,M.column);var H=L.getCurrentToken();if(!H){H=L.stepForward();}if(!H){return ;}if(!P){P=new RegExp("(\\.?"+H.type.replace(".","\\.").replace("rparen",".paren")+")+");}var N=M.column-L.getCurrentTokenColumn()-2;var O=H.value;while(true){while(N>=0){var I=O.charAt(N);if(I==J){K-=1;if(K==0){return{row:L.getCurrentTokenRow(),column:N+L.getCurrentTokenColumn()};}}else{if(I==G){K+=1;}}N-=1;}do{H=L.stepBackward();}while(H&&!P.test(H.type));if(H==null){break;}O=H.value;N=O.length-1;}return null;};this.$findClosingBracket=function(G,M,Q){var H=this.$brackets[G];var K=1;var L=new E(this,M.row,M.column);var I=L.getCurrentToken();if(!I){I=L.stepForward();}if(!I){return ;}if(!Q){Q=new RegExp("(\\.?"+I.type.replace(".","\\.").replace("lparen",".paren")+")+");}var N=M.column-L.getCurrentTokenColumn();while(true){var O=I.value;var P=O.length;while(N<P){var J=O.charAt(N);if(J==H){K-=1;if(K==0){return{row:L.getCurrentTokenRow(),column:N+L.getCurrentTokenColumn()};}}else{if(J==G){K+=1;}}N+=1;}do{I=L.stepForward();}while(I&&!Q.test(I.type));if(I==null){break;}N=0;}return null;};}B.BracketMatch=A;});define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(C,A,D){var G=C("./lib/lang");var E=C("./lib/oop");var F=C("./range").Range;var B=function(){this.$options={};};(function(){this.set=function(H){E.mixin(this.$options,H);return this;};this.getOptions=function(){return G.copyObject(this.$options);};this.setOptions=function(H){this.$options=H;};this.find=function(J){var I=this.$matchIterator(J,this.$options);if(!I){return false;}var H=null;I.forEach(function(K,N,M){if(!K.start){var L=K.offset+(M||0);H=new F(N,L,N,L+K.length);}else{H=K;}return true;});return H;};this.findAll=function(R){var W=this.$options;if(!W.needle){return[];}this.$assembleRegExp(W);if(W.range){var O=W.range;var X=R.getLines(O.start.row,O.end.row);}else{var X=R.doc.getAllLines();}var H=[];var U=W.re;if(W.$isMultiLine){var P=U.length;var S=X.length-P;for(var V=U.offset||0;V<S;V++){for(var J=0;J<U.length;J++){if(X[V+J].search(U[J])==-1){break;}}var T=X[V+J].match(U[0])[0].length;var N=line.match(U[P-1])[0].length;H.push(new F(V,startLine.length-T,V+P-1,N));}}else{for(var K=0;K<X.length;K++){var M=G.getMatchOffsets(X[K],U);for(var J=0;J<M.length;J++){var L=M[J];H.push(new F(K,L.offset,K,L.offset+L.length));}}}if(W.range){var I=O.start.column;var Q=O.start.column;var K=0,J=H.length-1;while(K<J&&H[K].start.column<I&&H[K].start.row==O.start.row){K++;}while(K<J&&H[J].end.column>Q&&H[J].end.row==O.end.row){J--;}return H.slice(K,J+1);}return H;};this.replace=function(H,N){var J=this.$options;var M=this.$assembleRegExp(J);if(J.$isMultiLine){return N;}if(!M){return ;}var I=M.exec(H);if(!I||I[0].length!=H.length){return null;}N=H.replace(M,N);if(J.preserveCase){N=N.split("");for(var K=Math.min(H.length,H.length);K--;){var L=H[K];if(L&&L.toLowerCase()!=L){N[K]=N[K].toUpperCase();}else{N[K]=N[K].toLowerCase();}}N=N.join("");}return N;};this.$matchIterator=function(N,K){var M=this.$assembleRegExp(K);if(!M){return false;}var J=this,O,I=K.backwards;if(K.$isMultiLine){var H=M.length;var L=function(P,V,U){var T=P.search(M[0]);if(T==-1){return ;}for(var R=1;R<H;R++){P=N.getLine(V+R);if(P.search(M[R])==-1){return ;}}var S=P.match(M[H-1])[0].length;var Q=new F(V,T,V+H-1,S);if(M.offset==1){Q.start.row--;Q.start.column=Number.MAX_VALUE;}else{if(U){Q.start.column+=U;}}if(O(Q)){return true;}};}else{if(I){var L=function(P,T,S){var R=G.getMatchOffsets(P,M);for(var Q=R.length-1;Q>=0;Q--){if(O(R[Q],T,S)){return true;}}};}else{var L=function(P,T,S){var R=G.getMatchOffsets(P,M);for(var Q=0;Q<R.length;Q++){if(O(R[Q],T,S)){return true;}}};}}return{forEach:function(P){O=P;J.$lineIterator(N,K).forEach(L);}};};this.$assembleRegExp=function(I){if(I.needle instanceof RegExp){return I.re=I.needle;}var L=I.needle;if(!I.needle){return I.re=false;}if(!I.regExp){L=G.escapeRegExp(L);}if(I.wholeWord){L="\\b"+L+"\\b";}var H=I.caseSensitive?"g":"gi";I.$isMultiLine=/[\n\r]/.test(L);if(I.$isMultiLine){return I.re=this.$assembleMultilineRegExp(L,H);}try{var J=new RegExp(L,H);}catch(K){var J=false;}return I.re=J;};this.$assembleMultilineRegExp=function(M,H){var L=M.replace(/\r\n|\r|\n/g,"$\n^").split("\n");var J=[];for(var I=0;I<L.length;I++){try{J.push(new RegExp(L[I],H));}catch(K){return false;}}if(L[0]==""){J.shift();J.offset=1;}else{J.offset=0;}return J;};this.$lineIterator=function(N,Q){var K=Q.range;var O=Q.backwards==true;var I=Q.skipCurrent!=false;var K=Q.range;var H=Q.start;if(!H){H=K?K[O?"end":"start"]:N.selection.getRange();}if(H.start){H=H[I!=O?"end":"start"];}var J=K?K.start.row:0;var L=K?K.start.column:0;var P=K?K.end.row:N.getLength()-1;if(!O){var M=function(T){var S=H.row;var R=N.getLine(S).substr(H.column);if(T(R,S,H.column)){return ;}for(S=S+1;S<=P;S++){if(T(N.getLine(S),S)){return ;}}if(Q.wrap==false){return ;}for(S=J,P=H.row;S<=P;S++){if(T(N.getLine(S),S)){return ;}}};}else{var M=function(T){var S=H.row;var R=N.getLine(S).substring(0,H.column);if(T(R,S)){return ;}for(S--;S>=J;S--){if(T(N.getLine(S),S)){return ;}}if(Q.wrap==false){return ;}for(S=P,J=H.row;S>=J;S--){if(T(N.getLine(S),S)){return ;}}};}return{forEach:M};};}).call(B.prototype);A.Search=B;});define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(B,A,C){var F=B("../lib/oop");var D=B("../keyboard/hash_handler").HashHandler;var E=B("../lib/event_emitter").EventEmitter;var G=function(I,H){this.platform=I;this.commands={};this.commmandKeyBinding={};this.addCommands(H);this.setDefaultHandler("exec",function(J){return J.command.exec(J.editor,J.args||{});});};F.inherits(G,D);(function(){F.implement(this,E);this.exec=function(K,J,I){if(typeof K==="string"){K=this.commands[K];}if(!K){return false;}if(J&&J.$readOnly&&!K.readOnly){return false;}var H=this._emit("exec",{editor:J,command:K,args:I});return H===false?false:true;};this.toggleRecording=function(){if(this.$inReplay){return ;}if(this.recording){this.macro.pop();this.removeEventListener("exec",this.$addCommandToMacro);if(!this.macro.length){this.macro=this.oldMacro;}return this.recording=false;}if(!this.$addCommandToMacro){this.$addCommandToMacro=function(H){this.macro.push([H.command,H.args]);}.bind(this);}this.oldMacro=this.macro;this.macro=[];this.on("exec",this.$addCommandToMacro);return this.recording=true;};this.replay=function(H){if(this.$inReplay||!this.macro){return ;}if(this.recording){return this.toggleRecording();}try{this.$inReplay=true;this.macro.forEach(function(I){if(typeof I=="string"){this.exec(I,H);}else{this.exec(I[0],H,I[1]);}},this);}finally{this.$inReplay=false;}};this.trimMacro=function(H){return H.map(function(I){if(typeof I[0]!="string"){I[0]=I[0].name;}if(!I[1]){I=I[0];}return I;});};}).call(G.prototype);A.CommandManager=G;});define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys"],function(C,A,D){var B=C("../lib/keys");function E(G,F){this.platform=F;this.commands={};this.commmandKeyBinding={};this.addCommands(G);}(function(){this.addCommand=function(G){if(this.commands[G.name]){this.removeCommand(G);}this.commands[G.name]=G;if(G.bindKey){this._buildKeyHash(G);}};this.removeCommand=function(K){var G=(typeof K==="string"?K:K.name);K=this.commands[G];delete this.commands[G];var I=this.commmandKeyBinding;for(var J in I){for(var H in I[J]){if(I[J][H]==K){delete I[J][H];}}}};this.bindKey=function(G,I){if(!G){return ;}if(typeof I=="function"){this.addCommand({exec:I,bindKey:G,name:G});return ;}var H=this.commmandKeyBinding;G.split("|").forEach(function(J){var L=this.parseKeys(J,I);var K=L.hashId;(H[K]||(H[K]={}))[L.key]=I;},this);};this.addCommands=function(G){G&&Object.keys(G).forEach(function(H){var I=G[H];if(typeof I==="string"){return this.bindKey(I,H);}if(typeof I==="function"){I={exec:I};}if(!I.name){I.name=H;}this.addCommand(I);},this);};this.removeCommands=function(G){Object.keys(G).forEach(function(H){this.removeCommand(G[H]);},this);};this.bindKeys=function(G){Object.keys(G).forEach(function(H){this.bindKey(H,G[H]);},this);};this._buildKeyHash=function(I){var H=I.bindKey;if(!H){return ;}var G=typeof H=="string"?H:H[this.platform];this.bindKey(G,I);};this.parseKeys=function(K){var I;var J=0;var L=K.toLowerCase().trim().split(/\s*\-\s*/);for(var H=0,G=L.length;H<G;H++){if(B.KEY_MODS[L[H]]){J=J|B.KEY_MODS[L[H]];}else{I=L[H]||"-";}}if(L[0]=="text"&&L.length==2){J=-1;I=L[1];}return{key:I,hashId:J};};this.findKeyCommand=function F(I,G){var H=this.commmandKeyBinding;return H[I]&&H[I][G.toLowerCase()];};this.handleKeyboard=function(I,H,G,J){return{command:this.findKeyCommand(H,G)};};}).call(E.prototype);A.HashHandler=E;});define("ace/commands/default_commands",["require","exports","module","ace/lib/lang"],function(B,A,C){var E=B("../lib/lang");function D(F,G){return{win:F,mac:G};}A.commands=[{name:"selectall",bindKey:D("Ctrl-A","Command-A"),exec:function(F){F.selectAll();},readOnly:true},{name:"centerselection",bindKey:D(null,"Ctrl-L"),exec:function(F){F.centerSelection();},readOnly:true},{name:"gotoline",bindKey:D("Ctrl-L","Command-L"),exec:function(G){var F=parseInt(prompt("Enter line number:"),10);if(!isNaN(F)){G.gotoLine(F);}},readOnly:true},{name:"fold",bindKey:D("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(F){F.session.toggleFold(false);},readOnly:true},{name:"unfold",bindKey:D("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(F){F.session.toggleFold(true);},readOnly:true},{name:"foldall",bindKey:D("Alt-0","Command-Option-0"),exec:function(F){F.session.foldAll();},readOnly:true},{name:"unfoldall",bindKey:D("Alt-Shift-0","Command-Option-Shift-0"),exec:function(F){F.session.unfold();},readOnly:true},{name:"findnext",bindKey:D("Ctrl-K","Command-G"),exec:function(F){F.findNext();},readOnly:true},{name:"findprevious",bindKey:D("Ctrl-Shift-K","Command-Shift-G"),exec:function(F){F.findPrevious();},readOnly:true},{name:"find",bindKey:D("Ctrl-F","Command-F"),exec:function(F){var G=prompt("Find:",F.getCopyText());F.find(G);},readOnly:true},{name:"overwrite",bindKey:"Insert",exec:function(F){F.toggleOverwrite();},readOnly:true},{name:"selecttostart",bindKey:D("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(F){F.getSelection().selectFileStart();},readOnly:true},{name:"gotostart",bindKey:D("Ctrl-Home","Command-Home|Command-Up"),exec:function(F){F.navigateFileStart();},readOnly:true},{name:"selectup",bindKey:D("Shift-Up","Shift-Up"),exec:function(F){F.getSelection().selectUp();},multiSelectAction:"forEach",readOnly:true},{name:"golineup",bindKey:D("Up","Up|Ctrl-P"),exec:function(G,F){G.navigateUp(F.times);},multiSelectAction:"forEach",readOnly:true},{name:"selecttoend",bindKey:D("Ctrl-Shift-End","Command-Shift-Down"),exec:function(F){F.getSelection().selectFileEnd();},multiSelectAction:"forEach",readOnly:true},{name:"gotoend",bindKey:D("Ctrl-End","Command-End|Command-Down"),exec:function(F){F.navigateFileEnd();},multiSelectAction:"forEach",readOnly:true},{name:"selectdown",bindKey:D("Shift-Down","Shift-Down"),exec:function(F){F.getSelection().selectDown();},multiSelectAction:"forEach",readOnly:true},{name:"golinedown",bindKey:D("Down","Down|Ctrl-N"),exec:function(G,F){G.navigateDown(F.times);},multiSelectAction:"forEach",readOnly:true},{name:"selectwordleft",bindKey:D("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(F){F.getSelection().selectWordLeft();},multiSelectAction:"forEach",readOnly:true},{name:"gotowordleft",bindKey:D("Ctrl-Left","Option-Left"),exec:function(F){F.navigateWordLeft();},multiSelectAction:"forEach",readOnly:true},{name:"selecttolinestart",bindKey:D("Alt-Shift-Left","Command-Shift-Left"),exec:function(F){F.getSelection().selectLineStart();},multiSelectAction:"forEach",readOnly:true},{name:"gotolinestart",bindKey:D("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(F){F.navigateLineStart();},multiSelectAction:"forEach",readOnly:true},{name:"selectleft",bindKey:D("Shift-Left","Shift-Left"),exec:function(F){F.getSelection().selectLeft();},multiSelectAction:"forEach",readOnly:true},{name:"gotoleft",bindKey:D("Left","Left|Ctrl-B"),exec:function(G,F){G.navigateLeft(F.times);},multiSelectAction:"forEach",readOnly:true},{name:"selectwordright",bindKey:D("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(F){F.getSelection().selectWordRight();},multiSelectAction:"forEach",readOnly:true},{name:"gotowordright",bindKey:D("Ctrl-Right","Option-Right"),exec:function(F){F.navigateWordRight();},multiSelectAction:"forEach",readOnly:true},{name:"selecttolineend",bindKey:D("Alt-Shift-Right","Command-Shift-Right"),exec:function(F){F.getSelection().selectLineEnd();},multiSelectAction:"forEach",readOnly:true},{name:"gotolineend",bindKey:D("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(F){F.navigateLineEnd();},multiSelectAction:"forEach",readOnly:true},{name:"selectright",bindKey:D("Shift-Right","Shift-Right"),exec:function(F){F.getSelection().selectRight();},multiSelectAction:"forEach",readOnly:true},{name:"gotoright",bindKey:D("Right","Right|Ctrl-F"),exec:function(G,F){G.navigateRight(F.times);},multiSelectAction:"forEach",readOnly:true},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(F){F.selectPageDown();},readOnly:true},{name:"pagedown",bindKey:D(null,"Option-PageDown"),exec:function(F){F.scrollPageDown();},readOnly:true},{name:"gotopagedown",bindKey:D("PageDown","PageDown|Ctrl-V"),exec:function(F){F.gotoPageDown();},readOnly:true},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(F){F.selectPageUp();},readOnly:true},{name:"pageup",bindKey:D(null,"Option-PageUp"),exec:function(F){F.scrollPageUp();},readOnly:true},{name:"gotopageup",bindKey:"PageUp",exec:function(F){F.gotoPageUp();},readOnly:true},{name:"scrollup",bindKey:D("Ctrl-Up",null),exec:function(F){F.renderer.scrollBy(0,-2*F.renderer.layerConfig.lineHeight);},readOnly:true},{name:"scrolldown",bindKey:D("Ctrl-Down",null),exec:function(F){F.renderer.scrollBy(0,2*F.renderer.layerConfig.lineHeight);},readOnly:true},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(F){F.getSelection().selectLineStart();},multiSelectAction:"forEach",readOnly:true},{name:"selectlineend",bindKey:"Shift-End",exec:function(F){F.getSelection().selectLineEnd();},multiSelectAction:"forEach",readOnly:true},{name:"togglerecording",bindKey:D("Ctrl-Alt-E","Command-Option-E"),exec:function(F){F.commands.toggleRecording();},readOnly:true},{name:"replaymacro",bindKey:D("Ctrl-Shift-E","Command-Shift-E"),exec:function(F){F.commands.replay(F);},readOnly:true},{name:"jumptomatching",bindKey:D("Ctrl-P","Ctrl-Shift-P"),exec:function(F){F.jumpToMatching();},multiSelectAction:"forEach",readOnly:true},{name:"selecttomatching",bindKey:D("Ctrl-Shift-P",null),exec:function(F){F.jumpToMatching(true);},readOnly:true},{name:"cut",exec:function(G){var F=G.getSelectionRange();G._emit("cut",F);if(!G.selection.isEmpty()){G.session.remove(F);G.clearSelection();}},multiSelectAction:"forEach"},{name:"removeline",bindKey:D("Ctrl-D","Command-D"),exec:function(F){F.removeLines();},multiSelectAction:"forEach"},{name:"duplicateSelection",bindKey:D("Ctrl-Shift-D","Command-Shift-D"),exec:function(F){F.duplicateSelection();},multiSelectAction:"forEach"},{name:"togglecomment",bindKey:D("Ctrl-/","Command-/"),exec:function(F){F.toggleCommentLines();},multiSelectAction:"forEach"},{name:"replace",bindKey:D("Ctrl-R","Command-Option-F"),exec:function(G){var H=prompt("Find:",G.getCopyText());if(!H){return ;}var F=prompt("Replacement:");if(!F){return ;}G.replace(F,{needle:H});}},{name:"replaceall",bindKey:D("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(G){var H=prompt("Find:");if(!H){return ;}var F=prompt("Replacement:");if(!F){return ;}G.replaceAll(F,{needle:H});}},{name:"undo",bindKey:D("Ctrl-Z","Command-Z"),exec:function(F){F.undo();}},{name:"redo",bindKey:D("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(F){F.redo();}},{name:"copylinesup",bindKey:D("Alt-Shift-Up","Command-Option-Up"),exec:function(F){F.copyLinesUp();}},{name:"movelinesup",bindKey:D("Alt-Up","Option-Up"),exec:function(F){F.moveLinesUp();}},{name:"copylinesdown",bindKey:D("Alt-Shift-Down","Command-Option-Down"),exec:function(F){F.copyLinesDown();}},{name:"movelinesdown",bindKey:D("Alt-Down","Option-Down"),exec:function(F){F.moveLinesDown();}},{name:"del",bindKey:D("Delete","Delete|Ctrl-D"),exec:function(F){F.remove("right");},multiSelectAction:"forEach"},{name:"backspace",bindKey:D("Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(F){F.remove("left");},multiSelectAction:"forEach"},{name:"removetolinestart",bindKey:D("Alt-Backspace","Command-Backspace"),exec:function(F){F.removeToLineStart();},multiSelectAction:"forEach"},{name:"removetolineend",bindKey:D("Alt-Delete","Ctrl-K"),exec:function(F){F.removeToLineEnd();},multiSelectAction:"forEach"},{name:"removewordleft",bindKey:D("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(F){F.removeWordLeft();},multiSelectAction:"forEach"},{name:"removewordright",bindKey:D("Ctrl-Delete","Alt-Delete"),exec:function(F){F.removeWordRight();},multiSelectAction:"forEach"},{name:"outdent",bindKey:D("Shift-Tab","Shift-Tab"),exec:function(F){F.blockOutdent();},multiSelectAction:"forEach"},{name:"indent",bindKey:D("Tab","Tab"),exec:function(F){F.indent();},multiSelectAction:"forEach"},{name:"insertstring",exec:function(F,G){F.insert(G);},multiSelectAction:"forEach"},{name:"inserttext",exec:function(G,F){G.insert(E.stringRepeat(F.text||"",F.times||1));},multiSelectAction:"forEach"},{name:"splitline",bindKey:D(null,"Ctrl-O"),exec:function(F){F.splitLine();},multiSelectAction:"forEach"},{name:"transposeletters",bindKey:D("Ctrl-T","Ctrl-T"),exec:function(F){F.transposeLetters();},multiSelectAction:function(F){F.transposeSelections(1);}},{name:"touppercase",bindKey:D("Ctrl-U","Ctrl-U"),exec:function(F){F.toUpperCase();},multiSelectAction:"forEach"},{name:"tolowercase",bindKey:D("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(F){F.toLowerCase();},multiSelectAction:"forEach"}];});define("ace/undomanager",["require","exports","module"],function(B,A,C){var D=function(){this.reset();};(function(){this.execute=function(E){var F=E.args[0];this.$doc=E.args[1];this.$undoStack.push(F);this.$redoStack=[];};this.undo=function(E){var G=this.$undoStack.pop();var F=null;if(G){F=this.$doc.undoChanges(G,E);this.$redoStack.push(G);}return F;};this.redo=function(E){var G=this.$redoStack.pop();var F=null;if(G){F=this.$doc.redoChanges(G,E);this.$undoStack.push(G);}return F;};this.reset=function(){this.$undoStack=[];this.$redoStack=[];};this.hasUndo=function(){return this.$undoStack.length>0;};this.hasRedo=function(){return this.$redoStack.length>0;};}).call(D.prototype);A.UndoManager=D;});define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter","text!ace/css/editor.css"],function(D,R,A){var N=D("./lib/oop");var M=D("./lib/dom");var J=D("./lib/event");var I=D("./lib/useragent");var Q=D("./config");var K=D("./lib/net");var L=D("./layer/gutter").Gutter;var B=D("./layer/marker").Marker;var G=D("./layer/text").Text;var O=D("./layer/cursor").Cursor;var E=D("./scrollbar").ScrollBar;var P=D("./renderloop").RenderLoop;var C=D("./lib/event_emitter").EventEmitter;var H=D("text!./css/editor.css");M.importCssString(H,"ace_editor");var F=function(T,V){var S=this;this.container=T;this.$keepTextAreaAtCursor=!I.isIE;M.addCssClass(T,"ace_editor");this.setTheme(V);this.$gutter=M.createElement("div");this.$gutter.className="ace_gutter";this.container.appendChild(this.$gutter);this.scroller=M.createElement("div");this.scroller.className="ace_scroller";this.container.appendChild(this.scroller);this.content=M.createElement("div");this.content.className="ace_content";this.scroller.appendChild(this.content);this.$gutterLayer=new L(this.$gutter);this.$gutterLayer.on("changeGutterWidth",this.onResize.bind(this,true));this.setFadeFoldWidgets(true);this.$markerBack=new B(this.content);var U=this.$textLayer=new G(this.content);this.canvas=U.element;this.$markerFront=new B(this.content);this.characterWidth=U.getCharacterWidth();this.lineHeight=U.getLineHeight();this.$cursorLayer=new O(this.content);this.$cursorPadding=8;this.$horizScroll=false;this.$horizScrollAlwaysVisible=false;this.$animatedScroll=false;this.scrollBar=new E(T);this.scrollBar.addEventListener("scroll",function(W){if(!S.$inScrollAnimation){S.session.setScrollTop(W.data);}});this.scrollTop=0;this.scrollLeft=0;J.addListener(this.scroller,"scroll",function(){var W=S.scroller.scrollLeft;S.scrollLeft=W;S.session.setScrollLeft(W);});this.cursorPos={row:0,column:0};this.$textLayer.addEventListener("changeCharacterSize",function(){S.characterWidth=U.getCharacterWidth();S.lineHeight=U.getLineHeight();S.$updatePrintMargin();S.onResize(true);S.$loop.schedule(S.CHANGE_FULL);});this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0};this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1};this.$loop=new P(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView);this.$loop.schedule(this.CHANGE_FULL);this.setPadding(4);this.$updatePrintMargin();};(function(){this.showGutter=true;this.CHANGE_CURSOR=1;this.CHANGE_MARKER=2;this.CHANGE_GUTTER=4;this.CHANGE_SCROLL=8;this.CHANGE_LINES=16;this.CHANGE_TEXT=32;this.CHANGE_SIZE=64;this.CHANGE_MARKER_BACK=128;this.CHANGE_MARKER_FRONT=256;this.CHANGE_FULL=512;this.CHANGE_H_SCROLL=1024;N.implement(this,C);this.setSession=function(U){this.session=U;this.scroller.className="ace_scroller";this.$cursorLayer.setSession(U);this.$markerBack.setSession(U);this.$markerFront.setSession(U);this.$gutterLayer.setSession(U);this.$textLayer.setSession(U);this.$loop.schedule(this.CHANGE_FULL);};this.updateLines=function(V,U){if(U===undefined){U=Infinity;}if(!this.$changedLines){this.$changedLines={firstRow:V,lastRow:U};}else{if(this.$changedLines.firstRow>V){this.$changedLines.firstRow=V;}if(this.$changedLines.lastRow<U){this.$changedLines.lastRow=U;}}this.$loop.schedule(this.CHANGE_LINES);};this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT);};this.updateFull=function(U){if(U){this.$renderChanges(this.CHANGE_FULL,true);}else{this.$loop.schedule(this.CHANGE_FULL);}};this.updateFontSize=function(){this.$textLayer.checkForSizeChanges();};this.onResize=function(Z,W,Y,U){var X=this.CHANGE_SIZE;var V=this.$size;if(this.resizing>2){return ;}else{if(this.resizing>1){this.resizing++;}else{this.resizing=Z?1:0;}}if(!U){U=M.getInnerHeight(this.container);}if(Z||V.height!=U){V.height=U;this.scroller.style.height=U+"px";V.scrollerHeight=this.scroller.clientHeight;this.scrollBar.setHeight(V.scrollerHeight);if(this.session){this.session.setScrollTop(this.getScrollTop());X=X|this.CHANGE_FULL;}}if(!Y){Y=M.getInnerWidth(this.container);}if(Z||this.resizing>1||V.width!=Y){V.width=Y;var W=this.showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=W+"px";V.scrollerWidth=Math.max(0,Y-W-this.scrollBar.getWidth());this.scroller.style.right=this.scrollBar.getWidth()+"px";if(this.session.getUseWrapMode()&&this.adjustWrapLimit()||Z){X=X|this.CHANGE_FULL;}}if(Z){this.$renderChanges(X,true);}else{this.$loop.schedule(X);}if(Z){delete this.resizing;}};this.adjustWrapLimit=function(){var V=this.$size.scrollerWidth-this.$padding*2;var U=Math.floor(V/this.characterWidth);return this.session.adjustWrapLimit(U);};this.setAnimatedScroll=function(U){this.$animatedScroll=U;};this.getAnimatedScroll=function(){return this.$animatedScroll;};this.setShowInvisibles=function(U){if(this.$textLayer.setShowInvisibles(U)){this.$loop.schedule(this.CHANGE_TEXT);}};this.getShowInvisibles=function(){return this.$textLayer.showInvisibles;};this.$showPrintMargin=true;this.setShowPrintMargin=function(U){this.$showPrintMargin=U;this.$updatePrintMargin();};this.getShowPrintMargin=function(){return this.$showPrintMargin;};this.$printMarginColumn=80;this.setPrintMarginColumn=function(U){this.$printMarginColumn=U;this.$updatePrintMargin();};this.getPrintMarginColumn=function(){return this.$printMarginColumn;};this.getShowGutter=function(){return this.showGutter;};this.setShowGutter=function(U){if(this.showGutter===U){return ;}this.$gutter.style.display=U?"block":"none";this.showGutter=U;this.onResize(true);};this.getFadeFoldWidgets=function(){return M.hasCssClass(this.$gutter,"ace_fade-fold-widgets");};this.setFadeFoldWidgets=function(U){if(U){M.addCssClass(this.$gutter,"ace_fade-fold-widgets");}else{M.removeCssClass(this.$gutter,"ace_fade-fold-widgets");}};this.$highlightGutterLine=true;this.setHighlightGutterLine=function(U){if(this.$highlightGutterLine==U){return ;}this.$highlightGutterLine=U;this.$loop.schedule(this.CHANGE_GUTTER);};this.getHighlightGutterLine=function(){return this.$highlightGutterLine;};this.$updateGutterLineHighlight=function(W){var V=this.session.selection.lead.row;if(V==this.$gutterLineHighlight){return ;}if(!W){var Y,X=this.$gutterLayer.element.children;var U=this.$gutterLineHighlight-this.layerConfig.firstRow;if(U>=0&&(Y=X[U])){M.removeCssClass(Y,"ace_gutter_active_line");}U=V-this.layerConfig.firstRow;if(U>=0&&(Y=X[U])){M.addCssClass(Y,"ace_gutter_active_line");}}this.$gutterLayer.removeGutterDecoration(this.$gutterLineHighlight,"ace_gutter_active_line");this.$gutterLayer.addGutterDecoration(V,"ace_gutter_active_line");this.$gutterLineHighlight=V;};this.$updatePrintMargin=function(){var V;if(!this.$showPrintMargin&&!this.$printMarginEl){return ;}if(!this.$printMarginEl){V=M.createElement("div");V.className="ace_print_margin_layer";this.$printMarginEl=M.createElement("div");this.$printMarginEl.className="ace_print_margin";V.appendChild(this.$printMarginEl);this.content.insertBefore(V,this.$textLayer.element);}var U=this.$printMarginEl.style;U.left=((this.characterWidth*this.$printMarginColumn)+this.$padding)+"px";U.visibility=this.$showPrintMargin?"visible":"hidden";};this.getContainerElement=function(){return this.container;};this.getMouseEventTarget=function(){return this.content;};this.getTextAreaContainer=function(){return this.container;};this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor){return ;}var W=this.$cursorLayer.$pixelPos.top;var U=this.$cursorLayer.$pixelPos.left;W-=this.layerConfig.offset;if(W<0||W>this.layerConfig.height-this.lineHeight){return ;}var V=this.characterWidth;if(this.$composition){V+=this.textarea.scrollWidth;}U-=this.scrollLeft;if(U>this.$size.scrollerWidth-V){U=this.$size.scrollerWidth-V;}if(this.showGutter){U+=this.$gutterLayer.gutterWidth;}this.textarea.style.height=this.lineHeight+"px";this.textarea.style.width=V+"px";this.textarea.style.left=U+"px";this.textarea.style.top=W-1+"px";};this.getFirstVisibleRow=function(){return this.layerConfig.firstRow;};this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1);};this.getLastFullyVisibleRow=function(){var U=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+U;};this.getLastVisibleRow=function(){return this.layerConfig.lastRow;};this.$padding=null;this.setPadding=function(U){this.$padding=U;this.$textLayer.setPadding(U);this.$cursorLayer.setPadding(U);this.$markerFront.setPadding(U);this.$markerBack.setPadding(U);this.$loop.schedule(this.CHANGE_FULL);this.$updatePrintMargin();};this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible;};this.setHScrollBarAlwaysVisible=function(U){if(this.$horizScrollAlwaysVisible!=U){this.$horizScrollAlwaysVisible=U;if(!this.$horizScrollAlwaysVisible||!this.$horizScroll){this.$loop.schedule(this.CHANGE_SCROLL);}}};this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight);this.scrollBar.setScrollTop(this.scrollTop);};this.$renderChanges=function(U,V){if(!V&&(!U||!this.session||!this.container.offsetWidth)){return ;}if(U&this.CHANGE_FULL||U&this.CHANGE_SIZE||U&this.CHANGE_TEXT||U&this.CHANGE_LINES||U&this.CHANGE_SCROLL){this.$computeLayerConfig();}if(U&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var W=this.scroller.scrollLeft;this.scrollLeft=W;this.session.setScrollLeft(W);this.scroller.className=this.scrollLeft==0?"ace_scroller":"ace_scroller horscroll";}if(U&this.CHANGE_FULL){this.$textLayer.checkForSizeChanges();this.$updateScrollBar();this.$textLayer.update(this.layerConfig);if(this.showGutter){if(this.$highlightGutterLine){this.$updateGutterLineHighlight(true);}this.$gutterLayer.update(this.layerConfig);}this.$markerBack.update(this.layerConfig);this.$markerFront.update(this.layerConfig);this.$cursorLayer.update(this.layerConfig);this.$moveTextAreaToCursor();return ;}if(U&this.CHANGE_SCROLL){this.$updateScrollBar();if(U&this.CHANGE_TEXT||U&this.CHANGE_LINES){this.$textLayer.update(this.layerConfig);}else{this.$textLayer.scrollLines(this.layerConfig);}if(this.showGutter){if(this.$highlightGutterLine){this.$updateGutterLineHighlight(true);}this.$gutterLayer.update(this.layerConfig);}this.$markerBack.update(this.layerConfig);this.$markerFront.update(this.layerConfig);this.$cursorLayer.update(this.layerConfig);this.$moveTextAreaToCursor();return ;}if(U&this.CHANGE_TEXT){this.$textLayer.update(this.layerConfig);if(this.showGutter){this.$gutterLayer.update(this.layerConfig);}}else{if(U&this.CHANGE_LINES){if(this.$updateLines()){this.$updateScrollBar();if(this.showGutter){this.$gutterLayer.update(this.layerConfig);}}}else{if(U&this.CHANGE_GUTTER){if(this.showGutter){this.$gutterLayer.update(this.layerConfig);}}}}if(U&this.CHANGE_CURSOR){this.$cursorLayer.update(this.layerConfig);this.$moveTextAreaToCursor();this.$highlightGutterLine&&this.$updateGutterLineHighlight(false);}if(U&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)){this.$markerFront.update(this.layerConfig);}if(U&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)){this.$markerBack.update(this.layerConfig);}if(U&this.CHANGE_SIZE){this.$updateScrollBar();}};this.$computeLayerConfig=function(){var Y=this.session;var W=this.scrollTop%this.lineHeight;var e=this.$size.scrollerHeight+this.lineHeight;var Z=this.$getLongestLine();var f=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-Z<0;var U=this.$horizScroll!==f;this.$horizScroll=f;if(U){this.scroller.style.overflowX=f?"scroll":"hidden";if(!f){this.session.setScrollLeft(0);}}var d=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,d-this.$size.scrollerHeight)));var g=Math.ceil(e/this.lineHeight)-1;var V=Math.max(0,Math.round((this.scrollTop-W)/this.lineHeight));var h=V+g;var c,X;var b={lineHeight:this.lineHeight};V=Y.screenToDocumentRow(V,0);var a=Y.getFoldLine(V);if(a){V=a.start.row;}c=Y.documentToScreenRow(V,0);X=Y.getRowHeight(b,V);h=Math.min(Y.screenToDocumentRow(h,0),Y.getLength()-1);e=this.$size.scrollerHeight+Y.getRowHeight(b,h)+X;W=this.scrollTop-c*this.lineHeight;this.layerConfig={width:Z,padding:this.$padding,firstRow:V,firstRowScreen:c,lastRow:h,lineHeight:this.lineHeight,characterWidth:this.characterWidth,minHeight:e,maxHeight:d,offset:W,height:this.$size.scrollerHeight};this.$gutterLayer.element.style.marginTop=(-W)+"px";this.content.style.marginTop=(-W)+"px";this.content.style.width=Z+2*this.$padding+"px";this.content.style.height=e+"px";if(U){this.onResize(true);}};this.$updateLines=function(){var W=this.$changedLines.firstRow;var V=this.$changedLines.lastRow;this.$changedLines=null;var U=this.layerConfig;if(W>U.lastRow+1){return ;}if(V<U.firstRow){return ;}if(V===Infinity){if(this.showGutter){this.$gutterLayer.update(U);}this.$textLayer.update(U);return ;}this.$textLayer.updateLines(U,W,V);return true;};this.$getLongestLine=function(){var U=this.session.getScreenWidth();if(this.$textLayer.showInvisibles){U+=1;}return Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(U*this.characterWidth));};this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(true));this.$loop.schedule(this.CHANGE_MARKER_FRONT);};this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers());this.$loop.schedule(this.CHANGE_MARKER_BACK);};this.addGutterDecoration=function(V,U){this.$gutterLayer.addGutterDecoration(V,U);this.$loop.schedule(this.CHANGE_GUTTER);};this.removeGutterDecoration=function(V,U){this.$gutterLayer.removeGutterDecoration(V,U);this.$loop.schedule(this.CHANGE_GUTTER);};this.updateBreakpoints=function(U){this.$loop.schedule(this.CHANGE_GUTTER);};this.setAnnotations=function(U){this.$gutterLayer.setAnnotations(U);this.$loop.schedule(this.CHANGE_GUTTER);};this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR);};this.hideCursor=function(){this.$cursorLayer.hideCursor();};this.showCursor=function(){this.$cursorLayer.showCursor();};this.scrollSelectionIntoView=function(V,U,W){this.scrollCursorIntoView(V,W);this.scrollCursorIntoView(U,W);};this.scrollCursorIntoView=function(Y,X){if(this.$size.scrollerHeight===0){return ;}var Z=this.$cursorLayer.getPixelPosition(Y);var V=Z.left;var U=Z.top;if(this.scrollTop>U){if(X){U-=X*this.$size.scrollerHeight;}this.session.setScrollTop(U);}else{if(this.scrollTop+this.$size.scrollerHeight<U+this.lineHeight){if(X){U+=X*this.$size.scrollerHeight;}this.session.setScrollTop(U+this.lineHeight-this.$size.scrollerHeight);}}var W=this.scrollLeft;if(W>V){if(V<this.$padding+2*this.layerConfig.characterWidth){V=0;}this.session.setScrollLeft(V);}else{if(W+this.$size.scrollerWidth<V+this.characterWidth){this.session.setScrollLeft(Math.round(V+this.characterWidth-this.$size.scrollerWidth));}}};this.getScrollTop=function(){return this.session.getScrollTop();};this.getScrollLeft=function(){return this.session.getScrollLeft();};this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight;};this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1);};this.scrollToRow=function(U){this.session.setScrollTop(U*this.lineHeight);};this.alignCursor=function(V,X){if(typeof V=="number"){V={row:V,column:0};}var W=this.$cursorLayer.getPixelPosition(V);var U=W.top-this.$size.scrollerHeight*(X||0);this.session.setScrollTop(U);};this.STEPS=8;this.$calcSteps=function(Z,V){var X=0;var U=this.STEPS;var W=[];var Y=function(b,c,a){return a*(Math.pow(b-1,3)+1)+c;};for(X=0;X<U;++X){W.push(Y(X/this.STEPS,Z,V-Z));}return W;};this.scrollToLine=function(V,U,W,a){var Z=this.$cursorLayer.getPixelPosition({row:V,column:0});var Y=Z.top;if(U){Y-=this.$size.scrollerHeight/2;}var X=this.scrollTop;this.session.setScrollTop(Y);if(W!==false){this.animateScrolling(X,a);}};this.animateScrolling=function(X,Y){var V=this.scrollTop;if(this.$animatedScroll&&Math.abs(X-V)<100000){var U=this;var W=U.$calcSteps(X,V);this.$inScrollAnimation=true;clearInterval(this.$timer);U.session.setScrollTop(W.shift());this.$timer=setInterval(function(){if(W.length){U.session.setScrollTop(W.shift());U.session.$scrollTop=V;}else{if(V!=null){U.session.$scrollTop=-1;U.session.setScrollTop(V);V=null;}else{U.$timer=clearInterval(U.$timer);U.$inScrollAnimation=false;Y&&Y();}}},10);}};this.scrollToY=function(U){if(this.scrollTop!==U){this.$loop.schedule(this.CHANGE_SCROLL);this.scrollTop=U;}};this.scrollToX=function(U){if(U<0){U=0;}if(this.scrollLeft!==U){this.scrollLeft=U;}this.$loop.schedule(this.CHANGE_H_SCROLL);};this.scrollBy=function(V,U){U&&this.session.setScrollTop(this.session.getScrollTop()+U);V&&this.session.setScrollLeft(this.session.getScrollLeft()+V);};this.isScrollableBy=function(V,U){if(U<0&&this.session.getScrollTop()>0){return true;}if(U>0&&this.session.getScrollTop()+this.$size.scrollerHeight<this.layerConfig.maxHeight){return true;}};this.pixelToScreenCoordinates=function(U,Z){var W=this.scroller.getBoundingClientRect();var Y=(U+this.scrollLeft-W.left-this.$padding)/this.characterWidth;var X=Math.floor((Z+this.scrollTop-W.top)/this.lineHeight);var V=Math.round(Y);return{row:X,column:V,side:Y-V>0?1:-1};};this.screenToTextCoordinates=function(U,Y){var W=this.scroller.getBoundingClientRect();var V=Math.round((U+this.scrollLeft-W.left-this.$padding)/this.characterWidth);var X=Math.floor((Y+this.scrollTop-W.top)/this.lineHeight);return this.session.screenToDocumentPosition(X,Math.max(V,0));};this.textToScreenCoordinates=function(X,W){var V=this.scroller.getBoundingClientRect();var Z=this.session.documentToScreenPosition(X,W);var U=this.$padding+Math.round(Z.column*this.characterWidth);var Y=Z.row*this.lineHeight;return{pageX:V.left+U-this.scrollLeft,pageY:V.top+Y-this.scrollTop};};this.visualizeFocus=function(){M.addCssClass(this.container,"ace_focus");};this.visualizeBlur=function(){M.removeCssClass(this.container,"ace_focus");};this.showComposition=function(U){if(!this.$composition){this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText};}this.$keepTextAreaAtCursor=true;M.addCssClass(this.textarea,"ace_composition");this.textarea.style.cssText="";this.$moveTextAreaToCursor();};this.setCompositionText=function(U){this.$moveTextAreaToCursor();};this.hideComposition=function(){if(!this.$composition){return ;}M.removeCssClass(this.textarea,"ace_composition");this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor;this.textarea.style.cssText=this.$composition.cssText;this.$composition=null;};this._loadTheme=function(U,V){if(!Q.get("packaged")){return V();}K.loadScript(Q.moduleUrl(U,"theme"),V);};this.setTheme=function(Y){var U=this;this.$themeValue=Y;if(!Y||typeof Y=="string"){var V=Y||"ace/theme/textmate";var W;try{W=D(V);}catch(X){}if(W){return Z(W);}U._loadTheme(V,function(){D([V],function(a){if(U.$themeValue!==Y){return ;}Z(a);});});}else{Z(Y);}function Z(a){M.importCssString(a.cssText,a.cssClass,U.container.ownerDocument);if(U.$theme){M.removeCssClass(U.container,U.$theme);}U.$theme=a?a.cssClass:null;if(U.$theme){M.addCssClass(U.container,U.$theme);}if(a&&a.isDark){M.addCssClass(U.container,"ace_dark");}else{M.removeCssClass(U.container,"ace_dark");}if(U.$size){U.$size.width=0;U.onResize();}}};this.getTheme=function(){return this.$themeValue;};this.setStyle=function T(U){M.addCssClass(this.container,U);};this.unsetStyle=function S(U){M.removeCssClass(this.container,U);};this.destroy=function(){this.$textLayer.destroy();this.$cursorLayer.destroy();};}).call(F.prototype);R.VirtualRenderer=F;});define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(B,A,C){var G=B("../lib/dom");var F=B("../lib/oop");var E=B("../lib/event_emitter").EventEmitter;var D=function(H){this.element=G.createElement("div");this.element.className="ace_layer ace_gutter-layer";H.appendChild(this.element);this.setShowFoldWidgets(this.$showFoldWidgets);this.gutterWidth=0;this.$breakpoints=[];this.$annotations=[];this.$decorations=[];};(function(){F.implement(this,E);this.setSession=function(H){this.session=H;};this.addGutterDecoration=function(I,H){if(!this.$decorations[I]){this.$decorations[I]="";}this.$decorations[I]+=" "+H;};this.removeGutterDecoration=function(I,H){this.$decorations[I]=(this.$decorations[I]||"").replace(" "+H,"");};this.setAnnotations=function(N){this.$annotations=[];for(var O in N){if(N.hasOwnProperty(O)){var L=N[O];if(!L){continue;}var M=this.$annotations[O]={text:[]};for(var J=0;J<L.length;J++){var H=L[J];var I=H.text.replace(/"/g,"&quot;").replace(/'/g,"&#8217;").replace(/</,"&lt;");if(M.text.indexOf(I)===-1){M.text.push(I);}var K=H.type;if(K=="error"){M.className="ace_error";}else{if(K=="warning"&&M.className!="ace_error"){M.className="ace_warning";}else{if(K=="info"&&(!M.className)){M.className="ace_info";}}}}}}};this.update=function(I){this.$config=I;var R={className:"",text:[]};var N=[];var L=I.firstRow;var S=I.lastRow;var P=this.session.getNextFoldLine(L);var M=P?P.start.row:Infinity;var J=this.$showFoldWidgets&&this.session.foldWidgets;var O=this.session.$breakpoints;while(true){if(L>M){L=P.end.row+1;P=this.session.getNextFoldLine(L,P);M=P?P.start.row:Infinity;}if(L>S){break;}var K=this.$annotations[L]||R;N.push("<div class='ace_gutter-cell",this.$decorations[L]||"",O[L]?" ace_breakpoint ":" ",K.className,"' title='",K.text.join("\n"),"' style='height:",this.session.getRowLength(L)*I.lineHeight,"px;'>",(L+1));if(J){var Q=J[L];if(Q==null){Q=J[L]=this.session.getFoldWidget(L);}if(Q){N.push("<span class='ace_fold-widget ",Q,Q=="start"&&L==M&&L<P.end.row?" closed":" open","'></span>");}}N.push("</div>");L++;}if(this.session.$useWrapMode){N.push("<div class='ace_gutter-cell' style='pointer-events:none;opacity:0'>",this.session.getLength()-1,"</div>");}this.element=G.setInnerHtml(this.element,N.join(""));this.element.style.height=I.minHeight+"px";var H=this.element.offsetWidth;if(H!==this.gutterWidth){this.gutterWidth=H;this._emit("changeGutterWidth",H);}};this.$showFoldWidgets=true;this.setShowFoldWidgets=function(H){if(H){G.addCssClass(this.element,"ace_folding-enabled");}else{G.removeCssClass(this.element,"ace_folding-enabled");}this.$showFoldWidgets=H;};this.getShowFoldWidgets=function(){return this.$showFoldWidgets;};}).call(D.prototype);A.Gutter=D;});define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(C,B,D){var E=C("../range").Range;var F=C("../lib/dom");var A=function(G){this.element=F.createElement("div");this.element.className="ace_layer ace_marker-layer";G.appendChild(this.element);};(function(){this.$padding=0;this.setPadding=function(G){this.$padding=G;};this.setSession=function(G){this.session=G;};this.setMarkers=function(G){this.markers=G;};this.update=function(I){var I=I||this.config;if(!I){return ;}this.config=I;var K=[];for(var J in this.markers){var G=this.markers[J];if(!G.range){G.update(K,this,this.session,I);continue;}var H=G.range.clipRows(I.firstRow,I.lastRow);if(H.isEmpty()){continue;}H=H.toScreenRange(this.session);if(G.renderer){var M=this.$getTop(H.start.row,I);var L=Math.round(this.$padding+H.start.column*I.characterWidth);G.renderer(K,H,L,M,I);}else{if(H.isMultiLine()){if(G.type=="text"){this.drawTextMarker(K,H,G.clazz,I);}else{this.drawMultiLineMarker(K,H,G.clazz,I,G.type);}}else{this.drawSingleLineMarker(K,H,G.clazz+" start",I,null,G.type);}}}this.element=F.setInnerHtml(this.element,K.join(""));};this.$getTop=function(H,G){return(H-G.firstRowScreen)*G.lineHeight;};this.drawTextMarker=function(J,H,I,G){var L=H.start.row;var K=new E(L,H.start.column,L,this.session.getScreenLastRowColumn(L));this.drawSingleLineMarker(J,K,I+" start",G,1,"text");L=H.end.row;K=new E(L,0,L,H.end.column);this.drawSingleLineMarker(J,K,I,G,0,"text");for(L=H.start.row+1;L<H.end.row;L++){K.start.row=L;K.end.row=L;K.end.column=this.session.getScreenLastRowColumn(L);this.drawSingleLineMarker(J,K,I,G,1,"text");}};this.drawMultiLineMarker=function(H,K,L,I,M){var O=M==="background"?0:this.$padding;var P=I.lineHeight;var N=this.$getTop(K.start.row,I);var J=Math.round(O+K.start.column*I.characterWidth);H.push("<div class='",L," start' style='","height:",P,"px;","right:0;","top:",N,"px;","left:",J,"px;'></div>");N=this.$getTop(K.end.row,I);var G=Math.round(K.end.column*I.characterWidth);H.push("<div class='",L,"' style='","height:",P,"px;","width:",G,"px;","top:",N,"px;","left:",O,"px;'></div>");P=(K.end.row-K.start.row-1)*I.lineHeight;if(P<0){return ;}N=this.$getTop(K.start.row+1,I);H.push("<div class='",L,"' style='","height:",P,"px;","right:0;","top:",N,"px;","left:",O,"px;'></div>");};this.drawSingleLineMarker=function(H,J,L,P,K,M){var O=M==="background"?0:this.$padding;var Q=P.lineHeight;if(M==="background"){var G=P.width;}else{G=Math.round((J.end.column+(K||0)-J.start.column)*P.characterWidth);}var N=this.$getTop(J.start.row,P);var I=Math.round(O+J.start.column*P.characterWidth);H.push("<div class='",L,"' style='","height:",Q,"px;","width:",G,"px;","top:",N,"px;","left:",I,"px;'></div>");};}).call(A.prototype);B.Marker=A;});define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(E,G,B){var H=E("../lib/oop");var F=E("../lib/dom");var A=E("../lib/lang");var C=E("../lib/useragent");var I=E("../lib/event_emitter").EventEmitter;var D=function(J){this.element=F.createElement("div");this.element.className="ace_layer ace_text-layer";J.appendChild(this.element);this.$characterSize=this.$measureSizes()||{width:0,height:0};this.$pollSizeChanges();};(function(){H.implement(this,I);this.EOF_CHAR="\xB6";this.EOL_CHAR="\xAC";this.TAB_CHAR="\u2192";this.SPACE_CHAR="\xB7";this.$padding=0;this.setPadding=function(J){this.$padding=J;this.element.style.padding="0 "+J+"px";};this.getLineHeight=function(){return this.$characterSize.height||1;};this.getCharacterWidth=function(){return this.$characterSize.width||1;};this.checkForSizeChanges=function(){var J=this.$measureSizes();if(J&&(this.$characterSize.width!==J.width||this.$characterSize.height!==J.height)){this.$characterSize=J;this._emit("changeCharacterSize",{data:J});}};this.$pollSizeChanges=function(){var J=this;this.$pollSizeChangesTimer=setInterval(function(){J.checkForSizeChanges();},500);};this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1};this.$measureSizes=C.isIE||C.isOldGecko?function(){var P=1000;if(!this.$measureNode){var N=this.$measureNode=F.createElement("div");var M=N.style;M.width=M.height="auto";M.left=M.top=(-P*40)+"px";M.visibility="hidden";M.position="fixed";M.overflow="visible";M.whiteSpace="nowrap";N.innerHTML=A.stringRepeat("Xy",P);if(this.element.ownerDocument.body){this.element.ownerDocument.body.appendChild(N);}else{var J=this.element.parentNode;while(!F.hasCssClass(J,"ace_editor")){J=J.parentNode;}J.appendChild(N);}}if(!this.element.offsetWidth){return null;}var M=this.$measureNode.style;var K=F.computedStyle(this.element);for(var O in this.$fontStyles){M[O]=K[O];}var L={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(P*2)};if(L.width==0||L.height==0){return null;}return L;}:function(){if(!this.$measureNode){var N=this.$measureNode=F.createElement("div");var L=N.style;L.width=L.height="auto";L.left=L.top=-100+"px";L.visibility="hidden";L.position="fixed";L.overflow="visible";L.whiteSpace="nowrap";N.innerHTML="X";var J=this.element.parentNode;while(J&&!F.hasCssClass(J,"ace_editor")){J=J.parentNode;}if(!J){return this.$measureNode=null;}J.appendChild(N);}var M=this.$measureNode.getBoundingClientRect();var K={height:M.height,width:M.width};if(K.width==0||K.height==0){return null;}return K;};this.setSession=function(J){this.session=J;};this.showInvisibles=false;this.setShowInvisibles=function(J){if(this.showInvisibles==J){return false;}this.showInvisibles=J;return true;};this.$tabStrings=[];this.$computeTabString=function(){var L=this.session.getTabSize();var J=this.$tabStrings=[0];for(var K=1;K<L+1;K++){if(this.showInvisibles){J.push("<span class='ace_invisible'>"+this.TAB_CHAR+new Array(K).join("&#160;")+"</span>");}else{J.push(new Array(K+1).join("&#160;"));}}};this.updateLines=function(K,M,V){this.$computeTabString();if(this.config.lastRow!=K.lastRow||this.config.firstRow!=K.firstRow){this.scrollLines(K);}this.config=K;var P=Math.max(M,K.firstRow);var S=Math.min(V,K.lastRow);var T=this.element.childNodes;var J=0;for(var U=K.firstRow;U<P;U++){var R=this.session.getFoldLine(U);if(R){if(R.containsRow(P)){P=R.start.row;break;}else{U=R.end.row;}}J++;}for(var N=P;N<=S;N++){var L=T[J++];if(!L){continue;}var O=[];var Q=this.session.getTokens(N);this.$renderLine(O,N,Q,!this.$useLineGroups());L=F.setInnerHtml(L,O.join(""));N=this.session.getRowFoldEnd(N);}};this.scrollLines=function(L){this.$computeTabString();var J=this.config;this.config=L;if(!J||J.lastRow<L.firstRow){return this.update(L);}if(L.lastRow<J.firstRow){return this.update(L);}var M=this.element;if(J.firstRow<L.firstRow){for(var N=this.session.getFoldedRowCount(J.firstRow,L.firstRow-1);N>0;N--){M.removeChild(M.firstChild);}}if(J.lastRow>L.lastRow){for(var N=this.session.getFoldedRowCount(L.lastRow+1,J.lastRow);N>0;N--){M.removeChild(M.lastChild);}}if(L.firstRow<J.firstRow){var K=this.$renderLinesFragment(L,L.firstRow,J.firstRow-1);if(M.firstChild){M.insertBefore(K,M.firstChild);}else{M.appendChild(K);}}if(L.lastRow>J.lastRow){var K=this.$renderLinesFragment(L,J.lastRow+1,L.lastRow);M.appendChild(K);}};this.$renderLinesFragment=function(K,L,T){var O=this.element.ownerDocument.createDocumentFragment();var S=L;var Q=this.session.getNextFoldLine(S);var M=Q?Q.start.row:Infinity;while(true){if(S>M){S=Q.end.row+1;Q=this.session.getNextFoldLine(S,Q);M=Q?Q.start.row:Infinity;}if(S>T){break;}var J=F.createElement("div");var N=[];var P=this.session.getTokens(S);this.$renderLine(N,S,P,false);J.innerHTML=N.join("");if(this.$useLineGroups()){J.className="ace_line_group";O.appendChild(J);}else{var R=J.childNodes;while(R.length){O.appendChild(R[0]);}}S++;}return O;};this.update=function(K){this.$computeTabString();this.config=K;var L=[];var Q=K.firstRow,M=K.lastRow;var P=Q;var O=this.session.getNextFoldLine(P);var J=O?O.start.row:Infinity;while(true){if(P>J){P=O.end.row+1;O=this.session.getNextFoldLine(P,O);J=O?O.start.row:Infinity;}if(P>M){break;}if(this.$useLineGroups()){L.push("<div class='ace_line_group'>");}var N=this.session.getTokens(P);this.$renderLine(L,P,N,false);if(this.$useLineGroups()){L.push("</div>");}P++;}this.element=F.setInnerHtml(this.element,L.join(""));};this.$textToken={text:true,rparen:true,lparen:true};this.$renderToken=function(L,P,O,R){var S=this;var J=/\t|&|<|( +)|([\u0000-\u0019\u00a0\u1680\u180E\u2000-\u200b\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g;var Q=function(d,V,U,W,T){if(V){return new Array(d.length+1).join("&#160;");}else{if(d=="&"){return"&#38;";}else{if(d=="<"){return"&#60;";}else{if(d=="\t"){var Y=S.session.getScreenTabSize(P+W);P+=Y-1;return S.$tabStrings[Y];}else{if(d=="\u3000"){var Z=S.showInvisibles?"ace_cjk ace_invisible":"ace_cjk";var X=S.showInvisibles?S.SPACE_CHAR:"";P+=1;return"<span class='"+Z+"' style='width:"+(S.config.characterWidth*2)+"px'>"+X+"</span>";}else{if(U){return"<span class='ace_invisible ace_invalid'>"+S.SPACE_CHAR+"</span>";}else{P+=1;return"<span class='ace_cjk' style='width:"+(S.config.characterWidth*2)+"px'>"+d+"</span>";}}}}}}};var M=R.replace(J,Q);if(!this.$textToken[O.type]){var N="ace_"+O.type.replace(/\./g," ace_");var K="";if(O.type=="fold"){K=" style='width:"+(O.value.length*this.config.characterWidth)+"px;' ";}L.push("<span class='",N,"'",K,">",M,"</span>");}else{L.push(M);}return P+R.length;};this.$renderLineCore=function(J,V,P,T,K){var Q=0;var R=0;var L;var O=0;var U=this;if(!T||T.length==0){L=Number.MAX_VALUE;}else{L=T[0];}if(!K){J.push("<div class='ace_line' style='height:",this.config.lineHeight,"px","'>");}for(var N=0;N<P.length;N++){var M=P[N];var S=M.value;if(Q+S.length<L){O=U.$renderToken(J,O,M,S);Q+=S.length;}else{while(Q+S.length>=L){O=U.$renderToken(J,O,M,S.substring(0,L-Q));S=S.substring(L-Q);Q=L;if(!K){J.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px","'>");}R++;O=0;L=T[R]||Number.MAX_VALUE;}if(S.length!=0){Q+=S.length;O=U.$renderToken(J,O,M,S);}}}if(this.showInvisibles){if(V!==this.session.getLength()-1){J.push("<span class='ace_invisible'>"+this.EOL_CHAR+"</span>");}else{J.push("<span class='ace_invisible'>"+this.EOF_CHAR+"</span>");}}if(!K){J.push("</div>");}};this.$renderLine=function(K,N,M,J){if(!this.session.isRowFolded(N)){var L=this.session.getRowSplitData(N);this.$renderLineCore(K,N,M,L,J);}else{this.$renderFoldLine(K,N,M,J);}};this.$renderFoldLine=function(J,R,N,K){var O=this.session;var P=O.getFoldLine(R);var M=[];function L(V,X,W){var S=0,T=0;while((T+V[S].value.length)<X){T+=V[S].value.length;S++;if(S==V.length){return ;}}if(T!=X){var U=V[S].value.substring(X-T);if(U.length>(W-X)){U=U.substring(0,W-X);}M.push({type:V[S].type,value:U});T=X+U.length;S+=1;}while(T<W&&S<V.length){var U=V[S].value;if(U.length+T>W){M.push({type:V[S].type,value:U.substring(0,W-T)});}else{M.push(V[S]);}T+=U.length;S+=1;}}P.walk(function(W,V,U,T,S){if(W){M.push({type:"fold",value:W});}else{if(S){N=O.getTokens(V);}if(N.length){L(N,T,U);}}},P.end.row,this.session.getLine(P.end.row).length);var Q=this.session.$useWrapMode?this.session.$wrapData[R]:null;this.$renderLineCore(J,R,M,Q,K);};this.$useLineGroups=function(){return this.session.getUseWrapMode();};this.destroy=function(){clearInterval(this.$pollSizeChangesTimer);if(this.$measureNode){this.$measureNode.parentNode.removeChild(this.$measureNode);}delete this.$measureNode;};}).call(D.prototype);G.Text=D;});define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(B,A,C){var E=B("../lib/dom");var D=function(F){this.element=E.createElement("div");this.element.className="ace_layer ace_cursor-layer";F.appendChild(this.element);this.isVisible=false;this.cursors=[];this.cursor=this.addCursor();};(function(){this.$padding=0;this.setPadding=function(F){this.$padding=F;};this.setSession=function(F){this.session=F;};this.addCursor=function(){var G=E.createElement("div");var F="ace_cursor";if(!this.isVisible){F+=" ace_hidden";}if(this.overwrite){F+=" ace_overwrite";}G.className=F;this.element.appendChild(G);this.cursors.push(G);return G;};this.removeCursor=function(){if(this.cursors.length>1){var F=this.cursors.pop();F.parentNode.removeChild(F);return F;}};this.hideCursor=function(){this.isVisible=false;for(var F=this.cursors.length;F--;){E.addCssClass(this.cursors[F],"ace_hidden");}clearInterval(this.blinkId);};this.showCursor=function(){this.isVisible=true;for(var F=this.cursors.length;F--;){E.removeCssClass(this.cursors[F],"ace_hidden");}this.element.style.visibility="";this.restartTimer();};this.restartTimer=function(){clearInterval(this.blinkId);if(!this.isVisible){return ;}var F=this.cursors.length==1?this.cursor:this.element;this.blinkId=setInterval(function(){F.style.visibility="hidden";setTimeout(function(){F.style.visibility="";},400);},1000);};this.getPixelPosition=function(F,G){if(!this.config||!this.session){return{left:0,top:0};}if(!F){F=this.session.selection.getCursor();}var J=this.session.documentToScreenPosition(F);var H=Math.round(this.$padding+J.column*this.config.characterWidth);var I=(J.row-(G?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:H,top:I};};this.update=function(G){this.config=G;if(this.session.selectionMarkerCount>0){var J=this.session.$selectionMarkers;var H=0,L,M=0;for(var H=J.length;H--;){L=J[H];var K=this.getPixelPosition(L.cursor,true);var I=(this.cursors[M++]||this.addCursor()).style;I.left=K.left+"px";I.top=K.top+"px";I.width=G.characterWidth+"px";I.height=G.lineHeight+"px";}if(M>1){while(this.cursors.length>M){this.removeCursor();}}}else{var K=this.getPixelPosition(null,true);var I=this.cursor.style;I.left=K.left+"px";I.top=K.top+"px";I.width=G.characterWidth+"px";I.height=G.lineHeight+"px";while(this.cursors.length>1){this.removeCursor();}}var F=this.session.getOverwrite();if(F!=this.overwrite){this.$setOverite(F);}this.$pixelPos=K;this.restartTimer();};this.$setOverite=function(F){this.overwrite=F;for(var G=this.cursors.length;G--;){if(F){E.addCssClass(this.cursors[G],"ace_overwrite");}else{E.removeCssClass(this.cursors[G],"ace_overwrite");}}};this.destroy=function(){clearInterval(this.blinkId);};}).call(D.prototype);A.Cursor=D;});define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(B,A,C){var G=B("./lib/oop");var H=B("./lib/dom");var F=B("./lib/event");var E=B("./lib/event_emitter").EventEmitter;var D=function(I){this.element=H.createElement("div");this.element.className="ace_sb";this.inner=H.createElement("div");this.element.appendChild(this.inner);I.appendChild(this.element);this.width=H.scrollbarWidth(I.ownerDocument);this.element.style.width=(this.width||15)+5+"px";F.addListener(this.element,"scroll",this.onScroll.bind(this));};(function(){G.implement(this,E);this.onScroll=function(){this._emit("scroll",{data:this.element.scrollTop});};this.getWidth=function(){return this.width;};this.setHeight=function(I){this.element.style.height=I+"px";};this.setInnerHeight=function(I){this.inner.style.height=I+"px";};this.setScrollTop=function(I){this.element.scrollTop=I;};}).call(D.prototype);A.ScrollBar=D;});define("ace/renderloop",["require","exports","module","ace/lib/event"],function(B,A,C){var D=B("./lib/event");var E=function(G,F){this.onRender=G;this.pending=false;this.changes=0;this.window=F||window;};(function(){this.schedule=function(G){this.changes=this.changes|G;if(!this.pending){this.pending=true;var F=this;D.nextTick(function(){F.pending=false;var H;while(H=F.changes){F.changes=0;F.onRender(H);}},this.window);}};}).call(E.prototype);A.RenderLoop=E;});define("text!ace/css/editor.css",[],".ace_editor {\n    position: absolute;\n    overflow: hidden;\n    font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n    font-size: 12px;\n}\n\n.ace_scroller {\n    position: absolute;\n    overflow: hidden;\n}\n\n.ace_content {\n    position: absolute;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    cursor: text;\n}\n\n.ace_gutter {\n    position: absolute;\n    overflow : hidden;\n    height: 100%;\n    width: auto;\n    cursor: default;\n    z-index: 4;\n}\n\n.ace_scroller.horscroll {\n    box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n}\n\n.ace_gutter-cell {\n    padding-left: 19px;\n    padding-right: 6px;\n}\n\n.ace_gutter-cell.ace_error {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\");\n    background-repeat: no-repeat;\n    background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\");\n    background-repeat: no-repeat;\n    background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n    background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n    background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTk5MTVGREIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTk5MTVGRUIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFOTkxNUZCQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFOTkxNUZDQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SIDkjAAAAJ1JREFUeNpi/P//PwMlgImBQkB7A6qrq/+DMC55FkIGKCoq4pVnpFkgTp069f/+/fv/r1u37r+tre1/kg0A+ptn9uzZYLaRkRHpLvjw4cNXWVlZhufPnzOcO3eOdAO0tbVPAjHDmzdvGA4fPsxIsgGSkpJmv379Ynj37h2DjIyMCMkG3LhxQ/T27dsMampqDHZ2dq/pH41DxwCAAAMAFdc68dUsFZgAAAAASUVORK5CYII=\");\n}\n\n.ace_editor .ace_sb {\n    position: absolute;\n    overflow-x: hidden;\n    overflow-y: scroll;\n    right: 0;\n}\n\n.ace_editor .ace_sb div {\n    position: absolute;\n    width: 1px;\n    left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n    z-index: 0;\n    position: absolute;\n    overflow: hidden;\n    margin: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n    position: absolute;\n    height: 100%;\n}\n\n.ace_editor > textarea {\n    position: absolute;\n    z-index: 0;\n    width: 0.5em;\n    height: 1em;\n    opacity: 0;\n    background: transparent;\n    appearance: none;\n    -moz-appearance: none;\n    border: none;\n    resize: none;\n    outline: none;\n    overflow: hidden;\n}\n\n.ace_editor > textarea.ace_composition {\n    background: #fff;\n    color: #000;\n    z-index: 1000;\n    opacity: 1;\n    border: solid lightgray 1px;\n    margin: -1px\n}\n\n.ace_layer {\n    z-index: 1;\n    position: absolute;\n    overflow: hidden;\n    white-space: nowrap;\n    height: 100%;\n    width: 100%;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    /* setting pointer-events: auto; on node under the mouse, which changes\n        during scroll, will break mouse wheel scrolling in Safari */\n    pointer-events: none;\n}\n\n.ace_gutter .ace_layer {\n    position: relative;\n    min-width: 40px;\n    width: auto;\n    text-align: right;\n    pointer-events: auto;\n}\n\n.ace_text-layer {\n    color: black;\n    font: inherit !important;\n}\n\n.ace_cjk {\n    display: inline-block;\n    text-align: center;\n}\n\n.ace_cursor-layer {\n    z-index: 4;\n}\n\n.ace_cursor {\n    z-index: 4;\n    position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n    opacity: 0.2;\n}\n\n.ace_editor.multiselect .ace_cursor {\n    border-left-width: 1px;\n}\n\n.ace_line {\n    white-space: nowrap;\n}\n\n.ace_marker-layer .ace_step {\n    position: absolute;\n    z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n    position: absolute;\n    z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n    position: absolute;\n    z-index: 6;\n}\n\n.ace_marker-layer .ace_active_line {\n    position: absolute;\n    z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n    position: absolute;\n    z-index: 4;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n\n    display: inline-block;\n    height: 11px;\n    margin-top: -2px;\n    vertical-align: middle;\n\n    background-image:\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat, repeat-x;\n    background-position: center center, top left;\n    color: transparent;\n\n    border: 1px solid black;\n    -moz-border-radius: 2px;\n    -webkit-border-radius: 2px;\n    border-radius: 2px;\n\n    cursor: pointer;\n    pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n    background-image:\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat, repeat-x;\n    background-position: center center, top left;\n}\n\n.ace_dragging .ace_content {\n    cursor: move;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n    padding-right: 13px;\n}\n\n.ace_fold-widget {\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n\n    margin: 0 -12px 1px 1px;\n    display: inline-block;\n    height: 14px;\n    width: 11px;\n    vertical-align: text-bottom;\n\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat;\n    background-position: center 4px;\n\n    border-radius: 3px;\n    \n    border: 1px solid transparent;\n}\n\n.ace_fold-widget.end {\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget.closed {\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget:hover {\n    border: 1px solid rgba(0, 0, 0, 0.3);\n    background-color: rgba(255, 255, 255, 0.2);\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n    background-position: center 4px;\n}\n\n.ace_fold-widget:active {\n    border: 1px solid rgba(0, 0, 0, 0.4);\n    background-color: rgba(0, 0, 0, 0.05);\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");\n}\n.ace_dark .ace_fold-widget.end {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");\n}\n.ace_dark .ace_fold-widget.closed {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");\n}\n.ace_dark .ace_fold-widget:hover {\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n    \n    \n    \n.ace_fold-widget.invalid {\n    background-color: #FFB4B4;\n    border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n       -moz-transition: opacity 0.4s ease 0.05s;\n    -webkit-transition: opacity 0.4s ease 0.05s;\n         -o-transition: opacity 0.4s ease 0.05s;\n        -ms-transition: opacity 0.4s ease 0.05s;\n            transition: opacity 0.4s ease 0.05s;\n    opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n       -moz-transition: opacity 0.05s ease 0.05s;\n    -webkit-transition: opacity 0.05s ease 0.05s;\n         -o-transition: opacity 0.05s ease 0.05s;\n        -ms-transition: opacity 0.05s ease 0.05s;\n            transition: opacity 0.05s ease 0.05s;\n    opacity:1;\n}\n");define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(G,I,D){var J=G("./range_list").RangeList;var F=G("./range").Range;var Q=G("./selection").Selection;var N=G("./mouse/multi_select_handler").onMouseDown;var B=G("./lib/event");var C=G("./commands/multi_select_commands");I.commands=C.defaultCommands.concat(C.multiSelectCommands);var E=G("./search").Search;var P=new E();function L(T,S,R){P.$options.wrap=true;P.$options.needle=S;P.$options.backwards=R==-1;return P.find(T);}var A=G("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers;};}).call(A.prototype);(function(){this.ranges=null;this.rangeList=null;this.addRange=function(S,R){if(!S){return ;}if(!this.inMultiSelectMode&&this.rangeCount==0){var U=this.toOrientedRange();if(S.intersects(U)){return R||this.fromOrientedRange(S);}this.rangeList.add(U);this.$onAddRange(U);}if(!S.cursor){S.cursor=S.end;}var T=this.rangeList.add(S);this.$onAddRange(S);if(T.length){this.$onRemoveRange(T);}if(this.rangeCount>1&&!this.inMultiSelectMode){this._emit("multiSelect");this.inMultiSelectMode=true;this.session.$undoSelect=false;this.rangeList.attach(this.session);}return R||this.fromOrientedRange(S);};this.toSingleRange=function(R){R=R||this.ranges[0];var S=this.rangeList.removeAll();if(S.length){this.$onRemoveRange(S);}R&&this.fromOrientedRange(R);};this.substractPoint=function(S){var R=this.rangeList.substractPoint(S);if(R){this.$onRemoveRange(R);return R[0];}};this.mergeOverlappingRanges=function(){var R=this.rangeList.merge();if(R.length){this.$onRemoveRange(R);}else{if(this.ranges[0]){this.fromOrientedRange(this.ranges[0]);}}};this.$onAddRange=function(R){this.rangeCount=this.rangeList.ranges.length;this.ranges.unshift(R);this._emit("addRange",{range:R});};this.$onRemoveRange=function(T){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var U=this.rangeList.ranges.pop();T.push(U);this.rangeCount=0;}for(var S=T.length;S--;){var R=this.ranges.indexOf(T[S]);this.ranges.splice(R,1);}this._emit("removeRange",{ranges:T});if(this.rangeCount==0&&this.inMultiSelectMode){this.inMultiSelectMode=false;this._emit("singleSelect");this.session.$undoSelect=true;this.rangeList.detach(this.session);}U=U||this.ranges[0];if(U&&!U.isEqual(this.getRange())){this.fromOrientedRange(U);}};this.$initRangeList=function(){if(this.rangeList){return ;}this.rangeList=new J();this.ranges=[];this.rangeCount=0;};this.getAllRanges=function(){return this.rangeList.ranges.concat();};this.splitIntoLines=function(){if(this.rangeCount>1){var R=this.rangeList.ranges;var X=R[R.length-1];var U=F.fromPoints(R[0].start,X.end);this.toSingleRange();this.setSelectionRange(U,X.cursor==X.start);}else{var U=this.getRange();var T=U.start.row;var S=U.end.row;if(T==S){return ;}var Y=[];var W=this.getLineRange(T,true);W.start.column=U.start.column;Y.push(W);for(var V=T+1;V<S;V++){Y.push(this.getLineRange(V,true));}W=this.getLineRange(S,true);W.end.column=U.end.column;Y.push(W);Y.forEach(this.addRange,this);}};this.toggleBlockSelection=function(){if(this.rangeCount>1){var R=this.rangeList.ranges;var V=R[R.length-1];var S=F.fromPoints(R[0].start,V.end);this.toSingleRange();this.setSelectionRange(S,V.cursor==V.start);}else{var U=this.session.documentToScreenPosition(this.selectionLead);var T=this.session.documentToScreenPosition(this.selectionAnchor);var W=this.rectangularRangeBlock(U,T);W.forEach(this.addRange,this);}};this.rectangularRangeBlock=function(S,Y,d){var T=[];var V=S.column<Y.column;if(V){var U=S.column;var c=Y.column;}else{var U=Y.column;var c=S.column;}var e=S.row<Y.row;if(e){var f=S.row;var X=Y.row;}else{var f=Y.row;var X=S.row;}if(U<0){U=0;}if(f<0){f=0;}if(f==X){d=true;}for(var g=f;g<=X;g++){var a=F.fromPoints(this.session.screenToDocumentPosition(g,U),this.session.screenToDocumentPosition(g,c));if(a.isEmpty()){if(b&&O(a.end,b)){break;}var b=a.end;}a.cursor=V?a.start:a.end;T.push(a);}if(e){T.reverse();}if(!d){var W=T.length-1;while(T[W].isEmpty()&&W>0){W--;}if(W>0){var R=0;while(T[R].isEmpty()){R++;}}for(var Z=W;Z>=R;Z--){if(T[Z].isEmpty()){T.splice(Z,1);}}}return T;};}).call(Q.prototype);var K=G("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor();this.renderer.updateBackMarkers();};this.addSelectionMarker=function(S){if(!S.cursor){S.cursor=S.end;}var R=this.getSelectionStyle();S.marker=this.session.addMarker(S,"ace_selection",R);this.session.$selectionMarkers.push(S);this.session.selectionMarkerCount=this.session.$selectionMarkers.length;return S;};this.removeSelectionMarker=function(R){if(!R.marker){return ;}this.session.removeMarker(R.marker);var S=this.session.$selectionMarkers.indexOf(R);if(S!=-1){this.session.$selectionMarkers.splice(S,1);}this.session.selectionMarkerCount=this.session.$selectionMarkers.length;};this.removeSelectionMarkers=function(R){var T=this.session.$selectionMarkers;for(var V=R.length;V--;){var S=R[V];if(!S.marker){continue;}this.session.removeMarker(S.marker);var U=T.indexOf(S);if(U!=-1){T.splice(U,1);}}this.session.selectionMarkerCount=T.length;};this.$onAddRange=function(R){this.addSelectionMarker(R.range);this.renderer.updateCursor();this.renderer.updateBackMarkers();};this.$onRemoveRange=function(R){this.removeSelectionMarkers(R.ranges);this.renderer.updateCursor();this.renderer.updateBackMarkers();};this.$onMultiSelect=function(R){if(this.inMultiSelectMode){return ;}this.inMultiSelectMode=true;this.setStyle("multiselect");this.keyBinding.addKeyboardHandler(C.keyboardHandler);this.commands.on("exec",this.$onMultiSelectExec);this.renderer.updateCursor();this.renderer.updateBackMarkers();};this.$onSingleSelect=function(R){if(this.session.multiSelect.inVirtualMode){return ;}this.inMultiSelectMode=false;this.unsetStyle("multiselect");this.keyBinding.removeKeyboardHandler(C.keyboardHandler);this.commands.removeEventListener("exec",this.$onMultiSelectExec);this.renderer.updateCursor();this.renderer.updateBackMarkers();};this.$onMultiSelectExec=function(S){var T=S.command;var R=S.editor;if(!R.multiSelect){return ;}if(!T.multiSelectAction){T.exec(R,S.args||{});R.multiSelect.addRange(R.multiSelect.toOrientedRange());R.multiSelect.mergeOverlappingRanges();}else{if(T.multiSelectAction=="forEach"){R.forEachSelection(T,S.args);}else{if(T.multiSelectAction=="single"){R.exitMultiSelectMode();T.exec(R,S.args||{});}else{T.multiSelectAction(R,S.args||{});}}}S.preventDefault();};this.forEachSelection=function(W,S){if(this.inVirtualSelectionMode){return ;}var X=this.session;var V=this.selection;var R=V.rangeList;var U=V._eventRegistry;V._eventRegistry={};var Y=new Q(X);this.inVirtualSelectionMode=true;for(var T=R.ranges.length;T--;){Y.fromOrientedRange(R.ranges[T]);this.selection=X.selection=Y;W.exec(this,S||{});Y.toOrientedRange(R.ranges[T]);}Y.detach();this.selection=X.selection=V;this.inVirtualSelectionMode=false;V._eventRegistry=U;V.mergeOverlappingRanges();this.onCursorChange();this.onSelectionChange();};this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode){return ;}this.multiSelect.toSingleRange();};this.getCopyText=function(){var T="";if(this.inMultiSelectMode){var R=this.multiSelect.rangeList.ranges;T=[];for(var S=0;S<R.length;S++){T.push(this.session.getTextRange(R[S]));}T=T.join(this.session.getDocument().getNewLineCharacter());}else{if(!this.selection.isEmpty()){T=this.session.getTextRange(this.getSelectionRange());}}return T;};this.onPaste=function(V){this._emit("paste",V);if(!this.inMultiSelectMode){return this.insert(V);}var S=V.split(/\r\n|\r|\n/);var R=this.selection.rangeList.ranges;if(S.length>R.length||(S.length<=2||!S[1])){return this.commands.exec("insertstring",this,V);}for(var U=R.length;U--;){var T=R[U];if(!T.isEmpty()){this.session.remove(T);}this.session.insert(T.start,S[U]);}};this.findAll=function(W,T,S){T=T||{};T.needle=W||T.needle;this.$search.set(T);var R=this.$search.findAll(this.session);if(!R.length){return 0;}this.$blockScrolling+=1;var V=this.multiSelect;if(!S){V.toSingleRange(R[0]);}for(var U=R.length;U--;){V.addRange(R[U],true);}this.$blockScrolling-=1;return R.length;};this.selectMoreLines=function(S,Z){var V=this.selection.toOrientedRange();var a=V.cursor==V.end;var Y=this.session.documentToScreenPosition(V.cursor);if(this.selection.$desiredColumn){Y.column=this.selection.$desiredColumn;}var W=this.session.screenToDocumentPosition(Y.row+S,Y.column);if(!V.isEmpty()){var T=this.session.documentToScreenPosition(a?V.end:V.start);var U=this.session.screenToDocumentPosition(T.row+S,T.column);}else{var U=W;}if(a){var X=F.fromPoints(W,U);X.cursor=X.start;}else{var X=F.fromPoints(U,W);X.cursor=X.end;}X.desiredColumn=Y.column;if(!this.selection.inMultiSelectMode){this.selection.addRange(V);}else{if(Z){var R=V.cursor;}}this.selection.addRange(X);if(R){this.selection.substractPoint(R);}};this.transposeSelections=function(S){var X=this.session;var W=X.multiSelect;var V=W.ranges;for(var U=V.length;U--;){var R=V[U];if(R.isEmpty()){var T=X.getWordRange(R.start.row,R.start.column);R.start.row=T.start.row;R.start.column=T.start.column;R.end.row=T.end.row;R.end.column=T.end.column;}}W.mergeOverlappingRanges();var Y=[];for(var U=V.length;U--;){var R=V[U];Y.unshift(X.getTextRange(R));}if(S<0){Y.unshift(Y.pop());}else{Y.push(Y.shift());}for(var U=V.length;U--;){var R=V[U];var T=R.clone();X.replace(R,Y[U]);R.start.row=T.start.row;R.start.column=T.start.column;}};this.selectMore=function(T,U){var X=this.session;var V=X.multiSelect;var R=V.toOrientedRange();if(R.isEmpty()){var R=X.getWordRange(R.start.row,R.start.column);R.cursor=R.end;this.multiSelect.addRange(R);}var W=X.getTextRange(R);var S=L(X,W,T);if(S){S.cursor=T==-1?S.start:S.end;this.multiSelect.addRange(S);}if(U){this.multiSelect.substractPoint(R.cursor);}};}).call(K.prototype);function O(S,R){return S.row==R.row&&S.column==R.column;}I.onSessionChange=function(T){var S=T.session;if(!S.multiSelect){S.$selectionMarkers=[];S.selection.$initRangeList();S.multiSelect=S.selection;}this.multiSelect=S.multiSelect;var R=T.oldSession;if(R){if(R.multiSelect&&R.multiSelect.editor==this){R.multiSelect.editor=null;}S.multiSelect.removeEventListener("addRange",this.$onAddRange);S.multiSelect.removeEventListener("removeRange",this.$onRemoveRange);S.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect);S.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect);}S.multiSelect.on("addRange",this.$onAddRange);S.multiSelect.on("removeRange",this.$onRemoveRange);S.multiSelect.on("multiSelect",this.$onMultiSelect);S.multiSelect.on("singleSelect",this.$onSingleSelect);if(this.inMultiSelectMode!=S.selection.inMultiSelectMode){if(S.selection.inMultiSelectMode){this.$onMultiSelect();}else{this.$onSingleSelect();}}};function M(R){R.$onAddRange=R.$onAddRange.bind(R);R.$onRemoveRange=R.$onRemoveRange.bind(R);R.$onMultiSelect=R.$onMultiSelect.bind(R);R.$onSingleSelect=R.$onSingleSelect.bind(R);I.onSessionChange.call(R,R);R.on("changeSession",I.onSessionChange.bind(R));R.on("mousedown",N);R.commands.addCommands(C.defaultCommands);H(R);}function H(T){var S=T.textInput.getElement();var V=false;var R=T.renderer.content;B.addListener(S,"keydown",function(W){if(W.keyCode==18&&!(W.ctrlKey||W.shiftKey||W.metaKey)){if(!V){R.style.cursor="crosshair";V=true;}}else{if(V){R.style.cursor="";}}});B.addListener(S,"keyup",U);B.addListener(S,"blur",U);function U(){if(V){R.style.cursor="";V=false;}}}I.MultiSelect=M;});define("ace/range_list",["require","exports","module"],function(C,B,D){var A=function(){this.ranges=[];};(function(){this.comparePoints=function(F,E){return F.row-E.row||F.column-E.column;};this.pointIndex=function(J,I){var H=this.ranges;for(var F=I||0;F<H.length;F++){var E=H[F];var G=this.comparePoints(J,E.end);if(G>0){continue;}if(G==0){return F;}G=this.comparePoints(J,E.start);if(G>=0){return F;}return -F-1;}return -F-1;};this.add=function(E){var G=this.pointIndex(E.start);if(G<0){G=-G-1;}var F=this.pointIndex(E.end,G);if(F<0){F=-F-1;}else{F++;}return this.ranges.splice(G,F-G,E);};this.addList=function(F){var G=[];for(var E=F.length;E--;){G.push.call(G,this.add(F[E]));}return G;};this.substractPoint=function(F){var E=this.pointIndex(F);if(E>=0){return this.ranges.splice(E,1);}};this.merge=function(){var J=[];var I=this.ranges;var G=I[0],E;for(var F=1;F<I.length;F++){E=G;G=I[F];var H=this.comparePoints(E.end,G.start);if(H<0){continue;}if(H==0&&!(E.isEmpty()||G.isEmpty())){continue;}if(this.comparePoints(E.end,G.end)<0){E.end.row=G.end.row;E.end.column=G.end.column;}I.splice(F,1);J.push(G);G=E;F--;}return J;};this.contains=function(F,E){return this.pointIndex({row:F,column:E})>=0;};this.containsPoint=function(E){return this.pointIndex(E)>=0;};this.rangeAtPoint=function(F){var E=this.pointIndex(F);if(E>=0){return this.ranges[E];}};this.clipRows=function(G,F){var J=this.ranges;if(J[0].start.row>F||J[J.length-1].start.row<G){return[];}var K=this.pointIndex({row:G,column:0});if(K<0){K=-K-1;}var I=this.pointIndex({row:F,column:0},K);if(I<0){I=-I-1;}var E=[];for(var H=K;H<I;H++){E.push(J[H]);}return E;};this.removeAll=function(){return this.ranges.splice(0,this.ranges.length);};this.attach=function(E){if(this.session){this.detach();}this.session=E;this.onChange=this.$onChange.bind(this);this.session.on("change",this.onChange);};this.detach=function(){if(!this.session){return ;}this.session.removeListener("change",this.onChange);this.session=null;};this.$onChange=function(N){var I=N.data.range;if(N.data.action[0]=="i"){var G=I.start;var J=I.end;}else{var J=I.start;var G=I.end;}var P=G.row;var K=J.row;var O=K-P;var M=-G.column+J.column;var F=this.ranges;for(var L=0,H=F.length;L<H;L++){var E=F[L];if(E.end.row<P){continue;}if(E.start.row>P){break;}if(E.start.row==P&&E.start.column>=G.column){E.start.column+=M;E.start.row+=O;}if(E.end.row==P&&E.end.column>=G.column){E.end.column+=M;E.end.row+=O;}}if(O!=0&&L<H){for(;L<H;L++){var E=F[L];E.start.row+=O;E.end.row+=O;}}};}).call(A.prototype);B.RangeList=A;});define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event"],function(C,A,D){var E=C("../lib/event");function B(H,G){return H.row==G.row&&H.column==G.column;}function F(a){var b=a.domEvent;var d=b.altKey;var W=b.shiftKey;var R=a.getAccelKey();var G=a.getButton();if(a.editor.inMultiSelectMode&&G==2){a.editor.textInput.onContextMenu(a.domEvent);return ;}if(!R&&!d){if(G==0&&a.editor.inMultiSelectMode){a.editor.exitMultiSelectMode();}return ;}var L=a.editor;var f=L.selection;var c=L.inMultiSelectMode;var O=a.getDocumentPosition();var M=f.getCursor();var X=a.inSelection()||(f.isEmpty()&&B(O,M));var Q=a.x,P=a.y;var N=function(g){Q=g.clientX;P=g.clientY;};var J=function(){var g=L.renderer.pixelToScreenCoordinates(Q,P);var e=H.screenToDocumentPosition(g.row,g.column);if(B(U,g)&&B(e,f.selectionLead)){return ;}U=g;L.selection.moveCursorToPosition(e);L.selection.clearSelection();L.renderer.scrollCursorIntoView();L.removeSelectionMarkers(Z);Z=f.rectangularRangeBlock(U,K);Z.forEach(L.addSelectionMarker,L);L.updateSelectionMarkers();};var H=L.session;var K=L.renderer.pixelToScreenCoordinates(Q,P);var U=K;if(R&&!W&&!d&&G==0){if(!c&&X){return ;}if(!c){var V=f.toOrientedRange();L.addSelectionMarker(V);}var T=f.rangeList.rangeAtPoint(O);E.capture(L.container,function(){},function(){var e=f.toOrientedRange();if(T&&e.isEmpty()&&B(T.cursor,e.cursor)){f.substractPoint(e.cursor);}else{if(V){L.removeSelectionMarker(V);f.addRange(V);}f.addRange(e);}});}else{if(!W&&d&&G==0){a.stop();if(c&&!R){f.toSingleRange();}else{if(!c&&R){f.addRange();}}f.moveCursorToPosition(O);f.clearSelection();var Z=[];var I=function(h){clearInterval(S);L.removeSelectionMarkers(Z);for(var g=0;g<Z.length;g++){f.addRange(Z[g]);}};var Y=J;E.capture(L.container,N,I);var S=setInterval(function(){Y();},20);return a.preventDefault();}}}A.onMouseDown=F;});define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(B,A,C){A.defaultCommands=[{name:"addCursorAbove",exec:function(E){E.selectMoreLines(-1);},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},readonly:true},{name:"addCursorBelow",exec:function(E){E.selectMoreLines(1);},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},readonly:true},{name:"addCursorAboveSkipCurrent",exec:function(E){E.selectMoreLines(-1,true);},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},readonly:true},{name:"addCursorBelowSkipCurrent",exec:function(E){E.selectMoreLines(1,true);},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},readonly:true},{name:"selectMoreBefore",exec:function(E){E.selectMore(-1);},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},readonly:true},{name:"selectMoreAfter",exec:function(E){E.selectMore(1);},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},readonly:true},{name:"selectNextBefore",exec:function(E){E.selectMore(-1,true);},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},readonly:true},{name:"selectNextAfter",exec:function(E){E.selectMore(1,true);},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},readonly:true},{name:"splitIntoLines",exec:function(E){E.multiSelect.splitIntoLines();},bindKey:{win:"Ctrl-Shift-L",mac:"Ctrl-Shift-L"},readonly:true}];A.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(E){E.exitMultiSelectMode();},readonly:true,isAvailable:function(E){return E&&E.inMultiSelectMode;}}];var D=B("../keyboard/hash_handler").HashHandler;A.keyboardHandler=new D(A.multiSelectCommands);});define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/config"],function(C,A,D){var F=C("../lib/oop");var E=C("../lib/event_emitter").EventEmitter;var B=C("../config");var G=function(H,M,I){this.changeListener=this.changeListener.bind(this);if(B.get("packaged")){this.$worker=new Worker(B.moduleUrl(M,"worker"));}else{var N;if(typeof C.supports!=="undefined"&&C.supports.indexOf("ucjs2-pinf-0")>=0){N=C.nameToUrl("ace/worker/worker_sourcemint");}else{if(C.nameToUrl&&!C.toUrl){C.toUrl=C.nameToUrl;}N=this.$normalizePath(C.toUrl("ace/worker/worker",null,"_"));}this.$worker=new Worker(N);var O={};for(var J=0;J<H.length;J++){var L=H[J];var P=this.$normalizePath(C.toUrl(L,null,"_").replace(/.js(\?.*)?$/,""));O[L]=P;}}this.$worker.postMessage({init:true,tlns:O,module:M,classname:I});this.callbackId=1;this.callbacks={};var K=this;this.$worker.onerror=function(Q){window.console&&console.log&&console.log(Q);throw Q;};this.$worker.onmessage=function(Q){var R=Q.data;switch(R.type){case"log":window.console&&console.log&&console.log(R.data);break;case"event":K._emit(R.name,{data:R.data});break;case"call":var S=K.callbacks[R.id];if(S){S(R.data);delete K.callbacks[R.id];}break;}};};(function(){F.implement(this,E);this.$normalizePath=function(H){H=H.replace(/^[a-z]+:\/\/[^\/]+/,"");H=location.protocol+"//"+location.host+(H.charAt(0)=="/"?"":location.pathname.replace(/\/[^\/]*$/,""))+"/"+H.replace(/^[\/]+/,"");return H;};this.terminate=function(){this._emit("terminate",{});this.$worker.terminate();this.$worker=null;this.$doc.removeEventListener("change",this.changeListener);this.$doc=null;};this.send=function(I,H){this.$worker.postMessage({command:I,args:H});};this.call=function(I,H,K){if(K){var J=this.callbackId++;this.callbacks[J]=K;H.push(J);}this.send(I,H);};this.emit=function(I,J){try{this.$worker.postMessage({event:I,data:{data:J.data}});}catch(H){}};this.attachToDocument=function(H){if(this.$doc){this.terminate();}this.$doc=H;this.call("setValue",[H.getValue()]);H.on("change",this.changeListener);};this.changeListener=function(H){H.range={start:H.data.range.start,end:H.data.range.end};this.emit("change",H);};}).call(G.prototype);A.WorkerClient=G;});define("ace/keyboard/state_handler",["require","exports","module"],function(C,B,D){var A=false;function E(F){this.keymapping=this.$buildKeymappingRegex(F);}E.prototype={$buildKeymappingRegex:function(G){for(var F in G){this.$buildBindingsRegex(G[F]);}return G;},$buildBindingsRegex:function(F){F.forEach(function(G){if(G.key){G.key=new RegExp("^"+G.key+"$");}else{if(Array.isArray(G.regex)){if(!("key" in G)){G.key=new RegExp("^"+G.regex[1]+"$");}G.regex=new RegExp(G.regex.join("")+"$");}else{if(G.regex){G.regex=new RegExp(G.regex+"$");}}}});},$composeBuffer:function(L,K,H,M){if(L.state==null||L.buffer==null){L.state="start";L.buffer="";}var F=[];if(K&1){F.push("ctrl");}if(K&8){F.push("command");}if(K&2){F.push("option");}if(K&4){F.push("shift");}if(H){F.push(H);}var G=F.join("-");var J=L.buffer+G;if(K!=2){L.buffer=J;}var I={bufferToUse:J,symbolicName:G};if(M){I.keyIdentifier=M.keyIdentifier;}return I;},$find:function(K,G,H,J,I,L){var F={};this.keymapping[K.state].some(function(P){var M;if(P.key&&!P.key.test(H)){return false;}if(P.regex&&!(M=P.regex.exec(G))){return false;}if(P.match&&!P.match(G,J,I,H,L)){return false;}if(P.disallowMatches){for(var N=0;N<P.disallowMatches.length;N++){if(!!M[P.disallowMatches[N]]){return false;}}}if(P.exec){F.command=P.exec;if(P.params){var O;F.args={};P.params.forEach(function(Q){if(Q.match!=null&&M!=null){O=M[Q.match]||Q.defaultValue;}else{O=Q.defaultValue;}if(Q.type==="number"){O=parseInt(O);}F.args[Q.name]=O;});}K.buffer="";}if(P.then){K.state=P.then;K.buffer="";}if(F.command==null){F.command="null";}if(A){console.log("KeyboardStateMapper#find",P);}return true;});if(F.command){return F;}else{K.buffer="";return false;}},handleKeyboard:function(J,H,L,N,K){if(H==-1){H=0;}if(H!=0&&(L==""||L==String.fromCharCode(0))){return null;}var F=this.$composeBuffer(J,H,L,K);var I=F.bufferToUse;var G=F.symbolicName;var M=F.keyIdentifier;F=this.$find(J,I,G,H,L,M);if(A){console.log("KeyboardStateMapper#match",I,G,F);}return F;}};B.matchCharacterOnly=function(F,I,H,G){if(I==0){return true;}else{if((I==4)&&H.length==1){return true;}else{return false;}}};B.StateHandler=E;});define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(B,A,C){var F=B("./range").Range;var E=B("./lib/event_emitter").EventEmitter;var D=B("./lib/oop");var G=function(N,M,O,L,I,K){var H=this;this.length=M;this.session=N;this.doc=N.getDocument();this.mainClass=I;this.othersClass=K;this.$onUpdate=this.onUpdate.bind(this);this.doc.on("change",this.$onUpdate);this.$others=L;this.$onCursorChange=function(){setTimeout(function(){H.onCursorChange();});};this.$pos=O;var J=N.getUndoManager().$undoStack||N.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=J.length;this.setup();N.selection.on("changeCursor",this.$onCursorChange);};(function(){D.implement(this,E);this.setup=function(){var H=this;var J=this.doc;var I=this.session;var K=this.$pos;this.pos=J.createAnchor(K.row,K.column);this.markerId=I.addMarker(new F(K.row,K.column,K.row,K.column+this.length),this.mainClass,null,false);this.pos.on("change",function(L){I.removeMarker(H.markerId);H.markerId=I.addMarker(new F(L.value.row,L.value.column,L.value.row,L.value.column+H.length),H.mainClass,null,false);});this.others=[];this.$others.forEach(function(L){var M=J.createAnchor(L.row,L.column);H.others.push(M);});I.setUndoSelect(false);};this.showOtherMarkers=function(){if(this.othersActive){return ;}var I=this.session;var H=this;this.othersActive=true;this.others.forEach(function(J){J.markerId=I.addMarker(new F(J.row,J.column,J.row,J.column+H.length),H.othersClass,null,false);J.on("change",function(K){I.removeMarker(J.markerId);J.markerId=I.addMarker(new F(K.value.row,K.value.column,K.value.row,K.value.column+H.length),H.othersClass,null,false);});});};this.hideOtherMarkers=function(){if(!this.othersActive){return ;}this.othersActive=false;for(var H=0;H<this.others.length;H++){this.session.removeMarker(this.others[H].markerId);}};this.onUpdate=function(N){var O=N.data;var H=O.range;if(H.start.row!==H.end.row){return ;}if(H.start.row!==this.pos.row){return ;}if(this.$updating){return ;}this.$updating=true;var J=O.action==="insertText"?H.end.column-H.start.column:H.start.column-H.end.column;if(H.start.column>=this.pos.column&&H.start.column<=this.pos.column+this.length+1){var M=H.start.column-this.pos.column;this.length+=J;if(!this.session.$fromUndo){if(O.action==="insertText"){for(var L=this.others.length-1;L>=0;L--){var I=this.others[L];var K={row:I.row,column:I.column+M};if(I.row===H.start.row&&H.start.column<I.column){K.column+=J;}this.doc.insert(K,O.text);}}else{if(O.action==="removeText"){for(var L=this.others.length-1;L>=0;L--){var I=this.others[L];var K={row:I.row,column:I.column+M};if(I.row===H.start.row&&H.start.column<I.column){K.column+=J;}this.doc.remove(new F(K.row,K.column,K.row,K.column-J));}}}if(H.start.column===this.pos.column&&O.action==="insertText"){setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-J);for(var R=0;R<this.others.length;R++){var P=this.others[R];var Q={row:P.row,column:P.column-J};if(P.row===H.start.row&&H.start.column<P.column){Q.column+=J;}P.setPosition(Q.row,Q.column);}}.bind(this),0);}else{if(H.start.column===this.pos.column&&O.action==="removeText"){setTimeout(function(){for(var Q=0;Q<this.others.length;Q++){var P=this.others[Q];if(P.row===H.start.row&&H.start.column<P.column){P.setPosition(P.row,P.column-J);}}}.bind(this),0);}}}this.pos._emit("change",{value:this.pos});for(var L=0;L<this.others.length;L++){this.others[L]._emit("change",{value:this.others[L]});}}this.$updating=false;};this.onCursorChange=function(H){if(this.$updating){return ;}var I=this.session.selection.getCursor();if(I.row===this.pos.row&&I.column>=this.pos.column&&I.column<=this.pos.column+this.length){this.showOtherMarkers();this._emit("cursorEnter",H);}else{this.hideOtherMarkers();this._emit("cursorLeave",H);}};this.detach=function(){this.session.removeMarker(this.markerId);this.hideOtherMarkers();this.doc.removeEventListener("change",this.$onUpdate);this.session.selection.removeEventListener("changeCursor",this.$onCursorChange);this.pos.detach();for(var H=0;H<this.others.length;H++){this.others[H].detach();}this.session.setUndoSelect(true);};this.cancel=function(){if(this.$undoStackDepth===-1){throw Error("Canceling placeholders only supported with undo manager attached to session.");}var J=this.session.getUndoManager();var H=(J.$undoStack||J.$undostack).length-this.$undoStackDepth;for(var I=0;I<H;I++){J.undo(true);}};}).call(G.prototype);A.PlaceHolder=G;});define("ace/theme/textmate",["require","exports","module","text!ace/theme/textmate.css","ace/lib/dom"],function(B,A,C){A.isDark=false;A.cssClass="ace-tm";A.cssText=B("text!./textmate.css");var D=B("../lib/dom");D.importCssString(A.cssText,A.cssClass);});define("text!ace/theme/textmate.css",[],".ace-tm .ace_editor {\n  border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n  border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n  background: #f0f0f0;\n  color: #333;\n}\n\n.ace-tm .ace_print_margin {\n  width: 1px;\n  background: #e8e8e8;\n}\n\n.ace-tm .ace_fold {\n    background-color: #6B72E6;\n}\n\n.ace-tm .ace_text-layer {\n}\n\n.ace-tm .ace_cursor {\n  border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n  border-left: 0px;\n  border-bottom: 1px solid black;\n}\n        \n.ace-tm .ace_line .ace_invisible {\n  color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_storage,\n.ace-tm .ace_line .ace_keyword {\n  color: blue;\n}\n\n.ace-tm .ace_line .ace_constant {\n  color: rgb(197, 6, 11);\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n  color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n  color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n  color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n  background-color: rgba(255, 0, 0, 0.1);\n  color: red;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n  color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n  color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n  color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n  color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n  color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n  color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n  color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n  color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n  color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n  color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n  color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_entity.ace_name.ace_function {\n  color: #0000A2;\n}\n\n.ace-tm .ace_markup.ace_markupine {\n    text-decoration:underline;\n}\n\n.ace-tm .ace_markup.ace_heading {\n  color: rgb(12, 7, 255);\n}\n\n.ace-tm .ace_markup.ace_list {\n  color:rgb(185, 6, 144);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n  background: rgb(181, 213, 255);\n}\n.ace-tm.multiselect .ace_selection.start {\n  box-shadow: 0 0 3px 0px white;\n  border-radius: 2px;\n}\n.ace-tm .ace_marker-layer .ace_step {\n  background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n  background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n  margin: -1px 0 0 -1px;\n  border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n  background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_gutter_active_line {\n    background-color : #dcdcdc;\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n  background: rgb(250, 250, 255);\n  border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n  color:rgb(0, 50, 198);\n}\n\n.ace-tm .ace_string.ace_regex {\n  color: rgb(255, 0, 0)\n}");(function(){window.require(["ace/ace"],function(A){A&&A.config.init();if(!window.ace){window.ace={};}for(var B in A){if(A.hasOwnProperty(B)){ace[B]=A[B];}}});})();