D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
build
/
Filename :
brace.9fd05ddde45998bb0dcb.js
back
Copy
(self.webpackChunkgrafana=self.webpackChunkgrafana||[]).push([[5673],{39670:(oe,ae,se)=>{(function(){var $="ace",b=function(){return this}();if(!b&&typeof window<"u"&&(b=window),!$&&typeof acequirejs<"u")return;var K=function(t,e,n){if(typeof t!="string"){K.original?K.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(n=e),K.modules[t]||(K.payloads[t]=n,K.modules[t]=null)};K.modules={},K.payloads={};var B=function(t,e,n){if(typeof e=="string"){var i=l(t,e);if(i!=null)return n&&n(),i}else if(Object.prototype.toString.call(e)==="[object Array]"){for(var s=[],o=0,u=e.length;o<u;++o){var f=l(t,e[o]);if(f==null&&A.original)return;s.push(f)}return n&&n.apply(null,s)||!0}},A=function(t,e){var n=B("",t,e);return n==null&&A.original?A.original.apply(this,arguments):n},g=function(t,e){if(e.indexOf("!")!==-1){var n=e.split("!");return g(t,n[0])+"!"+g(t,n[1])}if(e.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");for(e=i+"/"+e;e.indexOf(".")!==-1&&s!=e;){var s=e;e=e.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return e},l=function(t,e){e=g(t,e);var n=K.modules[e];if(!n){if(n=K.payloads[e],typeof n=="function"){var i={},s={id:e,uri:"",exports:i,packaged:!0},o=function(f,E){return B(e,f,E)},u=n(o,i,s);i=u||s.exports,K.modules[e]=i,delete K.payloads[e]}n=K.modules[e]=i||n}return n};function r(t){var e=b;t&&(b[t]||(b[t]={}),e=b[t]),(!e.define||!e.define.packaged)&&(K.original=e.define,e.define=K,e.define.packaged=!0),(!e.acequire||!e.acequire.packaged)&&(A.original=e.acequire,e.acequire=A,e.acequire.packaged=!0)}r($)})(),ace.define("ace/lib/regexp",["require","exports","module"],function($,b,K){"use strict";var B={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},A=B.exec.call(/()??/,"")[1]===void 0,g=function(){var t=/^/g;return B.test.call(t,""),!t.lastIndex}();if(g&&A)return;RegExp.prototype.exec=function(t){var e=B.exec.apply(this,arguments),n,i;if(typeof t=="string"&&e){if(!A&&e.length>1&&r(e,"")>-1&&(i=RegExp(this.source,B.replace.call(l(this),"g","")),B.replace.call(t.slice(e.index),i,function(){for(var o=1;o<arguments.length-2;o++)arguments[o]===void 0&&(e[o]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var s=1;s<e.length;s++)n=this._xregexp.captureNames[s-1],n&&(e[n]=e[s]);!g&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--}return e},g||(RegExp.prototype.test=function(t){var e=B.exec.call(this,t);return e&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--,!!e});function l(t){return(t.global?"g":"")+(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.extended?"x":"")+(t.sticky?"y":"")}function r(t,e,n){if(Array.prototype.indexOf)return t.indexOf(e,n);for(var i=n||0;i<t.length;i++)if(t[i]===e)return i;return-1}}),ace.define("ace/lib/es5-shim",["require","exports","module"],function($,b,K){function B(){}Function.prototype.bind||(Function.prototype.bind=function(k){var P=this;if(typeof P!="function")throw new TypeError("Function.prototype.bind called on incompatible "+P);var I=r.call(arguments,1),N=function(){if(this instanceof N){var R=P.apply(this,I.concat(r.call(arguments)));return Object(R)===R?R:this}else return P.apply(k,I.concat(r.call(arguments)))};return P.prototype&&(B.prototype=P.prototype,N.prototype=new B,B.prototype=null),N});var A=Function.prototype.call,g=Array.prototype,l=Object.prototype,r=g.slice,t=A.bind(l.toString),e=A.bind(l.hasOwnProperty),n,i,s,o,u;if((u=e(l,"__defineGetter__"))&&(n=A.bind(l.__defineGetter__),i=A.bind(l.__defineSetter__),s=A.bind(l.__lookupGetter__),o=A.bind(l.__lookupSetter__)),[1,2].splice(0).length!=2)if(function(){function x(I){var N=new Array(I+2);return N[0]=N[1]=0,N}var k=[],P;if(k.splice.apply(k,x(20)),k.splice.apply(k,x(26)),P=k.length,k.splice(5,0,"XXX"),P+1==k.length,P+1==k.length)return!0}()){var f=Array.prototype.splice;Array.prototype.splice=function(x,k){return arguments.length?f.apply(this,[x===void 0?0:x,k===void 0?this.length-x:k].concat(r.call(arguments,2))):[]}}else Array.prototype.splice=function(x,k){var P=this.length;x>0?x>P&&(x=P):x==null?x=0:x<0&&(x=Math.max(P+x,0)),x+k<P||(k=P-x);var I=this.slice(x,x+k),N=r.call(arguments,2),R=N.length;if(x===P)R&&this.push.apply(this,N);else{var W=Math.min(k,P-x),Y=x+W,j=Y+R-W,Q=P-Y,J=P-W;if(j<Y)for(var H=0;H<Q;++H)this[j+H]=this[Y+H];else if(j>Y)for(H=Q;H--;)this[j+H]=this[Y+H];if(R&&x===J)this.length=J,this.push.apply(this,N);else for(this.length=J+R,H=0;H<R;++H)this[x+H]=N[H]}return I};Array.isArray||(Array.isArray=function(k){return t(k)=="[object Array]"});var E=Object("a"),F=E[0]!="a"||!(0 in E);if(Array.prototype.forEach||(Array.prototype.forEach=function(k){var P=T(this),I=F&&t(this)=="[object String]"?this.split(""):P,N=arguments[1],R=-1,W=I.length>>>0;if(t(k)!="[object Function]")throw new TypeError;for(;++R<W;)R in I&&k.call(N,I[R],R,P)}),Array.prototype.map||(Array.prototype.map=function(k){var P=T(this),I=F&&t(this)=="[object String]"?this.split(""):P,N=I.length>>>0,R=Array(N),W=arguments[1];if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var Y=0;Y<N;Y++)Y in I&&(R[Y]=k.call(W,I[Y],Y,P));return R}),Array.prototype.filter||(Array.prototype.filter=function(k){var P=T(this),I=F&&t(this)=="[object String]"?this.split(""):P,N=I.length>>>0,R=[],W,Y=arguments[1];if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var j=0;j<N;j++)j in I&&(W=I[j],k.call(Y,W,j,P)&&R.push(W));return R}),Array.prototype.every||(Array.prototype.every=function(k){var P=T(this),I=F&&t(this)=="[object String]"?this.split(""):P,N=I.length>>>0,R=arguments[1];if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var W=0;W<N;W++)if(W in I&&!k.call(R,I[W],W,P))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(k){var P=T(this),I=F&&t(this)=="[object String]"?this.split(""):P,N=I.length>>>0,R=arguments[1];if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var W=0;W<N;W++)if(W in I&&k.call(R,I[W],W,P))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(k){var P=T(this),I=F&&t(this)=="[object String]"?this.split(""):P,N=I.length>>>0;if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");if(!N&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var R=0,W;if(arguments.length>=2)W=arguments[1];else do{if(R in I){W=I[R++];break}if(++R>=N)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;R<N;R++)R in I&&(W=k.call(void 0,W,I[R],R,P));return W}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(k){var P=T(this),I=F&&t(this)=="[object String]"?this.split(""):P,N=I.length>>>0;if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");if(!N&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var R,W=N-1;if(arguments.length>=2)R=arguments[1];else do{if(W in I){R=I[W--];break}if(--W<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do W in this&&(R=k.call(void 0,R,I[W],W,P));while(W--);return R}),(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)&&(Array.prototype.indexOf=function(k){var P=F&&t(this)=="[object String]"?this.split(""):T(this),I=P.length>>>0;if(!I)return-1;var N=0;for(arguments.length>1&&(N=V(arguments[1])),N=N>=0?N:Math.max(0,I+N);N<I;N++)if(N in P&&P[N]===k)return N;return-1}),(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)&&(Array.prototype.lastIndexOf=function(k){var P=F&&t(this)=="[object String]"?this.split(""):T(this),I=P.length>>>0;if(!I)return-1;var N=I-1;for(arguments.length>1&&(N=Math.min(N,V(arguments[1]))),N=N>=0?N:I-Math.abs(N);N>=0;N--)if(N in P&&k===P[N])return N;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||(k.constructor?k.constructor.prototype:l)}),!Object.getOwnPropertyDescriptor){var c="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(k,P){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError(c+k);if(e(k,P)){var I,N,R;if(I={enumerable:!0,configurable:!0},u){var W=k.__proto__;k.__proto__=l;var N=s(k,P),R=o(k,P);if(k.__proto__=W,N||R)return N&&(I.get=N),R&&(I.set=R),I}return I.value=k[P],I}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k)}),!Object.create){var m;Object.prototype.__proto__===null?m=function(){return{__proto__:null}}:m=function(){var x={};for(var k in x)x[k]=null;return x.constructor=x.hasOwnProperty=x.propertyIsEnumerable=x.isPrototypeOf=x.toLocaleString=x.toString=x.valueOf=x.__proto__=null,x},Object.create=function(k,P){var I;if(k===null)I=m();else{if(typeof k!="object")throw new TypeError("typeof prototype["+typeof k+"] != 'object'");var N=function(){};N.prototype=k,I=new N,I.__proto__=k}return P!==void 0&&Object.defineProperties(I,P),I}}function a(x){try{return Object.defineProperty(x,"sentinel",{}),"sentinel"in x}catch{}}if(Object.defineProperty){var d=a({}),p=typeof document>"u"||a(document.createElement("div"));if(!d||!p)var C=Object.defineProperty}if(!Object.defineProperty||C){var h="Property description must be an object: ",v="Object.defineProperty called on non-object: ",w="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(k,P,I){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError(v+k);if(typeof I!="object"&&typeof I!="function"||I===null)throw new TypeError(h+I);if(C)try{return C.call(Object,k,P,I)}catch{}if(e(I,"value"))if(u&&(s(k,P)||o(k,P))){var N=k.__proto__;k.__proto__=l,delete k[P],k[P]=I.value,k.__proto__=N}else k[P]=I.value;else{if(!u)throw new TypeError(w);e(I,"get")&&n(k,P,I.get),e(I,"set")&&i(k,P,I.set)}return k}}Object.defineProperties||(Object.defineProperties=function(k,P){for(var I in P)e(P,I)&&Object.defineProperty(k,I,P[I]);return k}),Object.seal||(Object.seal=function(k){return k}),Object.freeze||(Object.freeze=function(k){return k});try{Object.freeze(function(){})}catch{Object.freeze=function(P){return function(N){return typeof N=="function"?N:P(N)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(k){return k}),Object.isSealed||(Object.isSealed=function(k){return!1}),Object.isFrozen||(Object.isFrozen=function(k){return!1}),Object.isExtensible||(Object.isExtensible=function(k){if(Object(k)===k)throw new TypeError;for(var P="";e(k,P);)P+="?";k[P]=!0;var I=e(k,P);return delete k[P],I}),!Object.keys){var y=!0,D=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=D.length;for(var L in{toString:null})y=!1;Object.keys=function(k){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError("Object.keys called on a non-object");var P=[];for(var I in k)e(k,I)&&P.push(I);if(y)for(var N=0,R=S;N<R;N++){var W=D[N];e(k,W)&&P.push(W)}return P}}Date.now||(Date.now=function(){return new Date().getTime()});var _=` \v\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`;if(!String.prototype.trim||_.trim()){_="["+_+"]";var O=new RegExp("^"+_+_+"*"),z=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(O,"").replace(z,"")}}function V(x){return x=+x,x!==x?x=0:x!==0&&x!==1/0&&x!==-(1/0)&&(x=(x>0||-1)*Math.floor(Math.abs(x))),x}function M(x){var k=typeof x;return x===null||k==="undefined"||k==="boolean"||k==="number"||k==="string"}function U(x){var k,P,I;if(M(x))return x;if(P=x.valueOf,typeof P=="function"&&(k=P.call(x),M(k))||(I=x.toString,typeof I=="function"&&(k=I.call(x),M(k))))return k;throw new TypeError}var T=function(x){if(x==null)throw new TypeError("can't convert "+x+" to object");return Object(x)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function($,b,K){"use strict";$("./regexp"),$("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function($,b,K){"use strict";var B="http://www.w3.org/1999/xhtml";if(b.getDocumentHead=function(A){return A||(A=document),A.head||A.getElementsByTagName("head")[0]||A.documentElement},b.createElement=function(A,g){return document.createElementNS?document.createElementNS(g||B,A):document.createElement(A)},b.hasCssClass=function(A,g){var l=(A.className+"").split(/\s+/g);return l.indexOf(g)!==-1},b.addCssClass=function(A,g){b.hasCssClass(A,g)||(A.className+=" "+g)},b.removeCssClass=function(A,g){for(var l=A.className.split(/\s+/g);;){var r=l.indexOf(g);if(r==-1)break;l.splice(r,1)}A.className=l.join(" ")},b.toggleCssClass=function(A,g){for(var l=A.className.split(/\s+/g),r=!0;;){var t=l.indexOf(g);if(t==-1)break;r=!1,l.splice(t,1)}return r&&l.push(g),A.className=l.join(" "),r},b.setCssClass=function(A,g,l){l?b.addCssClass(A,g):b.removeCssClass(A,g)},b.hasCssString=function(A,g){var l=0,r;if(g=g||document,g.createStyleSheet&&(r=g.styleSheets)){for(;l<r.length;)if(r[l++].owningElement.id===A)return!0}else if(r=g.getElementsByTagName("style")){for(;l<r.length;)if(r[l++].id===A)return!0}return!1},b.importCssString=function(g,l,r){if(r=r||document,l&&b.hasCssString(l,r))return null;var t;l&&(g+=` /*# sourceURL=ace/css/`+l+" */"),r.createStyleSheet?(t=r.createStyleSheet(),t.cssText=g,l&&(t.owningElement.id=l)):(t=b.createElement("style"),t.appendChild(r.createTextNode(g)),l&&(t.id=l),b.getDocumentHead(r).appendChild(t))},b.importCssStylsheet=function(A,g){if(g.createStyleSheet)g.createStyleSheet(A);else{var l=b.createElement("link");l.rel="stylesheet",l.href=A,b.getDocumentHead(g).appendChild(l)}},b.getInnerWidth=function(A){return parseInt(b.computedStyle(A,"paddingLeft"),10)+parseInt(b.computedStyle(A,"paddingRight"),10)+A.clientWidth},b.getInnerHeight=function(A){return parseInt(b.computedStyle(A,"paddingTop"),10)+parseInt(b.computedStyle(A,"paddingBottom"),10)+A.clientHeight},b.scrollbarWidth=function(A){var g=b.createElement("ace_inner");g.style.width="100%",g.style.minWidth="0px",g.style.height="200px",g.style.display="block";var l=b.createElement("ace_outer"),r=l.style;r.position="absolute",r.left="-10000px",r.overflow="hidden",r.width="200px",r.minWidth="0px",r.height="150px",r.display="block",l.appendChild(g);var t=A.documentElement;t.appendChild(l);var e=g.offsetWidth;r.overflow="scroll";var n=g.offsetWidth;return e==n&&(n=l.clientWidth),t.removeChild(l),e-n},typeof document>"u"){b.importCssString=function(){};return}window.pageYOffset!==void 0?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(A,g){return g?(window.getComputedStyle(A,"")||{})[g]||"":window.getComputedStyle(A,"")||{}}:b.computedStyle=function(A,g){return g?A.currentStyle[g]:A.currentStyle},b.setInnerHtml=function(A,g){var l=A.cloneNode(!1);return l.innerHTML=g,A.parentNode.replaceChild(l,A),l},"textContent"in document.documentElement?(b.setInnerText=function(A,g){A.textContent=g},b.getInnerText=function(A){return A.textContent}):(b.setInnerText=function(A,g){A.innerText=g},b.getInnerText=function(A){return A.innerText}),b.getParentWindow=function(A){return A.defaultView||A.parentWindow}}),ace.define("ace/lib/oop",["require","exports","module"],function($,b,K){"use strict";b.inherits=function(B,A){B.super_=A,B.prototype=Object.create(A.prototype,{constructor:{value:B,enumerable:!1,writable:!0,configurable:!0}})},b.mixin=function(B,A){for(var g in A)B[g]=A[g];return B},b.implement=function(B,A){b.mixin(B,A)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function($,b,K){"use strict";$("./fixoldbrowsers");var B=$("./oop"),A=function(){var g={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd: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","-13":"NumpadEnter",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:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},l,r;for(r in g.FUNCTION_KEYS)l=g.FUNCTION_KEYS[r].toLowerCase(),g[l]=parseInt(r,10);for(r in g.PRINTABLE_KEYS)l=g.PRINTABLE_KEYS[r].toLowerCase(),g[l]=parseInt(r,10);return B.mixin(g,g.MODIFIER_KEYS),B.mixin(g,g.PRINTABLE_KEYS),B.mixin(g,g.FUNCTION_KEYS),g.enter=g.return,g.escape=g.esc,g.del=g.delete,g[173]="-",function(){for(var t=["cmd","ctrl","alt","shift"],e=Math.pow(2,t.length);e--;)g.KEY_MODS[e]=t.filter(function(n){return e&g.KEY_MODS[n]}).join("-")+"-"}(),g.KEY_MODS[0]="",g.KEY_MODS[-1]="input-",g}();B.mixin(b,A),b.keyCodeToString=function(g){var l=A[g];return typeof l!="string"&&(l=String.fromCharCode(g)),l.toLowerCase()}}),ace.define("ace/lib/useragent",["require","exports","module"],function($,b,K){"use strict";if(b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS},typeof navigator=="object"){var B=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),A=navigator.userAgent;b.isWin=B=="win",b.isMac=B=="mac",b.isLinux=B=="linux",b.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((A.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((A.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),b.isOldIE=b.isIE&&b.isIE<9,b.isGecko=b.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",b.isOldGecko=b.isGecko&&parseInt((A.match(/rv:(\d+)/)||[])[1],10)<4,b.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",b.isWebKit=parseFloat(A.split("WebKit/")[1])||void 0,b.isChrome=parseFloat(A.split(" Chrome/")[1])||void 0,b.isAIR=A.indexOf("AdobeAIR")>=0,b.isIPad=A.indexOf("iPad")>=0,b.isChromeOS=A.indexOf(" CrOS ")>=0,b.isIOS=/iPad|iPhone|iPod/.test(A)&&!window.MSStream,b.isIOS&&(b.isMac=!0)}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function($,b,K){"use strict";var B=$("./keys"),A=$("./useragent"),g=null,l=0;b.addListener=function(i,s,o){if(i.addEventListener)return i.addEventListener(s,o,!1);if(i.attachEvent){var u=function(){o.call(i,window.event)};o._wrapper=u,i.attachEvent("on"+s,u)}},b.removeListener=function(i,s,o){if(i.removeEventListener)return i.removeEventListener(s,o,!1);i.detachEvent&&i.detachEvent("on"+s,o._wrapper||o)},b.stopEvent=function(i){return b.stopPropagation(i),b.preventDefault(i),!1},b.stopPropagation=function(i){i.stopPropagation?i.stopPropagation():i.cancelBubble=!0},b.preventDefault=function(i){i.preventDefault?i.preventDefault():i.returnValue=!1},b.getButton=function(i){return i.type=="dblclick"?0:i.type=="contextmenu"||A.isMac&&i.ctrlKey&&!i.altKey&&!i.shiftKey?2:i.preventDefault?i.button:{1:0,2:2,4:1}[i.button]},b.capture=function(i,s,o){function u(f){s&&s(f),o&&o(f),b.removeListener(document,"mousemove",s,!0),b.removeListener(document,"mouseup",u,!0),b.removeListener(document,"dragstart",u,!0)}return b.addListener(document,"mousemove",s,!0),b.addListener(document,"mouseup",u,!0),b.addListener(document,"dragstart",u,!0),u},b.addTouchMoveListener=function(i,s){var o,u;b.addListener(i,"touchstart",function(f){var E=f.touches,F=E[0];o=F.clientX,u=F.clientY}),b.addListener(i,"touchmove",function(f){var E=f.touches;if(!(E.length>1)){var F=E[0];f.wheelX=o-F.clientX,f.wheelY=u-F.clientY,o=F.clientX,u=F.clientY,s(f)}})},b.addMouseWheelListener=function(i,s){"onmousewheel"in i?b.addListener(i,"mousewheel",function(o){var u=8;o.wheelDeltaX!==void 0?(o.wheelX=-o.wheelDeltaX/u,o.wheelY=-o.wheelDeltaY/u):(o.wheelX=0,o.wheelY=-o.wheelDelta/u),s(o)}):"onwheel"in i?b.addListener(i,"wheel",function(o){var u=.35;switch(o.deltaMode){case o.DOM_DELTA_PIXEL:o.wheelX=o.deltaX*u||0,o.wheelY=o.deltaY*u||0;break;case o.DOM_DELTA_LINE:case o.DOM_DELTA_PAGE:o.wheelX=(o.deltaX||0)*5,o.wheelY=(o.deltaY||0)*5;break}s(o)}):b.addListener(i,"DOMMouseScroll",function(o){o.axis&&o.axis==o.HORIZONTAL_AXIS?(o.wheelX=(o.detail||0)*5,o.wheelY=0):(o.wheelX=0,o.wheelY=(o.detail||0)*5),s(o)})},b.addMultiMouseDownListener=function(i,s,o,u){var f=0,E,F,c,m={2:"dblclick",3:"tripleclick",4:"quadclick"};function a(p){if(b.getButton(p)!==0?f=0:p.detail>1?(f++,f>4&&(f=1)):f=1,A.isIE){var C=Math.abs(p.clientX-E)>5||Math.abs(p.clientY-F)>5;(!c||C)&&(f=1),c&&clearTimeout(c),c=setTimeout(function(){c=null},s[f-1]||600),f==1&&(E=p.clientX,F=p.clientY)}if(p._clicks=f,o[u]("mousedown",p),f>4)f=0;else if(f>1)return o[u](m[f],p)}function d(p){f=2,c&&clearTimeout(c),c=setTimeout(function(){c=null},s[f-1]||600),o[u]("mousedown",p),o[u](m[f],p)}Array.isArray(i)||(i=[i]),i.forEach(function(p){b.addListener(p,"mousedown",a),A.isOldIE&&b.addListener(p,"dblclick",d)})};var r=A.isMac&&A.isOpera&&!("KeyboardEvent"in window)?function(i){return 0|(i.metaKey?1:0)|(i.altKey?2:0)|(i.shiftKey?4:0)|(i.ctrlKey?8:0)}:function(i){return 0|(i.ctrlKey?1:0)|(i.altKey?2:0)|(i.shiftKey?4:0)|(i.metaKey?8:0)};b.getModifierString=function(i){return B.KEY_MODS[r(i)]};function t(i,s,o){var u=r(s);if(!A.isMac&&g){if(s.getModifierState&&(s.getModifierState("OS")||s.getModifierState("Win"))&&(u|=8),g.altGr)if((3&u)!=3)g.altGr=0;else return;if(o===18||o===17){var f="location"in s?s.location:s.keyLocation;if(o===17&&f===1)g[o]==1&&(l=s.timeStamp);else if(o===18&&u===3&&f===2){var E=s.timeStamp-l;E<50&&(g.altGr=!0)}}}if(o in B.MODIFIER_KEYS&&(o=-1),u&8&&o>=91&&o<=93&&(o=-1),!u&&o===13){var f="location"in s?s.location:s.keyLocation;if(f===3&&(i(s,u,-o),s.defaultPrevented))return}if(A.isChromeOS&&u&8){if(i(s,u,o),s.defaultPrevented)return;u&=-9}return!u&&!(o in B.FUNCTION_KEYS)&&!(o in B.PRINTABLE_KEYS)?!1:i(s,u,o)}b.addCommandKeyListener=function(i,s){var o=b.addListener;if(A.isOldGecko||A.isOpera&&!("KeyboardEvent"in window)){var u=null;o(i,"keydown",function(E){u=E.keyCode}),o(i,"keypress",function(E){return t(s,E,u)})}else{var f=null;o(i,"keydown",function(E){g[E.keyCode]=(g[E.keyCode]||0)+1;var F=t(s,E,E.keyCode);return f=E.defaultPrevented,F}),o(i,"keypress",function(E){f&&(E.ctrlKey||E.altKey||E.shiftKey||E.metaKey)&&(b.stopEvent(E),f=null)}),o(i,"keyup",function(E){g[E.keyCode]=null}),g||(e(),o(window,"focus",e))}};function e(){g=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!A.isOldIE){var n=1;b.nextTick=function(i,s){s=s||window;var o="zero-timeout-message-"+n;b.addListener(s,"message",function u(f){f.data==o&&(b.stopPropagation(f),b.removeListener(s,"message",u),i())}),s.postMessage(o,"*")}}b.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),b.nextFrame?b.nextFrame=b.nextFrame.bind(window):b.nextFrame=function(i){setTimeout(i,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function($,b,K){"use strict";b.last=function(g){return g[g.length-1]},b.stringReverse=function(g){return g.split("").reverse().join("")},b.stringRepeat=function(g,l){for(var r="";l>0;)l&1&&(r+=g),(l>>=1)&&(g+=g);return r};var B=/^\s\s*/,A=/\s\s*$/;b.stringTrimLeft=function(g){return g.replace(B,"")},b.stringTrimRight=function(g){return g.replace(A,"")},b.copyObject=function(g){var l={};for(var r in g)l[r]=g[r];return l},b.copyArray=function(g){for(var l=[],r=0,t=g.length;r<t;r++)g[r]&&typeof g[r]=="object"?l[r]=this.copyObject(g[r]):l[r]=g[r];return l},b.deepCopy=function g(l){if(typeof l!="object"||!l)return l;var r;if(Array.isArray(l)){r=[];for(var t=0;t<l.length;t++)r[t]=g(l[t]);return r}if(Object.prototype.toString.call(l)!=="[object Object]")return l;r={};for(var t in l)r[t]=g(l[t]);return r},b.arrayToMap=function(g){for(var l={},r=0;r<g.length;r++)l[g[r]]=1;return l},b.createMap=function(g){var l=Object.create(null);for(var r in g)l[r]=g[r];return l},b.arrayRemove=function(g,l){for(var r=0;r<=g.length;r++)l===g[r]&&g.splice(r,1)},b.escapeRegExp=function(g){return g.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},b.escapeHTML=function(g){return g.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},b.getMatchOffsets=function(g,l){var r=[];return g.replace(l,function(t){r.push({offset:arguments[arguments.length-2],length:t.length})}),r},b.deferredCall=function(g){var l=null,r=function(){l=null,g()},t=function(e){return t.cancel(),l=setTimeout(r,e||0),t};return t.schedule=t,t.call=function(){return this.cancel(),g(),t},t.cancel=function(){return clearTimeout(l),l=null,t},t.isPending=function(){return l},t},b.delayedCall=function(g,l){var r=null,t=function(){r=null,g()},e=function(n){r==null&&(r=setTimeout(t,n||l))};return e.delay=function(n){r&&clearTimeout(r),r=setTimeout(t,n||l)},e.schedule=e,e.call=function(){this.cancel(),g()},e.cancel=function(){r&&clearTimeout(r),r=null},e.isPending=function(){return r},e}}),ace.define("ace/keyboard/textinput_ios",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"],function($,b,K){"use strict";var B=$("../lib/event"),A=$("../lib/useragent"),g=$("../lib/dom"),l=$("../lib/lang"),r=$("../lib/keys"),t=r.KEY_MODS,e=A.isChrome<18,n=A.isIE,i=function(s,o){var u=this,f=g.createElement("textarea");f.className=A.isIOS?"ace_text-input ace_text-input-ios":"ace_text-input",A.isTouchPad&&f.setAttribute("x-palm-disable-auto-cap",!0),f.setAttribute("wrap","off"),f.setAttribute("autocorrect","off"),f.setAttribute("autocapitalize","off"),f.setAttribute("spellcheck",!1),f.style.opacity="0",s.insertBefore(f,s.firstChild);var E=` aaaa a `,F=!1,c=!1,m=!1,a=!1,d="",p=!0;try{var C=document.activeElement===f}catch{}B.addListener(f,"blur",function(H){o.onBlur(H),C=!1}),B.addListener(f,"focus",function(H){C=!0,o.onFocus(H),w()}),this.focus=function(){if(d)return f.focus();f.style.position="fixed",f.focus()},this.blur=function(){f.blur()},this.isFocused=function(){return C};var h=l.delayedCall(function(){C&&w(p)}),v=l.delayedCall(function(){a||(f.value=E,C&&w())});function w(H){if(!a){if(a=!0,L)G=0,X=H?0:f.value.length-1;else var G=4,X=5;try{f.setSelectionRange(G,X)}catch{}a=!1}}function y(){a||(f.value=E,A.isWebKit&&v.schedule())}A.isWebKit||o.addEventListener("changeSelection",function(){o.selection.isEmpty()!=p&&(p=!p,h.schedule())}),y(),C&&o.onFocus();var D=function(H){return H.selectionStart===0&&H.selectionEnd===H.value.length},S=function(H){D(f)?(o.selectAll(),w()):L&&w(o.selection.isEmpty())},L=null;this.setInputHandler=function(H){L=H},this.getInputHandler=function(){return L};var _=!1,O=function(H){f.selectionStart===4&&f.selectionEnd===5||(L&&(H=L(H),L=null),m?(w(),H&&o.onPaste(H),m=!1):H==E.substr(0)&&f.selectionStart===4?_?o.execCommand("del",{source:"ace"}):o.execCommand("backspace",{source:"ace"}):F||(H.substring(0,9)==E&&H.length>E.length?H=H.substr(9):H.substr(0,4)==E.substr(0,4)?H=H.substr(4,H.length-E.length+1):H.charAt(H.length-1)==E.charAt(0)&&(H=H.slice(0,-1)),H==E.charAt(0)||H.charAt(H.length-1)==E.charAt(0)&&(H=H.slice(0,-1)),H&&o.onTextInput(H)),F&&(F=!1),_&&(_=!1))},z=function(H){if(!a){var G=f.value;O(G),y()}},V=function(H,G,X){var ee=H.clipboardData||window.clipboardData;if(!(!ee||e)){var te=n||X?"Text":"text/plain";try{return G?ee.setData(te,G)!==!1:ee.getData(te)}catch(q){if(!X)return V(q,G,!0)}}},M=function(H,G){var X=o.getCopyText();if(!X)return B.preventDefault(H);V(H,X)?(A.isIOS&&(c=G,f.value=` aa`+X+`a a `,f.setSelectionRange(4,4+X.length),F={value:X}),G?o.onCut():o.onCopy(),A.isIOS||B.preventDefault(H)):(F=!0,f.value=X,f.select(),setTimeout(function(){F=!1,y(),w(),G?o.onCut():o.onCopy()}))},U=function(H){M(H,!0)},T=function(H){M(H,!1)},x=function(H){var G=V(H);typeof G=="string"?(G&&o.onPaste(G,H),A.isIE&&setTimeout(w),B.preventDefault(H)):(f.value="",m=!0)};B.addCommandKeyListener(f,o.onCommandKey.bind(o)),B.addListener(f,"select",S),B.addListener(f,"input",z),B.addListener(f,"cut",U),B.addListener(f,"copy",T),B.addListener(f,"paste",x);var k=function(H){a||!o.onCompositionStart||o.$readOnly||(a={},a.canUndo=o.session.$undoManager,o.onCompositionStart(),setTimeout(P,0),o.on("mousedown",I),a.canUndo&&!o.selection.isEmpty()&&(o.insert(""),o.session.markUndoGroup(),o.selection.clearSelection()),o.session.markUndoGroup())},P=function(){if(!(!a||!o.onCompositionUpdate||o.$readOnly)){var H=f.value.replace(/\x01/g,"");if(a.lastValue!==H&&(o.onCompositionUpdate(H),a.lastValue&&o.undo(),a.canUndo&&(a.lastValue=H),a.lastValue)){var G=o.selection.getRange();o.insert(a.lastValue),o.session.markUndoGroup(),a.range=o.selection.getRange(),o.selection.setRange(G),o.selection.clearSelection()}}},I=function(H){if(!(!o.onCompositionEnd||o.$readOnly)){var G=a;a=!1;var X=setTimeout(function(){X=null;var te=f.value.replace(/\x01/g,"");a||(te==G.lastValue?y():!G.lastValue&&te&&(y(),O(te)))});L=function(q){return X&&clearTimeout(X),q=q.replace(/\x01/g,""),q==G.lastValue?"":(G.lastValue&&X&&o.undo(),q)},o.onCompositionEnd(),o.removeListener("mousedown",I),H.type=="compositionend"&&G.range&&o.selection.setRange(G.range);var ee=!!A.isChrome&&A.isChrome>=53||!!A.isWebKit&&A.isWebKit>=603;ee&&z()}},N=l.delayedCall(P,50);B.addListener(f,"compositionstart",k),A.isGecko?B.addListener(f,"text",function(){N.schedule()}):(B.addListener(f,"keyup",function(){N.schedule()}),B.addListener(f,"keydown",function(){N.schedule()})),B.addListener(f,"compositionend",I),this.getElement=function(){return f},this.setReadOnly=function(H){f.readOnly=H},this.onContextMenu=function(H){_=!0,w(o.selection.isEmpty()),o._emit("nativecontextmenu",{target:o,domEvent:H}),this.moveToMouse(H,!0)},this.moveToMouse=function(H,G){d||(d=f.style.cssText),f.style.cssText=(G?"z-index:100000;":"")+"height:"+f.style.height+";"+(A.isIE?"opacity:0.1;":"");var X=o.container.getBoundingClientRect(),ee=g.computedStyle(o.container),te=X.top+(parseInt(ee.borderTopWidth)||0),q=X.left+(parseInt(X.borderLeftWidth)||0),Z=X.bottom-te-f.clientHeight-2,ie=function(ne){f.style.left=ne.clientX-q-2+"px",f.style.top=Math.min(ne.clientY-te-2,Z)+"px"};ie(H),H.type=="mousedown"&&(o.renderer.$keepTextAreaAtCursor&&(o.renderer.$keepTextAreaAtCursor=null),clearTimeout(R),A.isWin&&B.capture(o.container,ie,W))},this.onContextMenuClose=W;var R;function W(){clearTimeout(R),R=setTimeout(function(){d&&(f.style.cssText=d,d=""),o.renderer.$keepTextAreaAtCursor==null&&(o.renderer.$keepTextAreaAtCursor=!0,o.renderer.$moveTextAreaToCursor())},0)}var Y=function(H){o.textInput.onContextMenu(H),W()};if(B.addListener(f,"mouseup",Y),B.addListener(f,"mousedown",function(H){H.preventDefault(),W()}),B.addListener(o.renderer.scroller,"contextmenu",Y),B.addListener(f,"contextmenu",Y),A.isIOS){var j=null,Q=!1;s.addEventListener("keydown",function(H){j&&clearTimeout(j),Q=!0}),s.addEventListener("keyup",function(H){j=setTimeout(function(){Q=!1},100)});var J=function(H){if(document.activeElement===f&&!Q){if(c)return setTimeout(function(){c=!1},100);var G=f.selectionStart,X=f.selectionEnd;if(f.setSelectionRange(4,5),G==X)switch(G){case 0:o.onCommandKey(null,0,r.up);break;case 1:o.onCommandKey(null,0,r.home);break;case 2:o.onCommandKey(null,t.option,r.left);break;case 4:o.onCommandKey(null,0,r.left);break;case 5:o.onCommandKey(null,0,r.right);break;case 7:o.onCommandKey(null,t.option,r.right);break;case 8:o.onCommandKey(null,0,r.end);break;case 9:o.onCommandKey(null,0,r.down);break}else{switch(X){case 6:o.onCommandKey(null,t.shift,r.right);break;case 7:o.onCommandKey(null,t.shift|t.option,r.right);break;case 8:o.onCommandKey(null,t.shift,r.end);break;case 9:o.onCommandKey(null,t.shift,r.down);break}switch(G){case 0:o.onCommandKey(null,t.shift,r.up);break;case 1:o.onCommandKey(null,t.shift,r.home);break;case 2:o.onCommandKey(null,t.shift|t.option,r.left);break;case 3:o.onCommandKey(null,t.shift,r.left);break}}}};document.addEventListener("selectionchange",J),o.on("destroy",function(){document.removeEventListener("selectionchange",J)})}};b.TextInput=i}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function($,b,K){"use strict";var B=$("../lib/event"),A=$("../lib/useragent"),g=$("../lib/dom"),l=$("../lib/lang"),r=A.isChrome<18,t=A.isIE,e=$("./textinput_ios").TextInput,n=function(i,s){if(A.isIOS)return e.call(this,i,s);var o=g.createElement("textarea");o.className="ace_text-input",o.setAttribute("wrap","off"),o.setAttribute("autocorrect","off"),o.setAttribute("autocapitalize","off"),o.setAttribute("spellcheck",!1),o.style.opacity="0",i.insertBefore(o,i.firstChild);var u="\u2028\u2028",f=!1,E=!1,F=!1,c="",m=!0;try{var a=document.activeElement===o}catch{}B.addListener(o,"blur",function(R){s.onBlur(R),a=!1}),B.addListener(o,"focus",function(R){a=!0,s.onFocus(R),C()}),this.focus=function(){if(c)return o.focus();var R=o.style.top;o.style.position="fixed",o.style.top="0px",o.focus(),setTimeout(function(){o.style.position="",o.style.top=="0px"&&(o.style.top=R)},0)},this.blur=function(){o.blur()},this.isFocused=function(){return a};var d=l.delayedCall(function(){a&&C(m)}),p=l.delayedCall(function(){F||(o.value=u,a&&C())});function C(R){if(!F){if(F=!0,y)var W=0,Y=R?0:o.value.length-1;else var W=R?2:1,Y=2;try{o.setSelectionRange(W,Y)}catch{}F=!1}}function h(){F||(o.value=u,A.isWebKit&&p.schedule())}A.isWebKit||s.addEventListener("changeSelection",function(){s.selection.isEmpty()!=m&&(m=!m,d.schedule())}),h(),a&&s.onFocus();var v=function(R){return R.selectionStart===0&&R.selectionEnd===R.value.length},w=function(R){f?f=!1:v(o)?(s.selectAll(),C()):y&&C(s.selection.isEmpty())},y=null;this.setInputHandler=function(R){y=R},this.getInputHandler=function(){return y};var D=!1,S=function(R){y&&(R=y(R),y=null),E?(C(),R&&s.onPaste(R),E=!1):R==u.charAt(0)?D?s.execCommand("del",{source:"ace"}):s.execCommand("backspace",{source:"ace"}):(R.substring(0,2)==u?R=R.substr(2):R.charAt(0)==u.charAt(0)?R=R.substr(1):R.charAt(R.length-1)==u.charAt(0)&&(R=R.slice(0,-1)),R.charAt(R.length-1)==u.charAt(0)&&(R=R.slice(0,-1)),R&&s.onTextInput(R)),D&&(D=!1)},L=function(R){if(!F){var W=o.value;S(W),h()}},_=function(R,W,Y){var j=R.clipboardData||window.clipboardData;if(!(!j||r)){var Q=t||Y?"Text":"text/plain";try{return W?j.setData(Q,W)!==!1:j.getData(Q)}catch(J){if(!Y)return _(J,W,!0)}}},O=function(R,W){var Y=s.getCopyText();if(!Y)return B.preventDefault(R);_(R,Y)?(W?s.onCut():s.onCopy(),B.preventDefault(R)):(f=!0,o.value=Y,o.select(),setTimeout(function(){f=!1,h(),C(),W?s.onCut():s.onCopy()}))},z=function(R){O(R,!0)},V=function(R){O(R,!1)},M=function(R){var W=_(R);typeof W=="string"?(W&&s.onPaste(W,R),A.isIE&&setTimeout(C),B.preventDefault(R)):(o.value="",E=!0)};B.addCommandKeyListener(o,s.onCommandKey.bind(s)),B.addListener(o,"select",w),B.addListener(o,"input",L),B.addListener(o,"cut",z),B.addListener(o,"copy",V),B.addListener(o,"paste",M),(!("oncut"in o)||!("oncopy"in o)||!("onpaste"in o))&&B.addListener(i,"keydown",function(R){if(!(A.isMac&&!R.metaKey||!R.ctrlKey))switch(R.keyCode){case 67:V(R);break;case 86:M(R);break;case 88:z(R);break}});var U=function(R){F||!s.onCompositionStart||s.$readOnly||(F={},F.canUndo=s.session.$undoManager,s.onCompositionStart(),setTimeout(T,0),s.on("mousedown",x),F.canUndo&&!s.selection.isEmpty()&&(s.insert(""),s.session.markUndoGroup(),s.selection.clearSelection()),s.session.markUndoGroup())},T=function(){if(!(!F||!s.onCompositionUpdate||s.$readOnly)){var R=o.value.replace(/\u2028/g,"");if(F.lastValue!==R&&(s.onCompositionUpdate(R),F.lastValue&&s.undo(),F.canUndo&&(F.lastValue=R),F.lastValue)){var W=s.selection.getRange();s.insert(F.lastValue),s.session.markUndoGroup(),F.range=s.selection.getRange(),s.selection.setRange(W),s.selection.clearSelection()}}},x=function(R){if(!(!s.onCompositionEnd||s.$readOnly)){var W=F;F=!1;var Y=setTimeout(function(){Y=null;var Q=o.value.replace(/\u2028/g,"");F||(Q==W.lastValue?h():!W.lastValue&&Q&&(h(),S(Q)))});y=function(J){return Y&&clearTimeout(Y),J=J.replace(/\u2028/g,""),J==W.lastValue?"":(W.lastValue&&Y&&s.undo(),J)},s.onCompositionEnd(),s.removeListener("mousedown",x),R.type=="compositionend"&&W.range&&s.selection.setRange(W.range);var j=!!A.isChrome&&A.isChrome>=53||!!A.isWebKit&&A.isWebKit>=603;j&&L()}},k=l.delayedCall(T,50);B.addListener(o,"compositionstart",U),A.isGecko?B.addListener(o,"text",function(){k.schedule()}):(B.addListener(o,"keyup",function(){k.schedule()}),B.addListener(o,"keydown",function(){k.schedule()})),B.addListener(o,"compositionend",x),this.getElement=function(){return o},this.setReadOnly=function(R){o.readOnly=R},this.onContextMenu=function(R){D=!0,C(s.selection.isEmpty()),s._emit("nativecontextmenu",{target:s,domEvent:R}),this.moveToMouse(R,!0)},this.moveToMouse=function(R,W){c||(c=o.style.cssText),o.style.cssText=(W?"z-index:100000;":"")+"height:"+o.style.height+";"+(A.isIE?"opacity:0.1;":"");var Y=s.container.getBoundingClientRect(),j=g.computedStyle(s.container),Q=Y.top+(parseInt(j.borderTopWidth)||0),J=Y.left+(parseInt(Y.borderLeftWidth)||0),H=Y.bottom-Q-o.clientHeight-2,G=function(X){o.style.left=X.clientX-J-2+"px",o.style.top=Math.min(X.clientY-Q-2,H)+"px"};G(R),R.type=="mousedown"&&(s.renderer.$keepTextAreaAtCursor&&(s.renderer.$keepTextAreaAtCursor=null),clearTimeout(P),A.isWin&&B.capture(s.container,G,I))},this.onContextMenuClose=I;var P;function I(){clearTimeout(P),P=setTimeout(function(){c&&(o.style.cssText=c,c=""),s.renderer.$keepTextAreaAtCursor==null&&(s.renderer.$keepTextAreaAtCursor=!0,s.renderer.$moveTextAreaToCursor())},0)}var N=function(R){s.textInput.onContextMenu(R),I()};B.addListener(o,"mouseup",N),B.addListener(o,"mousedown",function(R){R.preventDefault(),I()}),B.addListener(s.renderer.scroller,"contextmenu",N),B.addListener(o,"contextmenu",N)};b.TextInput=n}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function($,b,K){"use strict";var B=$("../lib/dom"),A=$("../lib/event"),g=$("../lib/useragent"),l=0,r=250;function t(i){i.$clickSelection=null;var s=i.editor;s.setDefaultHandler("mousedown",this.onMouseDown.bind(i)),s.setDefaultHandler("dblclick",this.onDoubleClick.bind(i)),s.setDefaultHandler("tripleclick",this.onTripleClick.bind(i)),s.setDefaultHandler("quadclick",this.onQuadClick.bind(i)),s.setDefaultHandler("mousewheel",this.onMouseWheel.bind(i)),s.setDefaultHandler("touchmove",this.onTouchMove.bind(i));var o=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];o.forEach(function(u){i[u]=this[u]},this),i.selectByLines=this.extendSelectionBy.bind(i,"getLineRange"),i.selectByWords=this.extendSelectionBy.bind(i,"getWordRange")}(function(){this.onMouseDown=function(i){var s=i.inSelection(),o=i.getDocumentPosition();this.mousedownEvent=i;var u=this.editor,f=i.getButton();if(f!==0){var E=u.getSelectionRange(),F=E.isEmpty();u.$blockScrolling++,(F||f==1)&&u.selection.moveToPosition(o),u.$blockScrolling--,f==2&&(u.textInput.onContextMenu(i.domEvent),g.isMozilla||i.preventDefault());return}if(this.mousedownEvent.time=Date.now(),s&&!u.isFocused()&&(u.focus(),this.$focusTimout&&!this.$clickSelection&&!u.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(i);return}return this.captureMouse(i),this.startSelect(o,i.domEvent._clicks>1),i.preventDefault()},this.startSelect=function(i,s){i=i||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var o=this.editor;o.$blockScrolling++,this.mousedownEvent.getShiftKey()?o.selection.selectToPosition(i):s||o.selection.moveToPosition(i),s||this.select(),o.renderer.scroller.setCapture&&o.renderer.scroller.setCapture(),o.setStyle("ace_selecting"),this.setState("select"),o.$blockScrolling--},this.select=function(){var i,s=this.editor,o=s.renderer.screenToTextCoordinates(this.x,this.y);if(s.$blockScrolling++,this.$clickSelection){var u=this.$clickSelection.comparePoint(o);if(u==-1)i=this.$clickSelection.end;else if(u==1)i=this.$clickSelection.start;else{var f=n(this.$clickSelection,o);o=f.cursor,i=f.anchor}s.selection.setSelectionAnchor(i.row,i.column)}s.selection.selectToPosition(o),s.$blockScrolling--,s.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(i){var s,o=this.editor,u=o.renderer.screenToTextCoordinates(this.x,this.y),f=o.selection[i](u.row,u.column);if(o.$blockScrolling++,this.$clickSelection){var E=this.$clickSelection.comparePoint(f.start),F=this.$clickSelection.comparePoint(f.end);if(E==-1&&F<=0)s=this.$clickSelection.end,(f.end.row!=u.row||f.end.column!=u.column)&&(u=f.start);else if(F==1&&E>=0)s=this.$clickSelection.start,(f.start.row!=u.row||f.start.column!=u.column)&&(u=f.end);else if(E==-1&&F==1)u=f.end,s=f.start;else{var c=n(this.$clickSelection,u);u=c.cursor,s=c.anchor}o.selection.setSelectionAnchor(s.row,s.column)}o.selection.selectToPosition(u),o.$blockScrolling--,o.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var i=e(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),s=Date.now();(i>l||s-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(i){var s=i.getDocumentPosition(),o=this.editor,u=o.session,f=u.getBracketRange(s);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=o.selection.getWordRange(s.row,s.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},this.onTripleClick=function(i){var s=i.getDocumentPosition(),o=this.editor;this.setState("selectByLines");var u=o.getSelectionRange();u.isMultiLine()&&u.contains(s.row,s.column)?(this.$clickSelection=o.selection.getLineRange(u.start.row),this.$clickSelection.end=o.selection.getLineRange(u.end.row).end):this.$clickSelection=o.selection.getLineRange(s.row),this.select()},this.onQuadClick=function(i){var s=this.editor;s.selectAll(),this.$clickSelection=s.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(i){if(!i.getAccelKey()){i.getShiftKey()&&i.wheelY&&!i.wheelX&&(i.wheelX=i.wheelY,i.wheelY=0);var s=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var o=this.$lastScroll,u=i.domEvent.timeStamp,f=u-o.t,E=i.wheelX/f,F=i.wheelY/f;f<r&&(E=(E+o.vx)/2,F=(F+o.vy)/2);var c=Math.abs(E/F),m=!1;if(c>=1&&s.renderer.isScrollableBy(i.wheelX*i.speed,0)&&(m=!0),c<=1&&s.renderer.isScrollableBy(0,i.wheelY*i.speed)&&(m=!0),m)o.allowed=u;else if(u-o.allowed<r){var a=Math.abs(E)<=1.1*Math.abs(o.vx)&&Math.abs(F)<=1.1*Math.abs(o.vy);a?(m=!0,o.allowed=u):o.allowed=0}if(o.t=u,o.vx=E,o.vy=F,m)return s.renderer.scrollBy(i.wheelX*i.speed,i.wheelY*i.speed),i.stop()}},this.onTouchMove=function(i){this.editor._emit("mousewheel",i)}}).call(t.prototype),b.DefaultHandlers=t;function e(i,s,o,u){return Math.sqrt(Math.pow(o-i,2)+Math.pow(u-s,2))}function n(i,s){if(i.start.row==i.end.row)var o=2*s.column-i.start.column-i.end.column;else if(i.start.row==i.end.row-1&&!i.start.column&&!i.end.column)var o=s.column-4;else var o=2*s.row-i.start.row-i.end.row;return o<0?{cursor:i.start,anchor:i.end}:{cursor:i.end,anchor:i.start}}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/dom");function g(l){this.isOpen=!1,this.$element=null,this.$parentNode=l}(function(){this.$init=function(){return this.$element=A.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(l){A.setInnerText(this.getElement(),l)},this.setHtml=function(l){this.getElement().innerHTML=l},this.setPosition=function(l,r){this.getElement().style.left=l+"px",this.getElement().style.top=r+"px"},this.setClassName=function(l){A.addCssClass(this.getElement(),l)},this.show=function(l,r,t){l!=null&&this.setText(l),r!=null&&t!=null&&this.setPosition(r,t),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(g.prototype),b.Tooltip=g}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function($,b,K){"use strict";var B=$("../lib/dom"),A=$("../lib/oop"),g=$("../lib/event"),l=$("../tooltip").Tooltip;function r(e){var n=e.editor,i=n.renderer.$gutterLayer,s=new t(n.container);e.editor.setDefaultHandler("guttermousedown",function(m){if(!(!n.isFocused()||m.getButton()!=0)){var a=i.getRegion(m);if(a!="foldWidgets"){var d=m.getDocumentPosition().row,p=n.session.selection;if(m.getShiftKey())p.selectTo(d,0);else{if(m.domEvent.detail==2)return n.selectAll(),m.preventDefault();e.$clickSelection=n.selection.getLineRange(d)}return e.setState("selectByLines"),e.captureMouse(m),m.preventDefault()}}});var o,u,f;function E(){var m=u.getDocumentPosition().row,a=i.$annotations[m];if(!a)return F();var d=n.session.getLength();if(m==d){var p=n.renderer.pixelToScreenCoordinates(0,u.y).row,C=u.$pos;if(p>n.session.documentToScreenRow(C.row,C.column))return F()}if(f!=a)if(f=a.text.join("<br/>"),s.setHtml(f),s.show(),n._signal("showGutterTooltip",s),n.on("mousewheel",F),e.$tooltipFollowsMouse)c(u);else{var h=u.domEvent.target,v=h.getBoundingClientRect(),w=s.getElement().style;w.left=v.right+"px",w.top=v.bottom+"px"}}function F(){o&&(o=clearTimeout(o)),f&&(s.hide(),f=null,n._signal("hideGutterTooltip",s),n.removeEventListener("mousewheel",F))}function c(m){s.setPosition(m.x,m.y)}e.editor.setDefaultHandler("guttermousemove",function(m){var a=m.domEvent.target||m.domEvent.srcElement;if(B.hasCssClass(a,"ace_fold-widget"))return F();f&&e.$tooltipFollowsMouse&&c(m),u=m,!o&&(o=setTimeout(function(){o=null,u&&!e.isMousePressed?E():F()},50))}),g.addListener(n.renderer.$gutter,"mouseout",function(m){u=null,!(!f||o)&&(o=setTimeout(function(){o=null,F()},50))}),n.on("changeSession",F)}function t(e){l.call(this,e)}A.inherits(t,l),function(){this.setPosition=function(e,n){var i=window.innerWidth||document.documentElement.clientWidth,s=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),u=this.getHeight();e+=15,n+=15,e+o>i&&(e-=e+o-i),n+u>s&&(n-=20+u),l.prototype.setPosition.call(this,e,n)}}.call(t.prototype),b.GutterHandler=r}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function($,b,K){"use strict";var B=$("../lib/event"),A=$("../lib/useragent"),g=b.MouseEvent=function(l,r){this.domEvent=l,this.editor=r,this.x=this.clientX=l.clientX,this.y=this.clientY=l.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){B.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){B.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var l=this.editor,r=l.getSelectionRange();if(r.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=r.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return B.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(g.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function($,b,K){"use strict";var B=$("../lib/dom"),A=$("../lib/event"),g=$("../lib/useragent"),l=200,r=200,t=5;function e(i){var s=i.editor,o=B.createElement("img");o.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",g.isOpera&&(o.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var u=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];u.forEach(function(T){i[T]=this[T]},this),s.addEventListener("mousedown",this.onMouseDown.bind(i));var f=s.container,E,F,c,m,a,d,p=0,C,h,v,w,y;this.onDragStart=function(T){if(this.cancelDrag||!f.draggable){var x=this;return setTimeout(function(){x.startSelect(),x.captureMouse(T)},0),T.preventDefault()}a=s.getSelectionRange();var k=T.dataTransfer;k.effectAllowed=s.getReadOnly()?"copy":"copyMove",g.isOpera&&(s.container.appendChild(o),o.scrollTop=0),k.setDragImage&&k.setDragImage(o,0,0),g.isOpera&&s.container.removeChild(o),k.clearData(),k.setData("Text",s.session.getTextRange()),h=!0,this.setState("drag")},this.onDragEnd=function(T){if(f.draggable=!1,h=!1,this.setState(null),!s.getReadOnly()){var x=T.dataTransfer.dropEffect;!C&&x=="move"&&s.session.remove(s.getSelectionRange()),s.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(T){if(!(s.getReadOnly()||!M(T.dataTransfer)))return F=T.clientX,c=T.clientY,E||_(),p++,T.dataTransfer.dropEffect=C=U(T),A.preventDefault(T)},this.onDragOver=function(T){if(!(s.getReadOnly()||!M(T.dataTransfer)))return F=T.clientX,c=T.clientY,E||(_(),p++),z!==null&&(z=null),T.dataTransfer.dropEffect=C=U(T),A.preventDefault(T)},this.onDragLeave=function(T){if(p--,p<=0&&E)return O(),C=null,A.preventDefault(T)},this.onDrop=function(T){if(d){var x=T.dataTransfer;if(h)switch(C){case"move":a.contains(d.row,d.column)?a={start:d,end:d}:a=s.moveText(a,d);break;case"copy":a=s.moveText(a,d,!0);break}else{var k=x.getData("Text");a={start:d,end:s.session.insert(d,k)},s.focus(),C=null}return O(),A.preventDefault(T)}},A.addListener(f,"dragstart",this.onDragStart.bind(i)),A.addListener(f,"dragend",this.onDragEnd.bind(i)),A.addListener(f,"dragenter",this.onDragEnter.bind(i)),A.addListener(f,"dragover",this.onDragOver.bind(i)),A.addListener(f,"dragleave",this.onDragLeave.bind(i)),A.addListener(f,"drop",this.onDrop.bind(i));function D(T,x){var k=Date.now(),P=!x||T.row!=x.row,I=!x||T.column!=x.column;if(!w||P||I)s.$blockScrolling+=1,s.moveCursorToPosition(T),s.$blockScrolling-=1,w=k,y={x:F,y:c};else{var N=n(y.x,y.y,F,c);N>t?w=null:k-w>=r&&(s.renderer.scrollCursorIntoView(),w=null)}}function S(T,x){var k=Date.now(),P=s.renderer.layerConfig.lineHeight,I=s.renderer.layerConfig.characterWidth,N=s.renderer.scroller.getBoundingClientRect(),R={x:{left:F-N.left,right:N.right-F},y:{top:c-N.top,bottom:N.bottom-c}},W=Math.min(R.x.left,R.x.right),Y=Math.min(R.y.top,R.y.bottom),j={row:T.row,column:T.column};W/I<=2&&(j.column+=R.x.left<R.x.right?-3:2),Y/P<=1&&(j.row+=R.y.top<R.y.bottom?-1:1);var Q=T.row!=j.row,J=T.column!=j.column,H=!x||T.row!=x.row;Q||J&&!H?v?k-v>=l&&s.renderer.scrollCursorIntoView(j):v=k:v=null}function L(){var T=d;d=s.renderer.screenToTextCoordinates(F,c),D(d,T),S(d,T)}function _(){a=s.selection.toOrientedRange(),E=s.session.addMarker(a,"ace_selection",s.getSelectionStyle()),s.clearSelection(),s.isFocused()&&s.renderer.$cursorLayer.setBlinking(!1),clearInterval(m),L(),m=setInterval(L,20),p=0,A.addListener(document,"mousemove",V)}function O(){clearInterval(m),s.session.removeMarker(E),E=null,s.$blockScrolling+=1,s.selection.fromOrientedRange(a),s.$blockScrolling-=1,s.isFocused()&&!h&&s.renderer.$cursorLayer.setBlinking(!s.getReadOnly()),a=null,d=null,p=0,v=null,w=null,A.removeListener(document,"mousemove",V)}var z=null;function V(){z==null&&(z=setTimeout(function(){z!=null&&E&&O()},20))}function M(T){var x=T.types;return!x||Array.prototype.some.call(x,function(k){return k=="text/plain"||k=="Text"})}function U(T){var x=["copy","copymove","all","uninitialized"],k=["move","copymove","linkmove","all","uninitialized"],P=g.isMac?T.altKey:T.ctrlKey,I="uninitialized";try{I=T.dataTransfer.effectAllowed.toLowerCase()}catch{}var N="none";return P&&x.indexOf(I)>=0?N="copy":k.indexOf(I)>=0?N="move":x.indexOf(I)>=0&&(N="copy"),N}}(function(){this.dragWait=function(){var i=Date.now()-this.mousedownEvent.time;i>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var i=this.editor.container;i.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(i){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var i=this.editor,s=i.container;s.draggable=!0,i.renderer.$cursorLayer.setBlinking(!1),i.setStyle("ace_dragging");var o=g.isWin?"default":"move";i.renderer.setCursorStyle(o),this.setState("dragReady")},this.onMouseDrag=function(i){var s=this.editor.container;if(g.isIE&&this.state=="dragReady"){var o=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>3&&s.dragDrop()}if(this.state==="dragWait"){var o=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>0&&(s.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(i){if(this.$dragEnabled){this.mousedownEvent=i;var s=this.editor,o=i.inSelection(),u=i.getButton(),f=i.domEvent.detail||1;if(f===1&&u===0&&o){if(i.editor.inMultiSelectMode&&(i.getAccelKey()||i.getShiftKey()))return;this.mousedownEvent.time=Date.now();var E=i.domEvent.target||i.domEvent.srcElement;if("unselectable"in E&&(E.unselectable="on"),s.getDragDelay()){if(g.isWebKit){this.cancelDrag=!0;var F=s.container;F.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(i,this.onMouseDrag.bind(this)),i.defaultPrevented=!0}}}}).call(e.prototype);function n(i,s,o,u){return Math.sqrt(Math.pow(o-i,2)+Math.pow(u-s,2))}b.DragdropHandler=e}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function($,b,K){"use strict";var B=$("./dom");b.get=function(A,g){var l=new XMLHttpRequest;l.open("GET",A,!0),l.onreadystatechange=function(){l.readyState===4&&g(l.responseText)},l.send(null)},b.loadScript=function(A,g){var l=B.getDocumentHead(),r=document.createElement("script");r.src=A,l.appendChild(r),r.onload=r.onreadystatechange=function(t,e){(e||!r.readyState||r.readyState=="loaded"||r.readyState=="complete")&&(r=r.onload=r.onreadystatechange=null,e||g())}},b.qualifyURL=function(A){var g=document.createElement("a");return g.href=A,g.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function($,b,K){"use strict";var B={},A=function(){this.propagationStopped=!0},g=function(){this.defaultPrevented=!0};B._emit=B._dispatchEvent=function(l,r){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var t=this._eventRegistry[l]||[],e=this._defaultHandlers[l];if(!(!t.length&&!e)){(typeof r!="object"||!r)&&(r={}),r.type||(r.type=l),r.stopPropagation||(r.stopPropagation=A),r.preventDefault||(r.preventDefault=g),t=t.slice();for(var n=0;n<t.length&&(t[n](r,this),!r.propagationStopped);n++);if(e&&!r.defaultPrevented)return e(r,this)}},B._signal=function(l,r){var t=(this._eventRegistry||{})[l];if(t){t=t.slice();for(var e=0;e<t.length;e++)t[e](r,this)}},B.once=function(l,r){var t=this;r&&this.addEventListener(l,function e(){t.removeEventListener(l,e),r.apply(null,arguments)})},B.setDefaultHandler=function(l,r){var t=this._defaultHandlers;if(t||(t=this._defaultHandlers={_disabled_:{}}),t[l]){var e=t[l],n=t._disabled_[l];n||(t._disabled_[l]=n=[]),n.push(e);var i=n.indexOf(r);i!=-1&&n.splice(i,1)}t[l]=r},B.removeDefaultHandler=function(l,r){var t=this._defaultHandlers;if(t){var e=t._disabled_[l];if(t[l]==r){var n=t[l];e&&this.setDefaultHandler(l,e.pop())}else if(e){var i=e.indexOf(r);i!=-1&&e.splice(i,1)}}},B.on=B.addEventListener=function(l,r,t){this._eventRegistry=this._eventRegistry||{};var e=this._eventRegistry[l];return e||(e=this._eventRegistry[l]=[]),e.indexOf(r)==-1&&e[t?"unshift":"push"](r),r},B.off=B.removeListener=B.removeEventListener=function(l,r){this._eventRegistry=this._eventRegistry||{};var t=this._eventRegistry[l];if(t){var e=t.indexOf(r);e!==-1&&t.splice(e,1)}},B.removeAllListeners=function(l){this._eventRegistry&&(this._eventRegistry[l]=[])},b.EventEmitter=B}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function($,b,K){"no use strict";var B=$("./oop"),A=$("./event_emitter").EventEmitter,g={setOptions:function(e){Object.keys(e).forEach(function(n){this.setOption(n,e[n])},this)},getOptions:function(e){var n={};return e?Array.isArray(e)||(n=e,e=Object.keys(n)):e=Object.keys(this.$options),e.forEach(function(i){n[i]=this.getOption(i)},this),n},setOption:function(e,n){if(this["$"+e]!==n){var i=this.$options[e];if(!i)return l('misspelled option "'+e+'"');if(i.forwardTo)return this[i.forwardTo]&&this[i.forwardTo].setOption(e,n);i.handlesSet||(this["$"+e]=n),i&&i.set&&i.set.call(this,n)}},getOption:function(e){var n=this.$options[e];return n?n.forwardTo?this[n.forwardTo]&&this[n.forwardTo].getOption(e):n&&n.get?n.get.call(this):this["$"+e]:l('misspelled option "'+e+'"')}};function l(e){typeof console<"u"&&console.warn&&console.warn.apply(console,arguments)}function r(e,n){var i=new Error(e);i.data=n,typeof console=="object"&&console.error&&console.error(i),setTimeout(function(){throw i})}var t=function(){this.$defaultOptions={}};(function(){B.implement(this,A),this.defineOptions=function(e,n,i){return e.$options||(this.$defaultOptions[n]=e.$options={}),Object.keys(i).forEach(function(s){var o=i[s];typeof o=="string"&&(o={forwardTo:o}),o.name||(o.name=s),e.$options[o.name]=o,"initialValue"in o&&(e["$"+o.name]=o.initialValue)}),B.implement(e,g),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(n){var i=e.$options[n];"value"in i&&e.setOption(n,i.value)})},this.setDefaultValue=function(e,n,i){var s=this.$defaultOptions[e]||(this.$defaultOptions[e]={});s[n]&&(s.forwardTo?this.setDefaultValue(s.forwardTo,n,i):s[n].value=i)},this.setDefaultValues=function(e,n){Object.keys(n).forEach(function(i){this.setDefaultValue(e,i,n[i])},this)},this.warn=l,this.reportError=r}).call(t.prototype),b.AppConfig=t}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function($,b,K){"no use strict";var B=$("./lib/lang"),A=$("./lib/oop"),g=$("./lib/net"),l=$("./lib/app_config").AppConfig;K.exports=b=new l;var r=function(){return this||typeof window<"u"&&window}(),t={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};b.get=function(i){if(!t.hasOwnProperty(i))throw new Error("Unknown config key: "+i);return t[i]},b.set=function(i,s){if(!t.hasOwnProperty(i))throw new Error("Unknown config key: "+i);t[i]=s},b.all=function(){return B.copyObject(t)},b.moduleUrl=function(i,s){if(t.$moduleUrls[i])return t.$moduleUrls[i];var o=i.split("/");s=s||o[o.length-2]||"";var u=s=="snippets"?"/":"-",f=o[o.length-1];if(s=="worker"&&u=="-"){var E=new RegExp("^"+s+"[\\-_]|[\\-_]"+s+"$","g");f=f.replace(E,"")}(!f||f==s)&&o.length>1&&(f=o[o.length-2]);var F=t[s+"Path"];return F==null?F=t.basePath:u=="/"&&(s=u=""),F&&F.slice(-1)!="/"&&(F+="/"),F+s+u+f+this.get("suffix")},b.setModuleUrl=function(i,s){return t.$moduleUrls[i]=s},b.$loading={},b.loadModule=function(i,s){var o,u;Array.isArray(i)&&(u=i[0],i=i[1]);try{o=$(i)}catch{}if(o&&!b.$loading[i])return s&&s(o);if(b.$loading[i]||(b.$loading[i]=[]),b.$loading[i].push(s),!(b.$loading[i].length>1)){var f=function(){$([i],function(E){b._emit("load.module",{name:i,module:E});var F=b.$loading[i];b.$loading[i]=null,F.forEach(function(c){c&&c(E)})})};if(!b.get("packaged"))return f();g.loadScript(b.moduleUrl(i,u),f)}},e(!0);function e(i){if(!(!r||!r.document)){t.packaged=i||$.packaged||K.packaged||r.define&&se.amdD.packaged;for(var s={},o="",u=document.currentScript||document._currentScript,f=u&&u.ownerDocument||document,E=f.getElementsByTagName("script"),F=0;F<E.length;F++){var c=E[F],m=c.src||c.getAttribute("src");if(m){for(var a=c.attributes,d=0,p=a.length;d<p;d++){var C=a[d];C.name.indexOf("data-ace-")===0&&(s[n(C.name.replace(/^data-ace-/,""))]=C.value)}var h=m.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);h&&(o=h[1])}}o&&(s.base=s.base||o,s.packaged=!0),s.basePath=s.base,s.workerPath=s.workerPath||s.base,s.modePath=s.modePath||s.base,s.themePath=s.themePath||s.base,delete s.base;for(var v in s)typeof s[v]<"u"&&b.set(v,s[v])}}b.init=e;function n(i){return i.replace(/-(.)/g,function(s,o){return o.toUpperCase()})}}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function($,b,K){"use strict";var B=$("../lib/event"),A=$("../lib/useragent"),g=$("./default_handlers").DefaultHandlers,l=$("./default_gutter_handler").GutterHandler,r=$("./mouse_event").MouseEvent,t=$("./dragdrop_handler").DragdropHandler,e=$("../config"),n=function(i){var s=this;this.editor=i,new g(this),new l(this),new t(this);var o=function(E){var F=!document.hasFocus||!document.hasFocus()||!i.isFocused()&&document.activeElement==(i.textInput&&i.textInput.getElement());F&&window.focus(),i.focus()},u=i.renderer.getMouseEventTarget();B.addListener(u,"click",this.onMouseEvent.bind(this,"click")),B.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),B.addMultiMouseDownListener([u,i.renderer.scrollBarV&&i.renderer.scrollBarV.inner,i.renderer.scrollBarH&&i.renderer.scrollBarH.inner,i.textInput&&i.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),B.addMouseWheelListener(i.container,this.onMouseWheel.bind(this,"mousewheel")),B.addTouchMoveListener(i.container,this.onTouchMove.bind(this,"touchmove"));var f=i.renderer.$gutter;B.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),B.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),B.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),B.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),B.addListener(u,"mousedown",o),B.addListener(f,"mousedown",o),A.isIE&&i.renderer.scrollBarV&&(B.addListener(i.renderer.scrollBarV.element,"mousedown",o),B.addListener(i.renderer.scrollBarH.element,"mousedown",o)),i.on("mousemove",function(E){if(!(s.state||s.$dragDelay||!s.$dragEnabled)){var F=i.renderer.screenToTextCoordinates(E.x,E.y),c=i.session.selection.getRange(),m=i.renderer;!c.isEmpty()&&c.insideStart(F.row,F.column)?m.setCursorStyle("default"):m.setCursorStyle("")}})};(function(){this.onMouseEvent=function(i,s){this.editor._emit(i,new r(s,this.editor))},this.onMouseMove=function(i,s){var o=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;!o||!o.length||this.editor._emit(i,new r(s,this.editor))},this.onMouseWheel=function(i,s){var o=new r(s,this.editor);o.speed=this.$scrollSpeed*2,o.wheelX=s.wheelX,o.wheelY=s.wheelY,this.editor._emit(i,o)},this.onTouchMove=function(i,s){var o=new r(s,this.editor);o.speed=1,o.wheelX=s.wheelX,o.wheelY=s.wheelY,this.editor._emit(i,o)},this.setState=function(i){this.state=i},this.captureMouse=function(i,s){this.x=i.x,this.y=i.y,this.isMousePressed=!0;var o=this.editor.renderer;o.$keepTextAreaAtCursor&&(o.$keepTextAreaAtCursor=null);var u=this,f=function(m){if(m){if(A.isWebKit&&!m.which&&u.releaseMouse)return u.releaseMouse();u.x=m.clientX,u.y=m.clientY,s&&s(m),u.mouseEvent=new r(m,u.editor),u.$mouseMoved=!0}},E=function(m){clearInterval(c),F(),u[u.state+"End"]&&u[u.state+"End"](m),u.state="",o.$keepTextAreaAtCursor==null&&(o.$keepTextAreaAtCursor=!0,o.$moveTextAreaToCursor()),u.isMousePressed=!1,u.$onCaptureMouseMove=u.releaseMouse=null,m&&u.onMouseEvent("mouseup",m)},F=function(){u[u.state]&&u[u.state](),u.$mouseMoved=!1};if(A.isOldIE&&i.domEvent.type=="dblclick")return setTimeout(function(){E(i)});u.$onCaptureMouseMove=f,u.releaseMouse=B.capture(this.editor.container,f,E);var c=setInterval(F,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var i=function(s){s&&s.domEvent&&s.domEvent.type!="contextmenu"||(this.editor.off("nativecontextmenu",i),s&&s.domEvent&&B.stopEvent(s.domEvent))}.bind(this);setTimeout(i,10),this.editor.on("nativecontextmenu",i)}}).call(n.prototype),e.defineOptions(n.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:A.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),b.MouseHandler=n}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function($,b,K){"use strict";function B(A){A.on("click",function(g){var l=g.getDocumentPosition(),r=A.session,t=r.getFoldAt(l.row,l.column,1);t&&(g.getAccelKey()?r.removeFold(t):r.expandFold(t),g.stop())}),A.on("gutterclick",function(g){var l=A.renderer.$gutterLayer.getRegion(g);if(l=="foldWidgets"){var r=g.getDocumentPosition().row,t=A.session;t.foldWidgets&&t.foldWidgets[r]&&A.session.onFoldWidgetClick(r,g),A.isFocused()||A.focus(),g.stop()}}),A.on("gutterdblclick",function(g){var l=A.renderer.$gutterLayer.getRegion(g);if(l=="foldWidgets"){var r=g.getDocumentPosition().row,t=A.session,e=t.getParentFoldRangeData(r,!0),n=e.range||e.firstRange;if(n){r=n.start.row;var i=t.getFoldAt(r,t.getLine(r).length,1);i?t.removeFold(i):(t.addFold("...",n),A.renderer.scrollCursorIntoView({row:n.start.row,column:0}))}g.stop()}})}b.FoldHandler=B}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function($,b,K){"use strict";var B=$("../lib/keys"),A=$("../lib/event"),g=function(l){this.$editor=l,this.$data={editor:l},this.$handlers=[],this.setDefaultHandler(l.commands)};(function(){this.setDefaultHandler=function(l){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=l,this.addKeyboardHandler(l,0)},this.setKeyboardHandler=function(l){var r=this.$handlers;if(r[r.length-1]!=l){for(;r[r.length-1]&&r[r.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(r[r.length-1]);this.addKeyboardHandler(l,1)}},this.addKeyboardHandler=function(l,r){if(l){typeof l=="function"&&!l.handleKeyboard&&(l.handleKeyboard=l);var t=this.$handlers.indexOf(l);t!=-1&&this.$handlers.splice(t,1),r==null?this.$handlers.push(l):this.$handlers.splice(r,0,l),t==-1&&l.attach&&l.attach(this.$editor)}},this.removeKeyboardHandler=function(l){var r=this.$handlers.indexOf(l);return r==-1?!1:(this.$handlers.splice(r,1),l.detach&&l.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var l=this.$data,r=l.editor;return this.$handlers.map(function(t){return t.getStatusText&&t.getStatusText(r,l)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(l,r,t,e){for(var n,i=!1,s=this.$editor.commands,o=this.$handlers.length;o--&&(n=this.$handlers[o].handleKeyboard(this.$data,l,r,t,e),!(!(!n||!n.command)&&(n.command=="null"?i=!0:i=s.exec(n.command,this.$editor,n.args,e),i&&e&&l!=-1&&n.passEvent!=!0&&n.command.passEvent!=!0&&A.stopEvent(e),i))););return!i&&l==-1&&(n={command:"insertstring"},i=s.exec("insertstring",this.$editor,r)),i&&this.$editor._signal&&this.$editor._signal("keyboardActivity",n),i},this.onCommandKey=function(l,r,t){var e=B.keyCodeToString(t);this.$callKeyboardHandlers(r,e,t,l)},this.onTextInput=function(l){this.$callKeyboardHandlers(-1,l)}}).call(g.prototype),b.KeyBinding=g}),ace.define("ace/lib/bidiutil",["require","exports","module"],function($,b,K){"use strict";var B=["\u0621","\u0641"],A=["\u063A","\u064A"],g=0,l=0,r=!1,t=!1,e=!1,n=!1,i=!1,s=!1,o=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],u=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],f=0,E=1,F=0,c=1,m=2,a=3,d=4,p=5,C=6,h=7,v=8,w=9,y=10,D=11,S=12,L=13,_=14,O=15,z=16,V=17,M=18,U=[M,M,M,M,M,M,M,M,M,C,p,C,v,p,M,M,M,M,M,M,M,M,M,M,M,M,M,M,p,p,p,C,v,d,d,D,D,D,d,d,d,d,d,y,w,y,w,w,m,m,m,m,m,m,m,m,m,m,w,d,d,d,d,d,d,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,d,d,d,d,d,d,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,d,d,d,d,M,M,M,M,M,M,p,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,w,d,D,D,D,D,d,d,d,d,F,d,d,M,d,d,D,D,m,m,d,F,d,d,d,m,F,d,d,d,d,d],T=[v,v,v,v,v,v,v,v,v,v,v,M,M,M,F,c,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,v,p,L,_,O,z,V,w,D,D,D,D,D,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,w,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,v];function x(R,W,Y,j){var Q=g?u:o,J=null,H=null,G=null,X=0,ee=null,te=null,q=-1,Z=null,ie=null,ne=[];if(!j)for(Z=0,j=[];Z<Y;Z++)j[Z]=I(R[Z]);for(l=g,r=!1,t=!1,e=!1,n=!1,ie=0;ie<Y;ie++){if(J=X,ne[ie]=H=P(R,j,ne,ie),X=Q[J][H],ee=X&240,X&=15,W[ie]=G=Q[X][5],ee>0)if(ee==16){for(Z=q;Z<ie;Z++)W[Z]=1;q=-1}else q=-1;if(te=Q[X][6],te)q==-1&&(q=ie);else if(q>-1){for(Z=q;Z<ie;Z++)W[Z]=G;q=-1}j[ie]==p&&(W[ie]=0),l|=G}if(n){for(Z=0;Z<Y;Z++)if(j[Z]==C){W[Z]=g;for(var re=Z-1;re>=0&&j[re]==v;re--)W[re]=g}}}function k(R,W,Y){if(!(l<R)){if(R==1&&g==E&&!e){Y.reverse();return}for(var j=Y.length,Q=0,J,H,G,X;Q<j;){if(W[Q]>=R){for(J=Q+1;J<j&&W[J]>=R;)J++;for(H=Q,G=J-1;H<G;H++,G--)X=Y[H],Y[H]=Y[G],Y[G]=X;Q=J}Q++}}}function P(R,W,Y,j){var Q=W[j],J,H,G,X;switch(Q){case F:case c:r=!1;case d:case a:return Q;case m:return r?a:m;case h:return r=!0,t=!0,c;case v:return d;case w:return j<1||j+1>=W.length||(J=Y[j-1])!=m&&J!=a||(H=W[j+1])!=m&&H!=a?d:(r&&(H=a),H==J?H:d);case y:return J=j>0?Y[j-1]:p,J==m&&j+1<W.length&&W[j+1]==m?m:d;case D:if(j>0&&Y[j-1]==m)return m;if(r)return d;for(X=j+1,G=W.length;X<G&&W[X]==D;)X++;return X<G&&W[X]==m?m:d;case S:for(G=W.length,X=j+1;X<G&&W[X]==S;)X++;if(X<G){var ee=R[j],te=ee>=1425&&ee<=2303||ee==64286;if(J=W[X],te&&(J==c||J==h))return c}return j<1||(J=W[j-1])==p?d:Y[j-1];case p:return r=!1,e=!0,g;case C:return n=!0,d;case L:case _:case z:case V:case O:r=!1;case M:return d}}function I(R){var W=R.charCodeAt(0),Y=W>>8;return Y==0?W>191?F:U[W]:Y==5?/[\u0591-\u05f4]/.test(R)?c:F:Y==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(R)?S:/[\u0660-\u0669\u066b-\u066c]/.test(R)?a:W==1642?D:/[\u06f0-\u06f9]/.test(R)?m:h:Y==32&&W<=8287?T[W&255]:Y==254&&W>=65136?h:d}function N(R){return R>="\u064B"&&R<="\u0655"}b.L=F,b.R=c,b.EN=m,b.ON_R=3,b.AN=4,b.R_H=5,b.B=6,b.DOT="\xB7",b.doBidiReorder=function(R,W,Y){if(R.length<2)return{};var j=R.split(""),Q=new Array(j.length),J=new Array(j.length),H=[];g=Y?E:f,x(j,H,j.length,W);for(var G=0;G<Q.length;Q[G]=G,G++);k(2,H,Q),k(1,H,Q);for(var G=0;G<Q.length-1;G++)W[G]===a?H[G]=b.AN:H[G]===c&&(W[G]>h&&W[G]<L||W[G]===d||W[G]===M)?H[G]=b.ON_R:G>0&&j[G-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(j[G])&&(H[G-1]=H[G]=b.R_H,G++);j[j.length-1]===b.DOT&&(H[j.length-1]=b.B);for(var G=0;G<Q.length;G++)J[G]=H[Q[G]];return{logicalFromVisual:Q,bidiLevels:J}},b.hasBidiCharacters=function(R,W){for(var Y=!1,j=0;j<R.length;j++)W[j]=I(R.charAt(j)),!Y&&(W[j]==c||W[j]==h)&&(Y=!0);return Y},b.getVisualFromLogicalIdx=function(R,W){for(var Y=0;Y<W.logicalFromVisual.length;Y++)if(W.logicalFromVisual[Y]==R)return Y;return 0}}),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang","ace/lib/useragent"],function($,b,K){"use strict";var B=$("./lib/bidiutil"),A=$("./lib/lang"),g=$("./lib/useragent"),l=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,r=function(t){this.session=t,this.bidiMap={},this.currentRow=null,this.bidiUtil=B,this.charWidths=[],this.EOL="\xAC",this.showInvisibles=!0,this.isRtlDir=!1,this.line="",this.wrapIndent=0,this.isLastRow=!1,this.EOF="\xB6",this.seenBidi=!1};(function(){this.isBidiRow=function(t,e,n){return this.seenBidi?(t!==this.currentRow&&(this.currentRow=t,this.updateRowLine(e,n),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(t){this.seenBidi?this.currentRow=null:t.action=="insert"&&l.test(t.lines.join(` `))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var t=0,e=this.session.$screenRowCache;if(e.length){var n=this.session.$getRowCacheIndex(e,this.currentRow);n>=0&&(t=this.session.$docRowCache[n])}return t},this.getSplitIndex=function(){var t=0,e=this.session.$screenRowCache;if(e.length)for(var n,i=this.session.$getRowCacheIndex(e,this.currentRow);this.currentRow-t>0&&(n=this.session.$getRowCacheIndex(e,this.currentRow-t-1),n===i);)i=n,t++;return t},this.updateRowLine=function(t,e){if(t===void 0&&(t=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=t===this.session.getLength()-1,this.line=this.session.getLine(t),this.session.$useWrapMode){var n=this.session.$wrapData[t];n&&(e===void 0&&(e=this.getSplitIndex()),e>0&&n.length?(this.wrapIndent=n.indent,this.line=e<n.length?this.line.substring(n[e-1],n[n.length-1]):this.line.substring(n[n.length-1])):this.line=this.line.substring(0,n[e]))}var i=this.session,s=0,o;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(u,f){return u===" "||i.isFullWidth(u.charCodeAt(0))?(o=u===" "?i.getScreenTabSize(f+s):2,s+=o-1,A.stringRepeat(B.DOT,o)):u})},this.updateBidiMap=function(){var t=[],e=this.isLastRow?this.EOF:this.EOL,n=this.line+(this.showInvisibles?e:B.DOT);B.hasBidiCharacters(n,t)?this.bidiMap=B.doBidiReorder(n,t,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(t){if(this.seenBidi&&this.characterWidth!==t.$characterSize.width){var e=this.characterWidth=t.$characterSize.width,n=t.$measureCharWidth("\u05D4");this.charWidths[B.L]=this.charWidths[B.EN]=this.charWidths[B.ON_R]=e,this.charWidths[B.R]=this.charWidths[B.AN]=n,this.charWidths[B.R_H]=g.isChrome?n:n*.45,this.charWidths[B.B]=0,this.currentRow=null}},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(t){this.showInvisibles=t,this.currentRow=null},this.setEolChar=function(t){this.EOL=t},this.setTextDir=function(t){this.isRtlDir=t},this.getPosLeft=function(t){t-=this.wrapIndent;var e=B.getVisualFromLogicalIdx(t>0?t-1:0,this.bidiMap),n=this.bidiMap.bidiLevels,i=0;t===0&&n[e]%2!==0&&e++;for(var s=0;s<e;s++)i+=this.charWidths[n[s]];return t!==0&&n[e]%2===0&&(i+=this.charWidths[n[e]]),this.wrapIndent&&(i+=this.wrapIndent*this.charWidths[B.L]),i},this.getSelections=function(t,e){for(var n=this.bidiMap,i=n.bidiLevels,s,o=this.wrapIndent*this.charWidths[B.L],u=[],f=Math.min(t,e)-this.wrapIndent,E=Math.max(t,e)-this.wrapIndent,F=!1,c=!1,m=0,a,d=0;d<i.length;d++)a=n.logicalFromVisual[d],s=i[d],F=a>=f&&a<E,F&&!c?m=o:!F&&c&&u.push({left:m,width:o-m}),o+=this.charWidths[s],c=F;return F&&d===i.length&&u.push({left:m,width:o-m}),u},this.offsetToCol=function(n){var e=0,n=Math.max(n,0),i=0,s=0,o=this.bidiMap.bidiLevels,u=this.charWidths[o[s]];for(this.wrapIndent&&(n-=this.wrapIndent*this.charWidths[B.L]);n>i+u/2;){if(i+=u,s===o.length-1){u=0;break}u=this.charWidths[o[++s]]}return s>0&&o[s-1]%2!==0&&o[s]%2===0?(n<i&&s--,e=this.bidiMap.logicalFromVisual[s]):s>0&&o[s-1]%2===0&&o[s]%2!==0?e=1+(n>i?this.bidiMap.logicalFromVisual[s]:this.bidiMap.logicalFromVisual[s-1]):this.isRtlDir&&s===o.length-1&&u===0&&o[s-1]%2===0||!this.isRtlDir&&s===0&&o[s]%2!==0?e=1+this.bidiMap.logicalFromVisual[s]:(s>0&&o[s-1]%2!==0&&u!==0&&s--,e=this.bidiMap.logicalFromVisual[s]),e+this.wrapIndent}}).call(r.prototype),b.BidiHandler=r}),ace.define("ace/range",["require","exports","module"],function($,b,K){"use strict";var B=function(g,l){return g.row-l.row||g.column-l.column},A=function(g,l,r,t){this.start={row:g,column:l},this.end={row:r,column:t}};(function(){this.isEqual=function(g){return this.start.row===g.start.row&&this.end.row===g.end.row&&this.start.column===g.start.column&&this.end.column===g.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(g,l){return this.compare(g,l)==0},this.compareRange=function(g){var l,r=g.end,t=g.start;return l=this.compare(r.row,r.column),l==1?(l=this.compare(t.row,t.column),l==1?2:l==0?1:0):l==-1?-2:(l=this.compare(t.row,t.column),l==-1?-1:l==1?42:0)},this.comparePoint=function(g){return this.compare(g.row,g.column)},this.containsRange=function(g){return this.comparePoint(g.start)==0&&this.comparePoint(g.end)==0},this.intersects=function(g){var l=this.compareRange(g);return l==-1||l==0||l==1},this.isEnd=function(g,l){return this.end.row==g&&this.end.column==l},this.isStart=function(g,l){return this.start.row==g&&this.start.column==l},this.setStart=function(g,l){typeof g=="object"?(this.start.column=g.column,this.start.row=g.row):(this.start.row=g,this.start.column=l)},this.setEnd=function(g,l){typeof g=="object"?(this.end.column=g.column,this.end.row=g.row):(this.end.row=g,this.end.column=l)},this.inside=function(g,l){return this.compare(g,l)==0?!(this.isEnd(g,l)||this.isStart(g,l)):!1},this.insideStart=function(g,l){return this.compare(g,l)==0?!this.isEnd(g,l):!1},this.insideEnd=function(g,l){return this.compare(g,l)==0?!this.isStart(g,l):!1},this.compare=function(g,l){return!this.isMultiLine()&&g===this.start.row?l<this.start.column?-1:l>this.end.column?1:0:g<this.start.row?-1:g>this.end.row?1:this.start.row===g?l>=this.start.column?0:-1:this.end.row===g?l<=this.end.column?0:1:0},this.compareStart=function(g,l){return this.start.row==g&&this.start.column==l?-1:this.compare(g,l)},this.compareEnd=function(g,l){return this.end.row==g&&this.end.column==l?1:this.compare(g,l)},this.compareInside=function(g,l){return this.end.row==g&&this.end.column==l?1:this.start.row==g&&this.start.column==l?-1:this.compare(g,l)},this.clipRows=function(g,l){if(this.end.row>l)var r={row:l+1,column:0};else if(this.end.row<g)var r={row:g,column:0};if(this.start.row>l)var t={row:l+1,column:0};else if(this.start.row<g)var t={row:g,column:0};return A.fromPoints(t||this.start,r||this.end)},this.extend=function(g,l){var r=this.compare(g,l);if(r==0)return this;if(r==-1)var t={row:g,column:l};else var e={row:g,column:l};return A.fromPoints(t||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 A.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new A(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new A(this.start.row,0,this.end.row,0)},this.toScreenRange=function(g){var l=g.documentToScreenPosition(this.start),r=g.documentToScreenPosition(this.end);return new A(l.row,l.column,r.row,r.column)},this.moveBy=function(g,l){this.start.row+=g,this.start.column+=l,this.end.row+=g,this.end.column+=l}}).call(A.prototype),A.fromPoints=function(g,l){return new A(g.row,g.column,l.row,l.column)},A.comparePoints=B,A.comparePoints=function(g,l){return g.row-l.row||g.column-l.column},b.Range=A}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/lang"),g=$("./lib/event_emitter").EventEmitter,l=$("./range").Range,r=function(t){this.session=t,this.doc=t.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var e=this;this.lead.on("change",function(n){e._emit("changeCursor"),e.$isEmpty||e._emit("changeSelection"),!e.$keepDesiredColumnOnChange&&n.old.column!=n.value.column&&(e.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){e.$isEmpty||e._emit("changeSelection")})};(function(){B.implement(this,g),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(t,e){this.anchor.setPosition(t,e),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(t){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+t);return}var e=this.getSelectionAnchor(),n=this.getSelectionLead(),i=this.isBackwards();(!i||e.column!==0)&&this.setSelectionAnchor(e.row,e.column+t),(i||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+t)})},this.isBackwards=function(){var t=this.anchor,e=this.lead;return t.row>e.row||t.row==e.row&&t.column>e.column},this.getRange=function(){var t=this.anchor,e=this.lead;return this.isEmpty()?l.fromPoints(e,e):this.isBackwards()?l.fromPoints(e,t):l.fromPoints(t,e)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var t=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(t,this.doc.getLine(t).length)},this.setRange=this.setSelectionRange=function(t,e){e?(this.setSelectionAnchor(t.end.row,t.end.column),this.selectTo(t.start.row,t.start.column)):(this.setSelectionAnchor(t.start.row,t.start.column),this.selectTo(t.end.row,t.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(t){var e=this.lead;this.$isEmpty&&this.setSelectionAnchor(e.row,e.column),t.call(this)},this.selectTo=function(t,e){this.$moveSelection(function(){this.moveCursorTo(t,e)})},this.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},this.moveTo=function(t,e){this.clearSelection(),this.moveCursorTo(t,e)},this.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},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(t,e){if(typeof e>"u"){var n=t||this.lead;t=n.row,e=n.column}return this.session.getWordRange(t,e)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var t=this.getCursor(),e=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(e)},this.getLineRange=function(t,e){var n=typeof t=="number"?t:this.lead.row,i,s=this.session.getFoldLine(n);return s?(n=s.start.row,i=s.end.row):i=n,e===!0?new l(n,0,i,this.session.getLine(i).length):new l(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(t,e,n){var i=t.column,s=t.column+e;return n<0&&(i=t.column-e,s=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(i,s).split(" ").length-1==e},this.moveCursorLeft=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),t=this.lead;this.wouldMoveIntoSoftTab(t,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var t=this.lead.row,e=this.lead.column,n=this.session.documentToScreenRow(t,e),i=this.session.screenToDocumentPosition(n,0),s=this.session.getDisplayLine(t,null,i.row,i.column),o=s.match(/^\s*/);o[0].length!=e&&!this.session.$useEmacsStyleLineStart&&(i.column+=o[0].length),this.moveCursorToPosition(i)},this.moveCursorLineEnd=function(){var t=this.lead,e=this.session.getDocumentLastRowColumnPosition(t.row,t.column);if(this.lead.column==e.column){var n=this.session.getLine(e.row);if(e.column==n.length){var i=n.search(/\s+$/);i>0&&(e.column=i)}}this.moveCursorTo(e.row,e.column)},this.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,e=this.doc.getLine(t).length;this.moveCursorTo(t,e)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var t=this.lead.row,e=this.lead.column,n=this.doc.getLine(t),i=n.substring(e),s;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var o=this.session.getFoldAt(t,e,1);if(o){this.moveCursorTo(o.end.row,o.end.column);return}if((s=this.session.nonTokenRe.exec(i))&&(e+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,i=n.substring(e)),e>=n.length){this.moveCursorTo(t,n.length),this.moveCursorRight(),t<this.doc.getLength()-1&&this.moveCursorWordRight();return}(s=this.session.tokenRe.exec(i))&&(e+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.moveCursorLongWordLeft=function(){var t=this.lead.row,e=this.lead.column,n;if(n=this.session.getFoldAt(t,e,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var i=this.session.getFoldStringAt(t,e,-1);i==null&&(i=this.doc.getLine(t).substring(0,e));var s=A.stringReverse(i),o;if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,(o=this.session.nonTokenRe.exec(s))&&(e-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),e<=0){this.moveCursorTo(t,0),this.moveCursorLeft(),t>0&&this.moveCursorWordLeft();return}(o=this.session.tokenRe.exec(s))&&(e-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.$shortWordEndIndex=function(t){var e,n=0,i,s=/\s/,o=this.session.tokenRe;if(o.lastIndex=0,e=this.session.tokenRe.exec(t))n=this.session.tokenRe.lastIndex;else{for(;(i=t[n])&&s.test(i);)n++;if(n<1){for(o.lastIndex=0;(i=t[n])&&!o.test(i);)if(o.lastIndex=0,n++,s.test(i))if(n>2){n--;break}else{for(;(i=t[n])&&s.test(i);)n++;if(n>2)break}}}return o.lastIndex=0,n},this.moveCursorShortWordRight=function(){var t=this.lead.row,e=this.lead.column,n=this.doc.getLine(t),i=n.substring(e),s=this.session.getFoldAt(t,e,1);if(s)return this.moveCursorTo(s.end.row,s.end.column);if(e==n.length){var o=this.doc.getLength();do t++,i=this.doc.getLine(t);while(t<o&&/^\s*$/.test(i));/^\s+/.test(i)||(i=""),e=0}var u=this.$shortWordEndIndex(i);this.moveCursorTo(t,e+u)},this.moveCursorShortWordLeft=function(){var t=this.lead.row,e=this.lead.column,n;if(n=this.session.getFoldAt(t,e,-1))return this.moveCursorTo(n.start.row,n.start.column);var i=this.session.getLine(t).substring(0,e);if(e===0){do t--,i=this.doc.getLine(t);while(t>0&&/^\s*$/.test(i));e=i.length,/\s+$/.test(i)||(i="")}var s=A.stringReverse(i),o=this.$shortWordEndIndex(s);return this.moveCursorTo(t,e-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(t,e){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),i;e===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var s=this.session.screenToDocumentPosition(n.row+t,n.column,i);t!==0&&e===0&&s.row===this.lead.row&&s.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[s.row]&&(s.row>0||t>0)&&s.row++,this.moveCursorTo(s.row,s.column+e,e===0)},this.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},this.moveCursorTo=function(t,e,n){var i=this.session.getFoldAt(t,e,1);i&&(t=i.start.row,e=i.start.column),this.$keepDesiredColumnOnChange=!0;var s=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(s.charAt(e))&&s.charAt(e-1)&&(this.lead.row==t&&this.lead.column==e+1?e=e-1:e=e+1),this.lead.setPosition(t,e),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(t,e,n){var i=this.session.screenToDocumentPosition(t,e);this.moveCursorTo(i.row,i.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(t){var e=this.getRange();return t?(t.start.column=e.start.column,t.start.row=e.start.row,t.end.column=e.end.column,t.end.row=e.end.row):t=e,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},this.getRangeOfMovements=function(t){var e=this.getCursor();try{t(this);var n=this.getCursor();return l.fromPoints(e,n)}catch{return l.fromPoints(e,e)}finally{this.moveCursorToPosition(e)}},this.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(e){var n=e.clone();return n.isBackwards=e.cursor==e.start,n});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},this.fromJSON=function(t){if(t.start==null)if(this.rangeList){this.toSingleRange(t[0]);for(var e=t.length;e--;){var n=l.fromPoints(t[e].start,t[e].end);t[e].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},this.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var e=this.ranges.length;e--;)if(!this.ranges[e].isEqual(t[e]))return!1;return!0}}).call(r.prototype),b.Selection=r}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function($,b,K){"use strict";var B=$("./config"),A=2e3,g=function(l){this.states=l,this.regExps={},this.matchMappings={};for(var r in this.states){for(var t=this.states[r],e=[],n=0,i=this.matchMappings[r]={defaultToken:"text"},s="g",o=[],u=0;u<t.length;u++){var f=t[u];if(f.defaultToken&&(i.defaultToken=f.defaultToken),f.caseInsensitive&&(s="gi"),f.regex!=null){f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var E=f.regex,F=new RegExp("(?:("+E+")|(.))").exec("a").length-2;Array.isArray(f.token)?f.token.length==1||F==1?f.token=f.token[0]:F-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:F-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(F>1?f.onMatch=this.$applyToken:f.onMatch=f.token),F>1&&(/\\\d/.test(f.regex)?E=f.regex.replace(/\\([0-9]+)/g,function(c,m){return"\\"+(parseInt(m,10)+n+1)}):(F=1,E=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&o.push(f)),i[n]=u,n+=F,e.push(E),f.onMatch||(f.onMatch=null)}}e.length||(i[0]=0,e.push("$")),o.forEach(function(c){c.splitRegex=this.createSplitterRegexp(c.regex,s)},this),this.regExps[r]=new RegExp("("+e.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(l){A=l|0},this.$applyToken=function(l){var r=this.splitRegex.exec(l).slice(1),t=this.token.apply(this,r);if(typeof t=="string")return[{type:t,value:l}];for(var e=[],n=0,i=t.length;n<i;n++)r[n]&&(e[e.length]={type:t[n],value:r[n]});return e},this.$arrayTokens=function(l){if(!l)return[];var r=this.splitRegex.exec(l);if(!r)return"text";for(var t=[],e=this.tokenArray,n=0,i=e.length;n<i;n++)r[n+1]&&(t[t.length]={type:e[n],value:r[n+1]});return t},this.removeCapturingGroups=function(l){var r=l.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(t,e){return e?"(?:":t});return r},this.createSplitterRegexp=function(l,r){if(l.indexOf("(?=")!=-1){var t=0,e=!1,n={};l.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(i,s,o,u,f,E){return e?e=f!="]":f?e=!0:u?(t==n.stack&&(n.end=E+1,n.stack=-1),t--):o&&(t++,o.length!=1&&(n.stack=t,n.start=E)),i}),n.end!=null&&/^\)*$/.test(l.substr(n.end))&&(l=l.substring(0,n.start)+l.substr(n.end))}return l.charAt(0)!="^"&&(l="^"+l),l.charAt(l.length-1)!="$"&&(l+="$"),new RegExp(l,(r||"").replace("g",""))},this.getLineTokens=function(l,r){if(r&&typeof r!="string"){var t=r.slice(0);r=t[0],r==="#tmp"&&(t.shift(),r=t.shift())}else var t=[];var e=r||"start",n=this.states[e];n||(e="start",n=this.states[e]);var i=this.matchMappings[e],s=this.regExps[e];s.lastIndex=0;for(var o,u=[],f=0,E=0,F={type:null,value:""};o=s.exec(l);){var c=i.defaultToken,m=null,a=o[0],d=s.lastIndex;if(d-a.length>f){var p=l.substring(f,d-a.length);F.type==c?F.value+=p:(F.type&&u.push(F),F={type:c,value:p})}for(var C=0;C<o.length-2;C++)if(o[C+1]!==void 0){m=n[i[C]],m.onMatch?c=m.onMatch(a,e,t,l):c=m.token,m.next&&(typeof m.next=="string"?e=m.next:e=m.next(e,t),n=this.states[e],n||(this.reportError("state doesn't exist",e),e="start",n=this.states[e]),i=this.matchMappings[e],f=d,s=this.regExps[e],s.lastIndex=d),m.consumeLineEnd&&(f=d);break}if(a){if(typeof c=="string")(!m||m.merge!==!1)&&F.type===c?F.value+=a:(F.type&&u.push(F),F={type:c,value:a});else if(c){F.type&&u.push(F),F={type:null,value:""};for(var C=0;C<c.length;C++)u.push(c[C])}}if(f==l.length)break;if(f=d,E++>A){for(E>2*l.length&&this.reportError("infinite loop with in ace tokenizer",{startState:r,line:l});f<l.length;)F.type&&u.push(F),F={value:l.substring(f,f+=2e3),type:"overflow"};e="start",t=[];break}}return F.type&&u.push(F),t.length>1&&t[0]!==e&&t.unshift("#tmp",e),{tokens:u,state:t.length?t:e}},this.reportError=B.reportError}).call(g.prototype),b.Tokenizer=g}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function($,b,K){"use strict";var B=$("../lib/lang"),A=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(r,t){if(!t){for(var e in r)this.$rules[e]=r[e];return}for(var e in r){for(var n=r[e],i=0;i<n.length;i++){var s=n[i];(s.next||s.onMatch)&&(typeof s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState))}this.$rules[t+e]=n}},this.getRules=function(){return this.$rules},this.embedRules=function(r,t,e,n,i){var s=typeof r=="function"?new r().getRules():r;if(n)for(var o=0;o<n.length;o++)n[o]=t+n[o];else{n=[];for(var u in s)n.push(t+u)}if(this.addRules(s,t),e)for(var f=Array.prototype[i?"push":"unshift"],o=0;o<n.length;o++)f.apply(this.$rules[n[o]],B.deepCopy(e));this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var g=function(r,t){return(r!="start"||t.length)&&t.unshift(this.nextState,r),this.nextState},l=function(r,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){var r=0,t=this.$rules;function e(n){var i=t[n];i.processed=!0;for(var s=0;s<i.length;s++){var o=i[s],u=null;Array.isArray(o)&&(u=o,o={}),!o.regex&&o.start&&(o.regex=o.start,o.next||(o.next=[]),o.next.push({defaultToken:o.token},{token:o.token+".end",regex:o.end||o.start,next:"pop"}),o.token=o.token+".start",o.push=!0);var f=o.next||o.push;if(f&&Array.isArray(f)){var E=o.stateName;E||(E=o.token,typeof E!="string"&&(E=E[0]||""),t[E]&&(E+=r++)),t[E]=f,o.next=E,e(E)}else f=="pop"&&(o.next=l);if(o.push&&(o.nextState=o.next||o.push,o.next=g,delete o.push),o.rules)for(var F in o.rules)t[F]?t[F].push&&t[F].push.apply(t[F],o.rules[F]):t[F]=o.rules[F];var c=typeof o=="string"?o:o.include;if(c&&(Array.isArray(c)?u=c.map(function(a){return t[a]}):u=t[c]),u){var m=[s,1].concat(u);o.noEscape&&(m=m.filter(function(a){return!a.next})),i.splice.apply(i,m),s--}o.keywordMap&&(o.token=this.createKeywordMapper(o.keywordMap,o.defaultToken||"text",o.caseInsensitive),delete o.defaultToken)}}Object.keys(t).forEach(e,this)},this.createKeywordMapper=function(r,t,e,n){var i=Object.create(null);return Object.keys(r).forEach(function(s){var o=r[s];e&&(o=o.toLowerCase());for(var u=o.split(n||"|"),f=u.length;f--;)i[u[f]]=s}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),r=null,e?function(s){return i[s.toLowerCase()]||t}:function(s){return i[s]||t}},this.getKeywords=function(){return this.$keywords}}).call(A.prototype),b.TextHighlightRules=A}),ace.define("ace/mode/behaviour",["require","exports","module"],function($,b,K){"use strict";var B=function(){this.$behaviours={}};(function(){this.add=function(A,g,l){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[A]:this.$behaviours[A]={}}this.$behaviours[A][g]=l},this.addBehaviours=function(A){for(var g in A)for(var l in A[g])this.add(g,l,A[g][l])},this.remove=function(A){this.$behaviours&&this.$behaviours[A]&&delete this.$behaviours[A]},this.inherit=function(A,g){if(typeof A=="function")var l=new A().getBehaviours(g);else var l=A.getBehaviours(g);this.addBehaviours(l)},this.getBehaviours=function(A){if(A){for(var g={},l=0;l<A.length;l++)this.$behaviours[A[l]]&&(g[A[l]]=this.$behaviours[A[l]]);return g}else return this.$behaviours}}).call(B.prototype),b.Behaviour=B}),ace.define("ace/token_iterator",["require","exports","module","ace/range"],function($,b,K){"use strict";var B=$("./range").Range,A=function(g,l,r){this.$session=g,this.$row=l,this.$rowTokens=g.getTokens(l);var t=g.getTokenAt(l,r);this.$tokenIndex=t?t.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;for(var g;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,g||(g=this.$session.getLength()),this.$row>=g)return this.$row=g-1,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 g=this.$rowTokens,l=this.$tokenIndex,r=g[l].start;if(r!==void 0)return r;for(r=0;l>0;)l-=1,r+=g[l].value.length;return r},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var g=this.$rowTokens[this.$tokenIndex],l=this.getCurrentTokenColumn();return new B(this.$row,l,this.$row,l+g.value.length)}}).call(A.prototype),b.TokenIterator=A}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function($,b,K){"use strict";var B=$("../../lib/oop"),A=$("../behaviour").Behaviour,g=$("../../token_iterator").TokenIterator,l=$("../../lib/lang"),r=["text","paren.rparen","punctuation.operator"],t=["text","paren.rparen","punctuation.operator","comment"],e,n={},i={'"':'"',"'":"'"},s=function(f){var E=-1;if(f.multiSelect&&(E=f.selection.index,n.rangeCount!=f.multiSelect.rangeCount&&(n={rangeCount:f.multiSelect.rangeCount})),n[E])return e=n[E];e=n[E]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},o=function(f,E,F,c){var m=f.end.row-f.start.row;return{text:F+E+c,selection:[0,f.start.column+1,m,f.end.column+(m?0:1)]}},u=function(f){this.add("braces","insertion",function(E,F,c,m,a){var d=c.getCursorPosition(),p=m.doc.getLine(d.row);if(a=="{"){s(c);var C=c.getSelectionRange(),h=m.doc.getTextRange(C);if(h!==""&&h!=="{"&&c.getWrapBehavioursEnabled())return o(C,h,"{","}");if(u.isSaneInsertion(c,m))return/[\]\}\)]/.test(p[d.column])||c.inMultiSelectMode||f&&f.braces?(u.recordAutoInsert(c,m,"}"),{text:"{}",selection:[1,1]}):(u.recordMaybeInsert(c,m,"{"),{text:"{",selection:[1,1]})}else if(a=="}"){s(c);var v=p.substring(d.column,d.column+1);if(v=="}"){var w=m.$findOpeningBracket("}",{column:d.column+1,row:d.row});if(w!==null&&u.isAutoInsertedClosing(d,p,a))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(a==` `||a==`\r `){s(c);var y="";u.isMaybeInsertedClosing(d,p)&&(y=l.stringRepeat("}",e.maybeInsertedBrackets),u.clearMaybeInsertedClosing());var v=p.substring(d.column,d.column+1);if(v==="}"){var D=m.findMatchingBracket({row:d.row,column:d.column+1},"}");if(!D)return null;var S=this.$getIndent(m.getLine(D.row))}else if(y)var S=this.$getIndent(p);else{u.clearMaybeInsertedClosing();return}var L=S+m.getTabString();return{text:` `+L+` `+S+y,selection:[1,L.length,1,L.length]}}else u.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(E,F,c,m,a){var d=m.doc.getTextRange(a);if(!a.isMultiLine()&&d=="{"){s(c);var p=m.doc.getLine(a.start.row),C=p.substring(a.end.column,a.end.column+1);if(C=="}")return a.end.column++,a;e.maybeInsertedBrackets--}}),this.add("parens","insertion",function(E,F,c,m,a){if(a=="("){s(c);var d=c.getSelectionRange(),p=m.doc.getTextRange(d);if(p!==""&&c.getWrapBehavioursEnabled())return o(d,p,"(",")");if(u.isSaneInsertion(c,m))return u.recordAutoInsert(c,m,")"),{text:"()",selection:[1,1]}}else if(a==")"){s(c);var C=c.getCursorPosition(),h=m.doc.getLine(C.row),v=h.substring(C.column,C.column+1);if(v==")"){var w=m.$findOpeningBracket(")",{column:C.column+1,row:C.row});if(w!==null&&u.isAutoInsertedClosing(C,h,a))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(E,F,c,m,a){var d=m.doc.getTextRange(a);if(!a.isMultiLine()&&d=="("){s(c);var p=m.doc.getLine(a.start.row),C=p.substring(a.start.column+1,a.start.column+2);if(C==")")return a.end.column++,a}}),this.add("brackets","insertion",function(E,F,c,m,a){if(a=="["){s(c);var d=c.getSelectionRange(),p=m.doc.getTextRange(d);if(p!==""&&c.getWrapBehavioursEnabled())return o(d,p,"[","]");if(u.isSaneInsertion(c,m))return u.recordAutoInsert(c,m,"]"),{text:"[]",selection:[1,1]}}else if(a=="]"){s(c);var C=c.getCursorPosition(),h=m.doc.getLine(C.row),v=h.substring(C.column,C.column+1);if(v=="]"){var w=m.$findOpeningBracket("]",{column:C.column+1,row:C.row});if(w!==null&&u.isAutoInsertedClosing(C,h,a))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(E,F,c,m,a){var d=m.doc.getTextRange(a);if(!a.isMultiLine()&&d=="["){s(c);var p=m.doc.getLine(a.start.row),C=p.substring(a.start.column+1,a.start.column+2);if(C=="]")return a.end.column++,a}}),this.add("string_dquotes","insertion",function(E,F,c,m,a){var d=m.$mode.$quotes||i;if(a.length==1&&d[a]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(a)!=-1)return;s(c);var p=a,C=c.getSelectionRange(),h=m.doc.getTextRange(C);if(h!==""&&(h.length!=1||!d[h])&&c.getWrapBehavioursEnabled())return o(C,h,p,p);if(!h){var v=c.getCursorPosition(),w=m.doc.getLine(v.row),y=w.substring(v.column-1,v.column),D=w.substring(v.column,v.column+1),S=m.getTokenAt(v.row,v.column),L=m.getTokenAt(v.row,v.column+1);if(y=="\\"&&S&&/escape/.test(S.type))return null;var _=S&&/string|escape/.test(S.type),O=!L||/string|escape/.test(L.type),z;if(D==p)z=_!==O,z&&/string\.end/.test(L.type)&&(z=!1);else{if(_&&!O||_&&O)return null;var V=m.$mode.tokenRe;V.lastIndex=0;var M=V.test(y);V.lastIndex=0;var U=V.test(y);if(M||U||D&&!/[\s;,.})\]\\]/.test(D))return null;z=!0}return{text:z?p+p:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(E,F,c,m,a){var d=m.doc.getTextRange(a);if(!a.isMultiLine()&&(d=='"'||d=="'")){s(c);var p=m.doc.getLine(a.start.row),C=p.substring(a.start.column+1,a.start.column+2);if(C==d)return a.end.column++,a}})};u.isSaneInsertion=function(f,E){var F=f.getCursorPosition(),c=new g(E,F.row,F.column);if(!this.$matchTokenType(c.getCurrentToken()||"text",r)){var m=new g(E,F.row,F.column+1);if(!this.$matchTokenType(m.getCurrentToken()||"text",r))return!1}return c.stepForward(),c.getCurrentTokenRow()!==F.row||this.$matchTokenType(c.getCurrentToken()||"text",t)},u.$matchTokenType=function(f,E){return E.indexOf(f.type||f)>-1},u.recordAutoInsert=function(f,E,F){var c=f.getCursorPosition(),m=E.doc.getLine(c.row);this.isAutoInsertedClosing(c,m,e.autoInsertedLineEnd[0])||(e.autoInsertedBrackets=0),e.autoInsertedRow=c.row,e.autoInsertedLineEnd=F+m.substr(c.column),e.autoInsertedBrackets++},u.recordMaybeInsert=function(f,E,F){var c=f.getCursorPosition(),m=E.doc.getLine(c.row);this.isMaybeInsertedClosing(c,m)||(e.maybeInsertedBrackets=0),e.maybeInsertedRow=c.row,e.maybeInsertedLineStart=m.substr(0,c.column)+F,e.maybeInsertedLineEnd=m.substr(c.column),e.maybeInsertedBrackets++},u.isAutoInsertedClosing=function(f,E,F){return e.autoInsertedBrackets>0&&f.row===e.autoInsertedRow&&F===e.autoInsertedLineEnd[0]&&E.substr(f.column)===e.autoInsertedLineEnd},u.isMaybeInsertedClosing=function(f,E){return e.maybeInsertedBrackets>0&&f.row===e.maybeInsertedRow&&E.substr(f.column)===e.maybeInsertedLineEnd&&E.substr(0,f.column)==e.maybeInsertedLineStart},u.popAutoInsertedClosing=function(){e.autoInsertedLineEnd=e.autoInsertedLineEnd.substr(1),e.autoInsertedBrackets--},u.clearMaybeInsertedClosing=function(){e&&(e.maybeInsertedBrackets=0,e.maybeInsertedRow=-1)},B.inherits(u,A),b.CstyleBehaviour=u}),ace.define("ace/unicode",["require","exports","module"],function($,b,K){"use strict";b.packages={},B({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 B(A){var g=/\w{4}/g;for(var l in A)b.packages[l]=A[l].replace(g,"\\u$&")}}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function($,b,K){"use strict";var B=$("../tokenizer").Tokenizer,A=$("./text_highlight_rules").TextHighlightRules,g=$("./behaviour/cstyle").CstyleBehaviour,l=$("../unicode"),r=$("../lib/lang"),t=$("../token_iterator").TokenIterator,e=$("../range").Range,n=function(){this.HighlightRules=A};(function(){this.$defaultBehaviour=new g,this.tokenRe=new RegExp("^["+l.packages.L+l.packages.Mn+l.packages.Mc+l.packages.Nd+l.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+l.packages.L+l.packages.Mn+l.packages.Mc+l.packages.Nd+l.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new B(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(i,s,o,u){var f=s.doc,E=!0,F=!0,c=1/0,m=s.getTabSize(),a=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var C=this.lineCommentStart.map(r.escapeRegExp).join("|"),d=this.lineCommentStart[0];else var C=r.escapeRegExp(this.lineCommentStart),d=this.lineCommentStart;C=new RegExp("^(\\s*)(?:"+C+") ?"),a=s.getUseSoftTabs();var w=function(M,U){var T=M.match(C);if(T){var x=T[1].length,k=T[0].length;!S(M,x,k)&&T[0][k-1]==" "&&k--,f.removeInLine(U,x,k)}},D=d+" ",v=function(M,U){(!E||/\S/.test(M))&&(S(M,c,c)?f.insertInLine({row:U,column:c},D):f.insertInLine({row:U,column:c},d))},y=function(M,U){return C.test(M)},S=function(M,U,T){for(var x=0;U--&&M.charAt(U)==" ";)x++;if(x%m!=0)return!1;for(var x=0;M.charAt(T++)==" ";)x++;return m>2?x%m!=m-1:x%m==0}}else{if(!this.blockComment)return!1;var d=this.blockComment.start,p=this.blockComment.end,C=new RegExp("^(\\s*)(?:"+r.escapeRegExp(d)+")"),h=new RegExp("(?:"+r.escapeRegExp(p)+")\\s*$"),v=function(O,z){y(O,z)||(!E||/\S/.test(O))&&(f.insertInLine({row:z,column:O.length},p),f.insertInLine({row:z,column:c},d))},w=function(O,z){var V;(V=O.match(h))&&f.removeInLine(z,O.length-V[0].length,O.length),(V=O.match(C))&&f.removeInLine(z,V[1].length,V[0].length)},y=function(O,z){if(C.test(O))return!0;for(var V=s.getTokens(z),M=0;M<V.length;M++)if(V[M].type==="comment")return!0}}function L(O){for(var z=o;z<=u;z++)O(f.getLine(z),z)}var _=1/0;L(function(O,z){var V=O.search(/\S/);V!==-1?(V<c&&(c=V),F&&!y(O,z)&&(F=!1)):_>O.length&&(_=O.length)}),c==1/0&&(c=_,E=!1,F=!1),a&&c%m!=0&&(c=Math.floor(c/m)*m),L(F?w:v)},this.toggleBlockComment=function(i,s,o,u){var f=this.blockComment;if(f){!f.start&&f[0]&&(f=f[0]);var E=new t(s,u.row,u.column),F=E.getCurrentToken(),c=s.selection,m=s.selection.toOrientedRange(),a,d;if(F&&/comment/.test(F.type)){for(var p,C;F&&/comment/.test(F.type);){var h=F.value.indexOf(f.start);if(h!=-1){var v=E.getCurrentTokenRow(),w=E.getCurrentTokenColumn()+h;p=new e(v,w,v,w+f.start.length);break}F=E.stepBackward()}for(var E=new t(s,u.row,u.column),F=E.getCurrentToken();F&&/comment/.test(F.type);){var h=F.value.indexOf(f.end);if(h!=-1){var v=E.getCurrentTokenRow(),w=E.getCurrentTokenColumn()+h;C=new e(v,w,v,w+f.end.length);break}F=E.stepForward()}C&&s.remove(C),p&&(s.remove(p),a=p.start.row,d=-f.start.length)}else d=f.start.length,a=o.start.row,s.insert(o.end,f.end),s.insert(o.start,f.start);m.start.row==a&&(m.start.column+=d),m.end.row==a&&(m.end.column+=d),s.selection.fromOrientedRange(m)}},this.getNextLineIndent=function(i,s,o){return this.$getIndent(s)},this.checkOutdent=function(i,s,o){return!1},this.autoOutdent=function(i,s,o){},this.$getIndent=function(i){return i.match(/^\s*/)[0]},this.createWorker=function(i){return null},this.createModeDelegates=function(i){this.$embeds=[],this.$modes={};for(var s in i)i[s]&&(this.$embeds.push(s),this.$modes[s]=new i[s]);for(var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],s=0;s<o.length;s++)(function(f){var E=o[s],F=f[E];f[o[s]]=function(){return this.$delegator(E,arguments,F)}})(this)},this.$delegator=function(i,s,o){var u=s[0];typeof u!="string"&&(u=u[0]);for(var f=0;f<this.$embeds.length;f++)if(this.$modes[this.$embeds[f]]){var E=u.split(this.$embeds[f]);if(!E[0]&&E[1]){s[0]=E[1];var F=this.$modes[this.$embeds[f]];return F[i].apply(F,s)}}var c=o.apply(this,s);return o?c:void 0},this.transformAction=function(i,s,o,u,f){if(this.$behaviour){var E=this.$behaviour.getBehaviours();for(var F in E)if(E[F][s]){var c=E[F][s].apply(this,arguments);if(c)return c}}},this.getKeywords=function(i){if(!this.completionKeywords){var s=this.$tokenizer.rules,o=[];for(var u in s)for(var f=s[u],E=0,F=f.length;E<F;E++)if(typeof f[E].token=="string")/keyword|support|storage/.test(f[E].token)&&o.push(f[E].regex);else if(typeof f[E].token=="object"){for(var c=0,m=f[E].token.length;c<m;c++)if(/keyword|support|storage/.test(f[E].token[c])){var u=f[E].regex.match(/\(.+?\)/g)[c];o.push(u.substr(1,u.length-2))}}this.completionKeywords=o}return i?o.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(i,s,o,u){var f=this.$keywordList||this.$createKeywordList();return f.map(function(E){return{name:E,value:E,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(n.prototype),b.Mode=n}),ace.define("ace/apply_delta",["require","exports","module"],function($,b,K){"use strict";function B(l,r){throw console.log("Invalid Delta:",l),"Invalid Delta: "+r}function A(l,r){return r.row>=0&&r.row<l.length&&r.column>=0&&r.column<=l[r.row].length}function g(l,r){r.action!="insert"&&r.action!="remove"&&B(r,"delta.action must be 'insert' or 'remove'"),r.lines instanceof Array||B(r,"delta.lines must be an Array"),(!r.start||!r.end)&&B(r,"delta.start/end must be an present");var t=r.start;A(l,r.start)||B(r,"delta.start must be contained in document");var e=r.end;r.action=="remove"&&!A(l,e)&&B(r,"delta.end must contained in document for 'remove' actions");var n=e.row-t.row,i=e.column-(n==0?t.column:0);(n!=r.lines.length-1||r.lines[n].length!=i)&&B(r,"delta.range must match delta lines")}b.applyDelta=function(l,r,t){var e=r.start.row,n=r.start.column,i=l[e]||"";switch(r.action){case"insert":var s=r.lines;if(s.length===1)l[e]=i.substring(0,n)+r.lines[0]+i.substring(n);else{var o=[e,1].concat(r.lines);l.splice.apply(l,o),l[e]=i.substring(0,n)+l[e],l[e+r.lines.length-1]+=i.substring(n)}break;case"remove":var u=r.end.column,f=r.end.row;e===f?l[e]=i.substring(0,n)+i.substring(u):l.splice(e,f-e+1,i.substring(0,n)+l[f].substring(u));break}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/event_emitter").EventEmitter,g=b.Anchor=function(l,r,t){this.$onChange=this.onChange.bind(this),this.attach(l),typeof t>"u"?this.setPosition(r.row,r.column):this.setPosition(r,t)};(function(){B.implement(this,A),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var e=r(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}};function l(t,e,n){var i=n?t.column<=e.column:t.column<e.column;return t.row<e.row||t.row==e.row&&i}function r(t,e,n){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,f=i?u:t.end;return l(e,u,n)?{row:e.row,column:e.column}:l(f,e,!n)?{row:e.row+s,column:e.column+(e.row==f.row?o:0)}:{row:u.row,column:u.column}}this.setPosition=function(t,e,n){var i;if(n?i={row:t,column:e}:i=this.$clipPositionToDocument(t,e),!(this.row==i.row&&this.column==i.column)){var s={row:this.row,column:this.column};this.row=i.row,this.column=i.column,this._signal("change",{old:s,value:i})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(t,e){var n={};return t>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):t<0?(n.row=0,n.column=0):(n.row=t,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,e))),e<0&&(n.column=0),n}}).call(g.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./apply_delta").applyDelta,g=$("./lib/event_emitter").EventEmitter,l=$("./range").Range,r=$("./anchor").Anchor,t=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){B.implement(this,g),this.setValue=function(e){var n=this.getLength()-1;this.remove(new l(0,0,n,this.getLine(n).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,n){return new r(this,e,n)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,` `).split(` `)}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var n=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=n?n[1]:` `,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r `;case"unix":return` `;default:return this.$autoNewLine||` `}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==`\r `||e=="\r"||e==` `},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,n){return this.$lines.slice(e,n+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var n;if(e.start.row===e.end.row)n=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{n=this.getLines(e.start.row,e.end.row),n[0]=(n[0]||"").substring(e.start.column);var i=n.length-1;e.end.row-e.start.row==i&&(n[i]=n[i].substring(0,e.end.column))}return n},this.insertLines=function(e,n){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,n)},this.removeLines=function(e,n){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,n)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,n){return this.getLength()<=1&&this.$detectNewLine(n),this.insertMergedLines(e,this.$split(n))},this.insertInLine=function(e,n){var i=this.clippedPos(e.row,e.column),s=this.pos(e.row,e.column+n.length);return this.applyDelta({start:i,end:s,action:"insert",lines:[n]},!0),this.clonePos(s)},this.clippedPos=function(e,n){var i=this.getLength();e===void 0?e=i:e<0?e=0:e>=i&&(e=i-1,n=void 0);var s=this.getLine(e);return n==null&&(n=s.length),n=Math.min(Math.max(n,0),s.length),{row:e,column:n}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,n){return{row:e,column:n}},this.$clipPosition=function(e){var n=this.getLength();return e.row>=n?(e.row=Math.max(0,n-1),e.column=this.getLine(n-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,n){e=Math.min(Math.max(e,0),this.getLength());var i=0;e<this.getLength()?(n=n.concat([""]),i=0):(n=[""].concat(n),e--,i=this.$lines[e].length),this.insertMergedLines({row:e,column:i},n)},this.insertMergedLines=function(e,n){var i=this.clippedPos(e.row,e.column),s={row:i.row+n.length-1,column:(n.length==1?i.column:0)+n[n.length-1].length};return this.applyDelta({start:i,end:s,action:"insert",lines:n}),this.clonePos(s)},this.remove=function(e){var n=this.clippedPos(e.start.row,e.start.column),i=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:n,end:i,action:"remove",lines:this.getLinesForRange({start:n,end:i})}),this.clonePos(n)},this.removeInLine=function(e,n,i){var s=this.clippedPos(e,n),o=this.clippedPos(e,i);return this.applyDelta({start:s,end:o,action:"remove",lines:this.getLinesForRange({start:s,end:o})},!0),this.clonePos(s)},this.removeFullLines=function(e,n){e=Math.min(Math.max(0,e),this.getLength()-1),n=Math.min(Math.max(0,n),this.getLength()-1);var i=n==this.getLength()-1&&e>0,s=n<this.getLength()-1,o=i?e-1:e,u=i?this.getLine(o).length:0,f=s?n+1:n,E=s?0:this.getLine(f).length,F=new l(o,u,f,E),c=this.$lines.slice(e,n+1);return this.applyDelta({start:F.start,end:F.end,action:"remove",lines:this.getLinesForRange(F)}),c},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,n){if(e instanceof l||(e=l.fromPoints(e.start,e.end)),n.length===0&&e.isEmpty())return e.start;if(n==this.getTextRange(e))return e.end;this.remove(e);var i;return n?i=this.insert(e.start,n):i=e.start,i},this.applyDeltas=function(e){for(var n=0;n<e.length;n++)this.applyDelta(e[n])},this.revertDeltas=function(e){for(var n=e.length-1;n>=0;n--)this.revertDelta(e[n])},this.applyDelta=function(e,n){var i=e.action=="insert";(i?e.lines.length<=1&&!e.lines[0]:!l.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),A(this.$lines,e,n),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,n){var i=e.lines,s=i.length,o=e.start.row,u=e.start.column,f=0,E=0;do{f=E,E+=n-1;var F=i.slice(f,E);if(E>s){e.lines=F,e.start.row=o+f,e.start.column=u;break}F.push(""),this.applyDelta({start:this.pos(o+f,u),end:this.pos(o+E,u=0),action:e.action,lines:F},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,n){for(var i=this.$lines||this.getAllLines(),s=this.getNewLineCharacter().length,o=n||0,u=i.length;o<u;o++)if(e-=i[o].length+s,e<0)return{row:o,column:e+i[o].length+s};return{row:u-1,column:i[u-1].length}},this.positionToIndex=function(e,n){for(var i=this.$lines||this.getAllLines(),s=this.getNewLineCharacter().length,o=0,u=Math.min(e.row,i.length),f=n||0;f<u;++f)o+=i[f].length+s;return o+e.column}}).call(t.prototype),b.Document=t}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/event_emitter").EventEmitter,g=function(l,r){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=l;var t=this;this.$worker=function(){if(t.running){for(var e=new Date,n=t.currentLine,i=-1,s=t.doc,o=n;t.lines[n];)n++;var u=s.getLength(),f=0;for(t.running=!1;n<u;){t.$tokenizeRow(n),i=n;do n++;while(t.lines[n]);if(f++,f%5===0&&new Date-e>20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=n,i==-1&&(i=n),o<=i&&t.fireUpdateEvent(o,i)}}};(function(){B.implement(this,A),this.setTokenizer=function(l){this.tokenizer=l,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(l){this.doc=l,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(l,r){var t={first:l,last:r};this._signal("update",{data:t})},this.start=function(l){this.currentLine=Math.min(l||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.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(l){var r=l.start.row,t=l.end.row-r;if(t===0)this.lines[r]=null;else if(l.action=="remove")this.lines.splice(r,t+1,null),this.states.splice(r,t+1,null);else{var e=Array(t+1);e.unshift(r,1),this.lines.splice.apply(this.lines,e),this.states.splice.apply(this.states,e)}this.currentLine=Math.min(r,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(l){return this.lines[l]||this.$tokenizeRow(l)},this.getState=function(l){return this.currentLine==l&&this.$tokenizeRow(l),this.states[l]||"start"},this.$tokenizeRow=function(l){var r=this.doc.getLine(l),t=this.states[l-1],e=this.tokenizer.getLineTokens(r,t,l);return this.states[l]+""!=e.state+""?(this.states[l]=e.state,this.lines[l+1]=null,this.currentLine>l+1&&(this.currentLine=l+1)):this.currentLine==l&&(this.currentLine=l+1),this.lines[l]=e.tokens}}).call(g.prototype),b.BackgroundTokenizer=g}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function($,b,K){"use strict";var B=$("./lib/lang"),A=$("./lib/oop"),g=$("./range").Range,l=function(r,t,e){this.setRegexp(r),this.clazz=t,this.type=e||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(r){this.regExp+""!=r+""&&(this.regExp=r,this.cache=[])},this.update=function(r,t,e,n){if(this.regExp)for(var i=n.firstRow,s=n.lastRow,o=i;o<=s;o++){var u=this.cache[o];u==null&&(u=B.getMatchOffsets(e.getLine(o),this.regExp),u.length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map(function(E){return new g(o,E.offset,o,E.offset+E.length)}),this.cache[o]=u.length?u:"");for(var f=u.length;f--;)t.drawSingleLineMarker(r,u[f].toScreenRange(e),this.clazz,n)}}}).call(l.prototype),b.SearchHighlight=l}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function($,b,K){"use strict";var B=$("../range").Range;function A(g,l){this.foldData=g,Array.isArray(l)?this.folds=l:l=this.folds=[l];var r=l[l.length-1];this.range=new B(l[0].start.row,l[0].start.column,r.end.row,r.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(t){t.setFoldLine(this)},this)}(function(){this.shiftRow=function(g){this.start.row+=g,this.end.row+=g,this.folds.forEach(function(l){l.start.row+=g,l.end.row+=g})},this.addFold=function(g){if(g.sameRow){if(g.start.row<this.startRow||g.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(g),this.folds.sort(function(l,r){return-l.range.compareEnd(r.start.row,r.start.column)}),this.range.compareEnd(g.start.row,g.start.column)>0?(this.end.row=g.end.row,this.end.column=g.end.column):this.range.compareStart(g.end.row,g.end.column)<0&&(this.start.row=g.start.row,this.start.column=g.start.column)}else if(g.start.row==this.end.row)this.folds.push(g),this.end.row=g.end.row,this.end.column=g.end.column;else if(g.end.row==this.start.row)this.folds.unshift(g),this.start.row=g.start.row,this.start.column=g.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");g.foldLine=this},this.containsRow=function(g){return g>=this.start.row&&g<=this.end.row},this.walk=function(g,l,r){var t=0,e=this.folds,n,i,s,o=!0;l==null&&(l=this.end.row,r=this.end.column);for(var u=0;u<e.length;u++){if(n=e[u],i=n.range.compareStart(l,r),i==-1){g(null,l,r,t,o);return}if(s=g(null,n.start.row,n.start.column,t,o),s=!s&&g(n.placeholder,n.start.row,n.start.column,t),s||i===0)return;o=!n.sameRow,t=n.end.column}g(null,l,r,t,o)},this.getNextFoldTo=function(g,l){for(var r,t,e=0;e<this.folds.length;e++){if(r=this.folds[e],t=r.range.compareEnd(g,l),t==-1)return{fold:r,kind:"after"};if(t===0)return{fold:r,kind:"inside"}}return null},this.addRemoveChars=function(g,l,r){var t=this.getNextFoldTo(g,l),e,n;if(t){if(e=t.fold,t.kind=="inside"&&e.start.column!=l&&e.start.row!=g)window.console&&window.console.log(g,l,e);else if(e.start.row==g){n=this.folds;var i=n.indexOf(e);for(i===0&&(this.start.column+=r),i;i<n.length;i++){if(e=n[i],e.start.column+=r,!e.sameRow)return;e.end.column+=r}this.end.column+=r}}},this.split=function(g,l){var r=this.getNextFoldTo(g,l);if(!r||r.kind=="inside")return null;var t=r.fold,e=this.folds,n=this.foldData,i=e.indexOf(t),s=e[i-1];this.end.row=s.end.row,this.end.column=s.end.column,e=e.splice(i,e.length-i);var o=new A(n,e);return n.splice(n.indexOf(this)+1,0,o),o},this.merge=function(g){for(var l=g.folds,r=0;r<l.length;r++)this.addFold(l[r]);var t=this.foldData;t.splice(t.indexOf(g),1)},this.toString=function(){var g=[this.range.toString()+": ["];return this.folds.forEach(function(l){g.push(" "+l.toString())}),g.push("]"),g.join(` `)},this.idxToPosition=function(g){for(var l=0,r=0;r<this.folds.length;r++){var t=this.folds[r];if(g-=t.start.column-l,g<0)return{row:t.start.row,column:t.start.column+g};if(g-=t.placeholder.length,g<0)return t.start;l=t.end.column}return{row:this.end.row,column:this.end.column+g}}}).call(A.prototype),b.FoldLine=A}),ace.define("ace/range_list",["require","exports","module","ace/range"],function($,b,K){"use strict";var B=$("./range").Range,A=B.comparePoints,g=function(){this.ranges=[]};(function(){this.comparePoints=A,this.pointIndex=function(l,r,t){for(var e=this.ranges,n=t||0;n<e.length;n++){var i=e[n],s=A(l,i.end);if(!(s>0)){var o=A(l,i.start);return s===0?r&&o!==0?-n-2:n:o>0||o===0&&!r?n:-n-1}}return-n-1},this.add=function(l){var r=!l.isEmpty(),t=this.pointIndex(l.start,r);t<0&&(t=-t-1);var e=this.pointIndex(l.end,r,t);return e<0?e=-e-1:e++,this.ranges.splice(t,e-t,l)},this.addList=function(l){for(var r=[],t=l.length;t--;)r.push.apply(r,this.add(l[t]));return r},this.substractPoint=function(l){var r=this.pointIndex(l);if(r>=0)return this.ranges.splice(r,1)},this.merge=function(){var l=[],r=this.ranges;r=r.sort(function(s,o){return A(s.start,o.start)});for(var t=r[0],e,n=1;n<r.length;n++){e=t,t=r[n];var i=A(e.end,t.start);i<0||i==0&&!e.isEmpty()&&!t.isEmpty()||(A(e.end,t.end)<0&&(e.end.row=t.end.row,e.end.column=t.end.column),r.splice(n,1),l.push(t),t=e,n--)}return this.ranges=r,l},this.contains=function(l,r){return this.pointIndex({row:l,column:r})>=0},this.containsPoint=function(l){return this.pointIndex(l)>=0},this.rangeAtPoint=function(l){var r=this.pointIndex(l);if(r>=0)return this.ranges[r]},this.clipRows=function(l,r){var t=this.ranges;if(t[0].start.row>r||t[t.length-1].start.row<l)return[];var e=this.pointIndex({row:l,column:0});e<0&&(e=-e-1);var n=this.pointIndex({row:r,column:0},e);n<0&&(n=-n-1);for(var i=[],s=e;s<n;s++)i.push(t[s]);return i},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(l){this.session&&this.detach(),this.session=l,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(l){if(l.action=="insert")var r=l.start,t=l.end;else var t=l.start,r=l.end;for(var e=r.row,n=t.row,i=n-e,s=-r.column+t.column,o=this.ranges,u=0,f=o.length;u<f;u++){var E=o[u];if(!(E.end.row<e)){if(E.start.row>e)break;if(E.start.row==e&&E.start.column>=r.column&&(E.start.column==r.column&&this.$insertRight||(E.start.column+=s,E.start.row+=i)),E.end.row==e&&E.end.column>=r.column){if(E.end.column==r.column&&this.$insertRight)continue;E.end.column==r.column&&s>0&&u<f-1&&E.end.column>E.start.column&&E.end.column==o[u+1].start.column&&(E.end.column-=s),E.end.column+=s,E.end.row+=i}}}if(i!=0&&u<f)for(;u<f;u++){var E=o[u];E.start.row+=i,E.end.row+=i}}}).call(g.prototype),b.RangeList=g}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function($,b,K){"use strict";var B=$("../range").Range,A=$("../range_list").RangeList,g=$("../lib/oop"),l=b.Fold=function(i,s){this.foldLine=null,this.placeholder=s,this.range=i,this.start=i.start,this.end=i.end,this.sameRow=i.start.row==i.end.row,this.subFolds=this.ranges=[]};g.inherits(l,A),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(i){this.foldLine=i,this.subFolds.forEach(function(s){s.setFoldLine(i)})},this.clone=function(){var i=this.range.clone(),s=new l(i,this.placeholder);return this.subFolds.forEach(function(o){s.subFolds.push(o.clone())}),s.collapseChildren=this.collapseChildren,s},this.addSubFold=function(i){if(!this.range.isEqual(i)){if(!this.range.containsRange(i))throw new Error("A fold can't intersect already existing fold"+i.range+this.range);t(i,this.start);for(var f=i.start.row,E=i.start.column,s=0,o=-1;s<this.subFolds.length&&(o=this.subFolds[s].range.compare(f,E),o==1);s++);var u=this.subFolds[s];if(o==0)return u.addSubFold(i);for(var f=i.range.end.row,E=i.range.end.column,F=s,o=-1;F<this.subFolds.length&&(o=this.subFolds[F].range.compare(f,E),o==1);F++);var c=this.subFolds[F];if(o==0)throw new Error("A fold can't intersect already existing fold"+i.range+this.range);var m=this.subFolds.splice(s,F-s,i);return i.setFoldLine(this.foldLine),i}},this.restoreRange=function(i){return n(i,this.start)}}.call(l.prototype);function r(i,s){i.row-=s.row,i.row==0&&(i.column-=s.column)}function t(i,s){r(i.start,s),r(i.end,s)}function e(i,s){i.row==0&&(i.column+=s.column),i.row+=s.row}function n(i,s){e(i.start,s),e(i.end,s)}}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function($,b,K){"use strict";var B=$("../range").Range,A=$("./fold_line").FoldLine,g=$("./fold").Fold,l=$("../token_iterator").TokenIterator;function r(){this.getFoldAt=function(t,e,n){var i=this.getFoldLine(t);if(!i)return null;for(var s=i.folds,o=0;o<s.length;o++){var u=s[o];if(u.range.contains(t,e)){if(n==1&&u.range.isEnd(t,e))continue;if(n==-1&&u.range.isStart(t,e))continue;return u}}},this.getFoldsInRange=function(t){var e=t.start,n=t.end,i=this.$foldData,s=[];e.column+=1,n.column-=1;for(var o=0;o<i.length;o++){var u=i[o].range.compareRange(t);if(u!=2){if(u==-2)break;for(var f=i[o].folds,E=0;E<f.length;E++){var F=f[E];if(u=F.range.compareRange(t),u==-2)break;if(u==2)continue;if(u==42)break;s.push(F)}}}return e.column-=1,n.column+=1,s},this.getFoldsInRangeList=function(t){if(Array.isArray(t)){var e=[];t.forEach(function(n){e=e.concat(this.getFoldsInRange(n))},this)}else var e=this.getFoldsInRange(t);return e},this.getAllFolds=function(){for(var t=[],e=this.$foldData,n=0;n<e.length;n++)for(var i=0;i<e[n].folds.length;i++)t.push(e[n].folds[i]);return t},this.getFoldStringAt=function(t,e,n,i){if(i=i||this.getFoldLine(t),!i)return null;for(var s={end:{column:0}},o,u,f=0;f<i.folds.length;f++){u=i.folds[f];var E=u.range.compareEnd(t,e);if(E==-1){o=this.getLine(u.start.row).substring(s.end.column,u.start.column);break}else if(E===0)return null;s=u}return o||(o=this.getLine(u.start.row).substring(s.end.column)),n==-1?o.substring(0,e-s.end.column):n==1?o.substring(e-s.end.column):o},this.getFoldLine=function(t,e){var n=this.$foldData,i=0;for(e&&(i=n.indexOf(e)),i==-1&&(i=0),i;i<n.length;i++){var s=n[i];if(s.start.row<=t&&s.end.row>=t)return s;if(s.end.row>t)return null}return null},this.getNextFoldLine=function(t,e){var n=this.$foldData,i=0;for(e&&(i=n.indexOf(e)),i==-1&&(i=0),i;i<n.length;i++){var s=n[i];if(s.end.row>=t)return s}return null},this.getFoldedRowCount=function(t,e){for(var n=this.$foldData,i=e-t+1,s=0;s<n.length;s++){var o=n[s],u=o.end.row,f=o.start.row;if(u>=e){f<e&&(f>=t?i-=e-f:i=0);break}else u>=t&&(f>=t?i-=u-f:i-=u-t+1)}return i},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(e,n){return e.start.row-n.start.row}),t},this.addFold=function(t,e){var n=this.$foldData,i=!1,s;t instanceof g?s=t:(s=new g(e,t),s.collapseChildren=e.collapseChildren),this.$clipRangeToDocument(s.range);var o=s.start.row,u=s.start.column,f=s.end.row,E=s.end.column;if(!(o<f||o==f&&u<=E-2))throw new Error("The range has to be at least 2 characters width");var F=this.getFoldAt(o,u,1),c=this.getFoldAt(f,E,-1);if(F&&c==F)return F.addSubFold(s);F&&!F.range.isStart(o,u)&&this.removeFold(F),c&&!c.range.isEnd(f,E)&&this.removeFold(c);var m=this.getFoldsInRange(s.range);m.length>0&&(this.removeFolds(m),m.forEach(function(C){s.addSubFold(C)}));for(var a=0;a<n.length;a++){var d=n[a];if(f==d.start.row){d.addFold(s),i=!0;break}else if(o==d.end.row){if(d.addFold(s),i=!0,!s.sameRow){var p=n[a+1];if(p&&p.start.row==f){d.merge(p);break}}break}else if(f<=d.start.row)break}return i||(d=this.$addFoldLine(new A(this.$foldData,s))),this.$useWrapMode?this.$updateWrapData(d.start.row,d.start.row):this.$updateRowLengthCache(d.start.row,d.start.row),this.$modified=!0,this._signal("changeFold",{data:s,action:"add"}),s},this.addFolds=function(t){t.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(t){var e=t.foldLine,n=e.start.row,i=e.end.row,s=this.$foldData,o=e.folds;if(o.length==1)s.splice(s.indexOf(e),1);else if(e.range.isEnd(t.end.row,t.end.column))o.pop(),e.end.row=o[o.length-1].end.row,e.end.column=o[o.length-1].end.column;else if(e.range.isStart(t.start.row,t.start.column))o.shift(),e.start.row=o[0].start.row,e.start.column=o[0].start.column;else if(t.sameRow)o.splice(o.indexOf(t),1);else{var u=e.split(t.start.row,t.start.column);o=u.folds,o.shift(),u.start.row=o[0].start.row,u.start.column=o[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,i):this.$updateRowLengthCache(n,i)),this.$modified=!0,this._signal("changeFold",{data:t,action:"remove"})},this.removeFolds=function(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n]);e.forEach(function(i){this.removeFold(i)},this),this.$modified=!0},this.expandFold=function(t){this.removeFold(t),t.subFolds.forEach(function(e){t.restoreRange(e),this.addFold(e)},this),t.collapseChildren>0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(t,e){var n,i;if(t==null?(n=new B(0,0,this.getLength(),0),e=!0):typeof t=="number"?n=new B(t,0,t,this.getLine(t).length):"row"in t?n=B.fromPoints(t,t):n=t,i=this.getFoldsInRangeList(n),e)this.removeFolds(i);else for(var s=i;s.length;)this.expandFolds(s),s=this.getFoldsInRangeList(n);if(i.length)return i},this.isRowFolded=function(t,e){return!!this.getFoldLine(t,e)},this.getRowFoldEnd=function(t,e){var n=this.getFoldLine(t,e);return n?n.end.row:t},this.getRowFoldStart=function(t,e){var n=this.getFoldLine(t,e);return n?n.start.row:t},this.getFoldDisplayLine=function(t,e,n,i,s){i==null&&(i=t.start.row),s==null&&(s=0),e==null&&(e=t.end.row),n==null&&(n=this.getLine(e).length);var o=this.doc,u="";return t.walk(function(f,E,F,c){if(!(E<i)){if(E==i){if(F<s)return;c=Math.max(s,c)}f!=null?u+=f:u+=o.getLine(E).substring(c,F)}},e,n),u},this.getDisplayLine=function(t,e,n,i){var s=this.getFoldLine(t);if(s)return this.getFoldDisplayLine(s,t,e,n,i);var o;return o=this.doc.getLine(t),o.substring(i||0,e||o.length)},this.$cloneFoldData=function(){var t=[];return t=this.$foldData.map(function(e){var n=e.folds.map(function(i){return i.clone()});return new A(t,n)}),t},this.toggleFold=function(t){var e=this.selection,n=e.getRange(),i,s;if(n.isEmpty()){var o=n.start;if(i=this.getFoldAt(o.row,o.column),i){this.expandFold(i);return}else(s=this.findMatchingBracket(o))?n.comparePoint(s)==1?n.end=s:(n.start=s,n.start.column++,n.end.column--):(s=this.findMatchingBracket({row:o.row,column:o.column+1}))?(n.comparePoint(s)==1?n.end=s:n.start=s,n.start.column++):n=this.getCommentFoldRange(o.row,o.column)||n}else{var u=this.getFoldsInRange(n);if(t&&u.length){this.expandFolds(u);return}else u.length==1&&(i=u[0])}if(i||(i=this.getFoldAt(n.start.row,n.start.column)),i&&i.range.toString()==n.toString()){this.expandFold(i);return}var f="...";if(!n.isMultiLine()){if(f=this.getTextRange(n),f.length<4)return;f=f.trim().substring(0,2)+".."}this.addFold(f,n)},this.getCommentFoldRange=function(t,e,n){var i=new l(this,t,e),s=i.getCurrentToken(),o=s.type;if(s&&/^comment|string/.test(o)){o=o.match(/comment|string/)[0],o=="comment"&&(o+="|doc-start");var u=new RegExp(o),f=new B;if(n!=1){do s=i.stepBackward();while(s&&u.test(s.type));i.stepForward()}if(f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new l(this,t,e),n!=-1){var E=-1;do if(s=i.stepForward(),E==-1){var F=this.getState(i.$row);u.test(F)||(E=i.$row)}else if(i.$row>E)break;while(s&&u.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+s.value.length-2,f}},this.foldAll=function(t,e,n){n==null&&(n=1e5);var i=this.foldWidgets;if(i){e=e||this.getLength(),t=t||0;for(var s=t;s<e;s++)if(i[s]==null&&(i[s]=this.getFoldWidget(s)),i[s]=="start"){var o=this.getFoldWidgetRange(s);if(o&&o.isMultiLine()&&o.end.row<=e&&o.start.row>=t){s=o.end.row;try{var u=this.addFold("...",o);u&&(u.collapseChildren=n)}catch{}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(t){if(!this.$foldStyles[t])throw new Error("invalid fold style: "+t+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=t){this.$foldStyle=t,t=="manual"&&this.unfold();var e=this.$foldMode;this.$setFolding(null),this.$setFolding(e)}},this.$setFolding=function(t){if(this.$foldMode!=t){if(this.$foldMode=t,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!t||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=t.getFoldWidget.bind(t,this,this.$foldStyle),this.getFoldWidgetRange=t.getFoldWidgetRange.bind(t,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(t,e){var n=this.foldWidgets;if(!n||e&&n[t])return{};for(var i=t-1,s;i>=0;){var o=n[i];if(o==null&&(o=n[i]=this.getFoldWidget(i)),o=="start"){var u=this.getFoldWidgetRange(i);if(s||(s=u),u&&u.end.row>=t)break}i--}return{range:i!==-1&&u,firstRange:s}},this.onFoldWidgetClick=function(t,e){e=e.domEvent;var n={children:e.shiftKey,all:e.ctrlKey||e.metaKey,siblings:e.altKey},i=this.$toggleFoldWidget(t,n);if(!i){var s=e.target||e.srcElement;s&&/ace_fold-widget/.test(s.className)&&(s.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,e){if(this.getFoldWidget){var n=this.getFoldWidget(t),i=this.getLine(t),s=n==="end"?-1:1,o=this.getFoldAt(t,s===-1?0:i.length,s);if(o)return e.children||e.all?this.removeFold(o):this.expandFold(o),o;var u=this.getFoldWidgetRange(t,!0);if(u&&!u.isMultiLine()&&(o=this.getFoldAt(u.start.row,u.start.column,1),o&&u.isEqual(o.range)))return this.removeFold(o),o;if(e.siblings){var f=this.getParentFoldRangeData(t);if(f.range)var E=f.range.start.row+1,F=f.range.end.row;this.foldAll(E,F,e.all?1e4:0)}else e.children?(F=u?u.end.row:this.getLength(),this.foldAll(t+1,F,e.all?1e4:0)):u&&(e.all&&(u.collapseChildren=1e4),this.addFold("...",u));return u}},this.toggleFoldWidget=function(t){var e=this.selection.getCursor().row;e=this.getRowFoldStart(e);var n=this.$toggleFoldWidget(e,{});if(!n){var i=this.getParentFoldRangeData(e,!0);if(n=i.range||i.firstRange,n){e=n.start.row;var s=this.getFoldAt(e,this.getLine(e).length,1);s?this.removeFold(s):this.addFold("...",n)}}},this.updateFoldWidgets=function(t){var e=t.start.row,n=t.end.row-e;if(n===0)this.foldWidgets[e]=null;else if(t.action=="remove")this.foldWidgets.splice(e,n+1,null);else{var i=Array(n+1);i.unshift(e,1),this.foldWidgets.splice.apply(this.foldWidgets,i)}},this.tokenizerUpdateFoldWidgets=function(t){var e=t.data;e.first!=e.last&&this.foldWidgets.length>e.first&&this.foldWidgets.splice(e.first,this.foldWidgets.length)}}b.Folding=r}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function($,b,K){"use strict";var B=$("../token_iterator").TokenIterator,A=$("../range").Range;function g(){this.findMatchingBracket=function(l,r){if(l.column==0)return null;var t=r||this.getLine(l.row).charAt(l.column-1);if(t=="")return null;var e=t.match(/([\(\[\{])|([\)\]\}])/);return e?e[1]?this.$findClosingBracket(e[1],l):this.$findOpeningBracket(e[2],l):null},this.getBracketRange=function(l){var r=this.getLine(l.row),t=!0,e,n=r.charAt(l.column-1),i=n&&n.match(/([\(\[\{])|([\)\]\}])/);if(i||(n=r.charAt(l.column),l={row:l.row,column:l.column+1},i=n&&n.match(/([\(\[\{])|([\)\]\}])/),t=!1),!i)return null;if(i[1]){var s=this.$findClosingBracket(i[1],l);if(!s)return null;e=A.fromPoints(l,s),t||(e.end.column++,e.start.column--),e.cursor=e.end}else{var s=this.$findOpeningBracket(i[2],l);if(!s)return null;e=A.fromPoints(s,l),t||(e.start.column++,e.end.column--),e.cursor=e.start}return e},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(l,r,t){var e=this.$brackets[l],n=1,i=new B(this,r.row,r.column),s=i.getCurrentToken();if(s||(s=i.stepForward()),!!s){t||(t=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var o=r.column-i.getCurrentTokenColumn()-2,u=s.value;;){for(;o>=0;){var f=u.charAt(o);if(f==e){if(n-=1,n==0)return{row:i.getCurrentTokenRow(),column:o+i.getCurrentTokenColumn()}}else f==l&&(n+=1);o-=1}do s=i.stepBackward();while(s&&!t.test(s.type));if(s==null)break;u=s.value,o=u.length-1}return null}},this.$findClosingBracket=function(l,r,t){var e=this.$brackets[l],n=1,i=new B(this,r.row,r.column),s=i.getCurrentToken();if(s||(s=i.stepForward()),!!s){t||(t=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var o=r.column-i.getCurrentTokenColumn();;){for(var u=s.value,f=u.length;o<f;){var E=u.charAt(o);if(E==e){if(n-=1,n==0)return{row:i.getCurrentTokenRow(),column:o+i.getCurrentTokenColumn()}}else E==l&&(n+=1);o+=1}do s=i.stepForward();while(s&&!t.test(s.type));if(s==null)break;o=0}return null}}}b.BracketMatch=g}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","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($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/lang"),g=$("./bidihandler").BidiHandler,l=$("./config"),r=$("./lib/event_emitter").EventEmitter,t=$("./selection").Selection,e=$("./mode/text").Mode,n=$("./range").Range,i=$("./document").Document,s=$("./background_tokenizer").BackgroundTokenizer,o=$("./search_highlight").SearchHighlight,u=function(f,E){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++u.$uid,this.$foldData.toString=function(){return this.join(` `)},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),(typeof f!="object"||!f.getLine)&&(f=new i(f)),this.$bidiHandler=new g(this),this.setDocument(f),this.selection=new t(this),l.resetOptions(this),this.setMode(E),l._signal("session",this)};u.$uid=0,function(){B.implement(this,r),this.setDocument=function(h){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=h,h.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(h){if(!h){this.$docRowCache=[],this.$screenRowCache=[];return}var v=this.$docRowCache.length,w=this.$getRowCacheIndex(this.$docRowCache,h)+1;v>w&&(this.$docRowCache.splice(w,v),this.$screenRowCache.splice(w,v))},this.$getRowCacheIndex=function(h,v){for(var w=0,y=h.length-1;w<=y;){var D=w+y>>1,S=h[D];if(v>S)w=D+1;else if(v<S)y=D-1;else return D}return w-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(h){var v=h.data;this.$resetRowCache(v.start.row)},this.onChange=function(h){this.$modified=!0,this.$bidiHandler.onChange(h),this.$resetRowCache(h.start.row);var v=this.$updateInternalDataOnChange(h);!this.$fromUndo&&this.$undoManager&&!h.ignore&&(this.$deltasDoc.push(h),v&&v.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:v}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(h),this._signal("change",h)},this.setValue=function(h){this.doc.setValue(h),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(h){return this.bgTokenizer.getState(h)},this.getTokens=function(h){return this.bgTokenizer.getTokens(h)},this.getTokenAt=function(h,v){var w=this.bgTokenizer.getTokens(h),y,D=0;if(v==null){var S=w.length-1;D=this.getLine(h).length}else for(var S=0;S<w.length&&(D+=w[S].value.length,!(D>=v));S++);return y=w[S],y?(y.index=S,y.start=D-y.value.length,y):null},this.setUndoManager=function(h){if(this.$undoManager=h,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),h){var v=this;this.$syncInformUndoManager=function(){v.$informUndoManager.cancel(),v.$deltasFold.length&&(v.$deltas.push({group:"fold",deltas:v.$deltasFold}),v.$deltasFold=[]),v.$deltasDoc.length&&(v.$deltas.push({group:"doc",deltas:v.$deltasDoc}),v.$deltasDoc=[]),v.$deltas.length>0&&h.execute({action:"aceupdate",args:[v.$deltas,v],merge:v.mergeUndoDeltas}),v.mergeUndoDeltas=!1,v.$deltas=[]},this.$informUndoManager=A.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?A.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(h){this.setOption("useSoftTabs",h)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(h){this.setOption("tabSize",h)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(h){return this.$useSoftTabs&&h.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(h){this.setOption("navigateWithinSoftTabs",h)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(h){this.setOption("overwrite",h)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(h,v){this.$decorations[h]||(this.$decorations[h]=""),this.$decorations[h]+=" "+v,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(h,v){this.$decorations[h]=(this.$decorations[h]||"").replace(" "+v,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(h){this.$breakpoints=[];for(var v=0;v<h.length;v++)this.$breakpoints[h[v]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(h,v){v===void 0&&(v="ace_breakpoint"),v?this.$breakpoints[h]=v:delete this.$breakpoints[h],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(h){delete this.$breakpoints[h],this._signal("changeBreakpoint",{})},this.addMarker=function(h,v,w,y){var D=this.$markerId++,S={range:h,type:w||"line",renderer:typeof w=="function"?w:null,clazz:v,inFront:!!y,id:D};return y?(this.$frontMarkers[D]=S,this._signal("changeFrontMarker")):(this.$backMarkers[D]=S,this._signal("changeBackMarker")),D},this.addDynamicMarker=function(h,v){if(h.update){var w=this.$markerId++;return h.id=w,h.inFront=!!v,v?(this.$frontMarkers[w]=h,this._signal("changeFrontMarker")):(this.$backMarkers[w]=h,this._signal("changeBackMarker")),h}},this.removeMarker=function(h){var v=this.$frontMarkers[h]||this.$backMarkers[h];if(v){var w=v.inFront?this.$frontMarkers:this.$backMarkers;v&&(delete w[h],this._signal(v.inFront?"changeFrontMarker":"changeBackMarker"))}},this.getMarkers=function(h){return h?this.$frontMarkers:this.$backMarkers},this.highlight=function(h){if(!this.$searchHighlight){var v=new o(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(v)}this.$searchHighlight.setRegexp(h)},this.highlightLines=function(h,v,w,y){typeof v!="number"&&(w=v,v=h),w||(w="ace_step");var D=new n(h,0,v,1/0);return D.id=this.addMarker(D,w,"fullLine",y),D},this.setAnnotations=function(h){this.$annotations=h,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(h){var v=h.match(/^.*?(\r?\n)/m);v?this.$autoNewLine=v[1]:this.$autoNewLine=` `},this.getWordRange=function(h,v){var w=this.getLine(h),y=!1;if(v>0&&(y=!!w.charAt(v-1).match(this.tokenRe)),y||(y=!!w.charAt(v).match(this.tokenRe)),y)var D=this.tokenRe;else if(/^\s+$/.test(w.slice(v-1,v+1)))var D=/\s/;else var D=this.nonTokenRe;var S=v;if(S>0){do S--;while(S>=0&&w.charAt(S).match(D));S++}for(var L=v;L<w.length&&w.charAt(L).match(D);)L++;return new n(h,S,h,L)},this.getAWordRange=function(h,v){for(var w=this.getWordRange(h,v),y=this.getLine(w.end.row);y.charAt(w.end.column).match(/[ \t]/);)w.end.column+=1;return w},this.setNewLineMode=function(h){this.doc.setNewLineMode(h)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(h){this.setOption("useWorker",h)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(h){var v=h.data;this.bgTokenizer.start(v.first),this._signal("tokenizerUpdate",h)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(h,v){if(h&&typeof h=="object"){if(h.getTokenizer)return this.$onChangeMode(h);var w=h,y=w.path}else y=h||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new e),this.$modes[y]&&!w){this.$onChangeMode(this.$modes[y]),v&&v();return}this.$modeId=y,l.loadModule(["mode",y],function(D){if(this.$modeId!==y)return v&&v();this.$modes[y]&&!w?this.$onChangeMode(this.$modes[y]):D&&D.Mode&&(D=new D.Mode(w),w||(this.$modes[y]=D,D.$id=y),this.$onChangeMode(D)),v&&v()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(h,v){if(v||(this.$modeId=h.$id),this.$mode!==h){this.$mode=h,this.$stopWorker(),this.$useWorker&&this.$startWorker();var w=h.getTokenizer();if(w.addEventListener!==void 0){var y=this.onReloadTokenizer.bind(this);w.addEventListener("update",y)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(w);else{this.bgTokenizer=new s(w);var D=this;this.bgTokenizer.addEventListener("update",function(S){D._signal("tokenizerUpdate",S)})}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=h.tokenRe,this.nonTokenRe=h.nonTokenRe,v||(h.attachToSession&&h.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(h.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))}},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(h){l.warn("Could not load worker",h),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(h){this.$scrollTop===h||isNaN(h)||(this.$scrollTop=h,this._signal("changeScrollTop",h))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(h){this.$scrollLeft===h||isNaN(h)||(this.$scrollLeft=h,this._signal("changeScrollLeft",h))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var h=0;return this.lineWidgets.forEach(function(v){v&&v.screenWidth>h&&(h=v.screenWidth)}),this.lineWidgetWidth=h},this.$computeWidth=function(h){if(this.$modified||h){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var v=this.doc.getAllLines(),w=this.$rowLengthCache,y=0,D=0,S=this.$foldData[D],L=S?S.start.row:1/0,_=v.length,O=0;O<_;O++){if(O>L){if(O=S.end.row+1,O>=_)break;S=this.$foldData[D++],L=S?S.start.row:1/0}w[O]==null&&(w[O]=this.$getStringScreenWidth(v[O])[0]),w[O]>y&&(y=w[O])}this.screenWidth=y}},this.getLine=function(h){return this.doc.getLine(h)},this.getLines=function(h,v){return this.doc.getLines(h,v)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(h){return this.doc.getTextRange(h||this.selection.getRange())},this.insert=function(h,v){return this.doc.insert(h,v)},this.remove=function(h){return this.doc.remove(h)},this.removeFullLines=function(h,v){return this.doc.removeFullLines(h,v)},this.undoChanges=function(h,v){if(h.length){this.$fromUndo=!0;for(var w=null,y=h.length-1;y!=-1;y--){var D=h[y];D.group=="doc"?(this.doc.revertDeltas(D.deltas),w=this.$getUndoSelection(D.deltas,!0,w)):D.deltas.forEach(function(S){this.addFolds(S.folds)},this)}return this.$fromUndo=!1,w&&this.$undoSelect&&!v&&this.selection.setSelectionRange(w),w}},this.redoChanges=function(h,v){if(h.length){this.$fromUndo=!0;for(var w=null,y=0;y<h.length;y++){var D=h[y];D.group=="doc"&&(this.doc.applyDeltas(D.deltas),w=this.$getUndoSelection(D.deltas,!1,w))}return this.$fromUndo=!1,w&&this.$undoSelect&&!v&&this.selection.setSelectionRange(w),w}},this.setUndoSelect=function(h){this.$undoSelect=h},this.$getUndoSelection=function(h,v,w){function y(V){return v?V.action!=="insert":V.action==="insert"}var D=h[0],S,L,_=!1;y(D)?(S=n.fromPoints(D.start,D.end),_=!0):(S=n.fromPoints(D.start,D.start),_=!1);for(var O=1;O<h.length;O++)D=h[O],y(D)?(L=D.start,S.compare(L.row,L.column)==-1&&S.setStart(L),L=D.end,S.compare(L.row,L.column)==1&&S.setEnd(L),_=!0):(L=D.start,S.compare(L.row,L.column)==-1&&(S=n.fromPoints(D.start,D.start)),_=!1);if(w!=null){n.comparePoints(w.start,S.start)===0&&(w.start.column+=S.end.column-S.start.column,w.end.column+=S.end.column-S.start.column);var z=w.compareRange(S);z==1?S.setStart(w.start):z==-1&&S.setEnd(w.end)}return S},this.replace=function(h,v){return this.doc.replace(h,v)},this.moveText=function(h,v,w){var y=this.getTextRange(h),D=this.getFoldsInRange(h),S=n.fromPoints(v,v);if(!w){this.remove(h);var L=h.start.row-h.end.row,_=L?-h.end.column:h.start.column-h.end.column;_&&(S.start.row==h.end.row&&S.start.column>h.end.column&&(S.start.column+=_),S.end.row==h.end.row&&S.end.column>h.end.column&&(S.end.column+=_)),L&&S.start.row>=h.end.row&&(S.start.row+=L,S.end.row+=L)}if(S.end=this.insert(S.start,y),D.length){var O=h.start,z=S.start,L=z.row-O.row,_=z.column-O.column;this.addFolds(D.map(function(U){return U=U.clone(),U.start.row==O.row&&(U.start.column+=_),U.end.row==O.row&&(U.end.column+=_),U.start.row+=L,U.end.row+=L,U}))}return S},this.indentRows=function(h,v,w){w=w.replace(/\t/g,this.getTabString());for(var y=h;y<=v;y++)this.doc.insertInLine({row:y,column:0},w)},this.outdentRows=function(h){for(var v=h.collapseRows(),w=new n(0,0,0,0),y=this.getTabSize(),D=v.start.row;D<=v.end.row;++D){var S=this.getLine(D);w.start.row=D,w.end.row=D;for(var L=0;L<y&&S.charAt(L)==" ";++L);L<y&&S.charAt(L)==" "?(w.start.column=L,w.end.column=L+1):(w.start.column=0,w.end.column=L),this.remove(w)}},this.$moveLines=function(h,v,w){if(h=this.getRowFoldStart(h),v=this.getRowFoldEnd(v),w<0){var y=this.getRowFoldStart(h+w);if(y<0)return 0;var D=y-h}else if(w>0){var y=this.getRowFoldEnd(v+w);if(y>this.doc.getLength()-1)return 0;var D=y-v}else{h=this.$clipRowToDocument(h),v=this.$clipRowToDocument(v);var D=v-h+1}var S=new n(h,0,v,Number.MAX_VALUE),L=this.getFoldsInRange(S).map(function(O){return O=O.clone(),O.start.row+=D,O.end.row+=D,O}),_=w==0?this.doc.getLines(h,v):this.doc.removeFullLines(h,v);return this.doc.insertFullLines(h+D,_),L.length&&this.addFolds(L),D},this.moveLinesUp=function(h,v){return this.$moveLines(h,v,-1)},this.moveLinesDown=function(h,v){return this.$moveLines(h,v,1)},this.duplicateLines=function(h,v){return this.$moveLines(h,v,0)},this.$clipRowToDocument=function(h){return Math.max(0,Math.min(h,this.doc.getLength()-1))},this.$clipColumnToRow=function(h,v){return v<0?0:Math.min(this.doc.getLine(h).length,v)},this.$clipPositionToDocument=function(h,v){if(v=Math.max(0,v),h<0)h=0,v=0;else{var w=this.doc.getLength();h>=w?(h=w-1,v=this.doc.getLine(w-1).length):v=Math.min(this.doc.getLine(h).length,v)}return{row:h,column:v}},this.$clipRangeToDocument=function(h){h.start.row<0?(h.start.row=0,h.start.column=0):h.start.column=this.$clipColumnToRow(h.start.row,h.start.column);var v=this.doc.getLength()-1;return h.end.row>v?(h.end.row=v,h.end.column=this.doc.getLine(v).length):h.end.column=this.$clipColumnToRow(h.end.row,h.end.column),h},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(h){if(h!=this.$useWrapMode){if(this.$useWrapMode=h,this.$modified=!0,this.$resetRowCache(0),h){var v=this.getLength();this.$wrapData=Array(v),this.$updateWrapData(0,v-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(h,v){(this.$wrapLimitRange.min!==h||this.$wrapLimitRange.max!==v)&&(this.$wrapLimitRange={min:h,max:v},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(h,v){var w=this.$wrapLimitRange;w.max<0&&(w={min:v,max:v});var y=this.$constrainWrapLimit(h,w.min,w.max);return y!=this.$wrapLimit&&y>1?(this.$wrapLimit=y,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(h,v,w){return v&&(h=Math.max(v,h)),w&&(h=Math.min(w,h)),h},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(h){this.setWrapLimitRange(h,h)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(h){var v=this.$useWrapMode,w=h.action,y=h.start,D=h.end,S=y.row,L=D.row,_=L-S,O=null;if(this.$updating=!0,_!=0)if(w==="remove"){this[v?"$wrapData":"$rowLengthCache"].splice(S,_);var z=this.$foldData;O=this.getFoldsInRange(h),this.removeFolds(O);var V=this.getFoldLine(D.row),M=0;if(V){V.addRemoveChars(D.row,D.column,y.column-D.column),V.shiftRow(-_);var U=this.getFoldLine(S);U&&U!==V&&(U.merge(V),V=U),M=z.indexOf(V)+1}for(M;M<z.length;M++){var V=z[M];V.start.row>=D.row&&V.shiftRow(-_)}L=S}else{var T=Array(_);T.unshift(S,0);var x=v?this.$wrapData:this.$rowLengthCache;x.splice.apply(x,T);var z=this.$foldData,V=this.getFoldLine(S),M=0;if(V){var k=V.range.compareInside(y.row,y.column);k==0?(V=V.split(y.row,y.column),V&&(V.shiftRow(_),V.addRemoveChars(L,0,D.column-y.column))):k==-1&&(V.addRemoveChars(S,0,D.column-y.column),V.shiftRow(_)),M=z.indexOf(V)+1}for(M;M<z.length;M++){var V=z[M];V.start.row>=S&&V.shiftRow(_)}}else{_=Math.abs(h.start.column-h.end.column),w==="remove"&&(O=this.getFoldsInRange(h),this.removeFolds(O),_=-_);var V=this.getFoldLine(S);V&&V.addRemoveChars(S,y.column,_)}return v&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,v?this.$updateWrapData(S,L):this.$updateRowLengthCache(S,L),O},this.$updateRowLengthCache=function(h,v,w){this.$rowLengthCache[h]=null,this.$rowLengthCache[v]=null},this.$updateWrapData=function(h,v){var w=this.doc.getAllLines(),y=this.getTabSize(),D=this.$wrapData,S=this.$wrapLimit,L,_,O=h;for(v=Math.min(v,w.length-1);O<=v;)_=this.getFoldLine(O,_),_?(L=[],_.walk(function(z,V,M,U){var T;if(z!=null){T=this.$getDisplayTokens(z,L.length),T[0]=F;for(var x=1;x<T.length;x++)T[x]=c}else T=this.$getDisplayTokens(w[V].substring(U,M),L.length);L=L.concat(T)}.bind(this),_.end.row,w[_.end.row].length+1),D[_.start.row]=this.$computeWrapSplits(L,S,y),O=_.end.row+1):(L=this.$getDisplayTokens(w[O]),D[O]=this.$computeWrapSplits(L,S,y),O++)};var f=1,E=2,F=3,c=4,m=9,a=10,d=11,p=12;this.$computeWrapSplits=function(h,v,w){if(h.length==0)return[];var y=[],D=h.length,S=0,L=0,_=this.$wrapAsCode,O=this.$indentedSoftWrap,z=v<=Math.max(2*w,8)||O===!1?0:Math.floor(v/2);function V(){var k=0;if(z===0)return k;if(O)for(var P=0;P<h.length;P++){var I=h[P];if(I==a)k+=1;else if(I==d)k+=w;else{if(I==p)continue;break}}return _&&O!==!1&&(k+=w),Math.min(k,z)}function M(k){var P=h.slice(S,k),I=P.length;P.join("").replace(/12/g,function(){I-=1}).replace(/2/g,function(){I-=1}),y.length||(U=V(),y.indent=U),L+=I,y.push(L),S=k}for(var U=0;D-S>v-U;){var T=S+v-U;if(h[T-1]>=a&&h[T]>=a){M(T);continue}if(h[T]==F||h[T]==c){for(T;T!=S-1&&h[T]!=F;T--);if(T>S){M(T);continue}for(T=S+v,T;T<h.length&&h[T]==c;T++);if(T==h.length)break;M(T);continue}for(var x=Math.max(T-(v-(v>>2)),S-1);T>x&&h[T]<F;)T--;if(_){for(;T>x&&h[T]<F;)T--;for(;T>x&&h[T]==m;)T--}else for(;T>x&&h[T]<a;)T--;if(T>x){M(++T);continue}T=S+v,h[T]==E&&T--,M(T-U)}return y},this.$getDisplayTokens=function(h,v){var w=[],y;v=v||0;for(var D=0;D<h.length;D++){var S=h.charCodeAt(D);if(S==9){y=this.getScreenTabSize(w.length+v),w.push(d);for(var L=1;L<y;L++)w.push(p)}else S==32?w.push(a):S>39&&S<48||S>57&&S<64?w.push(m):S>=4352&&C(S)?w.push(f,E):w.push(f)}return w},this.$getStringScreenWidth=function(h,v,w){if(v==0)return[0,0];v==null&&(v=1/0),w=w||0;var y,D;for(D=0;D<h.length&&(y=h.charCodeAt(D),y==9?w+=this.getScreenTabSize(w):y>=4352&&C(y)?w+=2:w+=1,!(w>v));D++);return[w,D]},this.lineWidgets=null,this.getRowLength=function(h){if(this.lineWidgets)var v=this.lineWidgets[h]&&this.lineWidgets[h].rowCount||0;else v=0;return!this.$useWrapMode||!this.$wrapData[h]?1+v:this.$wrapData[h].length+1+v},this.getRowLineCount=function(h){return!this.$useWrapMode||!this.$wrapData[h]?1:this.$wrapData[h].length+1},this.getRowWrapIndent=function(h){if(this.$useWrapMode){var v=this.screenToDocumentPosition(h,Number.MAX_VALUE),w=this.$wrapData[v.row];return w.length&&w[0]<v.column?w.indent:0}else return 0},this.getScreenLastRowColumn=function(h){var v=this.screenToDocumentPosition(h,Number.MAX_VALUE);return this.documentToScreenColumn(v.row,v.column)},this.getDocumentLastRowColumn=function(h,v){var w=this.documentToScreenRow(h,v);return this.getScreenLastRowColumn(w)},this.getDocumentLastRowColumnPosition=function(h,v){var w=this.documentToScreenRow(h,v);return this.screenToDocumentPosition(w,Number.MAX_VALUE/10)},this.getRowSplitData=function(h){if(this.$useWrapMode)return this.$wrapData[h]},this.getScreenTabSize=function(h){return this.$tabSize-h%this.$tabSize},this.screenToDocumentRow=function(h,v){return this.screenToDocumentPosition(h,v).row},this.screenToDocumentColumn=function(h,v){return this.screenToDocumentPosition(h,v).column},this.screenToDocumentPosition=function(h,v,w){if(h<0)return{row:0,column:0};var y,D=0,S=0,L,_=0,O=0,z=this.$screenRowCache,V=this.$getRowCacheIndex(z,h),M=z.length;if(M&&V>=0)var _=z[V],D=this.$docRowCache[V],U=h>z[M-1];else var U=!M;for(var T=this.getLength()-1,x=this.getNextFoldLine(D),k=x?x.start.row:1/0;_<=h&&(O=this.getRowLength(D),!(_+O>h||D>=T));)_+=O,D++,D>k&&(D=x.end.row+1,x=this.getNextFoldLine(D,x),k=x?x.start.row:1/0),U&&(this.$docRowCache.push(D),this.$screenRowCache.push(_));if(x&&x.start.row<=D)y=this.getFoldDisplayLine(x),D=x.start.row;else{if(_+O<=h||D>T)return{row:T,column:this.getLine(T).length};y=this.getLine(D),x=null}var P=0,I=Math.floor(h-_);if(this.$useWrapMode){var N=this.$wrapData[D];N&&(L=N[I],I>0&&N.length&&(P=N.indent,S=N[I-1]||N[N.length-1],y=y.substring(S)))}return w!==void 0&&this.$bidiHandler.isBidiRow(_+I,D,I)&&(v=this.$bidiHandler.offsetToCol(w)),S+=this.$getStringScreenWidth(y,v-P)[1],this.$useWrapMode&&S>=L&&(S=L-1),x?x.idxToPosition(S):{row:D,column:S}},this.documentToScreenPosition=function(h,v){if(typeof v>"u")var w=this.$clipPositionToDocument(h.row,h.column);else w=this.$clipPositionToDocument(h,v);h=w.row,v=w.column;var y=0,D=null,S=null;S=this.getFoldAt(h,v,1),S&&(h=S.start.row,v=S.start.column);var L,_=0,O=this.$docRowCache,z=this.$getRowCacheIndex(O,h),V=O.length;if(V&&z>=0)var _=O[z],y=this.$screenRowCache[z],M=h>O[V-1];else var M=!V;for(var U=this.getNextFoldLine(_),T=U?U.start.row:1/0;_<h;){if(_>=T){if(L=U.end.row+1,L>h)break;U=this.getNextFoldLine(L,U),T=U?U.start.row:1/0}else L=_+1;y+=this.getRowLength(_),_=L,M&&(this.$docRowCache.push(_),this.$screenRowCache.push(y))}var x="";U&&_>=T?(x=this.getFoldDisplayLine(U,h,v),D=U.start.row):(x=this.getLine(h).substring(0,v),D=h);var k=0;if(this.$useWrapMode){var P=this.$wrapData[D];if(P){for(var I=0;x.length>=P[I];)y++,I++;x=x.substring(P[I-1]||0,x.length),k=I>0?P.indent:0}}return{row:y,column:k+this.$getStringScreenWidth(x)[0]}},this.documentToScreenColumn=function(h,v){return this.documentToScreenPosition(h,v).column},this.documentToScreenRow=function(h,v){return this.documentToScreenPosition(h,v).row},this.getScreenLength=function(){var h=0,v=null;if(this.$useWrapMode)for(var D=this.$wrapData.length,S=0,y=0,v=this.$foldData[y++],L=v?v.start.row:1/0;S<D;){var _=this.$wrapData[S];h+=_?_.length+1:1,S++,S>L&&(S=v.end.row+1,v=this.$foldData[y++],L=v?v.start.row:1/0)}else{h=this.getLength();for(var w=this.$foldData,y=0;y<w.length;y++)v=w[y],h-=v.end.row-v.start.row}return this.lineWidgets&&(h+=this.$getWidgetScreenLength()),h},this.$setFontMetrics=function(h){this.$enableVarChar&&(this.$getStringScreenWidth=function(v,w,y){if(w===0)return[0,0];w||(w=1/0),y=y||0;var D,S;for(S=0;S<v.length&&(D=v.charAt(S),D===" "?y+=this.getScreenTabSize(y):y+=h.getCharacterWidth(D),!(y>w));S++);return[y,S]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=C;function C(h){return h<4352?!1:h>=4352&&h<=4447||h>=4515&&h<=4519||h>=4602&&h<=4607||h>=9001&&h<=9002||h>=11904&&h<=11929||h>=11931&&h<=12019||h>=12032&&h<=12245||h>=12272&&h<=12283||h>=12288&&h<=12350||h>=12353&&h<=12438||h>=12441&&h<=12543||h>=12549&&h<=12589||h>=12593&&h<=12686||h>=12688&&h<=12730||h>=12736&&h<=12771||h>=12784&&h<=12830||h>=12832&&h<=12871||h>=12880&&h<=13054||h>=13056&&h<=19903||h>=19968&&h<=42124||h>=42128&&h<=42182||h>=43360&&h<=43388||h>=44032&&h<=55203||h>=55216&&h<=55238||h>=55243&&h<=55291||h>=63744&&h<=64255||h>=65040&&h<=65049||h>=65072&&h<=65106||h>=65108&&h<=65126||h>=65128&&h<=65131||h>=65281&&h<=65376||h>=65504&&h<=65510}}.call(u.prototype),$("./edit_session/folding").Folding.call(u.prototype),$("./edit_session/bracket_match").BracketMatch.call(u.prototype),l.defineOptions(u.prototype,"session",{wrap:{set:function(f){if(!f||f=="off"?f=!1:f=="free"?f=!0:f=="printMargin"?f=-1:typeof f=="string"&&(f=parseInt(f,10)||!1),this.$wrap!=f)if(this.$wrap=f,!f)this.setUseWrapMode(!1);else{var E=typeof f=="number"?f:null;this.setWrapLimitRange(E,E),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(f){f=f=="auto"?this.$mode.type!="text":f!="text",f!=this.$wrapAsCode&&(this.$wrapAsCode=f,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(f){this.$useWorker=f,this.$stopWorker(),f&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(f){isNaN(f)||this.$tabSize===f||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=f,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(f){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(f){this.doc.setNewLineMode(f)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(f){this.setMode(f)},get:function(){return this.$modeId}}}),b.EditSession=u}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function($,b,K){"use strict";var B=$("./lib/lang"),A=$("./lib/oop"),g=$("./range").Range,l=function(){this.$options={}};(function(){this.set=function(t){return A.mixin(this.$options,t),this},this.getOptions=function(){return B.copyObject(this.$options)},this.setOptions=function(t){this.$options=t},this.find=function(t){var e=this.$options,n=this.$matchIterator(t,e);if(!n)return!1;var i=null;return n.forEach(function(s,o,u,f){return i=new g(s,o,u,f),o==f&&e.start&&e.start.start&&e.skipCurrent!=!1&&i.isEqual(e.start)?(i=null,!1):!0}),i},this.findAll=function(t){var e=this.$options;if(!e.needle)return[];this.$assembleRegExp(e);var n=e.range,i=n?t.getLines(n.start.row,n.end.row):t.doc.getAllLines(),s=[],o=e.re;if(e.$isMultiLine){var u=o.length,f=i.length-u,E;e:for(var F=o.offset||0;F<=f;F++){for(var c=0;c<u;c++)if(i[F+c].search(o[c])==-1)continue e;var m=i[F],a=i[F+u-1],d=m.length-m.match(o[0])[0].length,p=a.match(o[u-1])[0].length;E&&E.end.row===F&&E.end.column>d||(s.push(E=new g(F,d,F+u-1,p)),u>2&&(F=F+u-2))}}else for(var C=0;C<i.length;C++)for(var h=B.getMatchOffsets(i[C],o),c=0;c<h.length;c++){var v=h[c];s.push(new g(C,v.offset,C,v.offset+v.length))}if(n){for(var w=n.start.column,y=n.start.column,C=0,c=s.length-1;C<c&&s[C].start.column<w&&s[C].start.row==n.start.row;)C++;for(;C<c&&s[c].end.column>y&&s[c].end.row==n.end.row;)c--;for(s=s.slice(C,c+1),C=0,c=s.length;C<c;C++)s[C].start.row+=n.start.row,s[C].end.row+=n.start.row}return s},this.replace=function(t,e){var n=this.$options,i=this.$assembleRegExp(n);if(n.$isMultiLine)return e;if(i){var s=i.exec(t);if(!s||s[0].length!=t.length)return null;if(e=t.replace(i,e),n.preserveCase){e=e.split("");for(var o=Math.min(t.length,t.length);o--;){var u=t[o];u&&u.toLowerCase()!=u?e[o]=e[o].toUpperCase():e[o]=e[o].toLowerCase()}e=e.join("")}return e}},this.$assembleRegExp=function(t,e){if(t.needle instanceof RegExp)return t.re=t.needle;var n=t.needle;if(!t.needle)return t.re=!1;t.regExp||(n=B.escapeRegExp(n)),t.wholeWord&&(n=r(n,t));var i=t.caseSensitive?"gm":"gmi";if(t.$isMultiLine=!e&&/[\n\r]/.test(n),t.$isMultiLine)return t.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch{s=!1}return t.re=s},this.$assembleMultilineRegExp=function(t,e){for(var n=t.replace(/\r\n|\r|\n/g,`$ ^`).split(` `),i=[],s=0;s<n.length;s++)try{i.push(new RegExp(n[s],e))}catch{return!1}return i},this.$matchIterator=function(t,e){var n=this.$assembleRegExp(e);if(!n)return!1;var i=e.backwards==!0,s=e.skipCurrent!=!1,o=e.range,u=e.start;u||(u=o?o[i?"end":"start"]:t.selection.getRange()),u.start&&(u=u[s!=i?"end":"start"]);var f=o?o.start.row:0,E=o?o.end.row:t.getLength()-1;if(i)var F=function(a){var d=u.row;if(!m(d,u.column,a)){for(d--;d>=f;d--)if(m(d,Number.MAX_VALUE,a))return;if(e.wrap!=!1){for(d=E,f=u.row;d>=f;d--)if(m(d,Number.MAX_VALUE,a))return}}};else var F=function(d){var p=u.row;if(!m(p,u.column,d)){for(p=p+1;p<=E;p++)if(m(p,0,d))return;if(e.wrap!=!1){for(p=f,E=u.row;p<=E;p++)if(m(p,0,d))return}}};if(e.$isMultiLine)var c=n.length,m=function(a,d,p){var C=i?a-c+1:a;if(!(C<0)){var h=t.getLine(C),v=h.search(n[0]);if(!(!i&&v<d||v===-1)){for(var w=1;w<c;w++)if(h=t.getLine(C+w),h.search(n[w])==-1)return;var y=h.match(n[c-1])[0].length;if(!(i&&y>d)&&p(C,v,C+c-1,y))return!0}}};else if(i)var m=function(d,p,C){var h=t.getLine(d),v=[],w,y=0;for(n.lastIndex=0;w=n.exec(h);){var D=w[0].length;if(y=w.index,!D){if(y>=h.length)break;n.lastIndex=y+=1}if(w.index+D>p)break;v.push(w.index,D)}for(var S=v.length-1;S>=0;S-=2){var L=v[S-1],D=v[S];if(C(d,L,d,L+D))return!0}};else var m=function(d,p,C){var h=t.getLine(d),v,w=p;for(n.lastIndex=p;v=n.exec(h);){var y=v[0].length;if(w=v.index,C(d,w,d,w+y))return!0;if(!y&&(n.lastIndex=w+=1,w>=h.length))return!1}};return{forEach:F}}}).call(l.prototype);function r(t,e){function n(i){return/\w/.test(i)||e.regExp?"\\b":""}return n(t[0])+t+n(t[t.length-1])}b.Search=l}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function($,b,K){"use strict";var B=$("../lib/keys"),A=$("../lib/useragent"),g=B.KEY_MODS;function l(t,e){this.platform=e||(A.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(t),this.$singleCommand=!0}function r(t,e){l.call(this,t,e),this.$singleCommand=!1}r.prototype=l.prototype,function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,n){var i=e&&(typeof e=="string"?e:e.name);e=this.commands[i],n||delete this.commands[i];var s=this.commandKeyBinding;for(var o in s){var u=s[o];if(u==e)delete s[o];else if(Array.isArray(u)){var f=u.indexOf(e);f!=-1&&(u.splice(f,1),u.length==1&&(s[o]=u[0]))}}},this.bindKey=function(e,n,i){if(typeof e=="object"&&e&&(i==null&&(i=e.position),e=e[this.platform]),!!e){if(typeof n=="function")return this.addCommand({exec:n,bindKey:e,name:n.name||e});e.split("|").forEach(function(s){var o="";if(s.indexOf(" ")!=-1){var u=s.split(/\s+/);s=u.pop(),u.forEach(function(F){var c=this.parseKeys(F),m=g[c.hashId]+c.key;o+=(o?" ":"")+m,this._addCommandToBinding(o,"chainKeys")},this),o+=" "}var f=this.parseKeys(s),E=g[f.hashId]+f.key;this._addCommandToBinding(o+E,n,i)},this)}};function t(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this._addCommandToBinding=function(e,n,i){var s=this.commandKeyBinding,o;if(!n)delete s[e];else if(!s[e]||this.$singleCommand)s[e]=n;else{Array.isArray(s[e])?(o=s[e].indexOf(n))!=-1&&s[e].splice(o,1):s[e]=[s[e]],typeof i!="number"&&(i=t(n));var u=s[e];for(o=0;o<u.length;o++){var f=u[o],E=t(f);if(E>i)break}u.splice(o,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(n){var i=e[n];if(i){if(typeof i=="string")return this.bindKey(i,n);typeof i=="function"&&(i={exec:i}),typeof i=="object"&&(i.name||(i.name=n),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(n){this.removeCommand(e[n])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(n){this.bindKey(n,e[n])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var n=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(E){return E}),i=n.pop(),s=B[i];if(B.FUNCTION_KEYS[s])i=B.FUNCTION_KEYS[s].toLowerCase();else if(n.length){if(n.length==1&&n[0]=="shift")return{key:i.toUpperCase(),hashId:-1}}else return{key:i,hashId:-1};for(var o=0,u=n.length;u--;){var f=B.KEY_MODS[n[u]];if(f==null)return typeof console<"u"&&console.error("invalid modifier "+n[u]+" in "+e),!1;o|=f}return{key:i,hashId:o}},this.findKeyCommand=function(n,i){var s=g[n]+i;return this.commandKeyBinding[s]},this.handleKeyboard=function(e,n,i,s){if(!(s<0)){var o=g[n]+i,u=this.commandKeyBinding[o];return e.$keyChain&&(e.$keyChain+=" "+o,u=this.commandKeyBinding[e.$keyChain]||u),u&&(u=="chainKeys"||u[u.length-1]=="chainKeys")?(e.$keyChain=e.$keyChain||o,{command:"null"}):(e.$keyChain&&((!n||n==4)&&i.length==1?e.$keyChain=e.$keyChain.slice(0,-o.length-1):(n==-1||s>0)&&(e.$keyChain="")),{command:u})}},this.getStatusText=function(e,n){return n.$keyChain||""}}.call(l.prototype),b.HashHandler=l,b.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("../lib/oop"),A=$("../keyboard/hash_handler").MultiHashHandler,g=$("../lib/event_emitter").EventEmitter,l=function(r,t){A.call(this,t,r),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};B.inherits(l,A),function(){B.implement(this,g),this.exec=function(r,t,e){if(Array.isArray(r)){for(var n=r.length;n--;)if(this.exec(r[n],t,e))return!0;return!1}if(typeof r=="string"&&(r=this.commands[r]),!r||t&&t.$readOnly&&!r.readOnly||r.isAvailable&&!r.isAvailable(t))return!1;var i={editor:t,command:r,args:e};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue!==!1},this.toggleRecording=function(r){if(!this.$inReplay)return r&&r._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(t){this.macro.push([t.command,t.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(r){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(r);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,r):this.exec(t[0],r,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(r){return r.map(function(t){return typeof t[0]!="string"&&(t[0]=t[0].name),t[1]||(t=t[0]),t})}}.call(l.prototype),b.CommandManager=l}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function($,b,K){"use strict";var B=$("../lib/lang"),A=$("../config"),g=$("../range").Range;function l(r,t){return{win:r,mac:t}}b.commands=[{name:"showSettingsMenu",bindKey:l("Ctrl-,","Command-,"),exec:function(r){A.loadModule("ace/ext/settings_menu",function(t){t.init(r),r.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:l("Alt-E","F4"),exec:function(r){A.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(r,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:l("Alt-Shift-E","Shift-F4"),exec:function(r){A.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(r,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:l("Ctrl-A","Command-A"),exec:function(r){r.selectAll()},readOnly:!0},{name:"centerselection",bindKey:l(null,"Ctrl-L"),exec:function(r){r.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:l("Ctrl-L","Command-L"),exec:function(r){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||r.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:l("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(r){r.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:l("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(r){r.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:l("F2","F2"),exec:function(r){r.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:l("Alt-F2","Alt-F2"),exec:function(r){r.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:l(null,"Ctrl-Command-Option-0"),exec:function(r){r.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:l("Alt-0","Command-Option-0"),exec:function(r){r.session.foldAll(),r.session.unfold(r.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:l("Alt-Shift-0","Command-Option-Shift-0"),exec:function(r){r.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:l("Ctrl-K","Command-G"),exec:function(r){r.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:l("Ctrl-Shift-K","Command-Shift-G"),exec:function(r){r.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:l("Alt-K","Ctrl-G"),exec:function(r){r.selection.isEmpty()?r.selection.selectWord():r.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:l("Alt-Shift-K","Ctrl-Shift-G"),exec:function(r){r.selection.isEmpty()?r.selection.selectWord():r.findPrevious()},readOnly:!0},{name:"find",bindKey:l("Ctrl-F","Command-F"),exec:function(r){A.loadModule("ace/ext/searchbox",function(t){t.Search(r)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(r){r.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:l("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(r){r.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:l("Ctrl-Home","Command-Home|Command-Up"),exec:function(r){r.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:l("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(r){r.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:l("Up","Up|Ctrl-P"),exec:function(r,t){r.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:l("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(r){r.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:l("Ctrl-End","Command-End|Command-Down"),exec:function(r){r.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:l("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(r){r.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:l("Down","Down|Ctrl-N"),exec:function(r,t){r.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:l("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(r){r.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:l("Ctrl-Left","Option-Left"),exec:function(r){r.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:l("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(r){r.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:l("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(r){r.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:l("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(r){r.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:l("Left","Left|Ctrl-B"),exec:function(r,t){r.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:l("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(r){r.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:l("Ctrl-Right","Option-Right"),exec:function(r){r.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:l("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(r){r.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:l("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(r){r.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:l("Shift-Right","Shift-Right"),exec:function(r){r.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:l("Right","Right|Ctrl-F"),exec:function(r,t){r.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(r){r.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:l(null,"Option-PageDown"),exec:function(r){r.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:l("PageDown","PageDown|Ctrl-V"),exec:function(r){r.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(r){r.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:l(null,"Option-PageUp"),exec:function(r){r.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(r){r.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:l("Ctrl-Up",null),exec:function(r){r.renderer.scrollBy(0,-2*r.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:l("Ctrl-Down",null),exec:function(r){r.renderer.scrollBy(0,2*r.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(r){r.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(r){r.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:l("Ctrl-Alt-E","Command-Option-E"),exec:function(r){r.commands.toggleRecording(r)},readOnly:!0},{name:"replaymacro",bindKey:l("Ctrl-Shift-E","Command-Shift-E"),exec:function(r){r.commands.replay(r)},readOnly:!0},{name:"jumptomatching",bindKey:l("Ctrl-P","Ctrl-P"),exec:function(r){r.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:l("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(r){r.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:l("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(r){r.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:l(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(r){},readOnly:!0},{name:"cut",exec:function(r){var t=r.getSelectionRange();r._emit("cut",t),r.selection.isEmpty()||(r.session.remove(t),r.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(r,t){r.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:l("Ctrl-D","Command-D"),exec:function(r){r.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:l("Ctrl-Shift-D","Command-Shift-D"),exec:function(r){r.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:l("Ctrl-Alt-S","Command-Alt-S"),exec:function(r){r.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:l("Ctrl-/","Command-/"),exec:function(r){r.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:l("Ctrl-Shift-/","Command-Shift-/"),exec:function(r){r.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:l("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(r){r.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:l("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(r){r.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:l("Ctrl-H","Command-Option-F"),exec:function(r){A.loadModule("ace/ext/searchbox",function(t){t.Search(r,!0)})}},{name:"undo",bindKey:l("Ctrl-Z","Command-Z"),exec:function(r){r.undo()}},{name:"redo",bindKey:l("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(r){r.redo()}},{name:"copylinesup",bindKey:l("Alt-Shift-Up","Command-Option-Up"),exec:function(r){r.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:l("Alt-Up","Option-Up"),exec:function(r){r.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:l("Alt-Shift-Down","Command-Option-Down"),exec:function(r){r.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:l("Alt-Down","Option-Down"),exec:function(r){r.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:l("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(r){r.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:l("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(r){r.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:l("Shift-Delete",null),exec:function(r){if(r.selection.isEmpty())r.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:l("Alt-Backspace","Command-Backspace"),exec:function(r){r.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:l("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(r){r.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:l("Ctrl-Shift-Backspace",null),exec:function(r){var t=r.selection.getRange();t.start.column=0,r.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:l("Ctrl-Shift-Delete",null),exec:function(r){var t=r.selection.getRange();t.end.column=Number.MAX_VALUE,r.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:l("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(r){r.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:l("Ctrl-Delete","Alt-Delete"),exec:function(r){r.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:l("Shift-Tab","Shift-Tab"),exec:function(r){r.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:l("Tab","Tab"),exec:function(r){r.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:l("Ctrl-[","Ctrl-["),exec:function(r){r.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:l("Ctrl-]","Ctrl-]"),exec:function(r){r.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(r,t){r.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(r,t){r.insert(B.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:l(null,"Ctrl-O"),exec:function(r){r.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:l("Alt-Shift-X","Ctrl-T"),exec:function(r){r.transposeLetters()},multiSelectAction:function(r){r.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:l("Ctrl-U","Ctrl-U"),exec:function(r){r.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:l("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(r){r.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:l("Ctrl-Shift-L","Command-Shift-L"),exec:function(r){var t=r.selection.getRange();t.start.column=t.end.column=0,t.end.row++,r.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:l(null,null),exec:function(r){for(var t=r.selection.isBackwards(),e=t?r.selection.getSelectionLead():r.selection.getSelectionAnchor(),n=t?r.selection.getSelectionAnchor():r.selection.getSelectionLead(),i=r.session.doc.getLine(e.row).length,s=r.session.doc.getTextRange(r.selection.getRange()),o=s.replace(/\n\s*/," ").length,u=r.session.doc.getLine(e.row),f=e.row+1;f<=n.row+1;f++){var E=B.stringTrimLeft(B.stringTrimRight(r.session.doc.getLine(f)));E.length!==0&&(E=" "+E),u+=E}n.row+1<r.session.doc.getLength()-1&&(u+=r.session.doc.getNewLineCharacter()),r.clearSelection(),r.session.doc.replace(new g(e.row,0,n.row+2,0),u),o>0?(r.selection.moveCursorTo(e.row,e.column),r.selection.selectTo(e.row,e.column+o)):(i=r.session.doc.getLine(e.row).length>i?i+1:i,r.selection.moveCursorTo(e.row,i))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:l(null,null),exec:function(r){var t=r.session.doc.getLength()-1,e=r.session.doc.getLine(t).length,n=r.selection.rangeList.ranges,i=[];n.length<1&&(n=[r.selection.getRange()]);for(var s=0;s<n.length;s++)s==n.length-1&&(n[s].end.row===t&&n[s].end.column===e||i.push(new g(n[s].end.row,n[s].end.column,t,e))),s===0?n[s].start.row===0&&n[s].start.column===0||i.push(new g(0,0,n[s].start.row,n[s].start.column)):i.push(new g(n[s-1].end.row,n[s-1].end.column,n[s].start.row,n[s].start.column));r.exitMultiSelectMode(),r.clearSelection();for(var s=0;s<i.length;s++)r.selection.addRange(i[s],!1)},readOnly:!0,scrollIntoView:"none"}]}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","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","ace/config","ace/token_iterator"],function($,b,K){"use strict";$("./lib/fixoldbrowsers");var B=$("./lib/oop"),A=$("./lib/dom"),g=$("./lib/lang"),l=$("./lib/useragent"),r=$("./keyboard/textinput").TextInput,t=$("./mouse/mouse_handler").MouseHandler,e=$("./mouse/fold_handler").FoldHandler,n=$("./keyboard/keybinding").KeyBinding,i=$("./edit_session").EditSession,s=$("./search").Search,o=$("./range").Range,u=$("./lib/event_emitter").EventEmitter,f=$("./commands/command_manager").CommandManager,E=$("./commands/default_commands").commands,F=$("./config"),c=$("./token_iterator").TokenIterator,m=function(a,d){var p=a.getContainerElement();this.container=p,this.renderer=a,this.id="editor"+ ++m.$uid,this.commands=new f(l.isMac?"mac":"win",E),typeof document=="object"&&(this.textInput=new r(a.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new t(this),new e(this)),this.keyBinding=new n(this),this.$blockScrolling=0,this.$search=new s().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=g.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(C,h){h._$emitInputEvent.schedule(31)}),this.setSession(d||new i("")),F.resetOptions(this),F._signal("editor",this)};m.$uid=0,function(){B.implement(this,u),this.$initOperationListeners=function(){function a(d){return d[d.length-1]}this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=g.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(a){if(this.curOp){if(!a||this.curOp.command)return;this.prevOp=this.curOp}a||(this.previousCommand=null,a={}),this.$opResetTimer.schedule(),this.curOp={command:a.command||{},args:a.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==void 0&&this.$blockScrolling++},this.endOperation=function(a){if(this.curOp){if(a&&a.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var d=this.curOp.command;d.name&&this.$blockScrolling>0&&this.$blockScrolling--;var p=d&&d.scrollIntoView;if(p){switch(p){case"center-animate":p="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var C=this.selection.getRange(),h=this.renderer.layerConfig;(C.start.row>=h.lastRow||C.end.row<=h.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:break}p=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(a){if(this.$mergeUndoDeltas){var d=this.prevOp,p=this.$mergeableCommands,C=d.command&&a.command.name==d.command.name;if(a.command.name=="insertstring"){var h=a.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),C=C&&this.mergeNextCommand&&(!/\s/.test(h)||/\s/.test(d.args)),this.mergeNextCommand=!0}else C=C&&p.indexOf(a.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(C=!1),C?this.session.mergeUndoDeltas=!0:p.indexOf(a.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(a,d){if(a&&typeof a=="string"){this.$keybindingId=a;var p=this;F.loadModule(["keybinding",a],function(C){p.$keybindingId==a&&p.keyBinding.setKeyboardHandler(C&&C.handler),d&&d()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(a),d&&d()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){this.curOp&&this.endOperation(),this.curOp={};var d=this.session;if(d){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var p=this.session.getSelection();p.off("changeCursor",this.$onCursorChange),p.off("changeSelection",this.$onSelectionChange)}this.session=a,a?(this.$onDocumentChange=this.onDocumentChange.bind(this),a.on("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),a.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=a.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("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.selection=null,this.renderer.setSession(a)),this._signal("changeSession",{session:a,oldSession:d}),this.curOp=null,d&&d._signal("changeEditor",{oldEditor:this}),a&&a._signal("changeEditor",{editor:this}),a&&a.bgTokenizer&&a.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(a,d){return this.session.doc.setValue(a),d?d==1?this.navigateFileEnd():d==-1&&this.navigateFileStart():this.selectAll(),a},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(a){this.renderer.onResize(a)},this.setTheme=function(a,d){this.renderer.setTheme(a,d)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.getFontSize=function(){return this.getOption("fontSize")||A.computedStyle(this.container,"fontSize")},this.setFontSize=function(a){this.setOption("fontSize",a)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var d=a.session;if(!(!d||!d.bgTokenizer)){var p=d.findMatchingBracket(a.getCursorPosition());if(p)var C=new o(p.row,p.column,p.row,p.column+1);else if(d.$mode.getMatching)var C=d.$mode.getMatching(a.session);C&&(d.$bracketHighlight=d.addMarker(C,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var a=this;this.$highlightTagPending=!0,setTimeout(function(){a.$highlightTagPending=!1;var d=a.session;if(!(!d||!d.bgTokenizer)){var p=a.getCursorPosition(),C=new c(a.session,p.row,p.column),h=C.getCurrentToken();if(!h||!/\b(?:tag-open|tag-name)/.test(h.type)){d.removeMarker(d.$tagHighlight),d.$tagHighlight=null;return}if(!(h.type.indexOf("tag-open")!=-1&&(h=C.stepForward(),!h))){var v=h.value,w=0,y=C.stepBackward();if(y.value=="<")do y=h,h=C.stepForward(),h&&h.value===v&&h.type.indexOf("tag-name")!==-1&&(y.value==="<"?w++:y.value==="</"&&w--);while(h&&w>=0);else{do h=y,y=C.stepBackward(),h&&h.value===v&&h.type.indexOf("tag-name")!==-1&&(y.value==="<"?w++:y.value==="</"&&w--);while(y&&w<=0);C.stepForward()}if(!h){d.removeMarker(d.$tagHighlight),d.$tagHighlight=null;return}var D=C.getCurrentTokenRow(),S=C.getCurrentTokenColumn(),L=new o(D,S,D,S+h.value.length),_=d.$backMarkers[d.$tagHighlight];d.$tagHighlight&&_!=null&&L.compareRange(_.range)!==0&&(d.removeMarker(d.$tagHighlight),d.$tagHighlight=null),L&&!d.$tagHighlight&&(d.$tagHighlight=d.addMarker(L,"ace_bracket","text"))}}},50)}},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(a){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",a))},this.onBlur=function(a){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",a))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(a){var d=this.session.$useWrapMode,p=a.start.row==a.end.row?a.end.row:1/0;this.renderer.updateLines(a.start.row,p,d),this._signal("change",a),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(a){var d=a.data;this.renderer.updateLines(d.first,d.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(F.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var a=this.getSession(),d;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(d=this.getCursorPosition()),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(d=!1)),a.$highlightLineMarker&&!d)a.removeMarker(a.$highlightLineMarker.id),a.$highlightLineMarker=null;else if(!a.$highlightLineMarker&&d){var p=new o(d.row,d.column,d.row,1/0);p.id=a.addMarker(p,"ace_active-line","screenLine"),a.$highlightLineMarker=p}else d&&(a.$highlightLineMarker.start.row=d.row,a.$highlightLineMarker.end.row=d.row,a.$highlightLineMarker.start.column=d.column,a._signal("changeBackMarker"))},this.onSelectionChange=function(a){var d=this.session;if(d.$selectionMarker&&d.removeMarker(d.$selectionMarker),d.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var p=this.selection.getRange(),C=this.getSelectionStyle();d.$selectionMarker=d.addMarker(p,"ace_selection",C)}var h=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(h),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var a=this.session,d=this.getSelectionRange();if(!(d.isEmpty()||d.isMultiLine())){var p=d.start.column-1,C=d.end.column+1,h=a.getLine(d.start.row),v=h.length,w=h.substring(Math.max(p,0),Math.min(C,v));if(!(p>=0&&/^[\w\d]/.test(w)||C<=v&&/[\w\d]$/.test(w))&&(w=h.substring(d.start.column,d.end.column),!!/^[\w\d]+$/.test(w))){var y=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:w});return y}}},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(a){this.renderer.updateText(),this._emit("changeMode",a)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var a=this.getSelectedText();return this._signal("copy",a),a},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(a,d){var p={text:a,event:d};this.commands.exec("paste",this,p)},this.$handlePaste=function(a){typeof a=="string"&&(a={text:a}),this._signal("paste",a);var d=a.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(d);else{var p=d.split(/\r\n|\r|\n/),C=this.selection.rangeList.ranges;if(p.length>C.length||p.length<2||!p[1])return this.commands.exec("insertstring",this,d);for(var h=C.length;h--;){var v=C[h];v.isEmpty()||this.session.remove(v),this.session.insert(v.start,p[h])}}},this.execCommand=function(a,d){return this.commands.exec(a,this,d)},this.insert=function(a,d){var p=this.session,C=p.getMode(),h=this.getCursorPosition();if(this.getBehavioursEnabled()&&!d){var v=C.transformAction(p.getState(h.row),"insertion",this,p,a);v&&(a!==v.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),a=v.text)}if(a==" "&&(a=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&a.indexOf(` `)==-1){var w=new o.fromPoints(h,h);w.end.column+=a.length,this.session.remove(w)}}else{var w=this.getSelectionRange();h=this.session.remove(w),this.clearSelection()}if(a==` `||a==`\r `){var L=p.getLine(h.row);if(h.column>L.search(/\S|$/)){var y=L.substr(h.column).search(/\S|$/);p.doc.removeInLine(h.row,h.column,h.column+y)}}this.clearSelection();var D=h.column,S=p.getState(h.row),L=p.getLine(h.row),_=C.checkOutdent(S,L,a),O=p.insert(h,a);if(v&&v.selection&&(v.selection.length==2?this.selection.setSelectionRange(new o(h.row,D+v.selection[0],h.row,D+v.selection[1])):this.selection.setSelectionRange(new o(h.row+v.selection[0],v.selection[1],h.row+v.selection[2],v.selection[3]))),p.getDocument().isNewLine(a)){var z=C.getNextLineIndent(S,L.slice(0,h.column),p.getTabString());p.insert({row:h.row+1,column:0},z)}_&&C.autoOutdent(S,p,h.row)},this.onTextInput=function(a){this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,d,p){this.keyBinding.onCommandKey(a,d,p)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.setOption("scrollSpeed",a)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(a){this.setOption("dragDelay",a)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(a){this.setOption("selectionStyle",a)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(a){this.setOption("highlightActiveLine",a)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(a){this.setOption("highlightGutterLine",a)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(a){this.setOption("highlightSelectedWord",a)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(a){this.renderer.setAnimatedScroll(a)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(a){this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(a){this.renderer.setDisplayIndentGuides(a)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(a){this.setOption("readOnly",a)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(a){this.setOption("behavioursEnabled",a)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(a){this.setOption("wrapBehavioursEnabled",a)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(a){this.setOption("showFoldWidgets",a)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(a){this.setOption("fadeFoldWidgets",a)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(a){this.selection.isEmpty()&&(a=="left"?this.selection.selectLeft():this.selection.selectRight());var d=this.getSelectionRange();if(this.getBehavioursEnabled()){var p=this.session,C=p.getState(d.start.row),h=p.getMode().transformAction(C,"deletion",this,p,d);if(d.end.column===0){var v=p.getTextRange(d);if(v[v.length-1]==` `){var w=p.getLine(d.end.row);/^\s+$/.test(w)&&(d.end.column=w.length)}}h&&(d=h)}this.session.remove(d),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert(` `),this.moveCursorToPosition(a)},this.transposeLetters=function(){if(this.selection.isEmpty()){var a=this.getCursorPosition(),d=a.column;if(d!==0){var p=this.session.getLine(a.row),C,h;d<p.length?(C=p.charAt(d)+p.charAt(d-1),h=new o(a.row,d-1,a.row,d+1)):(C=p.charAt(d-1)+p.charAt(d-2),h=new o(a.row,d-2,a.row,d)),this.session.replace(h,C),this.session.selection.moveToPosition(h.end)}}},this.toLowerCase=function(){var a=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var d=this.getSelectionRange(),p=this.session.getTextRange(d);this.session.replace(d,p.toLowerCase()),this.selection.setSelectionRange(a)},this.toUpperCase=function(){var a=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var d=this.getSelectionRange(),p=this.session.getTextRange(d);this.session.replace(d,p.toUpperCase()),this.selection.setSelectionRange(a)},this.indent=function(){var a=this.session,d=this.getSelectionRange();if(d.start.row<d.end.row){var p=this.$getSelectedRows();a.indentRows(p.first,p.last," ");return}else if(d.start.column<d.end.column){var C=a.getTextRange(d);if(!/^\s+$/.test(C)){var p=this.$getSelectedRows();a.indentRows(p.first,p.last," ");return}}var h=a.getLine(d.start.row),v=d.start,w=a.getTabSize(),y=a.documentToScreenColumn(v.row,v.column);if(this.session.getUseSoftTabs())var D=w-y%w,S=g.stringRepeat(" ",D);else{for(var D=y%w;h[d.start.column-1]==" "&&D;)d.start.column--,D--;this.selection.setSelectionRange(d),S=" "}return this.insert(S)},this.blockIndent=function(){var a=this.$getSelectedRows();this.session.indentRows(a.first,a.last," ")},this.blockOutdent=function(){var a=this.session.getSelection();this.session.outdentRows(a.getRange())},this.sortLines=function(){for(var a=this.$getSelectedRows(),d=this.session,p=[],C=a.first;C<=a.last;C++)p.push(d.getLine(C));p.sort(function(w,y){return w.toLowerCase()<y.toLowerCase()?-1:w.toLowerCase()>y.toLowerCase()?1:0});for(var h=new o(0,0,0,0),C=a.first;C<=a.last;C++){var v=d.getLine(C);h.start.row=C,h.end.row=C,h.end.column=v.length,d.replace(h,p[C-a.first])}},this.toggleCommentLines=function(){var a=this.session.getState(this.getCursorPosition().row),d=this.$getSelectedRows();this.session.getMode().toggleCommentLines(a,this.session,d.first,d.last)},this.toggleBlockComment=function(){var a=this.getCursorPosition(),d=this.session.getState(a.row),p=this.getSelectionRange();this.session.getMode().toggleBlockComment(d,this.session,p,a)},this.getNumberAt=function(a,d){var p=/[\-]?[0-9]+(?:\.[0-9]+)?/g;p.lastIndex=0;for(var C=this.session.getLine(a);p.lastIndex<d;){var h=p.exec(C);if(h.index<=d&&h.index+h[0].length>=d){var v={value:h[0],start:h.index,end:h.index+h[0].length};return v}}return null},this.modifyNumber=function(a){var d=this.selection.getCursor().row,p=this.selection.getCursor().column,C=new o(d,p-1,d,p),h=this.session.getTextRange(C);if(!isNaN(parseFloat(h))&&isFinite(h)){var v=this.getNumberAt(d,p);if(v){var w=v.value.indexOf(".")>=0?v.start+v.value.indexOf(".")+1:v.end,y=v.start+v.value.length-w,D=parseFloat(v.value);D*=Math.pow(10,y),w!==v.end&&p<w?a*=Math.pow(10,v.end-p-1):a*=Math.pow(10,v.end-p),D+=a,D/=Math.pow(10,y);var S=D.toFixed(y),L=new o(d,v.start,d,v.end);this.session.replace(L,S),this.moveCursorTo(d,Math.max(v.start+1,p+S.length-v.value.length))}}},this.removeLines=function(){var a=this.$getSelectedRows();this.session.removeFullLines(a.first,a.last),this.clearSelection()},this.duplicateSelection=function(){var a=this.selection,d=this.session,p=a.getRange(),C=a.isBackwards();if(p.isEmpty()){var h=p.start.row;d.duplicateLines(h,h)}else{var v=C?p.start:p.end,w=d.insert(v,d.getTextRange(p),!1);p.start=v,p.end=w,a.setSelectionRange(p,C)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(a,d,p){return this.session.moveText(a,d,p)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(a,d){var p,C,h=this.selection;if(!h.inMultiSelectMode||this.inVirtualSelectionMode){var v=h.toOrientedRange();p=this.$getSelectedRows(v),C=this.session.$moveLines(p.first,p.last,d?0:a),d&&a==-1&&(C=0),v.moveBy(C,0),h.fromOrientedRange(v)}else{var w=h.rangeList.ranges;h.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var y=0,D=0,S=w.length,L=0;L<S;L++){var _=L;w[L].moveBy(y,0),p=this.$getSelectedRows(w[L]);for(var O=p.first,z=p.last;++L<S;){D&&w[L].moveBy(D,0);var V=this.$getSelectedRows(w[L]);if(d&&V.first!=z)break;if(!d&&V.first>z+1)break;z=V.last}for(L--,y=this.session.$moveLines(O,z,d?0:a),d&&a==-1&&(_=L+1);_<=L;)w[_].moveBy(y,0),_++;d||(y=0),D+=y}h.fromOrientedRange(h.ranges[0]),h.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(a){return a=(a||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(a.start.row),last:this.session.getRowFoldEnd(a.end.row)}},this.onCompositionStart=function(a){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(a){this.renderer.setCompositionText(a)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(a){return a>=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.isRowFullyVisible=function(a){return a>=this.renderer.getFirstFullyVisibleRow()&&a<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(a,d){var p=this.renderer,C=this.renderer.layerConfig,h=a*Math.floor(C.height/C.lineHeight);this.$blockScrolling++,d===!0?this.selection.$moveSelection(function(){this.moveCursorBy(h,0)}):d===!1&&(this.selection.moveCursorBy(h,0),this.selection.clearSelection()),this.$blockScrolling--;var v=p.scrollTop;p.scrollBy(0,h*C.lineHeight),d!=null&&p.scrollCursorIntoView(null,.5),p.animateScrolling(v)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,d,p,C){this.renderer.scrollToLine(a,d,p,C)},this.centerSelection=function(){var a=this.getSelectionRange(),d={row:Math.floor(a.start.row+(a.end.row-a.start.row)/2),column:Math.floor(a.start.column+(a.end.column-a.start.column)/2)};this.renderer.alignCursor(d,.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(a,d){this.selection.moveCursorTo(a,d)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.jumpToMatching=function(a,d){var p=this.getCursorPosition(),C=new c(this.session,p.row,p.column),h=C.getCurrentToken(),v=h||C.stepForward();if(v){var w,y=!1,D={},S=p.column-v.start,L,_={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(v.value.match(/[{}()\[\]]/g)){for(;S<v.value.length&&!y;S++)if(_[v.value[S]])switch(L=_[v.value[S]]+"."+v.type.replace("rparen","lparen"),isNaN(D[L])&&(D[L]=0),v.value[S]){case"(":case"[":case"{":D[L]++;break;case")":case"]":case"}":D[L]--,D[L]===-1&&(w="bracket",y=!0);break}}else v&&v.type.indexOf("tag-name")!==-1&&(isNaN(D[v.value])&&(D[v.value]=0),h.value==="<"?D[v.value]++:h.value==="</"&&D[v.value]--,D[v.value]===-1&&(w="tag",y=!0));y||(h=v,v=C.stepForward(),S=0)}while(v&&!y);if(w){var O,z;if(w==="bracket")O=this.session.getBracketRange(p),O||(O=new o(C.getCurrentTokenRow(),C.getCurrentTokenColumn()+S-1,C.getCurrentTokenRow(),C.getCurrentTokenColumn()+S-1),z=O.start,(d||z.row===p.row&&Math.abs(z.column-p.column)<2)&&(O=this.session.getBracketRange(z)));else if(w==="tag"){if(v&&v.type.indexOf("tag-name")!==-1)var V=v.value;else return;if(O=new o(C.getCurrentTokenRow(),C.getCurrentTokenColumn()-2,C.getCurrentTokenRow(),C.getCurrentTokenColumn()-2),O.compare(p.row,p.column)===0){y=!1;do v=h,h=C.stepBackward(),h&&(h.type.indexOf("tag-close")!==-1&&O.setEnd(C.getCurrentTokenRow(),C.getCurrentTokenColumn()+1),v.value===V&&v.type.indexOf("tag-name")!==-1&&(h.value==="<"?D[V]++:h.value==="</"&&D[V]--,D[V]===0&&(y=!0)));while(h&&!y)}v&&v.type.indexOf("tag-name")&&(z=O.start,z.row==p.row&&Math.abs(z.column-p.column)<2&&(z=O.end))}z=O&&O.cursor||z,z&&(a?O&&d?this.selection.setRange(O):O&&O.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(z.row,z.column):this.selection.moveTo(z.row,z.column))}}},this.gotoLine=function(a,d,p){this.selection.clearSelection(),this.session.unfold({row:a-1,column:d||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(a-1,d||0),this.$blockScrolling-=1,this.isRowFullyVisible(a-1)||this.scrollToLine(a-1,!0,p)},this.navigateTo=function(a,d){this.selection.moveTo(a,d)},this.navigateUp=function(a){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var d=this.selection.anchor.getPosition();return this.moveCursorToPosition(d)}this.selection.clearSelection(),this.selection.moveCursorBy(-a||-1,0)},this.navigateDown=function(a){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var d=this.selection.anchor.getPosition();return this.moveCursorToPosition(d)}this.selection.clearSelection(),this.selection.moveCursorBy(a||1,0)},this.navigateLeft=function(a){if(this.selection.isEmpty())for(a=a||1;a--;)this.selection.moveCursorLeft();else{var d=this.getSelectionRange().start;this.moveCursorToPosition(d)}this.clearSelection()},this.navigateRight=function(a){if(this.selection.isEmpty())for(a=a||1;a--;)this.selection.moveCursorRight();else{var d=this.getSelectionRange().end;this.moveCursorToPosition(d)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,d){d&&this.$search.set(d);var p=this.$search.find(this.session),C=0;return p&&(this.$tryReplace(p,a)&&(C=1),p!==null&&(this.selection.setSelectionRange(p),this.renderer.scrollSelectionIntoView(p.start,p.end))),C},this.replaceAll=function(a,d){d&&this.$search.set(d);var p=this.$search.findAll(this.session),C=0;if(!p.length)return C;this.$blockScrolling+=1;var h=this.getSelectionRange();this.selection.moveTo(0,0);for(var v=p.length-1;v>=0;--v)this.$tryReplace(p[v],a)&&C++;return this.selection.setSelectionRange(h),this.$blockScrolling-=1,C},this.$tryReplace=function(a,d){var p=this.session.getTextRange(a);return d=this.$search.replace(p,d),d!==null?(a.end=this.session.replace(a,d),a):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,d,p){d||(d={}),typeof a=="string"||a instanceof RegExp?d.needle=a:typeof a=="object"&&B.mixin(d,a);var C=this.selection.getRange();d.needle==null&&(a=this.session.getTextRange(C)||this.$search.$options.needle,a||(C=this.session.getWordRange(C.start.row,C.start.column),a=this.session.getTextRange(C)),this.$search.set({needle:a})),this.$search.set(d),d.start||this.$search.set({start:C});var h=this.$search.find(this.session);if(d.preventScroll)return h;if(h)return this.revealRange(h,p),h;d.backwards?C.start=C.end:C.end=C.start,this.selection.setRange(C)},this.findNext=function(a,d){this.find({skipCurrent:!0,backwards:!1},a,d)},this.findPrevious=function(a,d){this.find(a,{skipCurrent:!0,backwards:!0},d)},this.revealRange=function(a,d){this.$blockScrolling+=1,this.session.unfold(a),this.selection.setSelectionRange(a),this.$blockScrolling-=1;var p=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(a.start,a.end,.5),d!==!1&&this.renderer.animateScrolling(p)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(a){if(a){var d,p=this,C=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var h=this.$scrollAnchor;h.style.cssText="position:absolute",this.container.insertBefore(h,this.container.firstChild);var v=this.on("changeSelection",function(){C=!0}),w=this.renderer.on("beforeRender",function(){C&&(d=p.renderer.container.getBoundingClientRect())}),y=this.renderer.on("afterRender",function(){if(C&&d&&(p.isFocused()||p.searchBox&&p.searchBox.isFocused())){var D=p.renderer,S=D.$cursorLayer.$pixelPos,L=D.layerConfig,_=S.top-L.offset;S.top>=0&&_+d.top<0?C=!0:S.top<L.height&&S.top+d.top+L.lineHeight>window.innerHeight?C=!1:C=null,C!=null&&(h.style.top=_+"px",h.style.left=S.left+"px",h.style.height=L.lineHeight+"px",h.scrollIntoView(C)),C=d=null}});this.setAutoScrollEditorIntoView=function(D){D||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",v),this.renderer.off("afterRender",y),this.renderer.off("beforeRender",w))}}},this.$resetCursorStyle=function(){var a=this.$cursorStyle||"ace",d=this.renderer.$cursorLayer;d&&(d.setSmoothBlinking(/smooth/.test(a)),d.isBlinking=!this.$readOnly&&a!="wide",A.setCssClass(d.element,"ace_slim-cursors",/slim/.test(a)))}}.call(m.prototype),F.defineOptions(m.prototype,"editor",{selectionStyle:{set:function(a){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:a})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(a){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(a){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(a){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(a){this.setAutoScrollEditorIntoView(a)}},keyboardHandler:{set:function(a){this.setKeyboardHandler(a)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),b.Editor=m}),ace.define("ace/undomanager",["require","exports","module"],function($,b,K){"use strict";var B=function(){this.reset()};(function(){this.execute=function(r){var t=r.args[0];this.$doc=r.args[1],r.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(r){var t=this.$undoStack.pop(),e=null;return t&&(e=this.$doc.undoChanges(t,r),this.$redoStack.push(t),this.dirtyCounter--),e},this.redo=function(r){var t=this.$redoStack.pop(),e=null;return t&&(e=this.$doc.redoChanges(this.$deserializeDeltas(t),r),this.$undoStack.push(t),this.dirtyCounter++),e},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(r){return l(r,A)},this.$deserializeDeltas=function(r){return l(r,g)};function A(r){return{action:r.action,start:r.start,end:r.end,lines:r.lines.length==1?null:r.lines,text:r.lines.length==1?r.lines[0]:null}}function g(r){return{action:r.action,start:r.start,end:r.end,lines:r.lines||[r.text]}}function l(r,t){for(var e=new Array(r.length),n=0;n<r.length;n++){for(var i=r[n],s={group:i.group,deltas:new Array(i.length)},o=0;o<i.deltas.length;o++){var u=i.deltas[o];s.deltas[o]=t(u)}e[n]=s}return e}}).call(B.prototype),b.UndoManager=B}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("../lib/dom"),A=$("../lib/oop"),g=$("../lib/lang"),l=$("../lib/event_emitter").EventEmitter,r=function(t){this.element=B.createElement("div"),this.element.className="ace_layer ace_gutter-layer",t.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){A.implement(this,l),this.setSession=function(t){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=t,t&&t.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(t,e){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(t,e)},this.removeGutterDecoration=function(t,e){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(t,e)},this.setAnnotations=function(t){this.$annotations=[];for(var e=0;e<t.length;e++){var n=t[e],i=n.row,s=this.$annotations[i];s||(s=this.$annotations[i]={text:[]});var o=n.text;o=o?g.escapeHTML(o):n.html||"",s.text.indexOf(o)===-1&&s.text.push(o);var u=n.type;u=="error"?s.className=" ace_error":u=="warning"&&s.className!=" ace_error"?s.className=" ace_warning":u=="info"&&!s.className&&(s.className=" ace_info")}},this.$updateAnnotations=function(t){if(this.$annotations.length){var e=t.start.row,n=t.end.row-e;if(n!==0)if(t.action=="remove")this.$annotations.splice(e,n+1,null);else{var i=new Array(n+1);i.unshift(e,1),this.$annotations.splice.apply(this.$annotations,i)}}},this.update=function(t){for(var e=this.session,n=t.firstRow,i=Math.min(t.lastRow+t.gutterOffset,e.getLength()-1),s=e.getNextFoldLine(n),o=s?s.start.row:1/0,u=this.$showFoldWidgets&&e.foldWidgets,f=e.$breakpoints,E=e.$decorations,F=e.$firstLineNumber,c=0,m=e.gutterRenderer||this.$renderer,a=null,d=-1,p=n;;){if(p>o&&(p=s.end.row+1,s=e.getNextFoldLine(p,s),o=s?s.start.row:1/0),p>i){for(;this.$cells.length>d+1;)a=this.$cells.pop(),this.element.removeChild(a.element);break}a=this.$cells[++d],a||(a={element:null,textNode:null,foldWidget:null},a.element=B.createElement("div"),a.textNode=document.createTextNode(""),a.element.appendChild(a.textNode),this.element.appendChild(a.element),this.$cells[d]=a);var C="ace_gutter-cell ";f[p]&&(C+=f[p]),E[p]&&(C+=E[p]),this.$annotations[p]&&(C+=this.$annotations[p].className),a.element.className!=C&&(a.element.className=C);var h=e.getRowLength(p)*t.lineHeight+"px";if(h!=a.element.style.height&&(a.element.style.height=h),u){var v=u[p];v==null&&(v=u[p]=e.getFoldWidget(p))}if(v){a.foldWidget||(a.foldWidget=B.createElement("span"),a.element.appendChild(a.foldWidget));var C="ace_fold-widget ace_"+v;v=="start"&&p==o&&p<s.end.row?C+=" ace_closed":C+=" ace_open",a.foldWidget.className!=C&&(a.foldWidget.className=C);var h=t.lineHeight+"px";a.foldWidget.style.height!=h&&(a.foldWidget.style.height=h)}else a.foldWidget&&(a.element.removeChild(a.foldWidget),a.foldWidget=null);var w=c=m?m.getText(e,p):p+F;w!==a.textNode.data&&(a.textNode.data=w),p++}this.element.style.height=t.minHeight+"px",(this.$fixedWidth||e.$useWrapMode)&&(c=e.getLength()+F);var y=m?m.getWidth(e,c,t):c.toString().length*t.characterWidth,D=this.$padding||this.$computePadding();y+=D.left+D.right,y!==this.gutterWidth&&!isNaN(y)&&(this.gutterWidth=y,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",y))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(t){this.$renderer=!t&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(t){t?B.addCssClass(this.element,"ace_folding-enabled"):B.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=t,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var t=B.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(t.paddingLeft)+1||0,this.$padding.right=parseInt(t.paddingRight)||0,this.$padding},this.getRegion=function(t){var e=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(t.x<e.left+n.left)return"markers";if(this.$showFoldWidgets&&t.x>n.right-e.right)return"foldWidgets"}}).call(r.prototype),b.Gutter=r}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function($,b,K){"use strict";var B=$("../range").Range,A=$("../lib/dom"),g=function(l){this.element=A.createElement("div"),this.element.className="ace_layer ace_marker-layer",l.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(r){this.$padding=r},this.setSession=function(r){this.session=r},this.setMarkers=function(r){this.markers=r},this.update=function(r){if(r){this.config=r;var t=[];for(var e in this.markers){var n=this.markers[e];if(!n.range){n.update(t,this,this.session,r);continue}var i=n.range.clipRows(r.firstRow,r.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),n.renderer){var s=this.$getTop(i.start.row,r),o=this.$padding+(this.session.$bidiHandler.isBidiRow(i.start.row)?this.session.$bidiHandler.getPosLeft(i.start.column):i.start.column*r.characterWidth);n.renderer(t,i,o,s,r)}else n.type=="fullLine"?this.drawFullLineMarker(t,i,n.clazz,r):n.type=="screenLine"?this.drawScreenLineMarker(t,i,n.clazz,r):i.isMultiLine()?n.type=="text"?this.drawTextMarker(t,i,n.clazz,r):this.drawMultiLineMarker(t,i,n.clazz,r):this.session.$bidiHandler.isBidiRow(i.start.row)?this.drawBidiSingleLineMarker(t,i,n.clazz+" ace_start ace_br15",r):this.drawSingleLineMarker(t,i,n.clazz+" ace_start ace_br15",r)}this.element.innerHTML=t.join("")}},this.$getTop=function(r,t){return(r-t.firstRowScreen)*t.lineHeight};function l(r,t,e,n){return(r?1:0)|(t?2:0)|(e?4:0)|(n?8:0)}this.drawTextMarker=function(r,t,e,n,i){for(var s=this.session,o=t.start.row,u=t.end.row,f=o,E=0,F=0,c=s.getScreenLastRowColumn(f),m=null,a=new B(f,t.start.column,f,F);f<=u;f++)a.start.row=a.end.row=f,a.start.column=f==o?t.start.column:s.getRowWrapIndent(f),a.end.column=c,E=F,F=c,c=f+1<u?s.getScreenLastRowColumn(f+1):f==u?0:t.end.column,m=e+(f==o?" ace_start":"")+" ace_br"+l(f==o||f==o+1&&t.start.column,E<F,F>c,f==u),this.session.$bidiHandler.isBidiRow(f)?this.drawBidiSingleLineMarker(r,a,m,n,f==u?0:1,i):this.drawSingleLineMarker(r,a,m,n,f==u?0:1,i)},this.drawMultiLineMarker=function(r,t,e,n,i){var s=this.$padding,o,u,f;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var E=t.clone();E.end.row=E.start.row,E.end.column=this.session.getLine(E.start.row).length,this.drawBidiSingleLineMarker(r,E,e+" ace_br1 ace_start",n,null,i)}else o=n.lineHeight,u=this.$getTop(t.start.row,n),f=s+t.start.column*n.characterWidth,r.push("<div class='",e," ace_br1 ace_start' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",f,"px;",i,"'></div>");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var E=t.clone();E.start.row=E.end.row,E.start.column=0,this.drawBidiSingleLineMarker(r,E,e+" ace_br12",n,null,i)}else{var F=t.end.column*n.characterWidth;o=n.lineHeight,u=this.$getTop(t.end.row,n),r.push("<div class='",e," ace_br12' style='","height:",o,"px;","width:",F,"px;","top:",u,"px;","left:",s,"px;",i,"'></div>")}if(o=(t.end.row-t.start.row-1)*n.lineHeight,!(o<=0)){u=this.$getTop(t.start.row+1,n);var c=(t.start.column?1:0)|(t.end.column?0:8);r.push("<div class='",e,c?" ace_br"+c:"","' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",s,"px;",i,"'></div>")}},this.drawSingleLineMarker=function(r,t,e,n,i,s){var o=n.lineHeight,u=(t.end.column+(i||0)-t.start.column)*n.characterWidth,f=this.$getTop(t.start.row,n),E=this.$padding+t.start.column*n.characterWidth;r.push("<div class='",e,"' style='","height:",o,"px;","width:",u,"px;","top:",f,"px;","left:",E,"px;",s||"","'></div>")},this.drawBidiSingleLineMarker=function(r,t,e,n,i,s){var o=n.lineHeight,u=this.$getTop(t.start.row,n),f=this.$padding,E=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);E.forEach(function(F){r.push("<div class='",e,"' style='","height:",o,"px;","width:",F.width+(i||0),"px;","top:",u,"px;","left:",f+F.left,"px;",s||"","'></div>")})},this.drawFullLineMarker=function(r,t,e,n,i){var s=this.$getTop(t.start.row,n),o=n.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,n)-s),r.push("<div class='",e,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")},this.drawScreenLineMarker=function(r,t,e,n,i){var s=this.$getTop(t.start.row,n),o=n.lineHeight;r.push("<div class='",e,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")}}).call(g.prototype),b.Marker=g}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("../lib/oop"),A=$("../lib/dom"),g=$("../lib/lang"),l=$("../lib/useragent"),r=$("../lib/event_emitter").EventEmitter,t=function(e){this.element=A.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){B.implement(this,r),this.EOF_CHAR="\xB6",this.EOL_CHAR_LF="\xAC",this.EOL_CHAR_CRLF="\xA4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\xB7",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()==` `?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(n){this._signal("changeCharacterSize",n)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var n=this.$tabStrings=[0],i=1;i<e+1;i++)this.showInvisibles?n.push("<span class='ace_invisible ace_invisible_tab'>"+g.stringRepeat(this.TAB_CHAR,i)+"</span>"):n.push(g.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var s="ace_indent-guide",o="",u="";if(this.showInvisibles){s+=" ace_invisible",o=" ace_invisible_space",u=" ace_invisible_tab";var f=g.stringRepeat(this.SPACE_CHAR,this.tabSize),E=g.stringRepeat(this.TAB_CHAR,this.tabSize)}else var f=g.stringRepeat(" ",this.tabSize),E=f;this.$tabStrings[" "]="<span class='"+s+o+"'>"+f+"</span>",this.$tabStrings[" "]="<span class='"+s+u+"'>"+E+"</span>"}},this.updateLines=function(e,n,i){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;for(var s=Math.max(n,e.firstRow),o=Math.min(i,e.lastRow),u=this.element.childNodes,f=0,E=e.firstRow;E<s;E++){var F=this.session.getFoldLine(E);if(F)if(F.containsRow(s)){s=F.start.row;break}else E=F.end.row;f++}for(var E=s,F=this.session.getNextFoldLine(E),c=F?F.start.row:1/0;E>c&&(E=F.end.row+1,F=this.session.getNextFoldLine(E,F),c=F?F.start.row:1/0),!(E>o);){var m=u[f++];if(m){var a=[];this.$renderLine(a,E,!this.$useLineGroups(),E==c?F:!1),m.style.height=e.lineHeight*this.session.getRowLength(E)+"px",m.innerHTML=a.join("")}E++}},this.scrollLines=function(e){var n=this.config;if(this.config=e,!n||n.lastRow<e.firstRow)return this.update(e);if(e.lastRow<n.firstRow)return this.update(e);var i=this.element;if(n.firstRow<e.firstRow)for(var s=this.session.getFoldedRowCount(n.firstRow,e.firstRow-1);s>0;s--)i.removeChild(i.firstChild);if(n.lastRow>e.lastRow)for(var s=this.session.getFoldedRowCount(e.lastRow+1,n.lastRow);s>0;s--)i.removeChild(i.lastChild);if(e.firstRow<n.firstRow){var o=this.$renderLinesFragment(e,e.firstRow,n.firstRow-1);i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o)}if(e.lastRow>n.lastRow){var o=this.$renderLinesFragment(e,n.lastRow+1,e.lastRow);i.appendChild(o)}},this.$renderLinesFragment=function(e,n,i){for(var s=this.element.ownerDocument.createDocumentFragment(),o=n,u=this.session.getNextFoldLine(o),f=u?u.start.row:1/0;o>f&&(o=u.end.row+1,u=this.session.getNextFoldLine(o,u),f=u?u.start.row:1/0),!(o>i);){var E=A.createElement("div"),F=[];if(this.$renderLine(F,o,!1,o==f?u:!1),E.innerHTML=F.join(""),this.$useLineGroups())E.className="ace_line_group",s.appendChild(E),E.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;E.firstChild;)s.appendChild(E.firstChild);o++}return s},this.update=function(e){this.config=e;for(var n=[],i=e.firstRow,s=e.lastRow,o=i,u=this.session.getNextFoldLine(o),f=u?u.start.row:1/0;o>f&&(o=u.end.row+1,u=this.session.getNextFoldLine(o,u),f=u?u.start.row:1/0),!(o>s);)this.$useLineGroups()&&n.push("<div class='ace_line_group' style='height:",e.lineHeight*this.session.getRowLength(o),"px'>"),this.$renderLine(n,o,!1,o==f?u:!1),this.$useLineGroups()&&n.push("</div>"),o++;this.element.innerHTML=n.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,n,i,s){var o=this,u=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\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]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=function(m,a,d,p,C){if(a)return o.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+g.stringRepeat(o.SPACE_CHAR,m.length)+"</span>":m;if(m=="&")return"&";if(m=="<")return"<";if(m==">")return">";if(m==" "){var h=o.session.getScreenTabSize(n+p);return n+=h-1,o.$tabStrings[h]}else if(m=="\u3000"){var v=o.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w=o.showInvisibles?o.SPACE_CHAR:"";return n+=1,"<span class='"+v+"' style='width:"+o.config.characterWidth*2+"px'>"+w+"</span>"}else return d?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+o.SPACE_CHAR+"</span>":(n+=1,"<span class='ace_cjk' style='width:"+o.config.characterWidth*2+"px'>"+m+"</span>")},E=s.replace(u,f);if(this.$textToken[i.type])e.push(E);else{var F="ace_"+i.type.replace(/\./g," ace_"),c="";i.type=="fold"&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("<span class='",F,"'",c,">",E,"</span>")}return n+s.length},this.renderIndentGuide=function(e,n,i){var s=n.search(this.$indentGuideRe);return s<=0||s>=i?n:n[0]==" "?(s-=s%this.tabSize,e.push(g.stringRepeat(this.$tabStrings[" "],s/this.tabSize)),n.substr(s)):n[0]==" "?(e.push(g.stringRepeat(this.$tabStrings[" "],s)),n.substr(s)):n},this.$renderWrappedLine=function(e,n,i,s){for(var o=0,u=0,f=i[0],E=0,F=0;F<n.length;F++){var c=n[F],m=c.value;if(F==0&&this.displayIndentGuides){if(o=m.length,m=this.renderIndentGuide(e,m,f),!m)continue;o-=m.length}if(o+m.length<f)E=this.$renderToken(e,E,c,m),o+=m.length;else{for(;o+m.length>=f;)E=this.$renderToken(e,E,c,m.substring(0,f-o)),m=m.substring(f-o),o=f,s||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),e.push(g.stringRepeat("\xA0",i.indent)),u++,E=0,f=i[u]||Number.MAX_VALUE;m.length!=0&&(o+=m.length,E=this.$renderToken(e,E,c,m))}}},this.$renderSimpleLine=function(e,n){var i=0,s=n[0],o=s.value;this.displayIndentGuides&&(o=this.renderIndentGuide(e,o)),o&&(i=this.$renderToken(e,i,s,o));for(var u=1;u<n.length;u++)s=n[u],o=s.value,i=this.$renderToken(e,i,s,o)},this.$renderLine=function(e,n,i,s){if(!s&&s!=!1&&(s=this.session.getFoldLine(n)),s)var o=this.$getFoldLineTokens(n,s);else var o=this.session.getTokens(n);if(i||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(n)),"px'>"),o.length){var u=this.session.getRowSplitData(n);u&&u.length?this.$renderWrappedLine(e,o,u,i):this.$renderSimpleLine(e,o)}this.showInvisibles&&(s&&(n=s.end.row),e.push("<span class='ace_invisible ace_invisible_eol'>",n==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),i||e.push("</div>")},this.$getFoldLineTokens=function(e,n){var i=this.session,s=[];function o(f,E,F){for(var c=0,m=0;m+f[c].value.length<E;)if(m+=f[c].value.length,c++,c==f.length)return;if(m!=E){var a=f[c].value.substring(E-m);a.length>F-E&&(a=a.substring(0,F-E)),s.push({type:f[c].type,value:a}),m=E+a.length,c+=1}for(;m<F&&c<f.length;){var a=f[c].value;a.length+m>F?s.push({type:f[c].type,value:a.substring(0,F-m)}):s.push(f[c]),m+=a.length,c+=1}}var u=i.getTokens(e);return n.walk(function(f,E,F,c,m){f!=null?s.push({type:"fold",value:f}):(m&&(u=i.getTokens(E)),u.length&&o(u,c,F))},n.end.row,this.session.getLine(n.end.row).length),s},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(t.prototype),b.Text=t}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function($,b,K){"use strict";var B=$("../lib/dom"),A,g=function(l){this.element=B.createElement("div"),this.element.className="ace_layer ace_cursor-layer",l.appendChild(this.element),A===void 0&&(A=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),B.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(A?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(l){for(var r=this.cursors,t=r.length;t--;)r[t].style.visibility=l?"":"hidden"},this.$updateOpacity=function(l){for(var r=this.cursors,t=r.length;t--;)r[t].style.opacity=l?"":"0"},this.$padding=0,this.setPadding=function(l){this.$padding=l},this.setSession=function(l){this.session=l},this.setBlinking=function(l){l!=this.isBlinking&&(this.isBlinking=l,this.restartTimer())},this.setBlinkInterval=function(l){l!=this.blinkInterval&&(this.blinkInterval=l,this.restartTimer())},this.setSmoothBlinking=function(l){l!=this.smoothBlinking&&!A&&(this.smoothBlinking=l,B.setCssClass(this.element,"ace_smooth-blinking",l),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var l=B.createElement("div");return l.className="ace_cursor",this.element.appendChild(l),this.cursors.push(l),l},this.removeCursor=function(){if(this.cursors.length>1){var l=this.cursors.pop();return l.parentNode.removeChild(l),l}},this.hideCursor=function(){this.isVisible=!1,B.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,B.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var l=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&B.removeCssClass(this.element,"ace_smooth-blinking"),l(!0),!(!this.isBlinking||!this.blinkInterval||!this.isVisible)){this.smoothBlinking&&setTimeout(function(){B.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var r=function(){this.timeoutId=setTimeout(function(){l(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){l(!0),r()},this.blinkInterval),r()}},this.getPixelPosition=function(l,r){if(!this.config||!this.session)return{left:0,top:0};l||(l=this.session.selection.getCursor());var t=this.session.documentToScreenPosition(l),e=this.$padding+(this.session.$bidiHandler.isBidiRow(t.row,l.row)?this.session.$bidiHandler.getPosLeft(t.column):t.column*this.config.characterWidth),n=(t.row-(r?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:e,top:n}},this.update=function(l){this.config=l;var r=this.session.$selectionMarkers,t=0,e=0;(r===void 0||r.length===0)&&(r=[{cursor:null}]);for(var t=0,n=r.length;t<n;t++){var i=this.getPixelPosition(r[t].cursor,!0);if(!((i.top>l.height+l.offset||i.top<0)&&t>1)){var s=(this.cursors[e++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,i,l,r[t],this.session):(s.left=i.left+"px",s.top=i.top+"px",s.width=l.characterWidth+"px",s.height=l.lineHeight+"px")}}for(;this.cursors.length>e;)this.removeCursor();var o=this.session.getOverwrite();this.$setOverwrite(o),this.$pixelPos=i,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(l){l!=this.overwrite&&(this.overwrite=l,l?B.addCssClass(this.element,"ace_overwrite-cursors"):B.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(g.prototype),b.Cursor=g}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/dom"),g=$("./lib/event"),l=$("./lib/event_emitter").EventEmitter,r=32768,t=function(i){this.element=A.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=A.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),i.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,g.addListener(this.element,"scroll",this.onScroll.bind(this)),g.addListener(this.element,"mousedown",g.preventDefault)};(function(){B.implement(this,l),this.setVisible=function(i){this.element.style.display=i?"":"none",this.isVisible=i,this.coeff=1}}).call(t.prototype);var e=function(i,s){t.call(this,i),this.scrollTop=0,this.scrollHeight=0,s.$scrollbarWidth=this.width=A.scrollbarWidth(i.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};B.inherits(e,t),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var i=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-i)/(this.coeff-i)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(i){this.element.style.height=i+"px"},this.setInnerHeight=this.setScrollHeight=function(i){this.scrollHeight=i,i>r?(this.coeff=r/i,i=r):this.coeff!=1&&(this.coeff=1),this.inner.style.height=i+"px"},this.setScrollTop=function(i){this.scrollTop!=i&&(this.skipEvent=!0,this.scrollTop=i,this.element.scrollTop=i*this.coeff)}}.call(e.prototype);var n=function(i,s){t.call(this,i),this.scrollLeft=0,this.height=s.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};B.inherits(n,t),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(i){this.element.style.width=i+"px"},this.setInnerWidth=function(i){this.inner.style.width=i+"px"},this.setScrollWidth=function(i){this.inner.style.width=i+"px"},this.setScrollLeft=function(i){this.scrollLeft!=i&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=i)}}.call(n.prototype),b.ScrollBar=e,b.ScrollBarV=e,b.ScrollBarH=n,b.VScrollBar=e,b.HScrollBar=n}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function($,b,K){"use strict";var B=$("./lib/event"),A=function(g,l){this.onRender=g,this.pending=!1,this.changes=0,this.window=l||window};(function(){this.schedule=function(g){if(this.changes=this.changes|g,!this.pending&&this.changes){this.pending=!0;var l=this;B.nextFrame(function(){l.pending=!1;for(var r;r=l.changes;)l.changes=0,l.onRender(r)},this.window)}}}).call(A.prototype),b.RenderLoop=A}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function($,b,K){var B=$("../lib/oop"),A=$("../lib/dom"),g=$("../lib/lang"),l=$("../lib/useragent"),r=$("../lib/event_emitter").EventEmitter,t=0,e=b.FontMetrics=function(n){this.el=A.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=A.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=A.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),n.appendChild(this.el),t||this.$testFractionalRect(),this.$measureNode.innerHTML=g.stringRepeat("X",t),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){B.implement(this,r),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var n=A.createElement("div");this.$setMeasureNodeStyles(n.style),n.style.width="0.2px",document.documentElement.appendChild(n);var i=n.getBoundingClientRect().width;i>0&&i<1?t=50:t=100,n.parentNode.removeChild(n)},this.$setMeasureNodeStyles=function(n,i){n.width=n.height="auto",n.left=n.top="0px",n.visibility="hidden",n.position="absolute",n.whiteSpace="pre",l.isIE<8?n["font-family"]="inherit":n.font="inherit",n.overflow=i?"hidden":"visible"},this.checkForSizeChanges=function(){var n=this.$measureSizes();if(n&&(this.$characterSize.width!==n.width||this.$characterSize.height!==n.height)){this.$measureNode.style.fontWeight="bold";var i=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=n,this.charSizes=Object.create(null),this.allowBoldFonts=i&&i.width===n.width&&i.height===n.height,this._emit("changeCharacterSize",{data:n})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var n=this;return this.$pollSizeChangesTimer=setInterval(function(){n.checkForSizeChanges()},500)},this.setPolling=function(n){n?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(t===50){var n=null;try{n=this.$measureNode.getBoundingClientRect()}catch{n={width:0,height:0}}var i={height:n.height,width:n.width/t}}else var i={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/t};return i.width===0||i.height===0?null:i},this.$measureCharWidth=function(n){this.$main.innerHTML=g.stringRepeat(n,t);var i=this.$main.getBoundingClientRect();return i.width/t},this.getCharacterWidth=function(n){var i=this.charSizes[n];return i===void 0&&(i=this.charSizes[n]=this.$measureCharWidth(n)/this.$characterSize.width),i},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(e.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/dom"),g=$("./config"),l=$("./lib/useragent"),r=$("./layer/gutter").Gutter,t=$("./layer/marker").Marker,e=$("./layer/text").Text,n=$("./layer/cursor").Cursor,i=$("./scrollbar").HScrollBar,s=$("./scrollbar").VScrollBar,o=$("./renderloop").RenderLoop,u=$("./layer/font_metrics").FontMetrics,f=$("./lib/event_emitter").EventEmitter,E=`.ace_editor {position: relative;overflow: hidden;font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: '';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}`;A.importCssString(E,"ace_editor.css");var F=function(c,m){var a=this;this.container=c||A.createElement("div"),this.$keepTextAreaAtCursor=!l.isOldIE,A.addCssClass(this.container,"ace_editor"),this.setTheme(m),this.$gutter=A.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=A.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=A.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new r(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new t(this.content);var d=this.$textLayer=new e(this.content);this.canvas=d.element,this.$markerFront=new t(this.content),this.$cursorLayer=new n(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new s(this.container,this),this.scrollBarH=new i(this.container,this),this.scrollBarV.addEventListener("scroll",function(p){a.$scrollAnimation||a.session.setScrollTop(p.data-a.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(p){a.$scrollAnimation||a.session.setScrollLeft(p.data-a.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new u(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(p){a.updateCharacterSize(),a.onResize(!0,a.gutterWidth,a.$size.width,a.$size.height),a._signal("changeCharacterSize",p)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),g.resetOptions(this),g._emit("renderer",this)};(function(){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,B.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(c){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=c,c&&this.scrollMargin.top&&c.getScrollTop()<=0&&c.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(c),this.$markerBack.setSession(c),this.$markerFront.setSession(c),this.$gutterLayer.setSession(c),this.$textLayer.setSession(c),c&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(c,m,a){if(m===void 0&&(m=1/0),this.$changedLines?(this.$changedLines.firstRow>c&&(this.$changedLines.firstRow=c),this.$changedLines.lastRow<m&&(this.$changedLines.lastRow=m)):this.$changedLines={firstRow:c,lastRow:m},this.$changedLines.lastRow<this.layerConfig.firstRow)if(a)this.$changedLines.lastRow=this.layerConfig.lastRow;else return;this.$changedLines.firstRow>this.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(c){c?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(c,m,a,d){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=c?1:0;var p=this.container;d||(d=p.clientHeight||p.scrollHeight),a||(a=p.clientWidth||p.scrollWidth);var C=this.$updateCachedSize(c,m,a,d);if(!this.$size.scrollerHeight||!a&&!d)return this.resizing=0;c&&(this.$gutterLayer.$padding=null),c?this.$renderChanges(C|this.$changes,!0):this.$loop.schedule(C|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(c,m,a,d){d-=this.$extraHeight||0;var p=0,C=this.$size,h={width:C.width,height:C.height,scrollerHeight:C.scrollerHeight,scrollerWidth:C.scrollerWidth};return d&&(c||C.height!=d)&&(C.height=d,p|=this.CHANGE_SIZE,C.scrollerHeight=C.height,this.$horizScroll&&(C.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",p=p|this.CHANGE_SCROLL),a&&(c||C.width!=a)&&(p|=this.CHANGE_SIZE,C.width=a,m==null&&(m=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=m,this.scrollBarH.element.style.left=this.scroller.style.left=m+"px",C.scrollerWidth=Math.max(0,a-m-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||c)&&(p|=this.CHANGE_FULL)),C.$dirty=!a||!d,p&&this._signal("resize",h),p},this.onGutterResize=function(){var c=this.$showGutter?this.$gutter.offsetWidth:0;c!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,c,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var c=this.$size.scrollerWidth-this.$padding*2,m=Math.floor(c/this.characterWidth);return this.session.adjustWrapLimit(m,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(c){this.setOption("animatedScroll",c)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(c){this.setOption("showInvisibles",c),this.session.$bidiHandler.setShowInvisibles(c)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(c){this.setOption("displayIndentGuides",c)},this.setShowPrintMargin=function(c){this.setOption("showPrintMargin",c)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(c){this.setOption("printMarginColumn",c)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(c){return this.setOption("showGutter",c)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(c){this.setOption("fadeFoldWidgets",c)},this.setHighlightGutterLine=function(c){this.setOption("highlightGutterLine",c)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var c=this.$cursorLayer.$pixelPos,m=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var a=this.session.selection.getCursor();a.column=0,c=this.$cursorLayer.getPixelPosition(a,!0),m*=this.session.getRowLength(a.row)}this.$gutterLineHighlight.style.top=c.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=m+"px"},this.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var c=A.createElement("div");c.className="ace_layer ace_print-margin-layer",this.$printMarginEl=A.createElement("div"),this.$printMarginEl.className="ace_print-margin",c.appendChild(this.$printMarginEl),this.content.insertBefore(c,this.content.firstChild)}var m=this.$printMarginEl.style;m.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",m.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var c=this.layerConfig,m=this.$cursorLayer.$pixelPos.top,a=this.$cursorLayer.$pixelPos.left;m-=c.offset;var d=this.textarea.style,p=this.lineHeight;if(m<0||m>c.height-p){d.top=d.left="0";return}var C=this.characterWidth;if(this.$composition){var h=this.textarea.value.replace(/^\x01+/,"");C*=this.session.$getStringScreenWidth(h)[0]+2,p+=2}a-=this.scrollLeft,a>this.$size.scrollerWidth-C&&(a=this.$size.scrollerWidth-C),a+=this.gutterWidth,d.height=p+"px",d.width=C+"px",d.left=Math.min(a,this.$size.scrollerWidth-C)+"px",d.top=Math.min(m,this.$size.height-p)+"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 c=this.layerConfig,m=c.lastRow,a=this.session.documentToScreenRow(m,0)*c.lineHeight;return a-this.session.getScrollTop()>c.height-c.lineHeight?m-1:m},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(c){this.$padding=c,this.$textLayer.setPadding(c),this.$cursorLayer.setPadding(c),this.$markerFront.setPadding(c),this.$markerBack.setPadding(c),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(c,m,a,d){var p=this.scrollMargin;p.top=c|0,p.bottom=m|0,p.right=d|0,p.left=a|0,p.v=p.top+p.bottom,p.h=p.left+p.right,p.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-p.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(c){this.setOption("hScrollBarAlwaysVisible",c)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(c){this.setOption("vScrollBarAlwaysVisible",c)},this.$updateScrollBarV=function(){var c=this.layerConfig.maxHeight,m=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(c-=(m-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>c-m&&(c=this.scrollTop+m,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(c+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(c,m){if(this.$changes&&(c|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!c&&!m){this.$changes|=c;return}if(this.$size.$dirty)return this.$changes|=c,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var a=this.layerConfig;if(c&this.CHANGE_FULL||c&this.CHANGE_SIZE||c&this.CHANGE_TEXT||c&this.CHANGE_LINES||c&this.CHANGE_SCROLL||c&this.CHANGE_H_SCROLL){if(c|=this.$computeLayerConfig(),a.firstRow!=this.layerConfig.firstRow&&a.firstRowScreen==this.layerConfig.firstRowScreen){var d=this.scrollTop+(a.firstRow-this.layerConfig.firstRow)*this.lineHeight;d>0&&(this.scrollTop=d,c=c|this.CHANGE_SCROLL,c|=this.$computeLayerConfig())}a=this.layerConfig,this.$updateScrollBarV(),c&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-a.offset+"px",this.content.style.marginTop=-a.offset+"px",this.content.style.width=a.width+2*this.$padding+"px",this.content.style.height=a.minHeight+"px"}if(c&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),c&this.CHANGE_FULL){this.$textLayer.update(a),this.$showGutter&&this.$gutterLayer.update(a),this.$markerBack.update(a),this.$markerFront.update(a),this.$cursorLayer.update(a),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(c&this.CHANGE_SCROLL){c&this.CHANGE_TEXT||c&this.CHANGE_LINES?this.$textLayer.update(a):this.$textLayer.scrollLines(a),this.$showGutter&&this.$gutterLayer.update(a),this.$markerBack.update(a),this.$markerFront.update(a),this.$cursorLayer.update(a),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}c&this.CHANGE_TEXT?(this.$textLayer.update(a),this.$showGutter&&this.$gutterLayer.update(a)):c&this.CHANGE_LINES?(this.$updateLines()||c&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(a):(c&this.CHANGE_TEXT||c&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(a),c&this.CHANGE_CURSOR&&(this.$cursorLayer.update(a),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),c&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(a),c&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(a),this._signal("afterRender")},this.$autosize=function(){var c=this.session.getScreenLength()*this.lineHeight,m=this.$maxLines*this.lineHeight,a=Math.min(m,Math.max((this.$minLines||1)*this.lineHeight,c))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(a+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&a>this.$maxPixelHeight&&(a=this.$maxPixelHeight);var d=c>m;if(a!=this.desiredHeight||this.$size.height!=this.desiredHeight||d!=this.$vScroll){d!=this.$vScroll&&(this.$vScroll=d,this.scrollBarV.setVisible(d));var p=this.container.clientWidth;this.container.style.height=a+"px",this.$updateCachedSize(!0,this.$gutterWidth,p,a),this.desiredHeight=a,this._signal("autosize")}},this.$computeLayerConfig=function(){var c=this.session,m=this.$size,a=m.height<=2*this.lineHeight,d=this.session.getScreenLength(),p=d*this.lineHeight,C=this.$getLongestLine(),h=!a&&(this.$hScrollBarAlwaysVisible||m.scrollerWidth-C-2*this.$padding<0),v=this.$horizScroll!==h;v&&(this.$horizScroll=h,this.scrollBarH.setVisible(h));var w=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var y=this.scrollTop%this.lineHeight,D=m.scrollerHeight+this.lineHeight,S=!this.$maxLines&&this.$scrollPastEnd?(m.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;p+=S;var L=this.scrollMargin;this.session.setScrollTop(Math.max(-L.top,Math.min(this.scrollTop,p-m.scrollerHeight+L.bottom))),this.session.setScrollLeft(Math.max(-L.left,Math.min(this.scrollLeft,C+2*this.$padding-m.scrollerWidth+L.right)));var _=!a&&(this.$vScrollBarAlwaysVisible||m.scrollerHeight-p+S<0||this.scrollTop>L.top),O=w!==_;O&&(this.$vScroll=_,this.scrollBarV.setVisible(_));var z=Math.ceil(D/this.lineHeight)-1,V=Math.max(0,Math.round((this.scrollTop-y)/this.lineHeight)),M=V+z,U,T,x=this.lineHeight;V=c.screenToDocumentRow(V,0);var k=c.getFoldLine(V);k&&(V=k.start.row),U=c.documentToScreenRow(V,0),T=c.getRowLength(V)*x,M=Math.min(c.screenToDocumentRow(M,0),c.getLength()-1),D=m.scrollerHeight+c.getRowLength(M)*x+T,y=this.scrollTop-U*x;var P=0;return this.layerConfig.width!=C&&(P=this.CHANGE_H_SCROLL),(v||O)&&(P=this.$updateCachedSize(!0,this.gutterWidth,m.width,m.height),this._signal("scrollbarVisibilityChanged"),O&&(C=this.$getLongestLine())),this.layerConfig={width:C,padding:this.$padding,firstRow:V,firstRowScreen:U,lastRow:M,lineHeight:x,characterWidth:this.characterWidth,minHeight:D,maxHeight:p,offset:y,gutterOffset:x?Math.max(0,Math.ceil((y+m.height-m.scrollerHeight)/x)):0,height:this.$size.scrollerHeight},P},this.$updateLines=function(){if(this.$changedLines){var c=this.$changedLines.firstRow,m=this.$changedLines.lastRow;this.$changedLines=null;var a=this.layerConfig;if(!(c>a.lastRow+1)&&!(m<a.firstRow)){if(m===1/0){this.$showGutter&&this.$gutterLayer.update(a),this.$textLayer.update(a);return}return this.$textLayer.updateLines(a,c,m),!0}}},this.$getLongestLine=function(){var c=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(c+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(c*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),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(c,m){this.$gutterLayer.addGutterDecoration(c,m)},this.removeGutterDecoration=function(c,m){this.$gutterLayer.removeGutterDecoration(c,m)},this.updateBreakpoints=function(c){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(c){this.$gutterLayer.setAnnotations(c),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(c,m,a){this.scrollCursorIntoView(c,a),this.scrollCursorIntoView(m,a)},this.scrollCursorIntoView=function(c,m,a){if(this.$size.scrollerHeight!==0){var d=this.$cursorLayer.getPixelPosition(c),p=d.left,C=d.top,h=a&&a.top||0,v=a&&a.bottom||0,w=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;w+h>C?(m&&w+h>C+this.lineHeight&&(C-=m*this.$size.scrollerHeight),C===0&&(C=-this.scrollMargin.top),this.session.setScrollTop(C)):w+this.$size.scrollerHeight-v<C+this.lineHeight&&(m&&w+this.$size.scrollerHeight-v<C-this.lineHeight&&(C+=m*this.$size.scrollerHeight),this.session.setScrollTop(C+this.lineHeight-this.$size.scrollerHeight));var y=this.scrollLeft;y>p?(p<this.$padding+2*this.layerConfig.characterWidth&&(p=-this.scrollMargin.left),this.session.setScrollLeft(p)):y+this.$size.scrollerWidth<p+this.characterWidth?this.session.setScrollLeft(Math.round(p+this.characterWidth-this.$size.scrollerWidth)):y<=this.$padding&&p-y<this.characterWidth&&this.session.setScrollLeft(0)}},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(c){this.session.setScrollTop(c*this.lineHeight)},this.alignCursor=function(c,m){typeof c=="number"&&(c={row:c,column:0});var a=this.$cursorLayer.getPixelPosition(c),d=this.$size.scrollerHeight-this.lineHeight,p=a.top-d*(m||0);return this.session.setScrollTop(p),p},this.STEPS=8,this.$calcSteps=function(c,m){var a=0,d=this.STEPS,p=[],C=function(h,v,w){return w*(Math.pow(h-1,3)+1)+v};for(a=0;a<d;++a)p.push(C(a/this.STEPS,c,m-c));return p},this.scrollToLine=function(c,m,a,d){var p=this.$cursorLayer.getPixelPosition({row:c,column:0}),C=p.top;m&&(C-=this.$size.scrollerHeight/2);var h=this.scrollTop;this.session.setScrollTop(C),a!==!1&&this.animateScrolling(h,d)},this.animateScrolling=function(c,m){var a=this.scrollTop;if(this.$animatedScroll){var d=this;if(c!=a){if(this.$scrollAnimation){var p=this.$scrollAnimation.steps;if(p.length&&(c=p[0],c==a))return}var C=d.$calcSteps(c,a);this.$scrollAnimation={from:c,to:a,steps:C},clearInterval(this.$timer),d.session.setScrollTop(C.shift()),d.session.$scrollTop=a,this.$timer=setInterval(function(){C.length?(d.session.setScrollTop(C.shift()),d.session.$scrollTop=a):a!=null?(d.session.$scrollTop=-1,d.session.setScrollTop(a),a=null):(d.$timer=clearInterval(d.$timer),d.$scrollAnimation=null,m&&m())},10)}}},this.scrollToY=function(c){this.scrollTop!==c&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=c)},this.scrollToX=function(c){this.scrollLeft!==c&&(this.scrollLeft=c),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(c,m){this.session.setScrollTop(m),this.session.setScrollLeft(m)},this.scrollBy=function(c,m){m&&this.session.setScrollTop(this.session.getScrollTop()+m),c&&this.session.setScrollLeft(this.session.getScrollLeft()+c)},this.isScrollableBy=function(c,m){if(m<0&&this.session.getScrollTop()>=1-this.scrollMargin.top||m>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||c<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||c>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(c,m){var a=this.scroller.getBoundingClientRect(),d=c+this.scrollLeft-a.left-this.$padding,p=d/this.characterWidth,C=Math.floor((m+this.scrollTop-a.top)/this.lineHeight),h=Math.round(p);return{row:C,column:h,side:p-h>0?1:-1,offsetX:d}},this.screenToTextCoordinates=function(c,m){var a=this.scroller.getBoundingClientRect(),d=c+this.scrollLeft-a.left-this.$padding,p=Math.round(d/this.characterWidth),C=(m+this.scrollTop-a.top)/this.lineHeight;return this.session.screenToDocumentPosition(C,Math.max(p,0),d)},this.textToScreenCoordinates=function(c,m){var a=this.scroller.getBoundingClientRect(),d=this.session.documentToScreenPosition(c,m),p=this.$padding+(this.session.$bidiHandler.isBidiRow(d.row,c)?this.session.$bidiHandler.getPosLeft(d.column):Math.round(d.column*this.characterWidth)),C=d.row*this.lineHeight;return{pageX:a.left+p-this.scrollLeft,pageY:a.top+C-this.scrollTop}},this.visualizeFocus=function(){A.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){A.removeCssClass(this.container,"ace_focus")},this.showComposition=function(c){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,A.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(c){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(A.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(c,m){var a=this;if(this.$themeId=c,a._dispatchEvent("themeChange",{theme:c}),!c||typeof c=="string"){var d=c||this.$options.theme.initialValue;g.loadModule(["theme",d],p)}else p(c);function p(C){if(a.$themeId!=c)return m&&m();if(!C||!C.cssClass)throw new Error("couldn't load module "+c+" or it didn't call define");A.importCssString(C.cssText,C.cssClass,a.container.ownerDocument),a.theme&&A.removeCssClass(a.container,a.theme.cssClass);var h="padding"in C?C.padding:"padding"in(a.theme||{})?4:a.$padding;a.$padding&&h!=a.$padding&&a.setPadding(h),a.$theme=C.cssClass,a.theme=C,A.addCssClass(a.container,C.cssClass),A.setCssClass(a.container,"ace_dark",C.isDark),a.$size&&(a.$size.width=0,a.$updateSizeAsync()),a._dispatchEvent("themeLoaded",{theme:C}),m&&m()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(c,m){A.setCssClass(this.container,c,m!==!1)},this.unsetStyle=function(c){A.removeCssClass(this.container,c)},this.setCursorStyle=function(c){this.scroller.style.cursor!=c&&(this.scroller.style.cursor=c)},this.setMouseCursor=function(c){this.scroller.style.cursor=c},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(F.prototype),g.defineOptions(F.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(c){this.$textLayer.setShowInvisibles(c)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(c){typeof c=="number"&&(this.$printMarginColumn=c),this.$showPrintMargin=!!c,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(c){this.$gutter.style.display=c?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(c){A.setCssClass(this.$gutter,"ace_fade-fold-widgets",c)},initialValue:!1},showFoldWidgets:{set:function(c){this.$gutterLayer.setShowFoldWidgets(c)},initialValue:!0},showLineNumbers:{set:function(c){this.$gutterLayer.setShowLineNumbers(c),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(c){this.$textLayer.setDisplayIndentGuides(c)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(c){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=A.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=c?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(c){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(c){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(c){typeof c=="number"&&(c=c+"px"),this.container.style.fontSize=c,this.updateFontSize()},initialValue:12},fontFamily:{set:function(c){this.container.style.fontFamily=c,this.updateFontSize()}},maxLines:{set:function(c){this.updateFull()}},minLines:{set:function(c){this.updateFull()}},maxPixelHeight:{set:function(c){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(c){c=+c||0,this.$scrollPastEnd!=c&&(this.$scrollPastEnd=c,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(c){this.$gutterLayer.$fixedWidth=!!c,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(c){this.setTheme(c)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),b.VirtualRenderer=F}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function($,b,K){"use strict";var B=$("../lib/oop"),A=$("../lib/net"),g=$("../lib/event_emitter").EventEmitter,l=$("../config");function r(i,s){var o=s.src;""+A.qualifyURL(i);try{return new Blob([o],{type:"application/javascript"})}catch{var u=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new u;return f.append(o),f.getBlob("application/javascript")}}function t(i,s){var o=r(i,s),u=window.URL||window.webkitURL,f=u.createObjectURL(o);return new Worker(f)}var e=function(i,s,o,u,f){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),$.nameToUrl&&!$.toUrl&&($.toUrl=$.nameToUrl),l.get("packaged")||!$.toUrl)u=u||l.moduleUrl(s.id,"worker");else{var E=this.$normalizePath;u=u||E($.toUrl("ace/worker/worker.js",null,"_"));var F={};i.forEach(function(c){F[c]=E($.toUrl(c,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=t(u,s),f&&this.send("importScripts",f),this.$worker.postMessage({init:!0,tlns:F,module:s.id,classname:o}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){B.implement(this,g),this.onMessage=function(i){var s=i.data;switch(s.type){case"event":this._signal(s.name,{data:s.data});break;case"call":var o=this.callbacks[s.id];o&&(o(s.data),delete this.callbacks[s.id]);break;case"error":this.reportError(s.data);break;case"log":window.console&&console.log&&console.log.apply(console,s.data);break}},this.reportError=function(i){window.console&&console.error&&console.error(i)},this.$normalizePath=function(i){return A.qualifyURL(i)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(i,s){this.$worker.postMessage({command:i,args:s})},this.call=function(i,s,o){if(o){var u=this.callbackId++;this.callbacks[u]=o,s.push(u)}this.send(i,s)},this.emit=function(i,s){try{this.$worker.postMessage({event:i,data:{data:s.data}})}catch(o){console.error(o.stack)}},this.attachToDocument=function(i){this.$doc&&this.terminate(),this.$doc=i,this.call("setValue",[i.getValue()]),i.on("change",this.changeListener)},this.changeListener=function(i){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),i.action=="insert"?this.deltaQueue.push(i.start,i.lines):this.deltaQueue.push(i.start,i.end)},this.$sendDeltaQueue=function(){var i=this.deltaQueue;i&&(this.deltaQueue=null,i.length>50&&i.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:i}))}}).call(e.prototype);var n=function(i,s,o){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var u=null,f=!1,E=Object.create(g),F=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(m){F.messageBuffer.push(m),u&&(f?setTimeout(c):c())},this.setEmitSync=function(m){f=m};var c=function(){var m=F.messageBuffer.shift();m.command?u[m.command].apply(u,m.args):m.event&&E._signal(m.event,m.data)};E.postMessage=function(m){F.onMessage({data:m})},E.callback=function(m,a){this.postMessage({type:"call",id:a,data:m})},E.emit=function(m,a){this.postMessage({type:"event",name:m,data:a})},l.loadModule(["worker",s],function(m){for(u=new m[o](E);F.messageBuffer.length;)c()})};n.prototype=e.prototype,b.UIWorkerClient=n,b.WorkerClient=e,b.createWorker=t}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function($,b,K){"use strict";var B=$("./range").Range,A=$("./lib/event_emitter").EventEmitter,g=$("./lib/oop"),l=function(r,t,e,n,i,s){var o=this;this.length=t,this.session=r,this.doc=r.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=e;var u=r.getUndoManager().$undoStack||r.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),r.selection.on("changeCursor",this.$onCursorChange)};(function(){g.implement(this,A),this.setup=function(){var r=this,t=this.doc,e=this.session;this.selectionBefore=e.selection.toJSON(),e.selection.inMultiSelectMode&&e.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var n=this.pos;n.$insertRight=!0,n.detach(),n.markerId=e.addMarker(new B(n.row,n.column,n.row,n.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var s=t.createAnchor(i.row,i.column);s.$insertRight=!0,s.detach(),r.others.push(s)}),e.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var r=this.session,t=this;this.othersActive=!0,this.others.forEach(function(e){e.markerId=r.addMarker(new B(e.row,e.column,e.row,e.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var r=0;r<this.others.length;r++)this.session.removeMarker(this.others[r].markerId)}},this.onUpdate=function(r){if(this.$updating)return this.updateAnchors(r);var t=r;if(t.start.row===t.end.row&&t.start.row===this.pos.row){this.$updating=!0;var e=r.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,n=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,i=t.start.column-this.pos.column;if(this.updateAnchors(r),n&&(this.length+=e),n&&!this.session.$fromUndo){if(r.action==="insert")for(var s=this.others.length-1;s>=0;s--){var o=this.others[s],u={row:o.row,column:o.column+i};this.doc.insertMergedLines(u,r.lines)}else if(r.action==="remove")for(var s=this.others.length-1;s>=0;s--){var o=this.others[s],u={row:o.row,column:o.column+i};this.doc.remove(new B(u.row,u.column,u.row,u.column-e))}}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(r){this.pos.onChange(r);for(var t=this.others.length;t--;)this.others[t].onChange(r);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var r=this,t=this.session,e=function(i,s){t.removeMarker(i.markerId),i.markerId=t.addMarker(new B(i.row,i.column,i.row,i.column+r.length),s,null,!1)};e(this.pos,this.mainClass);for(var n=this.others.length;n--;)e(this.others[n],this.othersClass)}},this.onCursorChange=function(r){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",r)):(this.hideOtherMarkers(),this._emit("cursorLeave",r))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth!==-1){for(var r=this.session.getUndoManager(),t=(r.$undoStack||r.$undostack).length-this.$undoStackDepth,e=0;e<t;e++)r.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(l.prototype),b.PlaceHolder=l}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function($,b,K){var B=$("../lib/event"),A=$("../lib/useragent");function g(r,t){return r.row==t.row&&r.column==t.column}function l(r){var t=r.domEvent,e=t.altKey,n=t.shiftKey,i=t.ctrlKey,s=r.getAccelKey(),o=r.getButton();if(i&&A.isMac&&(o=t.button),r.editor.inMultiSelectMode&&o==2){r.editor.textInput.onContextMenu(r.domEvent);return}if(!i&&!e&&!s){o===0&&r.editor.inMultiSelectMode&&r.editor.exitMultiSelectMode();return}if(o===0){var u=r.editor,f=u.selection,E=u.inMultiSelectMode,F=r.getDocumentPosition(),c=f.getCursor(),m=r.inSelection()||f.isEmpty()&&g(F,c),a=r.x,d=r.y,p=function(M){a=M.clientX,d=M.clientY},C=u.session,h=u.renderer.pixelToScreenCoordinates(a,d),v=h,w;if(u.$mouseHandler.$enableJumpToDef)i&&e||s&&e?w=n?"block":"add":e&&u.$blockSelectEnabled&&(w="block");else if(s&&!e){if(w="add",!E&&n)return}else e&&u.$blockSelectEnabled&&(w="block");if(w&&A.isMac&&t.ctrlKey&&u.$mouseHandler.cancelContextMenu(),w=="add"){if(!E&&m)return;if(!E){var y=f.toOrientedRange();u.addSelectionMarker(y)}var D=f.rangeList.rangeAtPoint(F);u.$blockScrolling++,u.inVirtualSelectionMode=!0,n&&(D=null,y=f.ranges[0]||y,u.removeSelectionMarker(y)),u.once("mouseup",function(){var M=f.toOrientedRange();D&&M.isEmpty()&&g(D.cursor,M.cursor)?f.substractPoint(M.cursor):(n?f.substractPoint(y.cursor):y&&(u.removeSelectionMarker(y),f.addRange(y)),f.addRange(M)),u.$blockScrolling--,u.inVirtualSelectionMode=!1})}else if(w=="block"){r.stop(),u.inVirtualSelectionMode=!0;var S,L=[],_=function(){var M=u.renderer.pixelToScreenCoordinates(a,d),U=C.screenToDocumentPosition(M.row,M.column,M.offsetX);g(v,M)&&g(U,f.lead)||(v=M,u.$blockScrolling++,u.selection.moveToPosition(U),u.renderer.scrollCursorIntoView(),u.removeSelectionMarkers(L),L=f.rectangularRangeBlock(v,h),u.$mouseHandler.$clickSelection&&L.length==1&&L[0].isEmpty()&&(L[0]=u.$mouseHandler.$clickSelection.clone()),L.forEach(u.addSelectionMarker,u),u.updateSelectionMarkers(),u.$blockScrolling--)};u.$blockScrolling++,E&&!s?f.toSingleRange():!E&&s&&(S=f.toOrientedRange(),u.addSelectionMarker(S)),n?h=C.documentToScreenPosition(f.lead):f.moveToPosition(F),u.$blockScrolling--,v={row:-1,column:-1};var O=function(M){clearInterval(V),u.removeSelectionMarkers(L),L.length||(L=[f.toOrientedRange()]),u.$blockScrolling++,S&&(u.removeSelectionMarker(S),f.toSingleRange(S));for(var U=0;U<L.length;U++)f.addRange(L[U]);u.inVirtualSelectionMode=!1,u.$mouseHandler.$clickSelection=null,u.$blockScrolling--},z=_;B.capture(u.container,p,O);var V=setInterval(function(){z()},20);return r.preventDefault()}}}b.onMouseDown=l}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function($,b,K){b.defaultCommands=[{name:"addCursorAbove",exec:function(A){A.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(A){A.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(A){A.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(A){A.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(A){A.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(A){A.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(A){A.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(A){A.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(A){A.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(A){A.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(A){A.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],b.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(A){A.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(A){return A&&A.inMultiSelectMode}}];var B=$("../keyboard/hash_handler").HashHandler;b.keyboardHandler=new B(b.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function($,b,K){var B=$("./range_list").RangeList,A=$("./range").Range,g=$("./selection").Selection,l=$("./mouse/multi_select_handler").onMouseDown,r=$("./lib/event"),t=$("./lib/lang"),e=$("./commands/multi_select_commands");b.commands=e.defaultCommands.concat(e.multiSelectCommands);var n=$("./search").Search,i=new n;function s(c,m,a){return i.$options.wrap=!0,i.$options.needle=m,i.$options.backwards=a==-1,i.find(c)}var o=$("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(o.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(c,m){if(c){if(!this.inMultiSelectMode&&this.rangeCount===0){var a=this.toOrientedRange();if(this.rangeList.add(a),this.rangeList.add(c),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),m||this.fromOrientedRange(c);this.rangeList.removeAll(),this.rangeList.add(a),this.$onAddRange(a)}c.cursor||(c.cursor=c.end);var d=this.rangeList.add(c);return this.$onAddRange(c),d.length&&this.$onRemoveRange(d),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),m||this.fromOrientedRange(c)}},this.toSingleRange=function(c){c=c||this.ranges[0];var m=this.rangeList.removeAll();m.length&&this.$onRemoveRange(m),c&&this.fromOrientedRange(c)},this.substractPoint=function(c){var m=this.rangeList.substractPoint(c);if(m)return this.$onRemoveRange(m),m[0]},this.mergeOverlappingRanges=function(){var c=this.rangeList.merge();c.length?this.$onRemoveRange(c):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(c){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(c),this._signal("addRange",{range:c})},this.$onRemoveRange=function(c){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var m=this.rangeList.ranges.pop();c.push(m),this.rangeCount=0}for(var a=c.length;a--;){var d=this.ranges.indexOf(c[a]);this.ranges.splice(d,1)}this._signal("removeRange",{ranges:c}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),m=m||this.ranges[0],m&&!m.isEqual(this.getRange())&&this.fromOrientedRange(m)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new B,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var c=this.rangeList.ranges,m=c[c.length-1],a=A.fromPoints(c[0].start,m.end);this.toSingleRange(),this.setSelectionRange(a,m.cursor==m.start)}else{var a=this.getRange(),d=this.isBackwards(),p=a.start.row,C=a.end.row;if(p==C){if(d)var h=a.end,v=a.start;else var h=a.start,v=a.end;this.addRange(A.fromPoints(v,v)),this.addRange(A.fromPoints(h,h));return}var w=[],y=this.getLineRange(p,!0);y.start.column=a.start.column,w.push(y);for(var D=p+1;D<C;D++)w.push(this.getLineRange(D,!0));y=this.getLineRange(C,!0),y.end.column=a.end.column,w.push(y),w.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var c=this.rangeList.ranges,m=c[c.length-1],a=A.fromPoints(c[0].start,m.end);this.toSingleRange(),this.setSelectionRange(a,m.cursor==m.start)}else{var d=this.session.documentToScreenPosition(this.selectionLead),p=this.session.documentToScreenPosition(this.selectionAnchor),C=this.rectangularRangeBlock(d,p);C.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(c,m,a){var d=[],p=c.column<m.column;if(p)var C=c.column,h=m.column,v=c.offsetX,w=m.offsetX;else var C=m.column,h=c.column,v=m.offsetX,w=c.offsetX;var y=c.row<m.row;if(y)var D=c.row,S=m.row;else var D=m.row,S=c.row;C<0&&(C=0),D<0&&(D=0),D==S&&(a=!0);for(var L=D;L<=S;L++){var _=A.fromPoints(this.session.screenToDocumentPosition(L,C,v),this.session.screenToDocumentPosition(L,h,w));if(_.isEmpty()){if(O&&f(_.end,O))break;var O=_.end}_.cursor=p?_.start:_.end,d.push(_)}if(y&&d.reverse(),!a){for(var z=d.length-1;d[z].isEmpty()&&z>0;)z--;if(z>0)for(var V=0;d[V].isEmpty();)V++;for(var M=z;M>=V;M--)d[M].isEmpty()&&d.splice(M,1)}return d}}.call(g.prototype);var u=$("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(c){c.cursor||(c.cursor=c.end);var m=this.getSelectionStyle();return c.marker=this.session.addMarker(c,"ace_selection",m),this.session.$selectionMarkers.push(c),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,c},this.removeSelectionMarker=function(c){if(c.marker){this.session.removeMarker(c.marker);var m=this.session.$selectionMarkers.indexOf(c);m!=-1&&this.session.$selectionMarkers.splice(m,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(c){for(var m=this.session.$selectionMarkers,a=c.length;a--;){var d=c[a];if(d.marker){this.session.removeMarker(d.marker);var p=m.indexOf(d);p!=-1&&m.splice(p,1)}}this.session.selectionMarkerCount=m.length},this.$onAddRange=function(c){this.addSelectionMarker(c.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(c){this.removeSelectionMarkers(c.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(c){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(e.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(c){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(e.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(c){var m=c.command,a=c.editor;if(a.multiSelect){if(m.multiSelectAction)m.multiSelectAction=="forEach"?d=a.forEachSelection(m,c.args):m.multiSelectAction=="forEachLine"?d=a.forEachSelection(m,c.args,!0):m.multiSelectAction=="single"?(a.exitMultiSelectMode(),d=m.exec(a,c.args||{})):d=m.multiSelectAction(a,c.args||{});else{var d=m.exec(a,c.args||{});a.multiSelect.addRange(a.multiSelect.toOrientedRange()),a.multiSelect.mergeOverlappingRanges()}return d}},this.forEachSelection=function(c,m,a){if(!this.inVirtualSelectionMode){var d=a&&a.keepOrder,p=a==!0||a&&a.$byLines,C=this.session,h=this.selection,v=h.rangeList,w=(d?h:v).ranges,y;if(!w.length)return c.exec?c.exec(this,m||{}):c(this,m||{});var D=h._eventRegistry;h._eventRegistry={};var S=new g(C);this.inVirtualSelectionMode=!0;for(var L=w.length;L--;){if(p)for(;L>0&&w[L].start.row==w[L-1].end.row;)L--;S.fromOrientedRange(w[L]),S.index=L,this.selection=C.selection=S;var _=c.exec?c.exec(this,m||{}):c(this,m||{});!y&&_!==void 0&&(y=_),S.toOrientedRange(w[L])}S.detach(),this.selection=C.selection=h,this.inVirtualSelectionMode=!1,h._eventRegistry=D,h.mergeOverlappingRanges();var O=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),O&&O.from==O.to&&this.renderer.animateScrolling(O.from),y}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var c="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var m=this.multiSelect.rangeList.ranges,a=[],d=0;d<m.length;d++)a.push(this.session.getTextRange(m[d]));var p=this.session.getDocument().getNewLineCharacter();c=a.join(p),c.length==(a.length-1)*p.length&&(c="")}else this.selection.isEmpty()||(c=this.session.getTextRange(this.getSelectionRange()));return c},this.$checkMultiselectChange=function(c,m){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var a=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&m==this.multiSelect.anchor)return;var d=m==this.multiSelect.anchor?a.cursor==a.start?a.end:a.start:a.cursor;(d.row!=m.row||this.session.$clipPositionToDocument(d.row,d.column).column!=m.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(c,m,a){if(m=m||{},m.needle=c||m.needle,m.needle==null){var d=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();m.needle=this.session.getTextRange(d)}this.$search.set(m);var p=this.$search.findAll(this.session);if(!p.length)return 0;this.$blockScrolling+=1;var C=this.multiSelect;a||C.toSingleRange(p[0]);for(var h=p.length;h--;)C.addRange(p[h],!0);return d&&C.rangeList.rangeAtPoint(d.start)&&C.addRange(d,!0),this.$blockScrolling-=1,p.length},this.selectMoreLines=function(c,m){var a=this.selection.toOrientedRange(),d=a.cursor==a.end,p=this.session.documentToScreenPosition(a.cursor);this.selection.$desiredColumn&&(p.column=this.selection.$desiredColumn);var C=this.session.screenToDocumentPosition(p.row+c,p.column);if(a.isEmpty())var v=C;else var h=this.session.documentToScreenPosition(d?a.end:a.start),v=this.session.screenToDocumentPosition(h.row+c,h.column);if(d){var w=A.fromPoints(C,v);w.cursor=w.start}else{var w=A.fromPoints(v,C);w.cursor=w.end}if(w.desiredColumn=p.column,!this.selection.inMultiSelectMode)this.selection.addRange(a);else if(m)var y=a.cursor;this.selection.addRange(w),y&&this.selection.substractPoint(y)},this.transposeSelections=function(c){for(var m=this.session,a=m.multiSelect,d=a.ranges,p=d.length;p--;){var C=d[p];if(C.isEmpty()){var h=m.getWordRange(C.start.row,C.start.column);C.start.row=h.start.row,C.start.column=h.start.column,C.end.row=h.end.row,C.end.column=h.end.column}}a.mergeOverlappingRanges();for(var v=[],p=d.length;p--;){var C=d[p];v.unshift(m.getTextRange(C))}c<0?v.unshift(v.pop()):v.push(v.shift());for(var p=d.length;p--;){var C=d[p],h=C.clone();m.replace(C,v[p]),C.start.row=h.start.row,C.start.column=h.start.column}},this.selectMore=function(c,m,a){var d=this.session,p=d.multiSelect,C=p.toOrientedRange();if(!(C.isEmpty()&&(C=d.getWordRange(C.start.row,C.start.column),C.cursor=c==-1?C.start:C.end,this.multiSelect.addRange(C),a))){var h=d.getTextRange(C),v=s(d,h,c);v&&(v.cursor=c==-1?v.start:v.end,this.$blockScrolling+=1,this.session.unfold(v),this.multiSelect.addRange(v),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),m&&this.multiSelect.substractPoint(C.cursor)}},this.alignCursors=function(){var c=this.session,m=c.multiSelect,a=m.ranges,d=-1,p=a.filter(function(z){if(z.cursor.row==d)return!0;d=z.cursor.row});if(!a.length||p.length==a.length-1){var C=this.selection.getRange(),h=C.start.row,v=C.end.row,w=h==v;if(w){var y=this.session.getLength(),D;do D=this.session.getLine(v);while(/[=:]/.test(D)&&++v<y);do D=this.session.getLine(h);while(/[=:]/.test(D)&&--h>0);h<0&&(h=0),v>=y&&(v=y-1)}var S=this.session.removeFullLines(h,v);S=this.$reAlignText(S,w),this.session.insert({row:h,column:0},S.join(` `)+` `),w||(C.start.column=0,C.end.column=S[S.length-1].length),this.selection.setRange(C)}else{p.forEach(function(z){m.substractPoint(z.cursor)});var L=0,_=1/0,O=a.map(function(z){var V=z.cursor,M=c.getLine(V.row),U=M.substr(V.column).search(/\S/g);return U==-1&&(U=0),V.column>L&&(L=V.column),U<_&&(_=U),U});a.forEach(function(z,V){var M=z.cursor,U=L-M.column,T=O[V]-_;U>T?c.insert(M,t.stringRepeat(" ",U-T)):c.remove(new A(M.row,M.column,M.row,M.column-U+T)),z.start.column=z.end.column=L,z.start.row=z.end.row=M.row,z.cursor=z.end}),m.fromOrientedRange(a[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(c,m){var a=!0,d=!0,p,C,h;return c.map(function(S){var L=S.match(/(\s*)(.*?)(\s*)([=:].*)/);return L?p==null?(p=L[1].length,C=L[2].length,h=L[3].length,L):(p+C+h!=L[1].length+L[2].length+L[3].length&&(d=!1),p!=L[1].length&&(a=!1),p>L[1].length&&(p=L[1].length),C<L[2].length&&(C=L[2].length),h>L[3].length&&(h=L[3].length),L):[S]}).map(m?w:a?d?y:w:D);function v(S){return t.stringRepeat(" ",S)}function w(S){return S[2]?v(p)+S[2]+v(C-S[2].length+h)+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}function y(S){return S[2]?v(p+C-S[2].length)+S[2]+v(h," ")+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}function D(S){return S[2]?v(p)+S[2]+v(h)+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}}}).call(u.prototype);function f(c,m){return c.row==m.row&&c.column==m.column}b.onSessionChange=function(c){var m=c.session;m&&!m.multiSelect&&(m.$selectionMarkers=[],m.selection.$initRangeList(),m.multiSelect=m.selection),this.multiSelect=m&&m.multiSelect;var a=c.oldSession;a&&(a.multiSelect.off("addRange",this.$onAddRange),a.multiSelect.off("removeRange",this.$onRemoveRange),a.multiSelect.off("multiSelect",this.$onMultiSelect),a.multiSelect.off("singleSelect",this.$onSingleSelect),a.multiSelect.lead.off("change",this.$checkMultiselectChange),a.multiSelect.anchor.off("change",this.$checkMultiselectChange)),m&&(m.multiSelect.on("addRange",this.$onAddRange),m.multiSelect.on("removeRange",this.$onRemoveRange),m.multiSelect.on("multiSelect",this.$onMultiSelect),m.multiSelect.on("singleSelect",this.$onSingleSelect),m.multiSelect.lead.on("change",this.$checkMultiselectChange),m.multiSelect.anchor.on("change",this.$checkMultiselectChange)),m&&this.inMultiSelectMode!=m.selection.inMultiSelectMode&&(m.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function E(c){c.$multiselectOnSessionChange||(c.$onAddRange=c.$onAddRange.bind(c),c.$onRemoveRange=c.$onRemoveRange.bind(c),c.$onMultiSelect=c.$onMultiSelect.bind(c),c.$onSingleSelect=c.$onSingleSelect.bind(c),c.$multiselectOnSessionChange=b.onSessionChange.bind(c),c.$checkMultiselectChange=c.$checkMultiselectChange.bind(c),c.$multiselectOnSessionChange(c),c.on("changeSession",c.$multiselectOnSessionChange),c.on("mousedown",l),c.commands.addCommands(e.defaultCommands),F(c))}function F(c){var m=c.textInput.getElement(),a=!1;r.addListener(m,"keydown",function(p){var C=p.keyCode==18&&!(p.ctrlKey||p.shiftKey||p.metaKey);c.$blockSelectEnabled&&C?a||(c.renderer.setMouseCursor("crosshair"),a=!0):a&&d()}),r.addListener(m,"keyup",d),r.addListener(m,"blur",d);function d(p){a&&(c.renderer.setMouseCursor(""),a=!1)}}b.MultiSelect=E,$("./config").defineOptions(u.prototype,"editor",{enableMultiselect:{set:function(c){E(this),c?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",l)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",l))},value:!0},enableBlockSelect:{set:function(c){this.$blockSelectEnabled=c},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function($,b,K){"use strict";var B=$("../../range").Range,A=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(g,l,r){var t=g.getLine(r);return this.foldingStartMarker.test(t)?"start":l=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(t)?"end":""},this.getFoldWidgetRange=function(g,l,r){return null},this.indentationBlock=function(g,l,r){var t=/\S/,e=g.getLine(l),n=e.search(t);if(n!=-1){for(var i=r||e.length,s=g.getLength(),o=l,u=l;++l<s;){var f=g.getLine(l).search(t);if(f!=-1){if(f<=n)break;u=l}}if(u>o){var E=g.getLine(u).length;return new B(o,i,u,E)}}},this.openingBracketBlock=function(g,l,r,t,e){var n={row:r,column:t+1},i=g.$findClosingBracket(l,n,e);if(i){var s=g.foldWidgets[i.row];return s==null&&(s=g.getFoldWidget(i.row)),s=="start"&&i.row>n.row&&(i.row--,i.column=g.getLine(i.row).length),B.fromPoints(n,i)}},this.closingBracketBlock=function(g,l,r,t,e){var n={row:r,column:t},i=g.$findOpeningBracket(l,n);if(i)return i.column++,n.column--,B.fromPoints(i,n)}}).call(A.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function($,b,K){"use strict";b.isDark=!1,b.cssClass="ace-tm",b.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var B=$("../lib/dom");B.importCssString(b.cssText,b.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/dom"),g=$("./range").Range;function l(r){this.session=r,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}(function(){this.getRowLength=function(r){var t;return this.lineWidgets?t=this.lineWidgets[r]&&this.lineWidgets[r].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[r]?1+t:this.$wrapData[r].length+1+t},this.$getWidgetScreenLength=function(){var r=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(r+=t.rowCount)}),r},this.$onChangeEditor=function(r){this.attach(r.editor)},this.attach=function(r){r&&r.widgetManager&&r.widgetManager!=this&&r.widgetManager.detach(),this.editor!=r&&(this.detach(),this.editor=r,r&&(r.widgetManager=this,r.renderer.on("beforeRender",this.measureWidgets),r.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(r){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var e=this.session.lineWidgets;e&&e.forEach(function(n){n&&n.el&&n.el.parentNode&&(n._inDocument=!1,n.el.parentNode.removeChild(n.el))})}},this.updateOnFold=function(r,t){var e=t.lineWidgets;if(!(!e||!r.action)){for(var n=r.data,i=n.start.row,s=n.end.row,o=r.action=="add",u=i+1;u<s;u++)e[u]&&(e[u].hidden=o);e[s]&&(o?e[i]?e[s].hidden=o:e[i]=e[s]:(e[i]==e[s]&&(e[i]=void 0),e[s].hidden=o))}},this.updateOnChange=function(r){var t=this.session.lineWidgets;if(t){var e=r.start.row,n=r.end.row-e;if(n!==0)if(r.action=="remove"){var i=t.splice(e+1,n);i.forEach(function(o){o&&this.removeLineWidget(o)},this),this.$updateRows()}else{var s=new Array(n);s.unshift(e,0),t.splice.apply(t,s),this.$updateRows()}}},this.$updateRows=function(){var r=this.session.lineWidgets;if(r){var t=!0;r.forEach(function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget}),t&&(this.session.lineWidgets=null)}},this.addLineWidget=function(r){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[r.row];t&&(r.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[r.row]=r,r.session=this.session;var e=this.editor.renderer;r.html&&!r.el&&(r.el=A.createElement("div"),r.el.innerHTML=r.html),r.el&&(A.addCssClass(r.el,"ace_lineWidgetContainer"),r.el.style.position="absolute",r.el.style.zIndex=5,e.container.appendChild(r.el),r._inDocument=!0),r.coverGutter||(r.el.style.zIndex=3),r.pixelHeight==null&&(r.pixelHeight=r.el.offsetHeight),r.rowCount==null&&(r.rowCount=r.pixelHeight/e.layerConfig.lineHeight);var n=this.session.getFoldAt(r.row,0);if(r.$fold=n,n){var i=this.session.lineWidgets;r.row==n.end.row&&!i[n.start.row]?i[n.start.row]=r:r.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:r.row}}}),this.$updateRows(),this.renderWidgets(null,e),this.onWidgetChanged(r),r},this.removeLineWidget=function(r){if(r._inDocument=!1,r.session=null,r.el&&r.el.parentNode&&r.el.parentNode.removeChild(r.el),r.editor&&r.editor.destroy)try{r.editor.destroy()}catch{}if(this.session.lineWidgets){var t=this.session.lineWidgets[r.row];if(t==r)this.session.lineWidgets[r.row]=r.$oldWidget,r.$oldWidget&&this.onWidgetChanged(r.$oldWidget);else for(;t;){if(t.$oldWidget==r){t.$oldWidget=r.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:r.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(r){for(var t=this.session.lineWidgets,e=t&&t[r],n=[];e;)n.push(e),e=e.$oldWidget;return n},this.onWidgetChanged=function(r){this.session._changedWidgets.push(r),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(r,t){var e=this.session._changedWidgets,n=t.layerConfig;if(!(!e||!e.length)){for(var i=1/0,s=0;s<e.length;s++){var o=e[s];if(!(!o||!o.el)&&o.session==this.session){if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/n.characterWidth));var u=o.h/n.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}}i!=1/0&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},this.renderWidgets=function(r,t){var e=t.layerConfig,n=this.session.lineWidgets;if(n){for(var i=Math.min(this.firstRow,e.firstRow),s=Math.max(this.lastRow,e.lastRow,n.length);i>0&&!n[i];)i--;this.firstRow=e.firstRow,this.lastRow=e.lastRow,t.$cursorLayer.config=e;for(var o=i;o<=s;o++){var u=n[o];if(!(!u||!u.el)){if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var f=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(f+=e.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=f-e.offset+"px";var E=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(E-=t.scrollLeft),u.el.style.left=E+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=e.width+2*e.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}}}).call(l.prototype),b.LineWidgets=l}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function($,b,K){"use strict";var B=$("../line_widgets").LineWidgets,A=$("../lib/dom"),g=$("../range").Range;function l(t,e,n){for(var i=0,s=t.length-1;i<=s;){var o=i+s>>1,u=n(e,t[o]);if(u>0)i=o+1;else if(u<0)s=o-1;else return o}return-(i+1)}function r(t,e,n){var i=t.getAnnotations().sort(g.comparePoints);if(i.length){var s=l(i,{row:e,column:-1},g.comparePoints);s<0&&(s=-s-1),s>=i.length?s=n>0?0:i.length-1:s===0&&n<0&&(s=i.length-1);var o=i[s];if(!(!o||!n)){if(o.row===e){do o=i[s+=n];while(o&&o.row===e);if(!o)return i.slice()}var u=[];e=o.row;do u[n<0?"unshift":"push"](o),o=i[s+=n];while(o&&o.row==e);return u.length&&u}}}b.showErrorMarker=function(t,e){var n=t.session;n.widgetManager||(n.widgetManager=new B(n),n.widgetManager.attach(t));var i=t.getCursorPosition(),s=i.row,o=n.widgetManager.getWidgetsAtRow(s).filter(function(p){return p.type=="errorMarker"})[0];o?o.destroy():s-=e;var u=r(n,s,e),f;if(u){var E=u[0];i.column=(E.pos&&typeof E.column!="number"?E.pos.sc:E.column)||0,i.row=E.row,f=t.renderer.$gutterLayer.$annotations[i.row]}else{if(o)return;f={text:["Looks good!"],className:"ace_ok"}}t.session.unfold(i.row),t.selection.moveToPosition(i);var F={row:i.row,fixedWidth:!0,coverGutter:!0,el:A.createElement("div"),type:"errorMarker"},c=F.el.appendChild(A.createElement("div")),m=F.el.appendChild(A.createElement("div"));m.className="error_widget_arrow "+f.className;var a=t.renderer.$cursorLayer.getPixelPosition(i).left;m.style.left=a+t.renderer.gutterWidth-5+"px",F.el.className="error_widget_wrapper",c.className="error_widget "+f.className,c.innerHTML=f.text.join("<br>"),c.appendChild(A.createElement("div"));var d=function(p,C,h){if(C===0&&(h==="esc"||h==="return"))return F.destroy(),{command:"null"}};F.destroy=function(){t.$mouseHandler.isMousePressed||(t.keyBinding.removeKeyboardHandler(d),n.widgetManager.removeLineWidget(F),t.off("changeSelection",F.destroy),t.off("changeSession",F.destroy),t.off("mouseup",F.destroy),t.off("change",F.destroy))},t.keyBinding.addKeyboardHandler(d),t.on("changeSelection",F.destroy),t.on("changeSession",F.destroy),t.on("mouseup",F.destroy),t.on("change",F.destroy),t.session.widgetManager.addLineWidget(F),F.el.onmousedown=t.focus.bind(t),t.renderer.scrollCursorIntoView(null,.5,{bottom:F.el.offsetHeight})},A.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),ace.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/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function($,b,K){"use strict";$("./lib/fixoldbrowsers");var B=$("./lib/dom"),A=$("./lib/event"),g=$("./editor").Editor,l=$("./edit_session").EditSession,r=$("./undomanager").UndoManager,t=$("./virtual_renderer").VirtualRenderer;$("./worker/worker_client"),$("./keyboard/hash_handler"),$("./placeholder"),$("./multi_select"),$("./mode/folding/fold_mode"),$("./theme/textmate"),$("./ext/error_marker"),b.config=$("./config"),b.acequire=$,b.define=se.amdD,b.edit=function(e){if(typeof e=="string"){var n=e;if(e=document.getElementById(n),!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof g)return e.env.editor;var i="";if(e&&/input|textarea/i.test(e.tagName)){var s=e;i=s.value,e=B.createElement("pre"),s.parentNode.replaceChild(e,s)}else e&&(i=B.getInnerText(e),e.innerHTML="");var o=b.createEditSession(i),u=new g(new t(e));u.setSession(o);var f={document:o,editor:u,onResize:u.resize.bind(u,null)};return s&&(f.textarea=s),A.addListener(window,"resize",f.onResize),u.on("destroy",function(){A.removeListener(window,"resize",f.onResize),f.editor.container.env=null}),u.container.env=u.env=f,u},b.createEditSession=function(e,n){var i=new l(e,n);return i.setUndoManager(new r),i},b.EditSession=l,b.UndoManager=r,b.version="1.2.9"}),function(){ace.acequire(["ace/ace"],function($){$&&($.config.init(!0),$.define=ace.define),window.ace||(window.ace=$);for(var b in $)$.hasOwnProperty(b)&&(window.ace[b]=$[b])})}(),oe.exports=window.ace.acequire("ace/ace")}}]); //# sourceMappingURL=brace.9fd05ddde45998bb0dcb.js.map