mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-23 15:17:09 +00:00
35 lines
361 KiB
JavaScript
35 lines
361 KiB
JavaScript
function re(B,E){return E.forEach(function(K){K&&typeof K!="string"&&!Array.isArray(K)&&Object.keys(K).forEach(function($){if($!=="default"&&!($ in B)){var C=Object.getOwnPropertyDescriptor(K,$);Object.defineProperty(B,$,C.get?C:{enumerable:!0,get:function(){return K[$]}})}})}),Object.freeze(Object.defineProperty(B,Symbol.toStringTag,{value:"Module"}))}(function(){var B="ace",E=function(){return this}();!E&&typeof window!="undefined"&&(E=window);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 $=function(t,e,n){if(typeof e=="string"){var i=a(t,e);if(i!=null)return n&&n(),i}else if(Object.prototype.toString.call(e)==="[object Array]"){for(var r=[],o=0,u=e.length;o<u;++o){var f=a(t,e[o]);if(f==null&&C.original)return;r.push(f)}return n&&n.apply(null,r)||!0}},C=function(t,e){var n=$("",t,e);return n==null&&C.original?C.original.apply(this,arguments):n},d=function(t,e){if(e.indexOf("!")!==-1){var n=e.split("!");return d(t,n[0])+"!"+d(t,n[1])}if(e.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");for(e=i+"/"+e;e.indexOf(".")!==-1&&r!=e;){var r=e;e=e.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return e},a=function(t,e){e=d(t,e);var n=K.modules[e];if(!n){if(n=K.payloads[e],typeof n=="function"){var i={},r={id:e,uri:"",exports:i,packaged:!0},o=function(f,v){return $(e,f,v)},u=n(o,i,r);i=u||r.exports,K.modules[e]=i,delete K.payloads[e]}n=K.modules[e]=i||n}return n};function s(t){var e=E;t&&(E[t]||(E[t]={}),e=E[t]),(!e.define||!e.define.packaged)&&(K.original=e.define,e.define=K,e.define.packaged=!0),(!e.acequire||!e.acequire.packaged)&&(C.original=e.acequire,e.acequire=C,e.acequire.packaged=!0)}s(B)})();ace.define("ace/lib/regexp",["require","exports","module"],function(B,E,K){var $={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},C=$.exec.call(/()??/,"")[1]===void 0,d=function(){var t=/^/g;return $.test.call(t,""),!t.lastIndex}();if(d&&C)return;RegExp.prototype.exec=function(t){var e=$.exec.apply(this,arguments),n,i;if(typeof t=="string"&&e){if(!C&&e.length>1&&s(e,"")>-1&&(i=RegExp(this.source,$.replace.call(a(this),"g","")),$.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 r=1;r<e.length;r++)n=this._xregexp.captureNames[r-1],n&&(e[n]=e[r]);!d&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--}return e},d||(RegExp.prototype.test=function(t){var e=$.exec.call(this,t);return e&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--,!!e});function a(t){return(t.global?"g":"")+(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.extended?"x":"")+(t.sticky?"y":"")}function s(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,E,K){function $(){}Function.prototype.bind||(Function.prototype.bind=function(y){var x=this;if(typeof x!="function")throw new TypeError("Function.prototype.bind called on incompatible "+x);var R=s.call(arguments,1),T=function(){if(this instanceof T){var P=x.apply(this,R.concat(s.call(arguments)));return Object(P)===P?P:this}else return x.apply(y,R.concat(s.call(arguments)))};return x.prototype&&($.prototype=x.prototype,T.prototype=new $,$.prototype=null),T});var C=Function.prototype.call,d=Array.prototype,a=Object.prototype,s=d.slice,t=C.bind(a.toString),e=C.bind(a.hasOwnProperty),n,i,r,o,u;if((u=e(a,"__defineGetter__"))&&(n=C.bind(a.__defineGetter__),i=C.bind(a.__defineSetter__),r=C.bind(a.__lookupGetter__),o=C.bind(a.__lookupSetter__)),[1,2].splice(0).length!=2)if(function(){function M(R){var T=new Array(R+2);return T[0]=T[1]=0,T}var y=[],x;if(y.splice.apply(y,M(20)),y.splice.apply(y,M(26)),x=y.length,y.splice(5,0,"XXX"),x+1==y.length,x+1==y.length)return!0}()){var f=Array.prototype.splice;Array.prototype.splice=function(M,y){return arguments.length?f.apply(this,[M===void 0?0:M,y===void 0?this.length-M:y].concat(s.call(arguments,2))):[]}}else Array.prototype.splice=function(M,y){var x=this.length;M>0?M>x&&(M=x):M==null?M=0:M<0&&(M=Math.max(x+M,0)),M+y<x||(y=x-M);var R=this.slice(M,M+y),T=s.call(arguments,2),P=T.length;if(M===x)P&&this.push.apply(this,T);else{var N=Math.min(y,x-M),_=M+N,U=_+P-N,j=x-_,Q=x-N;if(U<_)for(var X=0;X<j;++X)this[U+X]=this[_+X];else if(U>_)for(X=j;X--;)this[U+X]=this[_+X];if(P&&M===Q)this.length=Q,this.push.apply(this,T);else for(this.length=Q+P,X=0;X<P;++X)this[M+X]=T[X]}return R};Array.isArray||(Array.isArray=function(y){return t(y)=="[object Array]"});var v=Object("a"),w=v[0]!="a"||!(0 in v);if(Array.prototype.forEach||(Array.prototype.forEach=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=arguments[1],P=-1,N=R.length>>>0;if(t(y)!="[object Function]")throw new TypeError;for(;++P<N;)P in R&&y.call(T,R[P],P,x)}),Array.prototype.map||(Array.prototype.map=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0,P=Array(T),N=arguments[1];if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");for(var _=0;_<T;_++)_ in R&&(P[_]=y.call(N,R[_],_,x));return P}),Array.prototype.filter||(Array.prototype.filter=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0,P=[],N,_=arguments[1];if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");for(var U=0;U<T;U++)U in R&&(N=R[U],y.call(_,N,U,x)&&P.push(N));return P}),Array.prototype.every||(Array.prototype.every=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0,P=arguments[1];if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");for(var N=0;N<T;N++)if(N in R&&!y.call(P,R[N],N,x))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0,P=arguments[1];if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");for(var N=0;N<T;N++)if(N in R&&y.call(P,R[N],N,x))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0;if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");if(!T&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var P=0,N;if(arguments.length>=2)N=arguments[1];else do{if(P in R){N=R[P++];break}if(++P>=T)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;P<T;P++)P in R&&(N=y.call(void 0,N,R[P],P,x));return N}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0;if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");if(!T&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var P,N=T-1;if(arguments.length>=2)P=arguments[1];else do{if(N in R){P=R[N--];break}if(--N<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do N in this&&(P=y.call(void 0,P,R[N],N,x));while(N--);return P}),(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)&&(Array.prototype.indexOf=function(y){var x=w&&t(this)=="[object String]"?this.split(""):z(this),R=x.length>>>0;if(!R)return-1;var T=0;for(arguments.length>1&&(T=H(arguments[1])),T=T>=0?T:Math.max(0,R+T);T<R;T++)if(T in x&&x[T]===y)return T;return-1}),(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)&&(Array.prototype.lastIndexOf=function(y){var x=w&&t(this)=="[object String]"?this.split(""):z(this),R=x.length>>>0;if(!R)return-1;var T=R-1;for(arguments.length>1&&(T=Math.min(T,H(arguments[1]))),T=T>=0?T:R-Math.abs(T);T>=0;T--)if(T in x&&y===x[T])return T;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(y){return y.__proto__||(y.constructor?y.constructor.prototype:a)}),!Object.getOwnPropertyDescriptor){var c="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(y,x){if(typeof y!="object"&&typeof y!="function"||y===null)throw new TypeError(c+y);if(!!e(y,x)){var R,T,P;if(R={enumerable:!0,configurable:!0},u){var N=y.__proto__;y.__proto__=a;var T=r(y,x),P=o(y,x);if(y.__proto__=N,T||P)return T&&(R.get=T),P&&(R.set=P),R}return R.value=y[x],R}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(y){return Object.keys(y)}),!Object.create){var m;Object.prototype.__proto__===null?m=function(){return{__proto__:null}}:m=function(){var M={};for(var y in M)M[y]=null;return M.constructor=M.hasOwnProperty=M.propertyIsEnumerable=M.isPrototypeOf=M.toLocaleString=M.toString=M.valueOf=M.__proto__=null,M},Object.create=function(y,x){var R;if(y===null)R=m();else{if(typeof y!="object")throw new TypeError("typeof prototype["+typeof y+"] != 'object'");var T=function(){};T.prototype=y,R=new T,R.__proto__=y}return x!==void 0&&Object.defineProperties(R,x),R}}function l(M){try{return Object.defineProperty(M,"sentinel",{}),"sentinel"in M}catch{}}if(Object.defineProperty){var g=l({}),A=typeof document=="undefined"||l(document.createElement("div"));if(!g||!A)var F=Object.defineProperty}if(!Object.defineProperty||F){var h="Property description must be an object: ",p="Object.defineProperty called on non-object: ",b="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(y,x,R){if(typeof y!="object"&&typeof y!="function"||y===null)throw new TypeError(p+y);if(typeof R!="object"&&typeof R!="function"||R===null)throw new TypeError(h+R);if(F)try{return F.call(Object,y,x,R)}catch{}if(e(R,"value"))if(u&&(r(y,x)||o(y,x))){var T=y.__proto__;y.__proto__=a,delete y[x],y[x]=R.value,y.__proto__=T}else y[x]=R.value;else{if(!u)throw new TypeError(b);e(R,"get")&&n(y,x,R.get),e(R,"set")&&i(y,x,R.set)}return y}}Object.defineProperties||(Object.defineProperties=function(y,x){for(var R in x)e(x,R)&&Object.defineProperty(y,R,x[R]);return y}),Object.seal||(Object.seal=function(y){return y}),Object.freeze||(Object.freeze=function(y){return y});try{Object.freeze(function(){})}catch{Object.freeze=function(x){return function(T){return typeof T=="function"?T:x(T)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(y){return y}),Object.isSealed||(Object.isSealed=function(y){return!1}),Object.isFrozen||(Object.isFrozen=function(y){return!1}),Object.isExtensible||(Object.isExtensible=function(y){if(Object(y)===y)throw new TypeError;for(var x="";e(y,x);)x+="?";y[x]=!0;var R=e(y,x);return delete y[x],R}),!Object.keys){var S=!0,k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],L=k.length;for(var D in{toString:null})S=!1;Object.keys=function(y){if(typeof y!="object"&&typeof y!="function"||y===null)throw new TypeError("Object.keys called on a non-object");var x=[];for(var R in y)e(y,R)&&x.push(R);if(S)for(var T=0,P=L;T<P;T++){var N=k[T];e(y,N)&&x.push(N)}return x}}Date.now||(Date.now=function(){return new Date().getTime()});var O=`
|
|
\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||O.trim()){O="["+O+"]";var I=new RegExp("^"+O+O+"*"),W=new RegExp(O+O+"*$");String.prototype.trim=function(){return String(this).replace(I,"").replace(W,"")}}function H(M){return M=+M,M!==M?M=0:M!==0&&M!==1/0&&M!==-(1/0)&&(M=(M>0||-1)*Math.floor(Math.abs(M))),M}var z=function(M){if(M==null)throw new TypeError("can't convert "+M+" to object");return Object(M)}});ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(B,E,K){B("./regexp"),B("./es5-shim")});ace.define("ace/lib/dom",["require","exports","module"],function(B,E,K){var $="http://www.w3.org/1999/xhtml";if(E.getDocumentHead=function(C){return C||(C=document),C.head||C.getElementsByTagName("head")[0]||C.documentElement},E.createElement=function(C,d){return document.createElementNS?document.createElementNS(d||$,C):document.createElement(C)},E.hasCssClass=function(C,d){var a=(C.className+"").split(/\s+/g);return a.indexOf(d)!==-1},E.addCssClass=function(C,d){E.hasCssClass(C,d)||(C.className+=" "+d)},E.removeCssClass=function(C,d){for(var a=C.className.split(/\s+/g);;){var s=a.indexOf(d);if(s==-1)break;a.splice(s,1)}C.className=a.join(" ")},E.toggleCssClass=function(C,d){for(var a=C.className.split(/\s+/g),s=!0;;){var t=a.indexOf(d);if(t==-1)break;s=!1,a.splice(t,1)}return s&&a.push(d),C.className=a.join(" "),s},E.setCssClass=function(C,d,a){a?E.addCssClass(C,d):E.removeCssClass(C,d)},E.hasCssString=function(C,d){var a=0,s;if(d=d||document,d.createStyleSheet&&(s=d.styleSheets)){for(;a<s.length;)if(s[a++].owningElement.id===C)return!0}else if(s=d.getElementsByTagName("style")){for(;a<s.length;)if(s[a++].id===C)return!0}return!1},E.importCssString=function(d,a,s){if(s=s||document,a&&E.hasCssString(a,s))return null;var t;a&&(d+=`
|
|
/*# sourceURL=ace/css/`+a+" */"),s.createStyleSheet?(t=s.createStyleSheet(),t.cssText=d,a&&(t.owningElement.id=a)):(t=E.createElement("style"),t.appendChild(s.createTextNode(d)),a&&(t.id=a),E.getDocumentHead(s).appendChild(t))},E.importCssStylsheet=function(C,d){if(d.createStyleSheet)d.createStyleSheet(C);else{var a=E.createElement("link");a.rel="stylesheet",a.href=C,E.getDocumentHead(d).appendChild(a)}},E.getInnerWidth=function(C){return parseInt(E.computedStyle(C,"paddingLeft"),10)+parseInt(E.computedStyle(C,"paddingRight"),10)+C.clientWidth},E.getInnerHeight=function(C){return parseInt(E.computedStyle(C,"paddingTop"),10)+parseInt(E.computedStyle(C,"paddingBottom"),10)+C.clientHeight},E.scrollbarWidth=function(C){var d=E.createElement("ace_inner");d.style.width="100%",d.style.minWidth="0px",d.style.height="200px",d.style.display="block";var a=E.createElement("ace_outer"),s=a.style;s.position="absolute",s.left="-10000px",s.overflow="hidden",s.width="200px",s.minWidth="0px",s.height="150px",s.display="block",a.appendChild(d);var t=C.documentElement;t.appendChild(a);var e=d.offsetWidth;s.overflow="scroll";var n=d.offsetWidth;return e==n&&(n=a.clientWidth),t.removeChild(a),e-n},typeof document=="undefined"){E.importCssString=function(){};return}window.pageYOffset!==void 0?(E.getPageScrollTop=function(){return window.pageYOffset},E.getPageScrollLeft=function(){return window.pageXOffset}):(E.getPageScrollTop=function(){return document.body.scrollTop},E.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?E.computedStyle=function(C,d){return d?(window.getComputedStyle(C,"")||{})[d]||"":window.getComputedStyle(C,"")||{}}:E.computedStyle=function(C,d){return d?C.currentStyle[d]:C.currentStyle},E.setInnerHtml=function(C,d){var a=C.cloneNode(!1);return a.innerHTML=d,C.parentNode.replaceChild(a,C),a},"textContent"in document.documentElement?(E.setInnerText=function(C,d){C.textContent=d},E.getInnerText=function(C){return C.textContent}):(E.setInnerText=function(C,d){C.innerText=d},E.getInnerText=function(C){return C.innerText}),E.getParentWindow=function(C){return C.defaultView||C.parentWindow}});ace.define("ace/lib/oop",["require","exports","module"],function(B,E,K){E.inherits=function($,C){$.super_=C,$.prototype=Object.create(C.prototype,{constructor:{value:$,enumerable:!1,writable:!0,configurable:!0}})},E.mixin=function($,C){for(var d in C)$[d]=C[d];return $},E.implement=function($,C){E.mixin($,C)}});ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(B,E,K){B("./fixoldbrowsers");var $=B("./oop"),C=function(){var d={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:"*"}},a,s;for(s in d.FUNCTION_KEYS)a=d.FUNCTION_KEYS[s].toLowerCase(),d[a]=parseInt(s,10);for(s in d.PRINTABLE_KEYS)a=d.PRINTABLE_KEYS[s].toLowerCase(),d[a]=parseInt(s,10);return $.mixin(d,d.MODIFIER_KEYS),$.mixin(d,d.PRINTABLE_KEYS),$.mixin(d,d.FUNCTION_KEYS),d.enter=d.return,d.escape=d.esc,d.del=d.delete,d[173]="-",function(){for(var t=["cmd","ctrl","alt","shift"],e=Math.pow(2,t.length);e--;)d.KEY_MODS[e]=t.filter(function(n){return e&d.KEY_MODS[n]}).join("-")+"-"}(),d.KEY_MODS[0]="",d.KEY_MODS[-1]="input-",d}();$.mixin(E,C),E.keyCodeToString=function(d){var a=C[d];return typeof a!="string"&&(a=String.fromCharCode(d)),a.toLowerCase()}});ace.define("ace/lib/useragent",["require","exports","module"],function(B,E,K){if(E.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},E.getOS=function(){return E.isMac?E.OS.MAC:E.isLinux?E.OS.LINUX:E.OS.WINDOWS},typeof navigator=="object"){var $=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),C=navigator.userAgent;E.isWin=$=="win",E.isMac=$=="mac",E.isLinux=$=="linux",E.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((C.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((C.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),E.isOldIE=E.isIE&&E.isIE<9,E.isGecko=E.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",E.isOldGecko=E.isGecko&&parseInt((C.match(/rv:(\d+)/)||[])[1],10)<4,E.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",E.isWebKit=parseFloat(C.split("WebKit/")[1])||void 0,E.isChrome=parseFloat(C.split(" Chrome/")[1])||void 0,E.isAIR=C.indexOf("AdobeAIR")>=0,E.isIPad=C.indexOf("iPad")>=0,E.isChromeOS=C.indexOf(" CrOS ")>=0,E.isIOS=/iPad|iPhone|iPod/.test(C)&&!window.MSStream,E.isIOS&&(E.isMac=!0)}});ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(B,E,K){var $=B("./keys"),C=B("./useragent"),d=null,a=0;E.addListener=function(i,r,o){if(i.addEventListener)return i.addEventListener(r,o,!1);if(i.attachEvent){var u=function(){o.call(i,window.event)};o._wrapper=u,i.attachEvent("on"+r,u)}},E.removeListener=function(i,r,o){if(i.removeEventListener)return i.removeEventListener(r,o,!1);i.detachEvent&&i.detachEvent("on"+r,o._wrapper||o)},E.stopEvent=function(i){return E.stopPropagation(i),E.preventDefault(i),!1},E.stopPropagation=function(i){i.stopPropagation?i.stopPropagation():i.cancelBubble=!0},E.preventDefault=function(i){i.preventDefault?i.preventDefault():i.returnValue=!1},E.getButton=function(i){return i.type=="dblclick"?0:i.type=="contextmenu"||C.isMac&&i.ctrlKey&&!i.altKey&&!i.shiftKey?2:i.preventDefault?i.button:{1:0,2:2,4:1}[i.button]},E.capture=function(i,r,o){function u(f){r&&r(f),o&&o(f),E.removeListener(document,"mousemove",r,!0),E.removeListener(document,"mouseup",u,!0),E.removeListener(document,"dragstart",u,!0)}return E.addListener(document,"mousemove",r,!0),E.addListener(document,"mouseup",u,!0),E.addListener(document,"dragstart",u,!0),u},E.addTouchMoveListener=function(i,r){var o,u;E.addListener(i,"touchstart",function(f){var v=f.touches,w=v[0];o=w.clientX,u=w.clientY}),E.addListener(i,"touchmove",function(f){var v=f.touches;if(!(v.length>1)){var w=v[0];f.wheelX=o-w.clientX,f.wheelY=u-w.clientY,o=w.clientX,u=w.clientY,r(f)}})},E.addMouseWheelListener=function(i,r){"onmousewheel"in i?E.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),r(o)}):"onwheel"in i?E.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}r(o)}):E.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),r(o)})},E.addMultiMouseDownListener=function(i,r,o,u){var f=0,v,w,c,m={2:"dblclick",3:"tripleclick",4:"quadclick"};function l(A){if(E.getButton(A)!==0?f=0:A.detail>1?(f++,f>4&&(f=1)):f=1,C.isIE){var F=Math.abs(A.clientX-v)>5||Math.abs(A.clientY-w)>5;(!c||F)&&(f=1),c&&clearTimeout(c),c=setTimeout(function(){c=null},r[f-1]||600),f==1&&(v=A.clientX,w=A.clientY)}if(A._clicks=f,o[u]("mousedown",A),f>4)f=0;else if(f>1)return o[u](m[f],A)}function g(A){f=2,c&&clearTimeout(c),c=setTimeout(function(){c=null},r[f-1]||600),o[u]("mousedown",A),o[u](m[f],A)}Array.isArray(i)||(i=[i]),i.forEach(function(A){E.addListener(A,"mousedown",l),C.isOldIE&&E.addListener(A,"dblclick",g)})};var s=C.isMac&&C.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)};E.getModifierString=function(i){return $.KEY_MODS[s(i)]};function t(i,r,o){var u=s(r);if(!C.isMac&&d){if(r.getModifierState&&(r.getModifierState("OS")||r.getModifierState("Win"))&&(u|=8),d.altGr)if((3&u)!=3)d.altGr=0;else return;if(o===18||o===17){var f="location"in r?r.location:r.keyLocation;if(o===17&&f===1)d[o]==1&&(a=r.timeStamp);else if(o===18&&u===3&&f===2){var v=r.timeStamp-a;v<50&&(d.altGr=!0)}}}if(o in $.MODIFIER_KEYS&&(o=-1),u&8&&o>=91&&o<=93&&(o=-1),!u&&o===13){var f="location"in r?r.location:r.keyLocation;if(f===3&&(i(r,u,-o),r.defaultPrevented))return}if(C.isChromeOS&&u&8){if(i(r,u,o),r.defaultPrevented)return;u&=-9}return!u&&!(o in $.FUNCTION_KEYS)&&!(o in $.PRINTABLE_KEYS)?!1:i(r,u,o)}E.addCommandKeyListener=function(i,r){var o=E.addListener;if(C.isOldGecko||C.isOpera&&!("KeyboardEvent"in window)){var u=null;o(i,"keydown",function(v){u=v.keyCode}),o(i,"keypress",function(v){return t(r,v,u)})}else{var f=null;o(i,"keydown",function(v){d[v.keyCode]=(d[v.keyCode]||0)+1;var w=t(r,v,v.keyCode);return f=v.defaultPrevented,w}),o(i,"keypress",function(v){f&&(v.ctrlKey||v.altKey||v.shiftKey||v.metaKey)&&(E.stopEvent(v),f=null)}),o(i,"keyup",function(v){d[v.keyCode]=null}),d||(e(),o(window,"focus",e))}};function e(){d=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!C.isOldIE){var n=1;E.nextTick=function(i,r){r=r||window;var o="zero-timeout-message-"+n;E.addListener(r,"message",function u(f){f.data==o&&(E.stopPropagation(f),E.removeListener(r,"message",u),i())}),r.postMessage(o,"*")}}E.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),E.nextFrame?E.nextFrame=E.nextFrame.bind(window):E.nextFrame=function(i){setTimeout(i,17)}});ace.define("ace/lib/lang",["require","exports","module"],function(B,E,K){E.last=function(d){return d[d.length-1]},E.stringReverse=function(d){return d.split("").reverse().join("")},E.stringRepeat=function(d,a){for(var s="";a>0;)a&1&&(s+=d),(a>>=1)&&(d+=d);return s};var $=/^\s\s*/,C=/\s\s*$/;E.stringTrimLeft=function(d){return d.replace($,"")},E.stringTrimRight=function(d){return d.replace(C,"")},E.copyObject=function(d){var a={};for(var s in d)a[s]=d[s];return a},E.copyArray=function(d){for(var a=[],s=0,t=d.length;s<t;s++)d[s]&&typeof d[s]=="object"?a[s]=this.copyObject(d[s]):a[s]=d[s];return a},E.deepCopy=function d(a){if(typeof a!="object"||!a)return a;var s;if(Array.isArray(a)){s=[];for(var t=0;t<a.length;t++)s[t]=d(a[t]);return s}if(Object.prototype.toString.call(a)!=="[object Object]")return a;s={};for(var t in a)s[t]=d(a[t]);return s},E.arrayToMap=function(d){for(var a={},s=0;s<d.length;s++)a[d[s]]=1;return a},E.createMap=function(d){var a=Object.create(null);for(var s in d)a[s]=d[s];return a},E.arrayRemove=function(d,a){for(var s=0;s<=d.length;s++)a===d[s]&&d.splice(s,1)},E.escapeRegExp=function(d){return d.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},E.escapeHTML=function(d){return d.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},E.getMatchOffsets=function(d,a){var s=[];return d.replace(a,function(t){s.push({offset:arguments[arguments.length-2],length:t.length})}),s},E.deferredCall=function(d){var a=null,s=function(){a=null,d()},t=function(e){return t.cancel(),a=setTimeout(s,e||0),t};return t.schedule=t,t.call=function(){return this.cancel(),d(),t},t.cancel=function(){return clearTimeout(a),a=null,t},t.isPending=function(){return a},t},E.delayedCall=function(d,a){var s=null,t=function(){s=null,d()},e=function(n){s==null&&(s=setTimeout(t,n||a))};return e.delay=function(n){s&&clearTimeout(s),s=setTimeout(t,n||a)},e.schedule=e,e.call=function(){this.cancel(),d()},e.cancel=function(){s&&clearTimeout(s),s=null},e.isPending=function(){return s},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,E,K){var $=B("../lib/event"),C=B("../lib/useragent"),d=B("../lib/dom"),a=B("../lib/lang"),s=B("../lib/keys"),t=s.KEY_MODS,e=C.isChrome<18,n=C.isIE,i=function(r,o){var u=d.createElement("textarea");u.className=C.isIOS?"ace_text-input ace_text-input-ios":"ace_text-input",C.isTouchPad&&u.setAttribute("x-palm-disable-auto-cap",!0),u.setAttribute("wrap","off"),u.setAttribute("autocorrect","off"),u.setAttribute("autocapitalize","off"),u.setAttribute("spellcheck",!1),u.style.opacity="0",r.insertBefore(u,r.firstChild);var f=`
|
|
aaaa a
|
|
`,v=!1,w=!1,c=!1,m=!1,l="",g=!0;try{var A=document.activeElement===u}catch{}$.addListener(u,"blur",function(V){o.onBlur(V),A=!1}),$.addListener(u,"focus",function(V){A=!0,o.onFocus(V),p()}),this.focus=function(){if(l)return u.focus();u.style.position="fixed",u.focus()},this.blur=function(){u.blur()},this.isFocused=function(){return A};var F=a.delayedCall(function(){A&&p(g)}),h=a.delayedCall(function(){m||(u.value=f,A&&p())});function p(V){if(!m){if(m=!0,L)G=0,Y=V?0:u.value.length-1;else var G=4,Y=5;try{u.setSelectionRange(G,Y)}catch{}m=!1}}function b(){m||(u.value=f,C.isWebKit&&h.schedule())}C.isWebKit||o.addEventListener("changeSelection",function(){o.selection.isEmpty()!=g&&(g=!g,F.schedule())}),b(),A&&o.onFocus();var S=function(V){return V.selectionStart===0&&V.selectionEnd===V.value.length},k=function(V){S(u)?(o.selectAll(),p()):L&&p(o.selection.isEmpty())},L=null;this.setInputHandler=function(V){L=V},this.getInputHandler=function(){return L};var D=!1,O=function(V){u.selectionStart===4&&u.selectionEnd===5||(L&&(V=L(V),L=null),c?(p(),V&&o.onPaste(V),c=!1):V==f.substr(0)&&u.selectionStart===4?D?o.execCommand("del",{source:"ace"}):o.execCommand("backspace",{source:"ace"}):v||(V.substring(0,9)==f&&V.length>f.length?V=V.substr(9):V.substr(0,4)==f.substr(0,4)?V=V.substr(4,V.length-f.length+1):V.charAt(V.length-1)==f.charAt(0)&&(V=V.slice(0,-1)),V==f.charAt(0)||V.charAt(V.length-1)==f.charAt(0)&&(V=V.slice(0,-1)),V&&o.onTextInput(V)),v&&(v=!1),D&&(D=!1))},I=function(V){if(!m){var G=u.value;O(G),b()}},W=function(V,G,Y){var Z=V.clipboardData||window.clipboardData;if(!(!Z||e)){var J=n||Y?"Text":"text/plain";try{return G?Z.setData(J,G)!==!1:Z.getData(J)}catch(q){if(!Y)return W(q,G,!0)}}},H=function(V,G){var Y=o.getCopyText();if(!Y)return $.preventDefault(V);W(V,Y)?(C.isIOS&&(w=G,u.value=`
|
|
aa`+Y+`a a
|
|
`,u.setSelectionRange(4,4+Y.length),v={value:Y}),G?o.onCut():o.onCopy(),C.isIOS||$.preventDefault(V)):(v=!0,u.value=Y,u.select(),setTimeout(function(){v=!1,b(),p(),G?o.onCut():o.onCopy()}))},z=function(V){H(V,!0)},M=function(V){H(V,!1)},y=function(V){var G=W(V);typeof G=="string"?(G&&o.onPaste(G,V),C.isIE&&setTimeout(p),$.preventDefault(V)):(u.value="",c=!0)};$.addCommandKeyListener(u,o.onCommandKey.bind(o)),$.addListener(u,"select",k),$.addListener(u,"input",I),$.addListener(u,"cut",z),$.addListener(u,"copy",M),$.addListener(u,"paste",y);var x=function(V){m||!o.onCompositionStart||o.$readOnly||(m={},m.canUndo=o.session.$undoManager,o.onCompositionStart(),setTimeout(R,0),o.on("mousedown",T),m.canUndo&&!o.selection.isEmpty()&&(o.insert(""),o.session.markUndoGroup(),o.selection.clearSelection()),o.session.markUndoGroup())},R=function(){if(!(!m||!o.onCompositionUpdate||o.$readOnly)){var V=u.value.replace(/\x01/g,"");if(m.lastValue!==V&&(o.onCompositionUpdate(V),m.lastValue&&o.undo(),m.canUndo&&(m.lastValue=V),m.lastValue)){var G=o.selection.getRange();o.insert(m.lastValue),o.session.markUndoGroup(),m.range=o.selection.getRange(),o.selection.setRange(G),o.selection.clearSelection()}}},T=function(V){if(!(!o.onCompositionEnd||o.$readOnly)){var G=m;m=!1;var Y=setTimeout(function(){Y=null;var J=u.value.replace(/\x01/g,"");m||(J==G.lastValue?b():!G.lastValue&&J&&(b(),O(J)))});L=function(q){return Y&&clearTimeout(Y),q=q.replace(/\x01/g,""),q==G.lastValue?"":(G.lastValue&&Y&&o.undo(),q)},o.onCompositionEnd(),o.removeListener("mousedown",T),V.type=="compositionend"&&G.range&&o.selection.setRange(G.range);var Z=!!C.isChrome&&C.isChrome>=53||!!C.isWebKit&&C.isWebKit>=603;Z&&I()}},P=a.delayedCall(R,50);$.addListener(u,"compositionstart",x),C.isGecko?$.addListener(u,"text",function(){P.schedule()}):($.addListener(u,"keyup",function(){P.schedule()}),$.addListener(u,"keydown",function(){P.schedule()})),$.addListener(u,"compositionend",T),this.getElement=function(){return u},this.setReadOnly=function(V){u.readOnly=V},this.onContextMenu=function(V){D=!0,p(o.selection.isEmpty()),o._emit("nativecontextmenu",{target:o,domEvent:V}),this.moveToMouse(V,!0)},this.moveToMouse=function(V,G){l||(l=u.style.cssText),u.style.cssText=(G?"z-index:100000;":"")+"height:"+u.style.height+";"+(C.isIE?"opacity:0.1;":"");var Y=o.container.getBoundingClientRect(),Z=d.computedStyle(o.container),J=Y.top+(parseInt(Z.borderTopWidth)||0),q=Y.left+(parseInt(Y.borderLeftWidth)||0),ne=Y.bottom-J-u.clientHeight-2,ee=function(te){u.style.left=te.clientX-q-2+"px",u.style.top=Math.min(te.clientY-J-2,ne)+"px"};ee(V),V.type=="mousedown"&&(o.renderer.$keepTextAreaAtCursor&&(o.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),C.isWin&&$.capture(o.container,ee,_))},this.onContextMenuClose=_;var N;function _(){clearTimeout(N),N=setTimeout(function(){l&&(u.style.cssText=l,l=""),o.renderer.$keepTextAreaAtCursor==null&&(o.renderer.$keepTextAreaAtCursor=!0,o.renderer.$moveTextAreaToCursor())},0)}var U=function(V){o.textInput.onContextMenu(V),_()};if($.addListener(u,"mouseup",U),$.addListener(u,"mousedown",function(V){V.preventDefault(),_()}),$.addListener(o.renderer.scroller,"contextmenu",U),$.addListener(u,"contextmenu",U),C.isIOS){var j=null,Q=!1;r.addEventListener("keydown",function(V){j&&clearTimeout(j),Q=!0}),r.addEventListener("keyup",function(V){j=setTimeout(function(){Q=!1},100)});var X=function(V){if(document.activeElement===u&&!Q){if(w)return setTimeout(function(){w=!1},100);var G=u.selectionStart,Y=u.selectionEnd;if(u.setSelectionRange(4,5),G==Y)switch(G){case 0:o.onCommandKey(null,0,s.up);break;case 1:o.onCommandKey(null,0,s.home);break;case 2:o.onCommandKey(null,t.option,s.left);break;case 4:o.onCommandKey(null,0,s.left);break;case 5:o.onCommandKey(null,0,s.right);break;case 7:o.onCommandKey(null,t.option,s.right);break;case 8:o.onCommandKey(null,0,s.end);break;case 9:o.onCommandKey(null,0,s.down);break}else{switch(Y){case 6:o.onCommandKey(null,t.shift,s.right);break;case 7:o.onCommandKey(null,t.shift|t.option,s.right);break;case 8:o.onCommandKey(null,t.shift,s.end);break;case 9:o.onCommandKey(null,t.shift,s.down);break}switch(G){case 0:o.onCommandKey(null,t.shift,s.up);break;case 1:o.onCommandKey(null,t.shift,s.home);break;case 2:o.onCommandKey(null,t.shift|t.option,s.left);break;case 3:o.onCommandKey(null,t.shift,s.left);break}}}};document.addEventListener("selectionchange",X),o.on("destroy",function(){document.removeEventListener("selectionchange",X)})}};E.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,E,K){var $=B("../lib/event"),C=B("../lib/useragent"),d=B("../lib/dom"),a=B("../lib/lang"),s=C.isChrome<18,t=C.isIE,e=B("./textinput_ios").TextInput,n=function(i,r){if(C.isIOS)return e.call(this,i,r);var o=d.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,v=!1,w=!1,c="",m=!0;try{var l=document.activeElement===o}catch{}$.addListener(o,"blur",function(_){r.onBlur(_),l=!1}),$.addListener(o,"focus",function(_){l=!0,r.onFocus(_),F()}),this.focus=function(){if(c)return o.focus();var _=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=_)},0)},this.blur=function(){o.blur()},this.isFocused=function(){return l};var g=a.delayedCall(function(){l&&F(m)}),A=a.delayedCall(function(){w||(o.value=u,l&&F())});function F(_){if(!w){if(w=!0,S)var U=0,j=_?0:o.value.length-1;else var U=_?2:1,j=2;try{o.setSelectionRange(U,j)}catch{}w=!1}}function h(){w||(o.value=u,C.isWebKit&&A.schedule())}C.isWebKit||r.addEventListener("changeSelection",function(){r.selection.isEmpty()!=m&&(m=!m,g.schedule())}),h(),l&&r.onFocus();var p=function(_){return _.selectionStart===0&&_.selectionEnd===_.value.length},b=function(_){f?f=!1:p(o)?(r.selectAll(),F()):S&&F(r.selection.isEmpty())},S=null;this.setInputHandler=function(_){S=_},this.getInputHandler=function(){return S};var k=!1,L=function(_){S&&(_=S(_),S=null),v?(F(),_&&r.onPaste(_),v=!1):_==u.charAt(0)?k?r.execCommand("del",{source:"ace"}):r.execCommand("backspace",{source:"ace"}):(_.substring(0,2)==u?_=_.substr(2):_.charAt(0)==u.charAt(0)?_=_.substr(1):_.charAt(_.length-1)==u.charAt(0)&&(_=_.slice(0,-1)),_.charAt(_.length-1)==u.charAt(0)&&(_=_.slice(0,-1)),_&&r.onTextInput(_)),k&&(k=!1)},D=function(_){if(!w){var U=o.value;L(U),h()}},O=function(_,U,j){var Q=_.clipboardData||window.clipboardData;if(!(!Q||s)){var X=t||j?"Text":"text/plain";try{return U?Q.setData(X,U)!==!1:Q.getData(X)}catch(V){if(!j)return O(V,U,!0)}}},I=function(_,U){var j=r.getCopyText();if(!j)return $.preventDefault(_);O(_,j)?(U?r.onCut():r.onCopy(),$.preventDefault(_)):(f=!0,o.value=j,o.select(),setTimeout(function(){f=!1,h(),F(),U?r.onCut():r.onCopy()}))},W=function(_){I(_,!0)},H=function(_){I(_,!1)},z=function(_){var U=O(_);typeof U=="string"?(U&&r.onPaste(U,_),C.isIE&&setTimeout(F),$.preventDefault(_)):(o.value="",v=!0)};$.addCommandKeyListener(o,r.onCommandKey.bind(r)),$.addListener(o,"select",b),$.addListener(o,"input",D),$.addListener(o,"cut",W),$.addListener(o,"copy",H),$.addListener(o,"paste",z),(!("oncut"in o)||!("oncopy"in o)||!("onpaste"in o))&&$.addListener(i,"keydown",function(_){if(!(C.isMac&&!_.metaKey||!_.ctrlKey))switch(_.keyCode){case 67:H(_);break;case 86:z(_);break;case 88:W(_);break}});var M=function(_){w||!r.onCompositionStart||r.$readOnly||(w={},w.canUndo=r.session.$undoManager,r.onCompositionStart(),setTimeout(y,0),r.on("mousedown",x),w.canUndo&&!r.selection.isEmpty()&&(r.insert(""),r.session.markUndoGroup(),r.selection.clearSelection()),r.session.markUndoGroup())},y=function(){if(!(!w||!r.onCompositionUpdate||r.$readOnly)){var _=o.value.replace(/\u2028/g,"");if(w.lastValue!==_&&(r.onCompositionUpdate(_),w.lastValue&&r.undo(),w.canUndo&&(w.lastValue=_),w.lastValue)){var U=r.selection.getRange();r.insert(w.lastValue),r.session.markUndoGroup(),w.range=r.selection.getRange(),r.selection.setRange(U),r.selection.clearSelection()}}},x=function(_){if(!(!r.onCompositionEnd||r.$readOnly)){var U=w;w=!1;var j=setTimeout(function(){j=null;var X=o.value.replace(/\u2028/g,"");w||(X==U.lastValue?h():!U.lastValue&&X&&(h(),L(X)))});S=function(V){return j&&clearTimeout(j),V=V.replace(/\u2028/g,""),V==U.lastValue?"":(U.lastValue&&j&&r.undo(),V)},r.onCompositionEnd(),r.removeListener("mousedown",x),_.type=="compositionend"&&U.range&&r.selection.setRange(U.range);var Q=!!C.isChrome&&C.isChrome>=53||!!C.isWebKit&&C.isWebKit>=603;Q&&D()}},R=a.delayedCall(y,50);$.addListener(o,"compositionstart",M),C.isGecko?$.addListener(o,"text",function(){R.schedule()}):($.addListener(o,"keyup",function(){R.schedule()}),$.addListener(o,"keydown",function(){R.schedule()})),$.addListener(o,"compositionend",x),this.getElement=function(){return o},this.setReadOnly=function(_){o.readOnly=_},this.onContextMenu=function(_){k=!0,F(r.selection.isEmpty()),r._emit("nativecontextmenu",{target:r,domEvent:_}),this.moveToMouse(_,!0)},this.moveToMouse=function(_,U){c||(c=o.style.cssText),o.style.cssText=(U?"z-index:100000;":"")+"height:"+o.style.height+";"+(C.isIE?"opacity:0.1;":"");var j=r.container.getBoundingClientRect(),Q=d.computedStyle(r.container),X=j.top+(parseInt(Q.borderTopWidth)||0),V=j.left+(parseInt(j.borderLeftWidth)||0),G=j.bottom-X-o.clientHeight-2,Y=function(Z){o.style.left=Z.clientX-V-2+"px",o.style.top=Math.min(Z.clientY-X-2,G)+"px"};Y(_),_.type=="mousedown"&&(r.renderer.$keepTextAreaAtCursor&&(r.renderer.$keepTextAreaAtCursor=null),clearTimeout(T),C.isWin&&$.capture(r.container,Y,P))},this.onContextMenuClose=P;var T;function P(){clearTimeout(T),T=setTimeout(function(){c&&(o.style.cssText=c,c=""),r.renderer.$keepTextAreaAtCursor==null&&(r.renderer.$keepTextAreaAtCursor=!0,r.renderer.$moveTextAreaToCursor())},0)}var N=function(_){r.textInput.onContextMenu(_),P()};$.addListener(o,"mouseup",N),$.addListener(o,"mousedown",function(_){_.preventDefault(),P()}),$.addListener(r.renderer.scroller,"contextmenu",N),$.addListener(o,"contextmenu",N)};E.TextInput=n});ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(B,E,K){B("../lib/dom"),B("../lib/event");var $=B("../lib/useragent"),C=0,d=250;function a(e){e.$clickSelection=null;var n=e.editor;n.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),n.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),n.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),n.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),n.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),n.setDefaultHandler("touchmove",this.onTouchMove.bind(e));var i=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];i.forEach(function(r){e[r]=this[r]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}(function(){this.onMouseDown=function(e){var n=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,o=e.getButton();if(o!==0){var u=r.getSelectionRange(),f=u.isEmpty();r.$blockScrolling++,(f||o==1)&&r.selection.moveToPosition(i),r.$blockScrolling--,o==2&&(r.textInput.onContextMenu(e.domEvent),$.isMozilla||e.preventDefault());return}if(this.mousedownEvent.time=Date.now(),n&&!r.isFocused()&&(r.focus(),this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(e);return}return this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,n){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):n||i.selection.moveToPosition(e),n||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,n=this.editor,i=n.renderer.screenToTextCoordinates(this.x,this.y);if(n.$blockScrolling++,this.$clickSelection){var r=this.$clickSelection.comparePoint(i);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var o=t(this.$clickSelection,i);i=o.cursor,e=o.anchor}n.selection.setSelectionAnchor(e.row,e.column)}n.selection.selectToPosition(i),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var n,i=this.editor,r=i.renderer.screenToTextCoordinates(this.x,this.y),o=i.selection[e](r.row,r.column);if(i.$blockScrolling++,this.$clickSelection){var u=this.$clickSelection.comparePoint(o.start),f=this.$clickSelection.comparePoint(o.end);if(u==-1&&f<=0)n=this.$clickSelection.end,(o.end.row!=r.row||o.end.column!=r.column)&&(r=o.start);else if(f==1&&u>=0)n=this.$clickSelection.start,(o.start.row!=r.row||o.start.column!=r.column)&&(r=o.end);else if(u==-1&&f==1)r=o.end,n=o.start;else{var v=t(this.$clickSelection,r);r=v.cursor,n=v.anchor}i.selection.setSelectionAnchor(n.row,n.column)}i.selection.selectToPosition(r),i.$blockScrolling--,i.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 e=s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),n=Date.now();(e>C||n-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var n=e.getDocumentPosition(),i=this.editor,r=i.session,o=r.getBracketRange(n);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=i.selection.getWordRange(n.row,n.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},this.onTripleClick=function(e){var n=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var r=i.getSelectionRange();r.isMultiLine()&&r.contains(n.row,n.column)?(this.$clickSelection=i.selection.getLineRange(r.start.row),this.$clickSelection.end=i.selection.getLineRange(r.end.row).end):this.$clickSelection=i.selection.getLineRange(n.row),this.select()},this.onQuadClick=function(e){var n=this.editor;n.selectAll(),this.$clickSelection=n.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var n=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,r=e.domEvent.timeStamp,o=r-i.t,u=e.wheelX/o,f=e.wheelY/o;o<d&&(u=(u+i.vx)/2,f=(f+i.vy)/2);var v=Math.abs(u/f),w=!1;if(v>=1&&n.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(w=!0),v<=1&&n.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(w=!0),w)i.allowed=r;else if(r-i.allowed<d){var c=Math.abs(u)<=1.1*Math.abs(i.vx)&&Math.abs(f)<=1.1*Math.abs(i.vy);c?(w=!0,i.allowed=r):i.allowed=0}if(i.t=r,i.vx=u,i.vy=f,w)return n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(a.prototype),E.DefaultHandlers=a;function s(e,n,i,r){return Math.sqrt(Math.pow(i-e,2)+Math.pow(r-n,2))}function t(e,n){if(e.start.row==e.end.row)var i=2*n.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var i=n.column-4;else var i=2*n.row-e.start.row-e.end.row;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}});ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(B,E,K){B("./lib/oop");var $=B("./lib/dom");function C(d){this.isOpen=!1,this.$element=null,this.$parentNode=d}(function(){this.$init=function(){return this.$element=$.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(d){$.setInnerText(this.getElement(),d)},this.setHtml=function(d){this.getElement().innerHTML=d},this.setPosition=function(d,a){this.getElement().style.left=d+"px",this.getElement().style.top=a+"px"},this.setClassName=function(d){$.addCssClass(this.getElement(),d)},this.show=function(d,a,s){d!=null&&this.setText(d),a!=null&&s!=null&&this.setPosition(a,s),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(C.prototype),E.Tooltip=C});ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(B,E,K){var $=B("../lib/dom"),C=B("../lib/oop"),d=B("../lib/event"),a=B("../tooltip").Tooltip;function s(e){var n=e.editor,i=n.renderer.$gutterLayer,r=new t(n.container);e.editor.setDefaultHandler("guttermousedown",function(m){if(!(!n.isFocused()||m.getButton()!=0)){var l=i.getRegion(m);if(l!="foldWidgets"){var g=m.getDocumentPosition().row,A=n.session.selection;if(m.getShiftKey())A.selectTo(g,0);else{if(m.domEvent.detail==2)return n.selectAll(),m.preventDefault();e.$clickSelection=n.selection.getLineRange(g)}return e.setState("selectByLines"),e.captureMouse(m),m.preventDefault()}}});var o,u,f;function v(){var m=u.getDocumentPosition().row,l=i.$annotations[m];if(!l)return w();var g=n.session.getLength();if(m==g){var A=n.renderer.pixelToScreenCoordinates(0,u.y).row,F=u.$pos;if(A>n.session.documentToScreenRow(F.row,F.column))return w()}if(f!=l)if(f=l.text.join("<br/>"),r.setHtml(f),r.show(),n._signal("showGutterTooltip",r),n.on("mousewheel",w),e.$tooltipFollowsMouse)c(u);else{var h=u.domEvent.target,p=h.getBoundingClientRect(),b=r.getElement().style;b.left=p.right+"px",b.top=p.bottom+"px"}}function w(){o&&(o=clearTimeout(o)),f&&(r.hide(),f=null,n._signal("hideGutterTooltip",r),n.removeEventListener("mousewheel",w))}function c(m){r.setPosition(m.x,m.y)}e.editor.setDefaultHandler("guttermousemove",function(m){var l=m.domEvent.target||m.domEvent.srcElement;if($.hasCssClass(l,"ace_fold-widget"))return w();f&&e.$tooltipFollowsMouse&&c(m),u=m,!o&&(o=setTimeout(function(){o=null,u&&!e.isMousePressed?v():w()},50))}),d.addListener(n.renderer.$gutter,"mouseout",function(m){u=null,!(!f||o)&&(o=setTimeout(function(){o=null,w()},50))}),n.on("changeSession",w)}function t(e){a.call(this,e)}C.inherits(t,a),function(){this.setPosition=function(e,n){var i=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),u=this.getHeight();e+=15,n+=15,e+o>i&&(e-=e+o-i),n+u>r&&(n-=20+u),a.prototype.setPosition.call(this,e,n)}}.call(t.prototype),E.GutterHandler=s});ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(B,E,K){var $=B("../lib/event"),C=B("../lib/useragent"),d=E.MouseEvent=function(a,s){this.domEvent=a,this.editor=s,this.x=this.clientX=a.clientX,this.y=this.clientY=a.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){$.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){$.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 a=this.editor,s=a.getSelectionRange();if(s.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=s.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return $.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=C.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(d.prototype)});ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(B,E,K){var $=B("../lib/dom"),C=B("../lib/event"),d=B("../lib/useragent"),a=200,s=200,t=5;function e(i){var r=i.editor,o=$.createElement("img");o.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",d.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(y){i[y]=this[y]},this),r.addEventListener("mousedown",this.onMouseDown.bind(i));var f=r.container,v,w,c,m,l,g,A=0,F,h,p,b,S;this.onDragStart=function(y){if(this.cancelDrag||!f.draggable){var x=this;return setTimeout(function(){x.startSelect(),x.captureMouse(y)},0),y.preventDefault()}l=r.getSelectionRange();var R=y.dataTransfer;R.effectAllowed=r.getReadOnly()?"copy":"copyMove",d.isOpera&&(r.container.appendChild(o),o.scrollTop=0),R.setDragImage&&R.setDragImage(o,0,0),d.isOpera&&r.container.removeChild(o),R.clearData(),R.setData("Text",r.session.getTextRange()),h=!0,this.setState("drag")},this.onDragEnd=function(y){if(f.draggable=!1,h=!1,this.setState(null),!r.getReadOnly()){var x=y.dataTransfer.dropEffect;!F&&x=="move"&&r.session.remove(r.getSelectionRange()),r.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(y){if(!(r.getReadOnly()||!z(y.dataTransfer)))return w=y.clientX,c=y.clientY,v||O(),A++,y.dataTransfer.dropEffect=F=M(y),C.preventDefault(y)},this.onDragOver=function(y){if(!(r.getReadOnly()||!z(y.dataTransfer)))return w=y.clientX,c=y.clientY,v||(O(),A++),W!==null&&(W=null),y.dataTransfer.dropEffect=F=M(y),C.preventDefault(y)},this.onDragLeave=function(y){if(A--,A<=0&&v)return I(),F=null,C.preventDefault(y)},this.onDrop=function(y){if(!!g){var x=y.dataTransfer;if(h)switch(F){case"move":l.contains(g.row,g.column)?l={start:g,end:g}:l=r.moveText(l,g);break;case"copy":l=r.moveText(l,g,!0);break}else{var R=x.getData("Text");l={start:g,end:r.session.insert(g,R)},r.focus(),F=null}return I(),C.preventDefault(y)}},C.addListener(f,"dragstart",this.onDragStart.bind(i)),C.addListener(f,"dragend",this.onDragEnd.bind(i)),C.addListener(f,"dragenter",this.onDragEnter.bind(i)),C.addListener(f,"dragover",this.onDragOver.bind(i)),C.addListener(f,"dragleave",this.onDragLeave.bind(i)),C.addListener(f,"drop",this.onDrop.bind(i));function k(y,x){var R=Date.now(),T=!x||y.row!=x.row,P=!x||y.column!=x.column;if(!b||T||P)r.$blockScrolling+=1,r.moveCursorToPosition(y),r.$blockScrolling-=1,b=R,S={x:w,y:c};else{var N=n(S.x,S.y,w,c);N>t?b=null:R-b>=s&&(r.renderer.scrollCursorIntoView(),b=null)}}function L(y,x){var R=Date.now(),T=r.renderer.layerConfig.lineHeight,P=r.renderer.layerConfig.characterWidth,N=r.renderer.scroller.getBoundingClientRect(),_={x:{left:w-N.left,right:N.right-w},y:{top:c-N.top,bottom:N.bottom-c}},U=Math.min(_.x.left,_.x.right),j=Math.min(_.y.top,_.y.bottom),Q={row:y.row,column:y.column};U/P<=2&&(Q.column+=_.x.left<_.x.right?-3:2),j/T<=1&&(Q.row+=_.y.top<_.y.bottom?-1:1);var X=y.row!=Q.row,V=y.column!=Q.column,G=!x||y.row!=x.row;X||V&&!G?p?R-p>=a&&r.renderer.scrollCursorIntoView(Q):p=R:p=null}function D(){var y=g;g=r.renderer.screenToTextCoordinates(w,c),k(g,y),L(g,y)}function O(){l=r.selection.toOrientedRange(),v=r.session.addMarker(l,"ace_selection",r.getSelectionStyle()),r.clearSelection(),r.isFocused()&&r.renderer.$cursorLayer.setBlinking(!1),clearInterval(m),D(),m=setInterval(D,20),A=0,C.addListener(document,"mousemove",H)}function I(){clearInterval(m),r.session.removeMarker(v),v=null,r.$blockScrolling+=1,r.selection.fromOrientedRange(l),r.$blockScrolling-=1,r.isFocused()&&!h&&r.renderer.$cursorLayer.setBlinking(!r.getReadOnly()),l=null,g=null,A=0,p=null,b=null,C.removeListener(document,"mousemove",H)}var W=null;function H(){W==null&&(W=setTimeout(function(){W!=null&&v&&I()},20))}function z(y){var x=y.types;return!x||Array.prototype.some.call(x,function(R){return R=="text/plain"||R=="Text"})}function M(y){var x=["copy","copymove","all","uninitialized"],R=["move","copymove","linkmove","all","uninitialized"],T=d.isMac?y.altKey:y.ctrlKey,P="uninitialized";try{P=y.dataTransfer.effectAllowed.toLowerCase()}catch{}var N="none";return T&&x.indexOf(P)>=0?N="copy":R.indexOf(P)>=0?N="move":x.indexOf(P)>=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,r=i.container;r.draggable=!0,i.renderer.$cursorLayer.setBlinking(!1),i.setStyle("ace_dragging");var o=d.isWin?"default":"move";i.renderer.setCursorStyle(o),this.setState("dragReady")},this.onMouseDrag=function(i){var r=this.editor.container;if(d.isIE&&this.state=="dragReady"){var o=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>3&&r.dragDrop()}if(this.state==="dragWait"){var o=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>0&&(r.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(i){if(!!this.$dragEnabled){this.mousedownEvent=i;var r=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 v=i.domEvent.target||i.domEvent.srcElement;if("unselectable"in v&&(v.unselectable="on"),r.getDragDelay()){if(d.isWebKit){this.cancelDrag=!0;var w=r.container;w.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(i,this.onMouseDrag.bind(this)),i.defaultPrevented=!0}}}}).call(e.prototype);function n(i,r,o,u){return Math.sqrt(Math.pow(o-i,2)+Math.pow(u-r,2))}E.DragdropHandler=e});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(B,E,K){var $=B("./dom");E.get=function(C,d){var a=new XMLHttpRequest;a.open("GET",C,!0),a.onreadystatechange=function(){a.readyState===4&&d(a.responseText)},a.send(null)},E.loadScript=function(C,d){var a=$.getDocumentHead(),s=document.createElement("script");s.src=C,a.appendChild(s),s.onload=s.onreadystatechange=function(t,e){(e||!s.readyState||s.readyState=="loaded"||s.readyState=="complete")&&(s=s.onload=s.onreadystatechange=null,e||d())}},E.qualifyURL=function(C){var d=document.createElement("a");return d.href=C,d.href}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(B,E,K){var $={},C=function(){this.propagationStopped=!0},d=function(){this.defaultPrevented=!0};$._emit=$._dispatchEvent=function(a,s){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var t=this._eventRegistry[a]||[],e=this._defaultHandlers[a];if(!(!t.length&&!e)){(typeof s!="object"||!s)&&(s={}),s.type||(s.type=a),s.stopPropagation||(s.stopPropagation=C),s.preventDefault||(s.preventDefault=d),t=t.slice();for(var n=0;n<t.length&&(t[n](s,this),!s.propagationStopped);n++);if(e&&!s.defaultPrevented)return e(s,this)}},$._signal=function(a,s){var t=(this._eventRegistry||{})[a];if(!!t){t=t.slice();for(var e=0;e<t.length;e++)t[e](s,this)}},$.once=function(a,s){var t=this;s&&this.addEventListener(a,function e(){t.removeEventListener(a,e),s.apply(null,arguments)})},$.setDefaultHandler=function(a,s){var t=this._defaultHandlers;if(t||(t=this._defaultHandlers={_disabled_:{}}),t[a]){var e=t[a],n=t._disabled_[a];n||(t._disabled_[a]=n=[]),n.push(e);var i=n.indexOf(s);i!=-1&&n.splice(i,1)}t[a]=s},$.removeDefaultHandler=function(a,s){var t=this._defaultHandlers;if(!!t){var e=t._disabled_[a];if(t[a]==s)t[a],e&&this.setDefaultHandler(a,e.pop());else if(e){var n=e.indexOf(s);n!=-1&&e.splice(n,1)}}},$.on=$.addEventListener=function(a,s,t){this._eventRegistry=this._eventRegistry||{};var e=this._eventRegistry[a];return e||(e=this._eventRegistry[a]=[]),e.indexOf(s)==-1&&e[t?"unshift":"push"](s),s},$.off=$.removeListener=$.removeEventListener=function(a,s){this._eventRegistry=this._eventRegistry||{};var t=this._eventRegistry[a];if(!!t){var e=t.indexOf(s);e!==-1&&t.splice(e,1)}},$.removeAllListeners=function(a){this._eventRegistry&&(this._eventRegistry[a]=[])},E.EventEmitter=$});ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(B,E,K){var $=B("./oop"),C=B("./event_emitter").EventEmitter,d={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 a('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]:a('misspelled option "'+e+'"')}};function a(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function s(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(){$.implement(this,C),this.defineOptions=function(e,n,i){return e.$options||(this.$defaultOptions[n]=e.$options={}),Object.keys(i).forEach(function(r){var o=i[r];typeof o=="string"&&(o={forwardTo:o}),o.name||(o.name=r),e.$options[o.name]=o,"initialValue"in o&&(e["$"+o.name]=o.initialValue)}),$.implement(e,d),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 r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[n]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,n,i):r[n].value=i)},this.setDefaultValues=function(e,n){Object.keys(n).forEach(function(i){this.setDefaultValue(e,i,n[i])},this)},this.warn=a,this.reportError=s}).call(t.prototype),E.AppConfig=t});ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(B,E,K){var $=B("./lib/lang");B("./lib/oop");var C=B("./lib/net"),d=B("./lib/app_config").AppConfig;K.exports=E=new d;var a=function(){return this||typeof window!="undefined"&&window}(),s={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};E.get=function(n){if(!s.hasOwnProperty(n))throw new Error("Unknown config key: "+n);return s[n]},E.set=function(n,i){if(!s.hasOwnProperty(n))throw new Error("Unknown config key: "+n);s[n]=i},E.all=function(){return $.copyObject(s)},E.moduleUrl=function(n,i){if(s.$moduleUrls[n])return s.$moduleUrls[n];var r=n.split("/");i=i||r[r.length-2]||"";var o=i=="snippets"?"/":"-",u=r[r.length-1];if(i=="worker"&&o=="-"){var f=new RegExp("^"+i+"[\\-_]|[\\-_]"+i+"$","g");u=u.replace(f,"")}(!u||u==i)&&r.length>1&&(u=r[r.length-2]);var v=s[i+"Path"];return v==null?v=s.basePath:o=="/"&&(i=o=""),v&&v.slice(-1)!="/"&&(v+="/"),v+i+o+u+this.get("suffix")},E.setModuleUrl=function(n,i){return s.$moduleUrls[n]=i},E.$loading={},E.loadModule=function(n,i){var r,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{r=B(n)}catch{}if(r&&!E.$loading[n])return i&&i(r);if(E.$loading[n]||(E.$loading[n]=[]),E.$loading[n].push(i),!(E.$loading[n].length>1)){var u=function(){B([n],function(f){E._emit("load.module",{name:n,module:f});var v=E.$loading[n];E.$loading[n]=null,v.forEach(function(w){w&&w(f)})})};if(!E.get("packaged"))return u();C.loadScript(E.moduleUrl(n,o),u)}},t(!0);function t(n){if(!(!a||!a.document)){s.packaged=n||B.packaged||K.packaged||a.define&&(void 0).packaged;for(var i={},r="",o=document.currentScript||document._currentScript,u=o&&o.ownerDocument||document,f=u.getElementsByTagName("script"),v=0;v<f.length;v++){var w=f[v],c=w.src||w.getAttribute("src");if(!!c){for(var m=w.attributes,l=0,g=m.length;l<g;l++){var A=m[l];A.name.indexOf("data-ace-")===0&&(i[e(A.name.replace(/^data-ace-/,""))]=A.value)}var F=c.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);F&&(r=F[1])}}r&&(i.base=i.base||r,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var h in i)typeof i[h]!="undefined"&&E.set(h,i[h])}}E.init=t;function e(n){return n.replace(/-(.)/g,function(i,r){return r.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,E,K){var $=B("../lib/event"),C=B("../lib/useragent"),d=B("./default_handlers").DefaultHandlers,a=B("./default_gutter_handler").GutterHandler,s=B("./mouse_event").MouseEvent,t=B("./dragdrop_handler").DragdropHandler,e=B("../config"),n=function(i){var r=this;this.editor=i,new d(this),new a(this),new t(this);var o=function(v){var w=!document.hasFocus||!document.hasFocus()||!i.isFocused()&&document.activeElement==(i.textInput&&i.textInput.getElement());w&&window.focus(),i.focus()},u=i.renderer.getMouseEventTarget();$.addListener(u,"click",this.onMouseEvent.bind(this,"click")),$.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),$.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"),$.addMouseWheelListener(i.container,this.onMouseWheel.bind(this,"mousewheel")),$.addTouchMoveListener(i.container,this.onTouchMove.bind(this,"touchmove"));var f=i.renderer.$gutter;$.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),$.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),$.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),$.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),$.addListener(u,"mousedown",o),$.addListener(f,"mousedown",o),C.isIE&&i.renderer.scrollBarV&&($.addListener(i.renderer.scrollBarV.element,"mousedown",o),$.addListener(i.renderer.scrollBarH.element,"mousedown",o)),i.on("mousemove",function(v){if(!(r.state||r.$dragDelay||!r.$dragEnabled)){var w=i.renderer.screenToTextCoordinates(v.x,v.y),c=i.session.selection.getRange(),m=i.renderer;!c.isEmpty()&&c.insideStart(w.row,w.column)?m.setCursorStyle("default"):m.setCursorStyle("")}})};(function(){this.onMouseEvent=function(i,r){this.editor._emit(i,new s(r,this.editor))},this.onMouseMove=function(i,r){var o=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;!o||!o.length||this.editor._emit(i,new s(r,this.editor))},this.onMouseWheel=function(i,r){var o=new s(r,this.editor);o.speed=this.$scrollSpeed*2,o.wheelX=r.wheelX,o.wheelY=r.wheelY,this.editor._emit(i,o)},this.onTouchMove=function(i,r){var o=new s(r,this.editor);o.speed=1,o.wheelX=r.wheelX,o.wheelY=r.wheelY,this.editor._emit(i,o)},this.setState=function(i){this.state=i},this.captureMouse=function(i,r){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(C.isWebKit&&!m.which&&u.releaseMouse)return u.releaseMouse();u.x=m.clientX,u.y=m.clientY,r&&r(m),u.mouseEvent=new s(m,u.editor),u.$mouseMoved=!0}},v=function(m){clearInterval(c),w(),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)},w=function(){u[u.state]&&u[u.state](),u.$mouseMoved=!1};if(C.isOldIE&&i.domEvent.type=="dblclick")return setTimeout(function(){v(i)});u.$onCaptureMouseMove=f,u.releaseMouse=$.capture(this.editor.container,f,v);var c=setInterval(w,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var i=function(r){r&&r.domEvent&&r.domEvent.type!="contextmenu"||(this.editor.off("nativecontextmenu",i),r&&r.domEvent&&$.stopEvent(r.domEvent))}.bind(this);setTimeout(i,10),this.editor.on("nativecontextmenu",i)}}).call(n.prototype),e.defineOptions(n.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:C.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),E.MouseHandler=n});ace.define("ace/mouse/fold_handler",["require","exports","module"],function(B,E,K){function $(C){C.on("click",function(d){var a=d.getDocumentPosition(),s=C.session,t=s.getFoldAt(a.row,a.column,1);t&&(d.getAccelKey()?s.removeFold(t):s.expandFold(t),d.stop())}),C.on("gutterclick",function(d){var a=C.renderer.$gutterLayer.getRegion(d);if(a=="foldWidgets"){var s=d.getDocumentPosition().row,t=C.session;t.foldWidgets&&t.foldWidgets[s]&&C.session.onFoldWidgetClick(s,d),C.isFocused()||C.focus(),d.stop()}}),C.on("gutterdblclick",function(d){var a=C.renderer.$gutterLayer.getRegion(d);if(a=="foldWidgets"){var s=d.getDocumentPosition().row,t=C.session,e=t.getParentFoldRangeData(s,!0),n=e.range||e.firstRange;if(n){s=n.start.row;var i=t.getFoldAt(s,t.getLine(s).length,1);i?t.removeFold(i):(t.addFold("...",n),C.renderer.scrollCursorIntoView({row:n.start.row,column:0}))}d.stop()}})}E.FoldHandler=$});ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(B,E,K){var $=B("../lib/keys"),C=B("../lib/event"),d=function(a){this.$editor=a,this.$data={editor:a},this.$handlers=[],this.setDefaultHandler(a.commands)};(function(){this.setDefaultHandler=function(a){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=a,this.addKeyboardHandler(a,0)},this.setKeyboardHandler=function(a){var s=this.$handlers;if(s[s.length-1]!=a){for(;s[s.length-1]&&s[s.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(s[s.length-1]);this.addKeyboardHandler(a,1)}},this.addKeyboardHandler=function(a,s){if(!!a){typeof a=="function"&&!a.handleKeyboard&&(a.handleKeyboard=a);var t=this.$handlers.indexOf(a);t!=-1&&this.$handlers.splice(t,1),s==null?this.$handlers.push(a):this.$handlers.splice(s,0,a),t==-1&&a.attach&&a.attach(this.$editor)}},this.removeKeyboardHandler=function(a){var s=this.$handlers.indexOf(a);return s==-1?!1:(this.$handlers.splice(s,1),a.detach&&a.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var a=this.$data,s=a.editor;return this.$handlers.map(function(t){return t.getStatusText&&t.getStatusText(s,a)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(a,s,t,e){for(var n,i=!1,r=this.$editor.commands,o=this.$handlers.length;o--&&(n=this.$handlers[o].handleKeyboard(this.$data,a,s,t,e),!(!(!n||!n.command)&&(n.command=="null"?i=!0:i=r.exec(n.command,this.$editor,n.args,e),i&&e&&a!=-1&&n.passEvent!=!0&&n.command.passEvent!=!0&&C.stopEvent(e),i))););return!i&&a==-1&&(n={command:"insertstring"},i=r.exec("insertstring",this.$editor,s)),i&&this.$editor._signal&&this.$editor._signal("keyboardActivity",n),i},this.onCommandKey=function(a,s,t){var e=$.keyCodeToString(t);this.$callKeyboardHandlers(s,e,t,a)},this.onTextInput=function(a){this.$callKeyboardHandlers(-1,a)}}).call(d.prototype),E.KeyBinding=d});ace.define("ace/lib/bidiutil",["require","exports","module"],function(B,E,K){var $=0,C=0,d=!1,a=!1,s=!1,t=[[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]],e=[[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]],n=0,i=1,r=0,o=1,u=2,f=3,v=4,w=5,c=6,m=7,l=8,g=9,A=10,F=11,h=12,p=13,b=14,S=15,k=16,L=17,D=18,O=[D,D,D,D,D,D,D,D,D,c,w,c,l,w,D,D,D,D,D,D,D,D,D,D,D,D,D,D,w,w,w,c,l,v,v,F,F,F,v,v,v,v,v,A,g,A,g,g,u,u,u,u,u,u,u,u,u,u,g,v,v,v,v,v,v,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,v,v,v,v,v,v,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,v,v,v,v,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,g,v,F,F,F,F,v,v,v,v,r,v,v,D,v,v,F,F,u,u,v,r,v,v,v,u,r,v,v,v,v,v],I=[l,l,l,l,l,l,l,l,l,l,l,D,D,D,r,o,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,l,w,p,b,S,k,L,g,F,F,F,F,F,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,g,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,l];function W(y,x,R,T){var P=$?e:t,N=null,_=null,U=null,j=0,Q=null,X=null,V=-1,G=null,Y=null,Z=[];if(!T)for(G=0,T=[];G<R;G++)T[G]=M(y[G]);for(C=$,d=!1,a=!1,s=!1,Y=0;Y<R;Y++){if(N=j,Z[Y]=_=z(y,T,Z,Y),j=P[N][_],Q=j&240,j&=15,x[Y]=U=P[j][5],Q>0)if(Q==16){for(G=V;G<Y;G++)x[G]=1;V=-1}else V=-1;if(X=P[j][6],X)V==-1&&(V=Y);else if(V>-1){for(G=V;G<Y;G++)x[G]=U;V=-1}T[Y]==w&&(x[Y]=0),C|=U}if(s){for(G=0;G<R;G++)if(T[G]==c){x[G]=$;for(var J=G-1;J>=0&&T[J]==l;J--)x[J]=$}}}function H(y,x,R){if(!(C<y)){if(y==1&&$==i&&!a){R.reverse();return}for(var T=R.length,P=0,N,_,U,j;P<T;){if(x[P]>=y){for(N=P+1;N<T&&x[N]>=y;)N++;for(_=P,U=N-1;_<U;_++,U--)j=R[_],R[_]=R[U],R[U]=j;P=N}P++}}}function z(y,x,R,T){var P=x[T],N,_,U,j;switch(P){case r:case o:d=!1;case v:case f:return P;case u:return d?f:u;case m:return d=!0,o;case l:return v;case g:return T<1||T+1>=x.length||(N=R[T-1])!=u&&N!=f||(_=x[T+1])!=u&&_!=f?v:(d&&(_=f),_==N?_:v);case A:return N=T>0?R[T-1]:w,N==u&&T+1<x.length&&x[T+1]==u?u:v;case F:if(T>0&&R[T-1]==u)return u;if(d)return v;for(j=T+1,U=x.length;j<U&&x[j]==F;)j++;return j<U&&x[j]==u?u:v;case h:for(U=x.length,j=T+1;j<U&&x[j]==h;)j++;if(j<U){var Q=y[T],X=Q>=1425&&Q<=2303||Q==64286;if(N=x[j],X&&(N==o||N==m))return o}return T<1||(N=x[T-1])==w?v:R[T-1];case w:return d=!1,a=!0,$;case c:return s=!0,v;case p:case b:case k:case L:case S:d=!1;case D:return v}}function M(y){var x=y.charCodeAt(0),R=x>>8;return R==0?x>191?r:O[x]:R==5?/[\u0591-\u05f4]/.test(y)?o:r:R==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(y)?h:/[\u0660-\u0669\u066b-\u066c]/.test(y)?f:x==1642?F:/[\u06f0-\u06f9]/.test(y)?u:m:R==32&&x<=8287?I[x&255]:R==254&&x>=65136?m:v}E.L=r,E.R=o,E.EN=u,E.ON_R=3,E.AN=4,E.R_H=5,E.B=6,E.DOT="\xB7",E.doBidiReorder=function(y,x,R){if(y.length<2)return{};var T=y.split(""),P=new Array(T.length),N=new Array(T.length),_=[];$=R?i:n,W(T,_,T.length,x);for(var U=0;U<P.length;P[U]=U,U++);H(2,_,P),H(1,_,P);for(var U=0;U<P.length-1;U++)x[U]===f?_[U]=E.AN:_[U]===o&&(x[U]>m&&x[U]<p||x[U]===v||x[U]===D)?_[U]=E.ON_R:U>0&&T[U-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(T[U])&&(_[U-1]=_[U]=E.R_H,U++);T[T.length-1]===E.DOT&&(_[T.length-1]=E.B);for(var U=0;U<P.length;U++)N[U]=_[P[U]];return{logicalFromVisual:P,bidiLevels:N}},E.hasBidiCharacters=function(y,x){for(var R=!1,T=0;T<y.length;T++)x[T]=M(y.charAt(T)),!R&&(x[T]==o||x[T]==m)&&(R=!0);return R},E.getVisualFromLogicalIdx=function(y,x){for(var R=0;R<x.logicalFromVisual.length;R++)if(x.logicalFromVisual[R]==y)return R;return 0}});ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang","ace/lib/useragent"],function(B,E,K){var $=B("./lib/bidiutil"),C=B("./lib/lang"),d=B("./lib/useragent"),a=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,s=function(t){this.session=t,this.bidiMap={},this.currentRow=null,this.bidiUtil=$,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"&&a.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,r=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+r):2,r+=o-1,C.stringRepeat($.DOT,o)):u})},this.updateBidiMap=function(){var t=[],e=this.isLastRow?this.EOF:this.EOL,n=this.line+(this.showInvisibles?e:$.DOT);$.hasBidiCharacters(n,t)?this.bidiMap=$.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[$.L]=this.charWidths[$.EN]=this.charWidths[$.ON_R]=e,this.charWidths[$.R]=this.charWidths[$.AN]=n,this.charWidths[$.R_H]=d.isChrome?n:n*.45,this.charWidths[$.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=$.getVisualFromLogicalIdx(t>0?t-1:0,this.bidiMap),n=this.bidiMap.bidiLevels,i=0;t===0&&n[e]%2!==0&&e++;for(var r=0;r<e;r++)i+=this.charWidths[n[r]];return t!==0&&n[e]%2===0&&(i+=this.charWidths[n[e]]),this.wrapIndent&&(i+=this.wrapIndent*this.charWidths[$.L]),i},this.getSelections=function(t,e){for(var n=this.bidiMap,i=n.bidiLevels,r,o=this.wrapIndent*this.charWidths[$.L],u=[],f=Math.min(t,e)-this.wrapIndent,v=Math.max(t,e)-this.wrapIndent,w=!1,c=!1,m=0,l,g=0;g<i.length;g++)l=n.logicalFromVisual[g],r=i[g],w=l>=f&&l<v,w&&!c?m=o:!w&&c&&u.push({left:m,width:o-m}),o+=this.charWidths[r],c=w;return w&&g===i.length&&u.push({left:m,width:o-m}),u},this.offsetToCol=function(n){var e=0,n=Math.max(n,0),i=0,r=0,o=this.bidiMap.bidiLevels,u=this.charWidths[o[r]];for(this.wrapIndent&&(n-=this.wrapIndent*this.charWidths[$.L]);n>i+u/2;){if(i+=u,r===o.length-1){u=0;break}u=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!==0&&o[r]%2===0?(n<i&&r--,e=this.bidiMap.logicalFromVisual[r]):r>0&&o[r-1]%2===0&&o[r]%2!==0?e=1+(n>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&u===0&&o[r-1]%2===0||!this.isRtlDir&&r===0&&o[r]%2!==0?e=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!==0&&u!==0&&r--,e=this.bidiMap.logicalFromVisual[r]),e+this.wrapIndent}}).call(s.prototype),E.BidiHandler=s});ace.define("ace/range",["require","exports","module"],function(B,E,K){var $=function(d,a){return d.row-a.row||d.column-a.column},C=function(d,a,s,t){this.start={row:d,column:a},this.end={row:s,column:t}};(function(){this.isEqual=function(d){return this.start.row===d.start.row&&this.end.row===d.end.row&&this.start.column===d.start.column&&this.end.column===d.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(d,a){return this.compare(d,a)==0},this.compareRange=function(d){var a,s=d.end,t=d.start;return a=this.compare(s.row,s.column),a==1?(a=this.compare(t.row,t.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(t.row,t.column),a==-1?-1:a==1?42:0)},this.comparePoint=function(d){return this.compare(d.row,d.column)},this.containsRange=function(d){return this.comparePoint(d.start)==0&&this.comparePoint(d.end)==0},this.intersects=function(d){var a=this.compareRange(d);return a==-1||a==0||a==1},this.isEnd=function(d,a){return this.end.row==d&&this.end.column==a},this.isStart=function(d,a){return this.start.row==d&&this.start.column==a},this.setStart=function(d,a){typeof d=="object"?(this.start.column=d.column,this.start.row=d.row):(this.start.row=d,this.start.column=a)},this.setEnd=function(d,a){typeof d=="object"?(this.end.column=d.column,this.end.row=d.row):(this.end.row=d,this.end.column=a)},this.inside=function(d,a){return this.compare(d,a)==0?!(this.isEnd(d,a)||this.isStart(d,a)):!1},this.insideStart=function(d,a){return this.compare(d,a)==0?!this.isEnd(d,a):!1},this.insideEnd=function(d,a){return this.compare(d,a)==0?!this.isStart(d,a):!1},this.compare=function(d,a){return!this.isMultiLine()&&d===this.start.row?a<this.start.column?-1:a>this.end.column?1:0:d<this.start.row?-1:d>this.end.row?1:this.start.row===d?a>=this.start.column?0:-1:this.end.row===d?a<=this.end.column?0:1:0},this.compareStart=function(d,a){return this.start.row==d&&this.start.column==a?-1:this.compare(d,a)},this.compareEnd=function(d,a){return this.end.row==d&&this.end.column==a?1:this.compare(d,a)},this.compareInside=function(d,a){return this.end.row==d&&this.end.column==a?1:this.start.row==d&&this.start.column==a?-1:this.compare(d,a)},this.clipRows=function(d,a){if(this.end.row>a)var s={row:a+1,column:0};else if(this.end.row<d)var s={row:d,column:0};if(this.start.row>a)var t={row:a+1,column:0};else if(this.start.row<d)var t={row:d,column:0};return C.fromPoints(t||this.start,s||this.end)},this.extend=function(d,a){var s=this.compare(d,a);if(s==0)return this;if(s==-1)var t={row:d,column:a};else var e={row:d,column:a};return C.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 C.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new C(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new C(this.start.row,0,this.end.row,0)},this.toScreenRange=function(d){var a=d.documentToScreenPosition(this.start),s=d.documentToScreenPosition(this.end);return new C(a.row,a.column,s.row,s.column)},this.moveBy=function(d,a){this.start.row+=d,this.start.column+=a,this.end.row+=d,this.end.column+=a}}).call(C.prototype),C.fromPoints=function(d,a){return new C(d.row,d.column,a.row,a.column)},C.comparePoints=$,C.comparePoints=function(d,a){return d.row-a.row||d.column-a.column},E.Range=C});ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/lang"),d=B("./lib/event_emitter").EventEmitter,a=B("./range").Range,s=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(){$.implement(this,d),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()?a.fromPoints(e,e):this.isBackwards()?a.fromPoints(e,t):a.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=="undefined"){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,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,e===!0?new a(n,0,i,this.session.getLine(i).length):new a(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,r=t.column+e;return n<0&&(i=t.column-e,r=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(i,r).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),r=this.session.getDisplayLine(t,null,i.row,i.column),o=r.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);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(t,e,1);if(r){this.moveCursorTo(r.end.row,r.end.column);return}if(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}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 r=C.stringReverse(i);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(r)&&(e-=this.session.nonTokenRe.lastIndex,r=r.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),e<=0){this.moveCursorTo(t,0),this.moveCursorLeft(),t>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(r)&&(e-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.$shortWordEndIndex=function(t){var e=0,n,i=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(t))e=this.session.tokenRe.lastIndex;else{for(;(n=t[e])&&i.test(n);)e++;if(e<1){for(r.lastIndex=0;(n=t[e])&&!r.test(n);)if(r.lastIndex=0,e++,i.test(n))if(e>2){e--;break}else{for(;(n=t[e])&&i.test(n);)e++;if(e>2)break}}}return r.lastIndex=0,e},this.moveCursorShortWordRight=function(){var t=this.lead.row,e=this.lead.column,n=this.doc.getLine(t),i=n.substring(e),r=this.session.getFoldAt(t,e,1);if(r)return this.moveCursorTo(r.end.row,r.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 r=C.stringReverse(i),o=this.$shortWordEndIndex(r);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 r=this.session.screenToDocumentPosition(n.row+t,n.column,i);t!==0&&e===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||t>0)&&r.row++,this.moveCursorTo(r.row,r.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 r=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(r.charAt(e))&&r.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 a.fromPoints(e,n)}catch{return a.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=a.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(s.prototype),E.Selection=s});ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(B,E,K){var $=B("./config"),C=2e3,d=function(a){this.states=a,this.regExps={},this.matchMappings={};for(var s in this.states){for(var t=this.states[s],e=[],n=0,i=this.matchMappings[s]={defaultToken:"text"},r="g",o=[],u=0;u<t.length;u++){var f=t[u];if(f.defaultToken&&(i.defaultToken=f.defaultToken),f.caseInsensitive&&(r="gi"),f.regex!=null){f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var v=f.regex,w=new RegExp("(?:("+v+")|(.))").exec("a").length-2;Array.isArray(f.token)?f.token.length==1||w==1?f.token=f.token[0]:w-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:w-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(w>1?f.onMatch=this.$applyToken:f.onMatch=f.token),w>1&&(/\\\d/.test(f.regex)?v=f.regex.replace(/\\([0-9]+)/g,function(c,m){return"\\"+(parseInt(m,10)+n+1)}):(w=1,v=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&o.push(f)),i[n]=u,n+=w,e.push(v),f.onMatch||(f.onMatch=null)}}e.length||(i[0]=0,e.push("$")),o.forEach(function(c){c.splitRegex=this.createSplitterRegexp(c.regex,r)},this),this.regExps[s]=new RegExp("("+e.join(")|(")+")|($)",r)}};(function(){this.$setMaxTokenCount=function(a){C=a|0},this.$applyToken=function(a){var s=this.splitRegex.exec(a).slice(1),t=this.token.apply(this,s);if(typeof t=="string")return[{type:t,value:a}];for(var e=[],n=0,i=t.length;n<i;n++)s[n]&&(e[e.length]={type:t[n],value:s[n]});return e},this.$arrayTokens=function(a){if(!a)return[];var s=this.splitRegex.exec(a);if(!s)return"text";for(var t=[],e=this.tokenArray,n=0,i=e.length;n<i;n++)s[n+1]&&(t[t.length]={type:e[n],value:s[n+1]});return t},this.removeCapturingGroups=function(a){var s=a.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(t,e){return e?"(?:":t});return s},this.createSplitterRegexp=function(a,s){if(a.indexOf("(?=")!=-1){var t=0,e=!1,n={};a.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(i,r,o,u,f,v){return e?e=f!="]":f?e=!0:u?(t==n.stack&&(n.end=v+1,n.stack=-1),t--):o&&(t++,o.length!=1&&(n.stack=t,n.start=v)),i}),n.end!=null&&/^\)*$/.test(a.substr(n.end))&&(a=a.substring(0,n.start)+a.substr(n.end))}return a.charAt(0)!="^"&&(a="^"+a),a.charAt(a.length-1)!="$"&&(a+="$"),new RegExp(a,(s||"").replace("g",""))},this.getLineTokens=function(a,s){if(s&&typeof s!="string"){var t=s.slice(0);s=t[0],s==="#tmp"&&(t.shift(),s=t.shift())}else var t=[];var e=s||"start",n=this.states[e];n||(e="start",n=this.states[e]);var i=this.matchMappings[e],r=this.regExps[e];r.lastIndex=0;for(var o,u=[],f=0,v=0,w={type:null,value:""};o=r.exec(a);){var c=i.defaultToken,m=null,l=o[0],g=r.lastIndex;if(g-l.length>f){var A=a.substring(f,g-l.length);w.type==c?w.value+=A:(w.type&&u.push(w),w={type:c,value:A})}for(var F=0;F<o.length-2;F++)if(o[F+1]!==void 0){m=n[i[F]],m.onMatch?c=m.onMatch(l,e,t,a):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=g,r=this.regExps[e],r.lastIndex=g),m.consumeLineEnd&&(f=g);break}if(l){if(typeof c=="string")(!m||m.merge!==!1)&&w.type===c?w.value+=l:(w.type&&u.push(w),w={type:c,value:l});else if(c){w.type&&u.push(w),w={type:null,value:""};for(var F=0;F<c.length;F++)u.push(c[F])}}if(f==a.length)break;if(f=g,v++>C){for(v>2*a.length&&this.reportError("infinite loop with in ace tokenizer",{startState:s,line:a});f<a.length;)w.type&&u.push(w),w={value:a.substring(f,f+=2e3),type:"overflow"};e="start",t=[];break}}return w.type&&u.push(w),t.length>1&&t[0]!==e&&t.unshift("#tmp",e),{tokens:u,state:t.length?t:e}},this.reportError=$.reportError}).call(d.prototype),E.Tokenizer=d});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(B,E,K){var $=B("../lib/lang"),C=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(s,t){if(!t){for(var e in s)this.$rules[e]=s[e];return}for(var e in s){for(var n=s[e],i=0;i<n.length;i++){var r=n[i];(r.next||r.onMatch)&&(typeof r.next=="string"&&r.next.indexOf(t)!==0&&(r.next=t+r.next),r.nextState&&r.nextState.indexOf(t)!==0&&(r.nextState=t+r.nextState))}this.$rules[t+e]=n}},this.getRules=function(){return this.$rules},this.embedRules=function(s,t,e,n,i){var r=typeof s=="function"?new s().getRules():s;if(n)for(var o=0;o<n.length;o++)n[o]=t+n[o];else{n=[];for(var u in r)n.push(t+u)}if(this.addRules(r,t),e)for(var f=Array.prototype[i?"push":"unshift"],o=0;o<n.length;o++)f.apply(this.$rules[n[o]],$.deepCopy(e));this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var d=function(s,t){return(s!="start"||t.length)&&t.unshift(this.nextState,s),this.nextState},a=function(s,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){var s=0,t=this.$rules;function e(n){var i=t[n];i.processed=!0;for(var r=0;r<i.length;r++){var o=i[r],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 v=o.stateName;v||(v=o.token,typeof v!="string"&&(v=v[0]||""),t[v]&&(v+=s++)),t[v]=f,o.next=v,e(v)}else f=="pop"&&(o.next=a);if(o.push&&(o.nextState=o.next||o.push,o.next=d,delete o.push),o.rules)for(var w in o.rules)t[w]?t[w].push&&t[w].push.apply(t[w],o.rules[w]):t[w]=o.rules[w];var c=typeof o=="string"?o:o.include;if(c&&(Array.isArray(c)?u=c.map(function(l){return t[l]}):u=t[c]),u){var m=[r,1].concat(u);o.noEscape&&(m=m.filter(function(l){return!l.next})),i.splice.apply(i,m),r--}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(s,t,e,n){var i=Object.create(null);return Object.keys(s).forEach(function(r){var o=s[r];e&&(o=o.toLowerCase());for(var u=o.split(n||"|"),f=u.length;f--;)i[u[f]]=r}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),s=null,e?function(r){return i[r.toLowerCase()]||t}:function(r){return i[r]||t}},this.getKeywords=function(){return this.$keywords}}).call(C.prototype),E.TextHighlightRules=C});ace.define("ace/mode/behaviour",["require","exports","module"],function(B,E,K){var $=function(){this.$behaviours={}};(function(){this.add=function(C,d,a){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[C]:this.$behaviours[C]={}}this.$behaviours[C][d]=a},this.addBehaviours=function(C){for(var d in C)for(var a in C[d])this.add(d,a,C[d][a])},this.remove=function(C){this.$behaviours&&this.$behaviours[C]&&delete this.$behaviours[C]},this.inherit=function(C,d){if(typeof C=="function")var a=new C().getBehaviours(d);else var a=C.getBehaviours(d);this.addBehaviours(a)},this.getBehaviours=function(C){if(C){for(var d={},a=0;a<C.length;a++)this.$behaviours[C[a]]&&(d[C[a]]=this.$behaviours[C[a]]);return d}else return this.$behaviours}}).call($.prototype),E.Behaviour=$});ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(B,E,K){var $=B("./range").Range,C=function(d,a,s){this.$session=d,this.$row=a,this.$rowTokens=d.getTokens(a);var t=d.getTokenAt(a,s);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 d;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,d||(d=this.$session.getLength()),this.$row>=d)return this.$row=d-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 d=this.$rowTokens,a=this.$tokenIndex,s=d[a].start;if(s!==void 0)return s;for(s=0;a>0;)a-=1,s+=d[a].value.length;return s},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var d=this.$rowTokens[this.$tokenIndex],a=this.getCurrentTokenColumn();return new $(this.$row,a,this.$row,a+d.value.length)}}).call(C.prototype),E.TokenIterator=C});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(B,E,K){var $=B("../../lib/oop"),C=B("../behaviour").Behaviour,d=B("../../token_iterator").TokenIterator,a=B("../../lib/lang"),s=["text","paren.rparen","punctuation.operator"],t=["text","paren.rparen","punctuation.operator","comment"],e,n={},i={'"':'"',"'":"'"},r=function(f){var v=-1;if(f.multiSelect&&(v=f.selection.index,n.rangeCount!=f.multiSelect.rangeCount&&(n={rangeCount:f.multiSelect.rangeCount})),n[v])return e=n[v];e=n[v]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},o=function(f,v,w,c){var m=f.end.row-f.start.row;return{text:w+v+c,selection:[0,f.start.column+1,m,f.end.column+(m?0:1)]}},u=function(f){this.add("braces","insertion",function(v,w,c,m,l){var g=c.getCursorPosition(),A=m.doc.getLine(g.row);if(l=="{"){r(c);var F=c.getSelectionRange(),h=m.doc.getTextRange(F);if(h!==""&&h!=="{"&&c.getWrapBehavioursEnabled())return o(F,h,"{","}");if(u.isSaneInsertion(c,m))return/[\]\}\)]/.test(A[g.column])||c.inMultiSelectMode||f&&f.braces?(u.recordAutoInsert(c,m,"}"),{text:"{}",selection:[1,1]}):(u.recordMaybeInsert(c,m,"{"),{text:"{",selection:[1,1]})}else if(l=="}"){r(c);var p=A.substring(g.column,g.column+1);if(p=="}"){var b=m.$findOpeningBracket("}",{column:g.column+1,row:g.row});if(b!==null&&u.isAutoInsertedClosing(g,A,l))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(l==`
|
|
`||l==`\r
|
|
`){r(c);var S="";u.isMaybeInsertedClosing(g,A)&&(S=a.stringRepeat("}",e.maybeInsertedBrackets),u.clearMaybeInsertedClosing());var p=A.substring(g.column,g.column+1);if(p==="}"){var k=m.findMatchingBracket({row:g.row,column:g.column+1},"}");if(!k)return null;var L=this.$getIndent(m.getLine(k.row))}else if(S)var L=this.$getIndent(A);else{u.clearMaybeInsertedClosing();return}var D=L+m.getTabString();return{text:`
|
|
`+D+`
|
|
`+L+S,selection:[1,D.length,1,D.length]}}else u.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(v,w,c,m,l){var g=m.doc.getTextRange(l);if(!l.isMultiLine()&&g=="{"){r(c);var A=m.doc.getLine(l.start.row),F=A.substring(l.end.column,l.end.column+1);if(F=="}")return l.end.column++,l;e.maybeInsertedBrackets--}}),this.add("parens","insertion",function(v,w,c,m,l){if(l=="("){r(c);var g=c.getSelectionRange(),A=m.doc.getTextRange(g);if(A!==""&&c.getWrapBehavioursEnabled())return o(g,A,"(",")");if(u.isSaneInsertion(c,m))return u.recordAutoInsert(c,m,")"),{text:"()",selection:[1,1]}}else if(l==")"){r(c);var F=c.getCursorPosition(),h=m.doc.getLine(F.row),p=h.substring(F.column,F.column+1);if(p==")"){var b=m.$findOpeningBracket(")",{column:F.column+1,row:F.row});if(b!==null&&u.isAutoInsertedClosing(F,h,l))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(v,w,c,m,l){var g=m.doc.getTextRange(l);if(!l.isMultiLine()&&g=="("){r(c);var A=m.doc.getLine(l.start.row),F=A.substring(l.start.column+1,l.start.column+2);if(F==")")return l.end.column++,l}}),this.add("brackets","insertion",function(v,w,c,m,l){if(l=="["){r(c);var g=c.getSelectionRange(),A=m.doc.getTextRange(g);if(A!==""&&c.getWrapBehavioursEnabled())return o(g,A,"[","]");if(u.isSaneInsertion(c,m))return u.recordAutoInsert(c,m,"]"),{text:"[]",selection:[1,1]}}else if(l=="]"){r(c);var F=c.getCursorPosition(),h=m.doc.getLine(F.row),p=h.substring(F.column,F.column+1);if(p=="]"){var b=m.$findOpeningBracket("]",{column:F.column+1,row:F.row});if(b!==null&&u.isAutoInsertedClosing(F,h,l))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(v,w,c,m,l){var g=m.doc.getTextRange(l);if(!l.isMultiLine()&&g=="["){r(c);var A=m.doc.getLine(l.start.row),F=A.substring(l.start.column+1,l.start.column+2);if(F=="]")return l.end.column++,l}}),this.add("string_dquotes","insertion",function(v,w,c,m,l){var g=m.$mode.$quotes||i;if(l.length==1&&g[l]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(l)!=-1)return;r(c);var A=l,F=c.getSelectionRange(),h=m.doc.getTextRange(F);if(h!==""&&(h.length!=1||!g[h])&&c.getWrapBehavioursEnabled())return o(F,h,A,A);if(!h){var p=c.getCursorPosition(),b=m.doc.getLine(p.row),S=b.substring(p.column-1,p.column),k=b.substring(p.column,p.column+1),L=m.getTokenAt(p.row,p.column),D=m.getTokenAt(p.row,p.column+1);if(S=="\\"&&L&&/escape/.test(L.type))return null;var O=L&&/string|escape/.test(L.type),I=!D||/string|escape/.test(D.type),W;if(k==A)W=O!==I,W&&/string\.end/.test(D.type)&&(W=!1);else{if(O&&!I||O&&I)return null;var H=m.$mode.tokenRe;H.lastIndex=0;var z=H.test(S);H.lastIndex=0;var M=H.test(S);if(z||M||k&&!/[\s;,.})\]\\]/.test(k))return null;W=!0}return{text:W?A+A:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(v,w,c,m,l){var g=m.doc.getTextRange(l);if(!l.isMultiLine()&&(g=='"'||g=="'")){r(c);var A=m.doc.getLine(l.start.row),F=A.substring(l.start.column+1,l.start.column+2);if(F==g)return l.end.column++,l}})};u.isSaneInsertion=function(f,v){var w=f.getCursorPosition(),c=new d(v,w.row,w.column);if(!this.$matchTokenType(c.getCurrentToken()||"text",s)){var m=new d(v,w.row,w.column+1);if(!this.$matchTokenType(m.getCurrentToken()||"text",s))return!1}return c.stepForward(),c.getCurrentTokenRow()!==w.row||this.$matchTokenType(c.getCurrentToken()||"text",t)},u.$matchTokenType=function(f,v){return v.indexOf(f.type||f)>-1},u.recordAutoInsert=function(f,v,w){var c=f.getCursorPosition(),m=v.doc.getLine(c.row);this.isAutoInsertedClosing(c,m,e.autoInsertedLineEnd[0])||(e.autoInsertedBrackets=0),e.autoInsertedRow=c.row,e.autoInsertedLineEnd=w+m.substr(c.column),e.autoInsertedBrackets++},u.recordMaybeInsert=function(f,v,w){var c=f.getCursorPosition(),m=v.doc.getLine(c.row);this.isMaybeInsertedClosing(c,m)||(e.maybeInsertedBrackets=0),e.maybeInsertedRow=c.row,e.maybeInsertedLineStart=m.substr(0,c.column)+w,e.maybeInsertedLineEnd=m.substr(c.column),e.maybeInsertedBrackets++},u.isAutoInsertedClosing=function(f,v,w){return e.autoInsertedBrackets>0&&f.row===e.autoInsertedRow&&w===e.autoInsertedLineEnd[0]&&v.substr(f.column)===e.autoInsertedLineEnd},u.isMaybeInsertedClosing=function(f,v){return e.maybeInsertedBrackets>0&&f.row===e.maybeInsertedRow&&v.substr(f.column)===e.maybeInsertedLineEnd&&v.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)},$.inherits(u,C),E.CstyleBehaviour=u});ace.define("ace/unicode",["require","exports","module"],function(B,E,K){E.packages={},$({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 $(C){var d=/\w{4}/g;for(var a in C)E.packages[a]=C[a].replace(d,"\\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,E,K){var $=B("../tokenizer").Tokenizer,C=B("./text_highlight_rules").TextHighlightRules,d=B("./behaviour/cstyle").CstyleBehaviour,a=B("../unicode"),s=B("../lib/lang"),t=B("../token_iterator").TokenIterator,e=B("../range").Range,n=function(){this.HighlightRules=C};(function(){this.$defaultBehaviour=new d,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new $(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(i,r,o,u){var f=r.doc,v=!0,w=!0,c=1/0,m=r.getTabSize(),l=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var F=this.lineCommentStart.map(s.escapeRegExp).join("|"),g=this.lineCommentStart[0];else var F=s.escapeRegExp(this.lineCommentStart),g=this.lineCommentStart;F=new RegExp("^(\\s*)(?:"+F+") ?"),l=r.getUseSoftTabs();var b=function(z,M){var y=z.match(F);if(!!y){var x=y[1].length,R=y[0].length;!L(z,x,R)&&y[0][R-1]==" "&&R--,f.removeInLine(M,x,R)}},k=g+" ",p=function(z,M){(!v||/\S/.test(z))&&(L(z,c,c)?f.insertInLine({row:M,column:c},k):f.insertInLine({row:M,column:c},g))},S=function(z,M){return F.test(z)},L=function(z,M,y){for(var x=0;M--&&z.charAt(M)==" ";)x++;if(x%m!=0)return!1;for(var x=0;z.charAt(y++)==" ";)x++;return m>2?x%m!=m-1:x%m==0}}else{if(!this.blockComment)return!1;var g=this.blockComment.start,A=this.blockComment.end,F=new RegExp("^(\\s*)(?:"+s.escapeRegExp(g)+")"),h=new RegExp("(?:"+s.escapeRegExp(A)+")\\s*$"),p=function(I,W){S(I,W)||(!v||/\S/.test(I))&&(f.insertInLine({row:W,column:I.length},A),f.insertInLine({row:W,column:c},g))},b=function(I,W){var H;(H=I.match(h))&&f.removeInLine(W,I.length-H[0].length,I.length),(H=I.match(F))&&f.removeInLine(W,H[1].length,H[0].length)},S=function(I,W){if(F.test(I))return!0;for(var H=r.getTokens(W),z=0;z<H.length;z++)if(H[z].type==="comment")return!0}}function D(I){for(var W=o;W<=u;W++)I(f.getLine(W),W)}var O=1/0;D(function(I,W){var H=I.search(/\S/);H!==-1?(H<c&&(c=H),w&&!S(I,W)&&(w=!1)):O>I.length&&(O=I.length)}),c==1/0&&(c=O,v=!1,w=!1),l&&c%m!=0&&(c=Math.floor(c/m)*m),D(w?b:p)},this.toggleBlockComment=function(i,r,o,u){var f=this.blockComment;if(!!f){!f.start&&f[0]&&(f=f[0]);var v=new t(r,u.row,u.column),w=v.getCurrentToken();r.selection;var c=r.selection.toOrientedRange(),m,l;if(w&&/comment/.test(w.type)){for(var g,A;w&&/comment/.test(w.type);){var F=w.value.indexOf(f.start);if(F!=-1){var h=v.getCurrentTokenRow(),p=v.getCurrentTokenColumn()+F;g=new e(h,p,h,p+f.start.length);break}w=v.stepBackward()}for(var v=new t(r,u.row,u.column),w=v.getCurrentToken();w&&/comment/.test(w.type);){var F=w.value.indexOf(f.end);if(F!=-1){var h=v.getCurrentTokenRow(),p=v.getCurrentTokenColumn()+F;A=new e(h,p,h,p+f.end.length);break}w=v.stepForward()}A&&r.remove(A),g&&(r.remove(g),m=g.start.row,l=-f.start.length)}else l=f.start.length,m=o.start.row,r.insert(o.end,f.end),r.insert(o.start,f.start);c.start.row==m&&(c.start.column+=l),c.end.row==m&&(c.end.column+=l),r.selection.fromOrientedRange(c)}},this.getNextLineIndent=function(i,r,o){return this.$getIndent(r)},this.checkOutdent=function(i,r,o){return!1},this.autoOutdent=function(i,r,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 r in i)i[r]&&(this.$embeds.push(r),this.$modes[r]=new i[r]);for(var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],r=0;r<o.length;r++)(function(f){var v=o[r],w=f[v];f[o[r]]=function(){return this.$delegator(v,arguments,w)}})(this)},this.$delegator=function(i,r,o){var u=r[0];typeof u!="string"&&(u=u[0]);for(var f=0;f<this.$embeds.length;f++)if(!!this.$modes[this.$embeds[f]]){var v=u.split(this.$embeds[f]);if(!v[0]&&v[1]){r[0]=v[1];var w=this.$modes[this.$embeds[f]];return w[i].apply(w,r)}}var c=o.apply(this,r);return o?c:void 0},this.transformAction=function(i,r,o,u,f){if(this.$behaviour){var v=this.$behaviour.getBehaviours();for(var w in v)if(v[w][r]){var c=v[w][r].apply(this,arguments);if(c)return c}}},this.getKeywords=function(i){if(!this.completionKeywords){var r=this.$tokenizer.rules,o=[];for(var u in r)for(var f=r[u],v=0,w=f.length;v<w;v++)if(typeof f[v].token=="string")/keyword|support|storage/.test(f[v].token)&&o.push(f[v].regex);else if(typeof f[v].token=="object"){for(var c=0,m=f[v].token.length;c<m;c++)if(/keyword|support|storage/.test(f[v].token[c])){var u=f[v].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,r,o,u){var f=this.$keywordList||this.$createKeywordList();return f.map(function(v){return{name:v,value:v,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(n.prototype),E.Mode=n});ace.define("ace/apply_delta",["require","exports","module"],function(B,E,K){E.applyDelta=function($,C,d){var a=C.start.row,s=C.start.column,t=$[a]||"";switch(C.action){case"insert":var e=C.lines;if(e.length===1)$[a]=t.substring(0,s)+C.lines[0]+t.substring(s);else{var n=[a,1].concat(C.lines);$.splice.apply($,n),$[a]=t.substring(0,s)+$[a],$[a+C.lines.length-1]+=t.substring(s)}break;case"remove":var i=C.end.column,r=C.end.row;a===r?$[a]=t.substring(0,s)+t.substring(i):$.splice(a,r-a+1,t.substring(0,s)+$[r].substring(i));break}}});ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/event_emitter").EventEmitter,d=E.Anchor=function(a,s,t){this.$onChange=this.onChange.bind(this),this.attach(a),typeof t=="undefined"?this.setPosition(s.row,s.column):this.setPosition(s,t)};(function(){$.implement(this,C),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=s(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}};function a(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 s(t,e,n){var i=t.action=="insert",r=(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 a(e,u,n)?{row:e.row,column:e.column}:a(f,e,!n)?{row:e.row+r,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 r={row:this.row,column:this.column};this.row=i.row,this.column=i.column,this._signal("change",{old:r,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(d.prototype)});ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(B,E,K){var $=B("./lib/oop"),C=B("./apply_delta").applyDelta,d=B("./lib/event_emitter").EventEmitter,a=B("./range").Range,s=B("./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(){$.implement(this,d),this.setValue=function(e){var n=this.getLength()-1;this.remove(new a(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 s(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),r=this.pos(e.row,e.column+n.length);return this.applyDelta({start:i,end:r,action:"insert",lines:[n]},!0),this.clonePos(r)},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 r=this.getLine(e);return n==null&&(n=r.length),n=Math.min(Math.max(n,0),r.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),r={row:i.row+n.length-1,column:(n.length==1?i.column:0)+n[n.length-1].length};return this.applyDelta({start:i,end:r,action:"insert",lines:n}),this.clonePos(r)},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 r=this.clippedPos(e,n),o=this.clippedPos(e,i);return this.applyDelta({start:r,end:o,action:"remove",lines:this.getLinesForRange({start:r,end:o})},!0),this.clonePos(r)},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,r=n<this.getLength()-1,o=i?e-1:e,u=i?this.getLine(o).length:0,f=r?n+1:n,v=r?0:this.getLine(f).length,w=new a(o,u,f,v),c=this.$lines.slice(e,n+1);return this.applyDelta({start:w.start,end:w.end,action:"remove",lines:this.getLinesForRange(w)}),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 a||(e=a.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]:!a.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),C(this.$lines,e,n),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,n){var i=e.lines,r=i.length,o=e.start.row,u=e.start.column,f=0,v=0;do{f=v,v+=n-1;var w=i.slice(f,v);if(v>r){e.lines=w,e.start.row=o+f,e.start.column=u;break}w.push(""),this.applyDelta({start:this.pos(o+f,u),end:this.pos(o+v,u=0),action:e.action,lines:w},!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(),r=this.getNewLineCharacter().length,o=n||0,u=i.length;o<u;o++)if(e-=i[o].length+r,e<0)return{row:o,column:e+i[o].length+r};return{row:u-1,column:i[u-1].length}},this.positionToIndex=function(e,n){for(var i=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,o=0,u=Math.min(e.row,i.length),f=n||0;f<u;++f)o+=i[f].length+r;return o+e.column}}).call(t.prototype),E.Document=t});ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/event_emitter").EventEmitter,d=function(a,s){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=a;var t=this;this.$worker=function(){if(!!t.running){for(var e=new Date,n=t.currentLine,i=-1,r=t.doc,o=n;t.lines[n];)n++;var u=r.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(){$.implement(this,C),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(a,s){var t={first:a,last:s};this._signal("update",{data:t})},this.start=function(a){this.currentLine=Math.min(a||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(a){var s=a.start.row,t=a.end.row-s;if(t===0)this.lines[s]=null;else if(a.action=="remove")this.lines.splice(s,t+1,null),this.states.splice(s,t+1,null);else{var e=Array(t+1);e.unshift(s,1),this.lines.splice.apply(this.lines,e),this.states.splice.apply(this.states,e)}this.currentLine=Math.min(s,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a){return this.lines[a]||this.$tokenizeRow(a)},this.getState=function(a){return this.currentLine==a&&this.$tokenizeRow(a),this.states[a]||"start"},this.$tokenizeRow=function(a){var s=this.doc.getLine(a),t=this.states[a-1],e=this.tokenizer.getLineTokens(s,t,a);return this.states[a]+""!=e.state+""?(this.states[a]=e.state,this.lines[a+1]=null,this.currentLine>a+1&&(this.currentLine=a+1)):this.currentLine==a&&(this.currentLine=a+1),this.lines[a]=e.tokens}}).call(d.prototype),E.BackgroundTokenizer=d});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(B,E,K){var $=B("./lib/lang");B("./lib/oop");var C=B("./range").Range,d=function(a,s,t){this.setRegexp(a),this.clazz=s,this.type=t||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(a){this.regExp+""!=a+""&&(this.regExp=a,this.cache=[])},this.update=function(a,s,t,e){if(!!this.regExp)for(var n=e.firstRow,i=e.lastRow,r=n;r<=i;r++){var o=this.cache[r];o==null&&(o=$.getMatchOffsets(t.getLine(r),this.regExp),o.length>this.MAX_RANGES&&(o=o.slice(0,this.MAX_RANGES)),o=o.map(function(f){return new C(r,f.offset,r,f.offset+f.length)}),this.cache[r]=o.length?o:"");for(var u=o.length;u--;)s.drawSingleLineMarker(a,o[u].toScreenRange(t),this.clazz,e)}}}).call(d.prototype),E.SearchHighlight=d});ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(B,E,K){var $=B("../range").Range;function C(d,a){this.foldData=d,Array.isArray(a)?this.folds=a:a=this.folds=[a];var s=a[a.length-1];this.range=new $(a[0].start.row,a[0].start.column,s.end.row,s.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(d){this.start.row+=d,this.end.row+=d,this.folds.forEach(function(a){a.start.row+=d,a.end.row+=d})},this.addFold=function(d){if(d.sameRow){if(d.start.row<this.startRow||d.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(d),this.folds.sort(function(a,s){return-a.range.compareEnd(s.start.row,s.start.column)}),this.range.compareEnd(d.start.row,d.start.column)>0?(this.end.row=d.end.row,this.end.column=d.end.column):this.range.compareStart(d.end.row,d.end.column)<0&&(this.start.row=d.start.row,this.start.column=d.start.column)}else if(d.start.row==this.end.row)this.folds.push(d),this.end.row=d.end.row,this.end.column=d.end.column;else if(d.end.row==this.start.row)this.folds.unshift(d),this.start.row=d.start.row,this.start.column=d.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");d.foldLine=this},this.containsRow=function(d){return d>=this.start.row&&d<=this.end.row},this.walk=function(d,a,s){var t=0,e=this.folds,n,i,r,o=!0;a==null&&(a=this.end.row,s=this.end.column);for(var u=0;u<e.length;u++){if(n=e[u],i=n.range.compareStart(a,s),i==-1){d(null,a,s,t,o);return}if(r=d(null,n.start.row,n.start.column,t,o),r=!r&&d(n.placeholder,n.start.row,n.start.column,t),r||i===0)return;o=!n.sameRow,t=n.end.column}d(null,a,s,t,o)},this.getNextFoldTo=function(d,a){for(var s,t,e=0;e<this.folds.length;e++){if(s=this.folds[e],t=s.range.compareEnd(d,a),t==-1)return{fold:s,kind:"after"};if(t===0)return{fold:s,kind:"inside"}}return null},this.addRemoveChars=function(d,a,s){var t=this.getNextFoldTo(d,a),e,n;if(t){if(e=t.fold,t.kind=="inside"&&e.start.column!=a&&e.start.row!=d)window.console&&window.console.log(d,a,e);else if(e.start.row==d){n=this.folds;var i=n.indexOf(e);for(i===0&&(this.start.column+=s),i;i<n.length;i++){if(e=n[i],e.start.column+=s,!e.sameRow)return;e.end.column+=s}this.end.column+=s}}},this.split=function(d,a){var s=this.getNextFoldTo(d,a);if(!s||s.kind=="inside")return null;var t=s.fold,e=this.folds,n=this.foldData,i=e.indexOf(t),r=e[i-1];this.end.row=r.end.row,this.end.column=r.end.column,e=e.splice(i,e.length-i);var o=new C(n,e);return n.splice(n.indexOf(this)+1,0,o),o},this.merge=function(d){for(var a=d.folds,s=0;s<a.length;s++)this.addFold(a[s]);var t=this.foldData;t.splice(t.indexOf(d),1)},this.toString=function(){var d=[this.range.toString()+": ["];return this.folds.forEach(function(a){d.push(" "+a.toString())}),d.push("]"),d.join(`
|
|
`)},this.idxToPosition=function(d){for(var a=0,s=0;s<this.folds.length;s++){var t=this.folds[s];if(d-=t.start.column-a,d<0)return{row:t.start.row,column:t.start.column+d};if(d-=t.placeholder.length,d<0)return t.start;a=t.end.column}return{row:this.end.row,column:this.end.column+d}}}).call(C.prototype),E.FoldLine=C});ace.define("ace/range_list",["require","exports","module","ace/range"],function(B,E,K){var $=B("./range").Range,C=$.comparePoints,d=function(){this.ranges=[]};(function(){this.comparePoints=C,this.pointIndex=function(a,s,t){for(var e=this.ranges,n=t||0;n<e.length;n++){var i=e[n],r=C(a,i.end);if(!(r>0)){var o=C(a,i.start);return r===0?s&&o!==0?-n-2:n:o>0||o===0&&!s?n:-n-1}}return-n-1},this.add=function(a){var s=!a.isEmpty(),t=this.pointIndex(a.start,s);t<0&&(t=-t-1);var e=this.pointIndex(a.end,s,t);return e<0?e=-e-1:e++,this.ranges.splice(t,e-t,a)},this.addList=function(a){for(var s=[],t=a.length;t--;)s.push.apply(s,this.add(a[t]));return s},this.substractPoint=function(a){var s=this.pointIndex(a);if(s>=0)return this.ranges.splice(s,1)},this.merge=function(){var a=[],s=this.ranges;s=s.sort(function(r,o){return C(r.start,o.start)});for(var t=s[0],e,n=1;n<s.length;n++){e=t,t=s[n];var i=C(e.end,t.start);i<0||i==0&&!e.isEmpty()&&!t.isEmpty()||(C(e.end,t.end)<0&&(e.end.row=t.end.row,e.end.column=t.end.column),s.splice(n,1),a.push(t),t=e,n--)}return this.ranges=s,a},this.contains=function(a,s){return this.pointIndex({row:a,column:s})>=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var s=this.pointIndex(a);if(s>=0)return this.ranges[s]},this.clipRows=function(a,s){var t=this.ranges;if(t[0].start.row>s||t[t.length-1].start.row<a)return[];var e=this.pointIndex({row:a,column:0});e<0&&(e=-e-1);var n=this.pointIndex({row:s,column:0},e);n<0&&(n=-n-1);for(var i=[],r=e;r<n;r++)i.push(t[r]);return i},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(a){this.session&&this.detach(),this.session=a,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(a){if(a.action=="insert")var s=a.start,t=a.end;else var t=a.start,s=a.end;for(var e=s.row,n=t.row,i=n-e,r=-s.column+t.column,o=this.ranges,u=0,f=o.length;u<f;u++){var v=o[u];if(!(v.end.row<e)){if(v.start.row>e)break;if(v.start.row==e&&v.start.column>=s.column&&(v.start.column==s.column&&this.$insertRight||(v.start.column+=r,v.start.row+=i)),v.end.row==e&&v.end.column>=s.column){if(v.end.column==s.column&&this.$insertRight)continue;v.end.column==s.column&&r>0&&u<f-1&&v.end.column>v.start.column&&v.end.column==o[u+1].start.column&&(v.end.column-=r),v.end.column+=r,v.end.row+=i}}}if(i!=0&&u<f)for(;u<f;u++){var v=o[u];v.start.row+=i,v.end.row+=i}}}).call(d.prototype),E.RangeList=d});ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(B,E,K){B("../range").Range;var $=B("../range_list").RangeList,C=B("../lib/oop"),d=E.Fold=function(n,i){this.foldLine=null,this.placeholder=i,this.range=n,this.start=n.start,this.end=n.end,this.sameRow=n.start.row==n.end.row,this.subFolds=this.ranges=[]};C.inherits(d,$),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(n){this.foldLine=n,this.subFolds.forEach(function(i){i.setFoldLine(n)})},this.clone=function(){var n=this.range.clone(),i=new d(n,this.placeholder);return this.subFolds.forEach(function(r){i.subFolds.push(r.clone())}),i.collapseChildren=this.collapseChildren,i},this.addSubFold=function(n){if(!this.range.isEqual(n)){if(!this.range.containsRange(n))throw new Error("A fold can't intersect already existing fold"+n.range+this.range);s(n,this.start);for(var u=n.start.row,f=n.start.column,i=0,r=-1;i<this.subFolds.length&&(r=this.subFolds[i].range.compare(u,f),r==1);i++);var o=this.subFolds[i];if(r==0)return o.addSubFold(n);for(var u=n.range.end.row,f=n.range.end.column,v=i,r=-1;v<this.subFolds.length&&(r=this.subFolds[v].range.compare(u,f),r==1);v++);if(this.subFolds[v],r==0)throw new Error("A fold can't intersect already existing fold"+n.range+this.range);return this.subFolds.splice(i,v-i,n),n.setFoldLine(this.foldLine),n}},this.restoreRange=function(n){return e(n,this.start)}}.call(d.prototype);function a(n,i){n.row-=i.row,n.row==0&&(n.column-=i.column)}function s(n,i){a(n.start,i),a(n.end,i)}function t(n,i){n.row==0&&(n.column+=i.column),n.row+=i.row}function e(n,i){t(n.start,i),t(n.end,i)}});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,E,K){var $=B("../range").Range,C=B("./fold_line").FoldLine,d=B("./fold").Fold,a=B("../token_iterator").TokenIterator;function s(){this.getFoldAt=function(t,e,n){var i=this.getFoldLine(t);if(!i)return null;for(var r=i.folds,o=0;o<r.length;o++){var u=r[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,r=[];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,v=0;v<f.length;v++){var w=f[v];if(u=w.range.compareRange(t),u==-2)break;if(u==2)continue;if(u==42)break;r.push(w)}}}return e.column-=1,n.column+=1,r},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 r={end:{column:0}},o,u,f=0;f<i.folds.length;f++){u=i.folds[f];var v=u.range.compareEnd(t,e);if(v==-1){o=this.getLine(u.start.row).substring(r.end.column,u.start.column);break}else if(v===0)return null;r=u}return o||(o=this.getLine(u.start.row).substring(r.end.column)),n==-1?o.substring(0,e-r.end.column):n==1?o.substring(e-r.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 r=n[i];if(r.start.row<=t&&r.end.row>=t)return r;if(r.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 r=n[i];if(r.end.row>=t)return r}return null},this.getFoldedRowCount=function(t,e){for(var n=this.$foldData,i=e-t+1,r=0;r<n.length;r++){var o=n[r],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,r;t instanceof d?r=t:(r=new d(e,t),r.collapseChildren=e.collapseChildren),this.$clipRangeToDocument(r.range);var o=r.start.row,u=r.start.column,f=r.end.row,v=r.end.column;if(!(o<f||o==f&&u<=v-2))throw new Error("The range has to be at least 2 characters width");var w=this.getFoldAt(o,u,1),c=this.getFoldAt(f,v,-1);if(w&&c==w)return w.addSubFold(r);w&&!w.range.isStart(o,u)&&this.removeFold(w),c&&!c.range.isEnd(f,v)&&this.removeFold(c);var m=this.getFoldsInRange(r.range);m.length>0&&(this.removeFolds(m),m.forEach(function(F){r.addSubFold(F)}));for(var l=0;l<n.length;l++){var g=n[l];if(f==g.start.row){g.addFold(r),i=!0;break}else if(o==g.end.row){if(g.addFold(r),i=!0,!r.sameRow){var A=n[l+1];if(A&&A.start.row==f){g.merge(A);break}}break}else if(f<=g.start.row)break}return i||(g=this.$addFoldLine(new C(this.$foldData,r))),this.$useWrapMode?this.$updateWrapData(g.start.row,g.start.row):this.$updateRowLengthCache(g.start.row,g.start.row),this.$modified=!0,this._signal("changeFold",{data:r,action:"add"}),r},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,r=this.$foldData,o=e.folds;if(o.length==1)r.splice(r.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 $(0,0,this.getLength(),0),e=!0):typeof t=="number"?n=new $(t,0,t,this.getLine(t).length):"row"in t?n=$.fromPoints(t,t):n=t,i=this.getFoldsInRangeList(n),e)this.removeFolds(i);else for(var r=i;r.length;)this.expandFolds(r),r=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,r){i==null&&(i=t.start.row),r==null&&(r=0),e==null&&(e=t.end.row),n==null&&(n=this.getLine(e).length);var o=this.doc,u="";return t.walk(function(f,v,w,c){if(!(v<i)){if(v==i){if(w<r)return;c=Math.max(r,c)}f!=null?u+=f:u+=o.getLine(v).substring(c,w)}},e,n),u},this.getDisplayLine=function(t,e,n,i){var r=this.getFoldLine(t);if(r)return this.getFoldDisplayLine(r,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 C(t,n)}),t},this.toggleFold=function(t){var e=this.selection,n=e.getRange(),i,r;if(n.isEmpty()){var o=n.start;if(i=this.getFoldAt(o.row,o.column),i){this.expandFold(i);return}else(r=this.findMatchingBracket(o))?n.comparePoint(r)==1?n.end=r:(n.start=r,n.start.column++,n.end.column--):(r=this.findMatchingBracket({row:o.row,column:o.column+1}))?(n.comparePoint(r)==1?n.end=r:n.start=r,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 a(this,t,e),r=i.getCurrentToken(),o=r.type;if(r&&/^comment|string/.test(o)){o=o.match(/comment|string/)[0],o=="comment"&&(o+="|doc-start");var u=new RegExp(o),f=new $;if(n!=1){do r=i.stepBackward();while(r&&u.test(r.type));i.stepForward()}if(f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new a(this,t,e),n!=-1){var v=-1;do if(r=i.stepForward(),v==-1){var w=this.getState(i.$row);u.test(w)||(v=i.$row)}else if(i.$row>v)break;while(r&&u.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+r.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 r=t;r<e;r++)if(i[r]==null&&(i[r]=this.getFoldWidget(r)),i[r]=="start"){var o=this.getFoldWidgetRange(r);if(o&&o.isMultiLine()&&o.end.row<=e&&o.start.row>=t){r=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,r;i>=0;){var o=n[i];if(o==null&&(o=n[i]=this.getFoldWidget(i)),o=="start"){var u=this.getFoldWidgetRange(i);if(r||(r=u),u&&u.end.row>=t)break}i--}return{range:i!==-1&&u,firstRange:r}},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 r=e.target||e.srcElement;r&&/ace_fold-widget/.test(r.className)&&(r.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,e){if(!!this.getFoldWidget){var n=this.getFoldWidget(t),i=this.getLine(t),r=n==="end"?-1:1,o=this.getFoldAt(t,r===-1?0:i.length,r);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 v=f.range.start.row+1,w=f.range.end.row;this.foldAll(v,w,e.all?1e4:0)}else e.children?(w=u?u.end.row:this.getLength(),this.foldAll(t+1,w,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 r=this.getFoldAt(e,this.getLine(e).length,1);r?this.removeFold(r):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)}}E.Folding=s});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(B,E,K){var $=B("../token_iterator").TokenIterator,C=B("../range").Range;function d(){this.findMatchingBracket=function(a,s){if(a.column==0)return null;var t=s||this.getLine(a.row).charAt(a.column-1);if(t=="")return null;var e=t.match(/([\(\[\{])|([\)\]\}])/);return e?e[1]?this.$findClosingBracket(e[1],a):this.$findOpeningBracket(e[2],a):null},this.getBracketRange=function(a){var s=this.getLine(a.row),t=!0,e,n=s.charAt(a.column-1),i=n&&n.match(/([\(\[\{])|([\)\]\}])/);if(i||(n=s.charAt(a.column),a={row:a.row,column:a.column+1},i=n&&n.match(/([\(\[\{])|([\)\]\}])/),t=!1),!i)return null;if(i[1]){var r=this.$findClosingBracket(i[1],a);if(!r)return null;e=C.fromPoints(a,r),t||(e.end.column++,e.start.column--),e.cursor=e.end}else{var r=this.$findOpeningBracket(i[2],a);if(!r)return null;e=C.fromPoints(r,a),t||(e.start.column++,e.end.column--),e.cursor=e.start}return e},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,s,t){var e=this.$brackets[a],n=1,i=new $(this,s.row,s.column),r=i.getCurrentToken();if(r||(r=i.stepForward()),!!r){t||(t=new RegExp("(\\.?"+r.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var o=s.column-i.getCurrentTokenColumn()-2,u=r.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==a&&(n+=1);o-=1}do r=i.stepBackward();while(r&&!t.test(r.type));if(r==null)break;u=r.value,o=u.length-1}return null}},this.$findClosingBracket=function(a,s,t){var e=this.$brackets[a],n=1,i=new $(this,s.row,s.column),r=i.getCurrentToken();if(r||(r=i.stepForward()),!!r){t||(t=new RegExp("(\\.?"+r.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var o=s.column-i.getCurrentTokenColumn();;){for(var u=r.value,f=u.length;o<f;){var v=u.charAt(o);if(v==e){if(n-=1,n==0)return{row:i.getCurrentTokenRow(),column:o+i.getCurrentTokenColumn()}}else v==a&&(n+=1);o+=1}do r=i.stepForward();while(r&&!t.test(r.type));if(r==null)break;o=0}return null}}}E.BracketMatch=d});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,E,K){var $=B("./lib/oop"),C=B("./lib/lang"),d=B("./bidihandler").BidiHandler,a=B("./config"),s=B("./lib/event_emitter").EventEmitter,t=B("./selection").Selection,e=B("./mode/text").Mode,n=B("./range").Range,i=B("./document").Document,r=B("./background_tokenizer").BackgroundTokenizer,o=B("./search_highlight").SearchHighlight,u=function(f,v){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 d(this),this.setDocument(f),this.selection=new t(this),a.resetOptions(this),this.setMode(v),a._signal("session",this)};u.$uid=0,function(){$.implement(this,s),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 p=this.$docRowCache.length,b=this.$getRowCacheIndex(this.$docRowCache,h)+1;p>b&&(this.$docRowCache.splice(b,p),this.$screenRowCache.splice(b,p))},this.$getRowCacheIndex=function(h,p){for(var b=0,S=h.length-1;b<=S;){var k=b+S>>1,L=h[k];if(p>L)b=k+1;else if(p<L)S=k-1;else return k}return b-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 p=h.data;this.$resetRowCache(p.start.row)},this.onChange=function(h){this.$modified=!0,this.$bidiHandler.onChange(h),this.$resetRowCache(h.start.row);var p=this.$updateInternalDataOnChange(h);!this.$fromUndo&&this.$undoManager&&!h.ignore&&(this.$deltasDoc.push(h),p&&p.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:p}),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,p){var b=this.bgTokenizer.getTokens(h),S,k=0;if(p==null){var L=b.length-1;k=this.getLine(h).length}else for(var L=0;L<b.length&&(k+=b[L].value.length,!(k>=p));L++);return S=b[L],S?(S.index=L,S.start=k-S.value.length,S):null},this.setUndoManager=function(h){if(this.$undoManager=h,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),h){var p=this;this.$syncInformUndoManager=function(){p.$informUndoManager.cancel(),p.$deltasFold.length&&(p.$deltas.push({group:"fold",deltas:p.$deltasFold}),p.$deltasFold=[]),p.$deltasDoc.length&&(p.$deltas.push({group:"doc",deltas:p.$deltasDoc}),p.$deltasDoc=[]),p.$deltas.length>0&&h.execute({action:"aceupdate",args:[p.$deltas,p],merge:p.mergeUndoDeltas}),p.mergeUndoDeltas=!1,p.$deltas=[]},this.$informUndoManager=C.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()?C.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,p){this.$decorations[h]||(this.$decorations[h]=""),this.$decorations[h]+=" "+p,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(h,p){this.$decorations[h]=(this.$decorations[h]||"").replace(" "+p,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(h){this.$breakpoints=[];for(var p=0;p<h.length;p++)this.$breakpoints[h[p]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(h,p){p===void 0&&(p="ace_breakpoint"),p?this.$breakpoints[h]=p:delete this.$breakpoints[h],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(h){delete this.$breakpoints[h],this._signal("changeBreakpoint",{})},this.addMarker=function(h,p,b,S){var k=this.$markerId++,L={range:h,type:b||"line",renderer:typeof b=="function"?b:null,clazz:p,inFront:!!S,id:k};return S?(this.$frontMarkers[k]=L,this._signal("changeFrontMarker")):(this.$backMarkers[k]=L,this._signal("changeBackMarker")),k},this.addDynamicMarker=function(h,p){if(!!h.update){var b=this.$markerId++;return h.id=b,h.inFront=!!p,p?(this.$frontMarkers[b]=h,this._signal("changeFrontMarker")):(this.$backMarkers[b]=h,this._signal("changeBackMarker")),h}},this.removeMarker=function(h){var p=this.$frontMarkers[h]||this.$backMarkers[h];if(!!p){var b=p.inFront?this.$frontMarkers:this.$backMarkers;p&&(delete b[h],this._signal(p.inFront?"changeFrontMarker":"changeBackMarker"))}},this.getMarkers=function(h){return h?this.$frontMarkers:this.$backMarkers},this.highlight=function(h){if(!this.$searchHighlight){var p=new o(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(p)}this.$searchHighlight.setRegexp(h)},this.highlightLines=function(h,p,b,S){typeof p!="number"&&(b=p,p=h),b||(b="ace_step");var k=new n(h,0,p,1/0);return k.id=this.addMarker(k,b,"fullLine",S),k},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 p=h.match(/^.*?(\r?\n)/m);p?this.$autoNewLine=p[1]:this.$autoNewLine=`
|
|
`},this.getWordRange=function(h,p){var b=this.getLine(h),S=!1;if(p>0&&(S=!!b.charAt(p-1).match(this.tokenRe)),S||(S=!!b.charAt(p).match(this.tokenRe)),S)var k=this.tokenRe;else if(/^\s+$/.test(b.slice(p-1,p+1)))var k=/\s/;else var k=this.nonTokenRe;var L=p;if(L>0){do L--;while(L>=0&&b.charAt(L).match(k));L++}for(var D=p;D<b.length&&b.charAt(D).match(k);)D++;return new n(h,L,h,D)},this.getAWordRange=function(h,p){for(var b=this.getWordRange(h,p),S=this.getLine(b.end.row);S.charAt(b.end.column).match(/[ \t]/);)b.end.column+=1;return b},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 p=h.data;this.bgTokenizer.start(p.first),this._signal("tokenizerUpdate",h)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(h,p){if(h&&typeof h=="object"){if(h.getTokenizer)return this.$onChangeMode(h);var b=h,S=b.path}else S=h||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new e),this.$modes[S]&&!b){this.$onChangeMode(this.$modes[S]),p&&p();return}this.$modeId=S,a.loadModule(["mode",S],function(k){if(this.$modeId!==S)return p&&p();this.$modes[S]&&!b?this.$onChangeMode(this.$modes[S]):k&&k.Mode&&(k=new k.Mode(b),b||(this.$modes[S]=k,k.$id=S),this.$onChangeMode(k)),p&&p()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(h,p){if(p||(this.$modeId=h.$id),this.$mode!==h){this.$mode=h,this.$stopWorker(),this.$useWorker&&this.$startWorker();var b=h.getTokenizer();if(b.addEventListener!==void 0){var S=this.onReloadTokenizer.bind(this);b.addEventListener("update",S)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(b);else{this.bgTokenizer=new r(b);var k=this;this.bgTokenizer.addEventListener("update",function(L){k._signal("tokenizerUpdate",L)})}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=h.tokenRe,this.nonTokenRe=h.nonTokenRe,p||(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){a.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(p){p&&p.screenWidth>h&&(h=p.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 p=this.doc.getAllLines(),b=this.$rowLengthCache,S=0,k=0,L=this.$foldData[k],D=L?L.start.row:1/0,O=p.length,I=0;I<O;I++){if(I>D){if(I=L.end.row+1,I>=O)break;L=this.$foldData[k++],D=L?L.start.row:1/0}b[I]==null&&(b[I]=this.$getStringScreenWidth(p[I])[0]),b[I]>S&&(S=b[I])}this.screenWidth=S}},this.getLine=function(h){return this.doc.getLine(h)},this.getLines=function(h,p){return this.doc.getLines(h,p)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(h){return this.doc.getTextRange(h||this.selection.getRange())},this.insert=function(h,p){return this.doc.insert(h,p)},this.remove=function(h){return this.doc.remove(h)},this.removeFullLines=function(h,p){return this.doc.removeFullLines(h,p)},this.undoChanges=function(h,p){if(!!h.length){this.$fromUndo=!0;for(var b=null,S=h.length-1;S!=-1;S--){var k=h[S];k.group=="doc"?(this.doc.revertDeltas(k.deltas),b=this.$getUndoSelection(k.deltas,!0,b)):k.deltas.forEach(function(L){this.addFolds(L.folds)},this)}return this.$fromUndo=!1,b&&this.$undoSelect&&!p&&this.selection.setSelectionRange(b),b}},this.redoChanges=function(h,p){if(!!h.length){this.$fromUndo=!0;for(var b=null,S=0;S<h.length;S++){var k=h[S];k.group=="doc"&&(this.doc.applyDeltas(k.deltas),b=this.$getUndoSelection(k.deltas,!1,b))}return this.$fromUndo=!1,b&&this.$undoSelect&&!p&&this.selection.setSelectionRange(b),b}},this.setUndoSelect=function(h){this.$undoSelect=h},this.$getUndoSelection=function(h,p,b){function S(W){return p?W.action!=="insert":W.action==="insert"}var k=h[0],L,D;S(k)?L=n.fromPoints(k.start,k.end):L=n.fromPoints(k.start,k.start);for(var O=1;O<h.length;O++)k=h[O],S(k)?(D=k.start,L.compare(D.row,D.column)==-1&&L.setStart(D),D=k.end,L.compare(D.row,D.column)==1&&L.setEnd(D)):(D=k.start,L.compare(D.row,D.column)==-1&&(L=n.fromPoints(k.start,k.start)));if(b!=null){n.comparePoints(b.start,L.start)===0&&(b.start.column+=L.end.column-L.start.column,b.end.column+=L.end.column-L.start.column);var I=b.compareRange(L);I==1?L.setStart(b.start):I==-1&&L.setEnd(b.end)}return L},this.replace=function(h,p){return this.doc.replace(h,p)},this.moveText=function(h,p,b){var S=this.getTextRange(h),k=this.getFoldsInRange(h),L=n.fromPoints(p,p);if(!b){this.remove(h);var D=h.start.row-h.end.row,O=D?-h.end.column:h.start.column-h.end.column;O&&(L.start.row==h.end.row&&L.start.column>h.end.column&&(L.start.column+=O),L.end.row==h.end.row&&L.end.column>h.end.column&&(L.end.column+=O)),D&&L.start.row>=h.end.row&&(L.start.row+=D,L.end.row+=D)}if(L.end=this.insert(L.start,S),k.length){var I=h.start,W=L.start,D=W.row-I.row,O=W.column-I.column;this.addFolds(k.map(function(M){return M=M.clone(),M.start.row==I.row&&(M.start.column+=O),M.end.row==I.row&&(M.end.column+=O),M.start.row+=D,M.end.row+=D,M}))}return L},this.indentRows=function(h,p,b){b=b.replace(/\t/g,this.getTabString());for(var S=h;S<=p;S++)this.doc.insertInLine({row:S,column:0},b)},this.outdentRows=function(h){for(var p=h.collapseRows(),b=new n(0,0,0,0),S=this.getTabSize(),k=p.start.row;k<=p.end.row;++k){var L=this.getLine(k);b.start.row=k,b.end.row=k;for(var D=0;D<S&&L.charAt(D)==" ";++D);D<S&&L.charAt(D)==" "?(b.start.column=D,b.end.column=D+1):(b.start.column=0,b.end.column=D),this.remove(b)}},this.$moveLines=function(h,p,b){if(h=this.getRowFoldStart(h),p=this.getRowFoldEnd(p),b<0){var S=this.getRowFoldStart(h+b);if(S<0)return 0;var k=S-h}else if(b>0){var S=this.getRowFoldEnd(p+b);if(S>this.doc.getLength()-1)return 0;var k=S-p}else{h=this.$clipRowToDocument(h),p=this.$clipRowToDocument(p);var k=p-h+1}var L=new n(h,0,p,Number.MAX_VALUE),D=this.getFoldsInRange(L).map(function(I){return I=I.clone(),I.start.row+=k,I.end.row+=k,I}),O=b==0?this.doc.getLines(h,p):this.doc.removeFullLines(h,p);return this.doc.insertFullLines(h+k,O),D.length&&this.addFolds(D),k},this.moveLinesUp=function(h,p){return this.$moveLines(h,p,-1)},this.moveLinesDown=function(h,p){return this.$moveLines(h,p,1)},this.duplicateLines=function(h,p){return this.$moveLines(h,p,0)},this.$clipRowToDocument=function(h){return Math.max(0,Math.min(h,this.doc.getLength()-1))},this.$clipColumnToRow=function(h,p){return p<0?0:Math.min(this.doc.getLine(h).length,p)},this.$clipPositionToDocument=function(h,p){if(p=Math.max(0,p),h<0)h=0,p=0;else{var b=this.doc.getLength();h>=b?(h=b-1,p=this.doc.getLine(b-1).length):p=Math.min(this.doc.getLine(h).length,p)}return{row:h,column:p}},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 p=this.doc.getLength()-1;return h.end.row>p?(h.end.row=p,h.end.column=this.doc.getLine(p).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 p=this.getLength();this.$wrapData=Array(p),this.$updateWrapData(0,p-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(h,p){(this.$wrapLimitRange.min!==h||this.$wrapLimitRange.max!==p)&&(this.$wrapLimitRange={min:h,max:p},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(h,p){var b=this.$wrapLimitRange;b.max<0&&(b={min:p,max:p});var S=this.$constrainWrapLimit(h,b.min,b.max);return S!=this.$wrapLimit&&S>1?(this.$wrapLimit=S,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(h,p,b){return p&&(h=Math.max(p,h)),b&&(h=Math.min(b,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 p=this.$useWrapMode,b=h.action,S=h.start,k=h.end,L=S.row,D=k.row,O=D-L,I=null;if(this.$updating=!0,O!=0)if(b==="remove"){this[p?"$wrapData":"$rowLengthCache"].splice(L,O);var W=this.$foldData;I=this.getFoldsInRange(h),this.removeFolds(I);var H=this.getFoldLine(k.row),z=0;if(H){H.addRemoveChars(k.row,k.column,S.column-k.column),H.shiftRow(-O);var M=this.getFoldLine(L);M&&M!==H&&(M.merge(H),H=M),z=W.indexOf(H)+1}for(z;z<W.length;z++){var H=W[z];H.start.row>=k.row&&H.shiftRow(-O)}D=L}else{var y=Array(O);y.unshift(L,0);var x=p?this.$wrapData:this.$rowLengthCache;x.splice.apply(x,y);var W=this.$foldData,H=this.getFoldLine(L),z=0;if(H){var R=H.range.compareInside(S.row,S.column);R==0?(H=H.split(S.row,S.column),H&&(H.shiftRow(O),H.addRemoveChars(D,0,k.column-S.column))):R==-1&&(H.addRemoveChars(L,0,k.column-S.column),H.shiftRow(O)),z=W.indexOf(H)+1}for(z;z<W.length;z++){var H=W[z];H.start.row>=L&&H.shiftRow(O)}}else{O=Math.abs(h.start.column-h.end.column),b==="remove"&&(I=this.getFoldsInRange(h),this.removeFolds(I),O=-O);var H=this.getFoldLine(L);H&&H.addRemoveChars(L,S.column,O)}return p&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,p?this.$updateWrapData(L,D):this.$updateRowLengthCache(L,D),I},this.$updateRowLengthCache=function(h,p,b){this.$rowLengthCache[h]=null,this.$rowLengthCache[p]=null},this.$updateWrapData=function(h,p){var b=this.doc.getAllLines(),S=this.getTabSize(),k=this.$wrapData,L=this.$wrapLimit,D,O,I=h;for(p=Math.min(p,b.length-1);I<=p;)O=this.getFoldLine(I,O),O?(D=[],O.walk(function(W,H,z,M){var y;if(W!=null){y=this.$getDisplayTokens(W,D.length),y[0]=w;for(var x=1;x<y.length;x++)y[x]=c}else y=this.$getDisplayTokens(b[H].substring(M,z),D.length);D=D.concat(y)}.bind(this),O.end.row,b[O.end.row].length+1),k[O.start.row]=this.$computeWrapSplits(D,L,S),I=O.end.row+1):(D=this.$getDisplayTokens(b[I]),k[I]=this.$computeWrapSplits(D,L,S),I++)};var f=1,v=2,w=3,c=4,m=9,l=10,g=11,A=12;this.$computeWrapSplits=function(h,p,b){if(h.length==0)return[];var S=[],k=h.length,L=0,D=0,O=this.$wrapAsCode,I=this.$indentedSoftWrap,W=p<=Math.max(2*b,8)||I===!1?0:Math.floor(p/2);function H(){var R=0;if(W===0)return R;if(I)for(var T=0;T<h.length;T++){var P=h[T];if(P==l)R+=1;else if(P==g)R+=b;else{if(P==A)continue;break}}return O&&I!==!1&&(R+=b),Math.min(R,W)}function z(R){var T=h.slice(L,R),P=T.length;T.join("").replace(/12/g,function(){P-=1}).replace(/2/g,function(){P-=1}),S.length||(M=H(),S.indent=M),D+=P,S.push(D),L=R}for(var M=0;k-L>p-M;){var y=L+p-M;if(h[y-1]>=l&&h[y]>=l){z(y);continue}if(h[y]==w||h[y]==c){for(y;y!=L-1&&h[y]!=w;y--);if(y>L){z(y);continue}for(y=L+p,y;y<h.length&&h[y]==c;y++);if(y==h.length)break;z(y);continue}for(var x=Math.max(y-(p-(p>>2)),L-1);y>x&&h[y]<w;)y--;if(O){for(;y>x&&h[y]<w;)y--;for(;y>x&&h[y]==m;)y--}else for(;y>x&&h[y]<l;)y--;if(y>x){z(++y);continue}y=L+p,h[y]==v&&y--,z(y-M)}return S},this.$getDisplayTokens=function(h,p){var b=[],S;p=p||0;for(var k=0;k<h.length;k++){var L=h.charCodeAt(k);if(L==9){S=this.getScreenTabSize(b.length+p),b.push(g);for(var D=1;D<S;D++)b.push(A)}else L==32?b.push(l):L>39&&L<48||L>57&&L<64?b.push(m):L>=4352&&F(L)?b.push(f,v):b.push(f)}return b},this.$getStringScreenWidth=function(h,p,b){if(p==0)return[0,0];p==null&&(p=1/0),b=b||0;var S,k;for(k=0;k<h.length&&(S=h.charCodeAt(k),S==9?b+=this.getScreenTabSize(b):S>=4352&&F(S)?b+=2:b+=1,!(b>p));k++);return[b,k]},this.lineWidgets=null,this.getRowLength=function(h){if(this.lineWidgets)var p=this.lineWidgets[h]&&this.lineWidgets[h].rowCount||0;else p=0;return!this.$useWrapMode||!this.$wrapData[h]?1+p:this.$wrapData[h].length+1+p},this.getRowLineCount=function(h){return!this.$useWrapMode||!this.$wrapData[h]?1:this.$wrapData[h].length+1},this.getRowWrapIndent=function(h){if(this.$useWrapMode){var p=this.screenToDocumentPosition(h,Number.MAX_VALUE),b=this.$wrapData[p.row];return b.length&&b[0]<p.column?b.indent:0}else return 0},this.getScreenLastRowColumn=function(h){var p=this.screenToDocumentPosition(h,Number.MAX_VALUE);return this.documentToScreenColumn(p.row,p.column)},this.getDocumentLastRowColumn=function(h,p){var b=this.documentToScreenRow(h,p);return this.getScreenLastRowColumn(b)},this.getDocumentLastRowColumnPosition=function(h,p){var b=this.documentToScreenRow(h,p);return this.screenToDocumentPosition(b,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,p){return this.screenToDocumentPosition(h,p).row},this.screenToDocumentColumn=function(h,p){return this.screenToDocumentPosition(h,p).column},this.screenToDocumentPosition=function(h,p,b){if(h<0)return{row:0,column:0};var S,k=0,L=0,D,O=0,I=0,W=this.$screenRowCache,H=this.$getRowCacheIndex(W,h),z=W.length;if(z&&H>=0)var O=W[H],k=this.$docRowCache[H],M=h>W[z-1];else var M=!z;for(var y=this.getLength()-1,x=this.getNextFoldLine(k),R=x?x.start.row:1/0;O<=h&&(I=this.getRowLength(k),!(O+I>h||k>=y));)O+=I,k++,k>R&&(k=x.end.row+1,x=this.getNextFoldLine(k,x),R=x?x.start.row:1/0),M&&(this.$docRowCache.push(k),this.$screenRowCache.push(O));if(x&&x.start.row<=k)S=this.getFoldDisplayLine(x),k=x.start.row;else{if(O+I<=h||k>y)return{row:y,column:this.getLine(y).length};S=this.getLine(k),x=null}var T=0,P=Math.floor(h-O);if(this.$useWrapMode){var N=this.$wrapData[k];N&&(D=N[P],P>0&&N.length&&(T=N.indent,L=N[P-1]||N[N.length-1],S=S.substring(L)))}return b!==void 0&&this.$bidiHandler.isBidiRow(O+P,k,P)&&(p=this.$bidiHandler.offsetToCol(b)),L+=this.$getStringScreenWidth(S,p-T)[1],this.$useWrapMode&&L>=D&&(L=D-1),x?x.idxToPosition(L):{row:k,column:L}},this.documentToScreenPosition=function(h,p){if(typeof p=="undefined")var b=this.$clipPositionToDocument(h.row,h.column);else b=this.$clipPositionToDocument(h,p);h=b.row,p=b.column;var S=0,k=null,L=null;L=this.getFoldAt(h,p,1),L&&(h=L.start.row,p=L.start.column);var D,O=0,I=this.$docRowCache,W=this.$getRowCacheIndex(I,h),H=I.length;if(H&&W>=0)var O=I[W],S=this.$screenRowCache[W],z=h>I[H-1];else var z=!H;for(var M=this.getNextFoldLine(O),y=M?M.start.row:1/0;O<h;){if(O>=y){if(D=M.end.row+1,D>h)break;M=this.getNextFoldLine(D,M),y=M?M.start.row:1/0}else D=O+1;S+=this.getRowLength(O),O=D,z&&(this.$docRowCache.push(O),this.$screenRowCache.push(S))}var x="";M&&O>=y?(x=this.getFoldDisplayLine(M,h,p),k=M.start.row):(x=this.getLine(h).substring(0,p),k=h);var R=0;if(this.$useWrapMode){var T=this.$wrapData[k];if(T){for(var P=0;x.length>=T[P];)S++,P++;x=x.substring(T[P-1]||0,x.length),R=P>0?T.indent:0}}return{row:S,column:R+this.$getStringScreenWidth(x)[0]}},this.documentToScreenColumn=function(h,p){return this.documentToScreenPosition(h,p).column},this.documentToScreenRow=function(h,p){return this.documentToScreenPosition(h,p).row},this.getScreenLength=function(){var h=0,p=null;if(this.$useWrapMode)for(var k=this.$wrapData.length,L=0,S=0,p=this.$foldData[S++],D=p?p.start.row:1/0;L<k;){var O=this.$wrapData[L];h+=O?O.length+1:1,L++,L>D&&(L=p.end.row+1,p=this.$foldData[S++],D=p?p.start.row:1/0)}else{h=this.getLength();for(var b=this.$foldData,S=0;S<b.length;S++)p=b[S],h-=p.end.row-p.start.row}return this.lineWidgets&&(h+=this.$getWidgetScreenLength()),h},this.$setFontMetrics=function(h){!this.$enableVarChar||(this.$getStringScreenWidth=function(p,b,S){if(b===0)return[0,0];b||(b=1/0),S=S||0;var k,L;for(L=0;L<p.length&&(k=p.charAt(L),k===" "?S+=this.getScreenTabSize(S):S+=h.getCharacterWidth(k),!(S>b));L++);return[S,L]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=F;function F(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),B("./edit_session/folding").Folding.call(u.prototype),B("./edit_session/bracket_match").BracketMatch.call(u.prototype),a.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 v=typeof f=="number"?f:null;this.setWrapLimitRange(v,v),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}}}),E.EditSession=u});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(B,E,K){var $=B("./lib/lang"),C=B("./lib/oop"),d=B("./range").Range,a=function(){this.$options={}};(function(){this.set=function(t){return C.mixin(this.$options,t),this},this.getOptions=function(){return $.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(r,o,u,f){return i=new d(r,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(),r=[],o=e.re;if(e.$isMultiLine){var u=o.length,f=i.length-u,v;e:for(var w=o.offset||0;w<=f;w++){for(var c=0;c<u;c++)if(i[w+c].search(o[c])==-1)continue e;var m=i[w],l=i[w+u-1],g=m.length-m.match(o[0])[0].length,A=l.match(o[u-1])[0].length;v&&v.end.row===w&&v.end.column>g||(r.push(v=new d(w,g,w+u-1,A)),u>2&&(w=w+u-2))}}else for(var F=0;F<i.length;F++)for(var h=$.getMatchOffsets(i[F],o),c=0;c<h.length;c++){var p=h[c];r.push(new d(F,p.offset,F,p.offset+p.length))}if(n){for(var b=n.start.column,S=n.start.column,F=0,c=r.length-1;F<c&&r[F].start.column<b&&r[F].start.row==n.start.row;)F++;for(;F<c&&r[c].end.column>S&&r[c].end.row==n.end.row;)c--;for(r=r.slice(F,c+1),F=0,c=r.length;F<c;F++)r[F].start.row+=n.start.row,r[F].end.row+=n.start.row}return r},this.replace=function(t,e){var n=this.$options,i=this.$assembleRegExp(n);if(n.$isMultiLine)return e;if(!!i){var r=i.exec(t);if(!r||r[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=$.escapeRegExp(n)),t.wholeWord&&(n=s(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 r=new RegExp(n,i)}catch{r=!1}return t.re=r},this.$assembleMultilineRegExp=function(t,e){for(var n=t.replace(/\r\n|\r|\n/g,`$
|
|
^`).split(`
|
|
`),i=[],r=0;r<n.length;r++)try{i.push(new RegExp(n[r],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,r=e.skipCurrent!=!1,o=e.range,u=e.start;u||(u=o?o[i?"end":"start"]:t.selection.getRange()),u.start&&(u=u[r!=i?"end":"start"]);var f=o?o.start.row:0,v=o?o.end.row:t.getLength()-1;if(i)var w=function(l){var g=u.row;if(!m(g,u.column,l)){for(g--;g>=f;g--)if(m(g,Number.MAX_VALUE,l))return;if(e.wrap!=!1){for(g=v,f=u.row;g>=f;g--)if(m(g,Number.MAX_VALUE,l))return}}};else var w=function(g){var A=u.row;if(!m(A,u.column,g)){for(A=A+1;A<=v;A++)if(m(A,0,g))return;if(e.wrap!=!1){for(A=f,v=u.row;A<=v;A++)if(m(A,0,g))return}}};if(e.$isMultiLine)var c=n.length,m=function(l,g,A){var F=i?l-c+1:l;if(!(F<0)){var h=t.getLine(F),p=h.search(n[0]);if(!(!i&&p<g||p===-1)){for(var b=1;b<c;b++)if(h=t.getLine(F+b),h.search(n[b])==-1)return;var S=h.match(n[c-1])[0].length;if(!(i&&S>g)&&A(F,p,F+c-1,S))return!0}}};else if(i)var m=function(g,A,F){var h=t.getLine(g),p=[],b,S=0;for(n.lastIndex=0;b=n.exec(h);){var k=b[0].length;if(S=b.index,!k){if(S>=h.length)break;n.lastIndex=S+=1}if(b.index+k>A)break;p.push(b.index,k)}for(var L=p.length-1;L>=0;L-=2){var D=p[L-1],k=p[L];if(F(g,D,g,D+k))return!0}};else var m=function(g,A,F){var h=t.getLine(g),p,b=A;for(n.lastIndex=A;p=n.exec(h);){var S=p[0].length;if(b=p.index,F(g,b,g,b+S))return!0;if(!S&&(n.lastIndex=b+=1,b>=h.length))return!1}};return{forEach:w}}}).call(a.prototype);function s(t,e){function n(i){return/\w/.test(i)||e.regExp?"\\b":""}return n(t[0])+t+n(t[t.length-1])}E.Search=a});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(B,E,K){var $=B("../lib/keys"),C=B("../lib/useragent"),d=$.KEY_MODS;function a(t,e){this.platform=e||(C.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(t),this.$singleCommand=!0}function s(t,e){a.call(this,t,e),this.$singleCommand=!1}s.prototype=a.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 r=this.commandKeyBinding;for(var o in r){var u=r[o];if(u==e)delete r[o];else if(Array.isArray(u)){var f=u.indexOf(e);f!=-1&&(u.splice(f,1),u.length==1&&(r[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(r){var o="";if(r.indexOf(" ")!=-1){var u=r.split(/\s+/);r=u.pop(),u.forEach(function(w){var c=this.parseKeys(w),m=d[c.hashId]+c.key;o+=(o?" ":"")+m,this._addCommandToBinding(o,"chainKeys")},this),o+=" "}var f=this.parseKeys(r),v=d[f.hashId]+f.key;this._addCommandToBinding(o+v,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 r=this.commandKeyBinding,o;if(!n)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=n;else{Array.isArray(r[e])?(o=r[e].indexOf(n))!=-1&&r[e].splice(o,1):r[e]=[r[e]],typeof i!="number"&&(i=t(n));var u=r[e];for(o=0;o<u.length;o++){var f=u[o],v=t(f);if(v>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(v){return v}),i=n.pop(),r=$[i];if($.FUNCTION_KEYS[r])i=$.FUNCTION_KEYS[r].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=$.KEY_MODS[n[u]];if(f==null)return typeof console!="undefined"&&console.error("invalid modifier "+n[u]+" in "+e),!1;o|=f}return{key:i,hashId:o}},this.findKeyCommand=function(n,i){var r=d[n]+i;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,n,i,r){if(!(r<0)){var o=d[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||r>0)&&(e.$keyChain="")),{command:u})}},this.getStatusText=function(e,n){return n.$keyChain||""}}.call(a.prototype),E.HashHandler=a,E.MultiHashHandler=s});ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(B,E,K){var $=B("../lib/oop"),C=B("../keyboard/hash_handler").MultiHashHandler,d=B("../lib/event_emitter").EventEmitter,a=function(s,t){C.call(this,t,s),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};$.inherits(a,C),function(){$.implement(this,d),this.exec=function(s,t,e){if(Array.isArray(s)){for(var n=s.length;n--;)if(this.exec(s[n],t,e))return!0;return!1}if(typeof s=="string"&&(s=this.commands[s]),!s||t&&t.$readOnly&&!s.readOnly||s.isAvailable&&!s.isAvailable(t))return!1;var i={editor:t,command:s,args:e};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue!==!1},this.toggleRecording=function(s){if(!this.$inReplay)return s&&s._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(s){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(s);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,s):this.exec(t[0],s,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(s){return s.map(function(t){return typeof t[0]!="string"&&(t[0]=t[0].name),t[1]||(t=t[0]),t})}}.call(a.prototype),E.CommandManager=a});ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(B,E,K){var $=B("../lib/lang"),C=B("../config"),d=B("../range").Range;function a(s,t){return{win:s,mac:t}}E.commands=[{name:"showSettingsMenu",bindKey:a("Ctrl-,","Command-,"),exec:function(s){C.loadModule("ace/ext/settings_menu",function(t){t.init(s),s.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:a("Alt-E","F4"),exec:function(s){C.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(s,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(s){C.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(s,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:a("Ctrl-A","Command-A"),exec:function(s){s.selectAll()},readOnly:!0},{name:"centerselection",bindKey:a(null,"Ctrl-L"),exec:function(s){s.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:a("Ctrl-L","Command-L"),exec:function(s){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||s.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(s){s.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(s){s.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:a("F2","F2"),exec:function(s){s.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:a("Alt-F2","Alt-F2"),exec:function(s){s.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(s){s.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:a("Alt-0","Command-Option-0"),exec:function(s){s.session.foldAll(),s.session.unfold(s.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(s){s.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:a("Ctrl-K","Command-G"),exec:function(s){s.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(s){s.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:a("Alt-K","Ctrl-G"),exec:function(s){s.selection.isEmpty()?s.selection.selectWord():s.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(s){s.selection.isEmpty()?s.selection.selectWord():s.findPrevious()},readOnly:!0},{name:"find",bindKey:a("Ctrl-F","Command-F"),exec:function(s){C.loadModule("ace/ext/searchbox",function(t){t.Search(s)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(s){s.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(s){s.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(s){s.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(s){s.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:a("Up","Up|Ctrl-P"),exec:function(s,t){s.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(s){s.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(s){s.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(s){s.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:a("Down","Down|Ctrl-N"),exec:function(s,t){s.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(s){s.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:a("Ctrl-Left","Option-Left"),exec:function(s){s.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(s){s.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(s){s.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(s){s.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:a("Left","Left|Ctrl-B"),exec:function(s,t){s.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(s){s.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:a("Ctrl-Right","Option-Right"),exec:function(s){s.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(s){s.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(s){s.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:a("Shift-Right","Shift-Right"),exec:function(s){s.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:a("Right","Right|Ctrl-F"),exec:function(s,t){s.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(s){s.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:a(null,"Option-PageDown"),exec:function(s){s.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(s){s.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(s){s.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:a(null,"Option-PageUp"),exec:function(s){s.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(s){s.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:a("Ctrl-Up",null),exec:function(s){s.renderer.scrollBy(0,-2*s.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:a("Ctrl-Down",null),exec:function(s){s.renderer.scrollBy(0,2*s.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(s){s.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(s){s.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(s){s.commands.toggleRecording(s)},readOnly:!0},{name:"replaymacro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(s){s.commands.replay(s)},readOnly:!0},{name:"jumptomatching",bindKey:a("Ctrl-P","Ctrl-P"),exec:function(s){s.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:a("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(s){s.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(s){s.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(s){},readOnly:!0},{name:"cut",exec:function(s){var t=s.getSelectionRange();s._emit("cut",t),s.selection.isEmpty()||(s.session.remove(t),s.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(s,t){s.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:a("Ctrl-D","Command-D"),exec:function(s){s.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(s){s.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(s){s.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:a("Ctrl-/","Command-/"),exec:function(s){s.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(s){s.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(s){s.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(s){s.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(s){C.loadModule("ace/ext/searchbox",function(t){t.Search(s,!0)})}},{name:"undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(s){s.undo()}},{name:"redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(s){s.redo()}},{name:"copylinesup",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(s){s.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:a("Alt-Up","Option-Up"),exec:function(s){s.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(s){s.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:a("Alt-Down","Option-Down"),exec:function(s){s.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(s){s.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(s){s.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:a("Shift-Delete",null),exec:function(s){if(s.selection.isEmpty())s.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(s){s.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(s){s.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(s){var t=s.selection.getRange();t.start.column=0,s.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(s){var t=s.selection.getRange();t.end.column=Number.MAX_VALUE,s.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(s){s.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(s){s.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(s){s.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:a("Tab","Tab"),exec:function(s){s.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(s){s.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(s){s.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(s,t){s.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(s,t){s.insert($.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:a(null,"Ctrl-O"),exec:function(s){s.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(s){s.transposeLetters()},multiSelectAction:function(s){s.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(s){s.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(s){s.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(s){var t=s.selection.getRange();t.start.column=t.end.column=0,t.end.row++,s.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:a(null,null),exec:function(s){for(var t=s.selection.isBackwards(),e=t?s.selection.getSelectionLead():s.selection.getSelectionAnchor(),n=t?s.selection.getSelectionAnchor():s.selection.getSelectionLead(),i=s.session.doc.getLine(e.row).length,r=s.session.doc.getTextRange(s.selection.getRange()),o=r.replace(/\n\s*/," ").length,u=s.session.doc.getLine(e.row),f=e.row+1;f<=n.row+1;f++){var v=$.stringTrimLeft($.stringTrimRight(s.session.doc.getLine(f)));v.length!==0&&(v=" "+v),u+=v}n.row+1<s.session.doc.getLength()-1&&(u+=s.session.doc.getNewLineCharacter()),s.clearSelection(),s.session.doc.replace(new d(e.row,0,n.row+2,0),u),o>0?(s.selection.moveCursorTo(e.row,e.column),s.selection.selectTo(e.row,e.column+o)):(i=s.session.doc.getLine(e.row).length>i?i+1:i,s.selection.moveCursorTo(e.row,i))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:a(null,null),exec:function(s){var t=s.session.doc.getLength()-1,e=s.session.doc.getLine(t).length,n=s.selection.rangeList.ranges,i=[];n.length<1&&(n=[s.selection.getRange()]);for(var r=0;r<n.length;r++)r==n.length-1&&(n[r].end.row===t&&n[r].end.column===e||i.push(new d(n[r].end.row,n[r].end.column,t,e))),r===0?n[r].start.row===0&&n[r].start.column===0||i.push(new d(0,0,n[r].start.row,n[r].start.column)):i.push(new d(n[r-1].end.row,n[r-1].end.column,n[r].start.row,n[r].start.column));s.exitMultiSelectMode(),s.clearSelection();for(var r=0;r<i.length;r++)s.selection.addRange(i[r],!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,E,K){B("./lib/fixoldbrowsers");var $=B("./lib/oop"),C=B("./lib/dom"),d=B("./lib/lang"),a=B("./lib/useragent"),s=B("./keyboard/textinput").TextInput,t=B("./mouse/mouse_handler").MouseHandler,e=B("./mouse/fold_handler").FoldHandler,n=B("./keyboard/keybinding").KeyBinding,i=B("./edit_session").EditSession,r=B("./search").Search,o=B("./range").Range,u=B("./lib/event_emitter").EventEmitter,f=B("./commands/command_manager").CommandManager,v=B("./commands/default_commands").commands,w=B("./config"),c=B("./token_iterator").TokenIterator,m=function(l,g){var A=l.getContainerElement();this.container=A,this.renderer=l,this.id="editor"+ ++m.$uid,this.commands=new f(a.isMac?"mac":"win",v),typeof document=="object"&&(this.textInput=new s(l.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 r().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=d.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(F,h){h._$emitInputEvent.schedule(31)}),this.setSession(g||new i("")),w.resetOptions(this),w._signal("editor",this)};m.$uid=0,function(){$.implement(this,u),this.$initOperationListeners=function(){this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=d.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(l){if(this.curOp){if(!l||this.curOp.command)return;this.prevOp=this.curOp}l||(this.previousCommand=null,l={}),this.$opResetTimer.schedule(),this.curOp={command:l.command||{},args:l.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==void 0&&this.$blockScrolling++},this.endOperation=function(l){if(this.curOp){if(l&&l.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var g=this.curOp.command;g.name&&this.$blockScrolling>0&&this.$blockScrolling--;var A=g&&g.scrollIntoView;if(A){switch(A){case"center-animate":A="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var F=this.selection.getRange(),h=this.renderer.layerConfig;(F.start.row>=h.lastRow||F.end.row<=h.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}A=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(l){if(!!this.$mergeUndoDeltas){var g=this.prevOp,A=this.$mergeableCommands,F=g.command&&l.command.name==g.command.name;if(l.command.name=="insertstring"){var h=l.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),F=F&&this.mergeNextCommand&&(!/\s/.test(h)||/\s/.test(g.args)),this.mergeNextCommand=!0}else F=F&&A.indexOf(l.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(F=!1),F?this.session.mergeUndoDeltas=!0:A.indexOf(l.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(l,g){if(l&&typeof l=="string"){this.$keybindingId=l;var A=this;w.loadModule(["keybinding",l],function(F){A.$keybindingId==l&&A.keyBinding.setKeyboardHandler(F&&F.handler),g&&g()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(l),g&&g()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(l){if(this.session!=l){this.curOp&&this.endOperation(),this.curOp={};var g=this.session;if(g){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 A=this.session.getSelection();A.off("changeCursor",this.$onCursorChange),A.off("changeSelection",this.$onSelectionChange)}this.session=l,l?(this.$onDocumentChange=this.onDocumentChange.bind(this),l.on("change",this.$onDocumentChange),this.renderer.setSession(l),this.$onChangeMode=this.onChangeMode.bind(this),l.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),l.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),l.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),l.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),l.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),l.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=l.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(l)),this._signal("changeSession",{session:l,oldSession:g}),this.curOp=null,g&&g._signal("changeEditor",{oldEditor:this}),l&&l._signal("changeEditor",{editor:this}),l&&l.bgTokenizer&&l.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(l,g){return this.session.doc.setValue(l),g?g==1?this.navigateFileEnd():g==-1&&this.navigateFileStart():this.selectAll(),l},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(l){this.renderer.onResize(l)},this.setTheme=function(l,g){this.renderer.setTheme(l,g)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(l){this.renderer.setStyle(l)},this.unsetStyle=function(l){this.renderer.unsetStyle(l)},this.getFontSize=function(){return this.getOption("fontSize")||C.computedStyle(this.container,"fontSize")},this.setFontSize=function(l){this.setOption("fontSize",l)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var l=this;this.$highlightPending=!0,setTimeout(function(){l.$highlightPending=!1;var g=l.session;if(!(!g||!g.bgTokenizer)){var A=g.findMatchingBracket(l.getCursorPosition());if(A)var F=new o(A.row,A.column,A.row,A.column+1);else if(g.$mode.getMatching)var F=g.$mode.getMatching(l.session);F&&(g.$bracketHighlight=g.addMarker(F,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var l=this;this.$highlightTagPending=!0,setTimeout(function(){l.$highlightTagPending=!1;var g=l.session;if(!(!g||!g.bgTokenizer)){var A=l.getCursorPosition(),F=new c(l.session,A.row,A.column),h=F.getCurrentToken();if(!h||!/\b(?:tag-open|tag-name)/.test(h.type)){g.removeMarker(g.$tagHighlight),g.$tagHighlight=null;return}if(!(h.type.indexOf("tag-open")!=-1&&(h=F.stepForward(),!h))){var p=h.value,b=0,S=F.stepBackward();if(S.value=="<")do S=h,h=F.stepForward(),h&&h.value===p&&h.type.indexOf("tag-name")!==-1&&(S.value==="<"?b++:S.value==="</"&&b--);while(h&&b>=0);else{do h=S,S=F.stepBackward(),h&&h.value===p&&h.type.indexOf("tag-name")!==-1&&(S.value==="<"?b++:S.value==="</"&&b--);while(S&&b<=0);F.stepForward()}if(!h){g.removeMarker(g.$tagHighlight),g.$tagHighlight=null;return}var k=F.getCurrentTokenRow(),L=F.getCurrentTokenColumn(),D=new o(k,L,k,L+h.value.length),O=g.$backMarkers[g.$tagHighlight];g.$tagHighlight&&O!=null&&D.compareRange(O.range)!==0&&(g.removeMarker(g.$tagHighlight),g.$tagHighlight=null),D&&!g.$tagHighlight&&(g.$tagHighlight=g.addMarker(D,"ace_bracket","text"))}}},50)}},this.focus=function(){var l=this;setTimeout(function(){l.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(l){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",l))},this.onBlur=function(l){!this.$isFocused||(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",l))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(l){var g=this.session.$useWrapMode,A=l.start.row==l.end.row?l.end.row:1/0;this.renderer.updateLines(l.start.row,A,g),this._signal("change",l),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(l){var g=l.data;this.renderer.updateLines(g.first,g.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||(w.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 l=this.getSession(),g;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(g=this.getCursorPosition()),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(g=!1)),l.$highlightLineMarker&&!g)l.removeMarker(l.$highlightLineMarker.id),l.$highlightLineMarker=null;else if(!l.$highlightLineMarker&&g){var A=new o(g.row,g.column,g.row,1/0);A.id=l.addMarker(A,"ace_active-line","screenLine"),l.$highlightLineMarker=A}else g&&(l.$highlightLineMarker.start.row=g.row,l.$highlightLineMarker.end.row=g.row,l.$highlightLineMarker.start.column=g.column,l._signal("changeBackMarker"))},this.onSelectionChange=function(l){var g=this.session;if(g.$selectionMarker&&g.removeMarker(g.$selectionMarker),g.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var A=this.selection.getRange(),F=this.getSelectionStyle();g.$selectionMarker=g.addMarker(A,"ace_selection",F)}var h=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(h),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var l=this.session,g=this.getSelectionRange();if(!(g.isEmpty()||g.isMultiLine())){var A=g.start.column-1,F=g.end.column+1,h=l.getLine(g.start.row),p=h.length,b=h.substring(Math.max(A,0),Math.min(F,p));if(!(A>=0&&/^[\w\d]/.test(b)||F<=p&&/[\w\d]$/.test(b))&&(b=h.substring(g.start.column,g.end.column),!!/^[\w\d]+$/.test(b))){var S=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:b});return S}}},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(l){this.renderer.updateText(),this._emit("changeMode",l)},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 l=this.getSelectedText();return this._signal("copy",l),l},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(l,g){var A={text:l,event:g};this.commands.exec("paste",this,A)},this.$handlePaste=function(l){typeof l=="string"&&(l={text:l}),this._signal("paste",l);var g=l.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(g);else{var A=g.split(/\r\n|\r|\n/),F=this.selection.rangeList.ranges;if(A.length>F.length||A.length<2||!A[1])return this.commands.exec("insertstring",this,g);for(var h=F.length;h--;){var p=F[h];p.isEmpty()||this.session.remove(p),this.session.insert(p.start,A[h])}}},this.execCommand=function(l,g){return this.commands.exec(l,this,g)},this.insert=function(l,g){var A=this.session,F=A.getMode(),h=this.getCursorPosition();if(this.getBehavioursEnabled()&&!g){var p=F.transformAction(A.getState(h.row),"insertion",this,A,l);p&&(l!==p.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),l=p.text)}if(l==" "&&(l=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&l.indexOf(`
|
|
`)==-1){var b=new o.fromPoints(h,h);b.end.column+=l.length,this.session.remove(b)}}else{var b=this.getSelectionRange();h=this.session.remove(b),this.clearSelection()}if(l==`
|
|
`||l==`\r
|
|
`){var D=A.getLine(h.row);if(h.column>D.search(/\S|$/)){var S=D.substr(h.column).search(/\S|$/);A.doc.removeInLine(h.row,h.column,h.column+S)}}this.clearSelection();var k=h.column,L=A.getState(h.row),D=A.getLine(h.row),O=F.checkOutdent(L,D,l);if(A.insert(h,l),p&&p.selection&&(p.selection.length==2?this.selection.setSelectionRange(new o(h.row,k+p.selection[0],h.row,k+p.selection[1])):this.selection.setSelectionRange(new o(h.row+p.selection[0],p.selection[1],h.row+p.selection[2],p.selection[3]))),A.getDocument().isNewLine(l)){var I=F.getNextLineIndent(L,D.slice(0,h.column),A.getTabString());A.insert({row:h.row+1,column:0},I)}O&&F.autoOutdent(L,A,h.row)},this.onTextInput=function(l){this.keyBinding.onTextInput(l)},this.onCommandKey=function(l,g,A){this.keyBinding.onCommandKey(l,g,A)},this.setOverwrite=function(l){this.session.setOverwrite(l)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(l){this.setOption("scrollSpeed",l)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(l){this.setOption("dragDelay",l)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(l){this.setOption("selectionStyle",l)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(l){this.setOption("highlightActiveLine",l)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(l){this.setOption("highlightGutterLine",l)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(l){this.setOption("highlightSelectedWord",l)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(l){this.renderer.setAnimatedScroll(l)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(l){this.renderer.setShowInvisibles(l)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(l){this.renderer.setDisplayIndentGuides(l)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(l){this.renderer.setShowPrintMargin(l)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(l){this.renderer.setPrintMarginColumn(l)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(l){this.setOption("readOnly",l)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(l){this.setOption("behavioursEnabled",l)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(l){this.setOption("wrapBehavioursEnabled",l)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(l){this.setOption("showFoldWidgets",l)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(l){this.setOption("fadeFoldWidgets",l)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(l){this.selection.isEmpty()&&(l=="left"?this.selection.selectLeft():this.selection.selectRight());var g=this.getSelectionRange();if(this.getBehavioursEnabled()){var A=this.session,F=A.getState(g.start.row),h=A.getMode().transformAction(F,"deletion",this,A,g);if(g.end.column===0){var p=A.getTextRange(g);if(p[p.length-1]==`
|
|
`){var b=A.getLine(g.end.row);/^\s+$/.test(b)&&(g.end.column=b.length)}}h&&(g=h)}this.session.remove(g),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 l=this.getSelectionRange();l.start.column==l.end.column&&l.start.row==l.end.row&&(l.end.column=0,l.end.row++),this.session.remove(l),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var l=this.getCursorPosition();this.insert(`
|
|
`),this.moveCursorToPosition(l)},this.transposeLetters=function(){if(!!this.selection.isEmpty()){var l=this.getCursorPosition(),g=l.column;if(g!==0){var A=this.session.getLine(l.row),F,h;g<A.length?(F=A.charAt(g)+A.charAt(g-1),h=new o(l.row,g-1,l.row,g+1)):(F=A.charAt(g-1)+A.charAt(g-2),h=new o(l.row,g-2,l.row,g)),this.session.replace(h,F),this.session.selection.moveToPosition(h.end)}}},this.toLowerCase=function(){var l=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var g=this.getSelectionRange(),A=this.session.getTextRange(g);this.session.replace(g,A.toLowerCase()),this.selection.setSelectionRange(l)},this.toUpperCase=function(){var l=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var g=this.getSelectionRange(),A=this.session.getTextRange(g);this.session.replace(g,A.toUpperCase()),this.selection.setSelectionRange(l)},this.indent=function(){var l=this.session,g=this.getSelectionRange();if(g.start.row<g.end.row){var A=this.$getSelectedRows();l.indentRows(A.first,A.last," ");return}else if(g.start.column<g.end.column){var F=l.getTextRange(g);if(!/^\s+$/.test(F)){var A=this.$getSelectedRows();l.indentRows(A.first,A.last," ");return}}var h=l.getLine(g.start.row),p=g.start,b=l.getTabSize(),S=l.documentToScreenColumn(p.row,p.column);if(this.session.getUseSoftTabs())var k=b-S%b,L=d.stringRepeat(" ",k);else{for(var k=S%b;h[g.start.column-1]==" "&&k;)g.start.column--,k--;this.selection.setSelectionRange(g),L=" "}return this.insert(L)},this.blockIndent=function(){var l=this.$getSelectedRows();this.session.indentRows(l.first,l.last," ")},this.blockOutdent=function(){var l=this.session.getSelection();this.session.outdentRows(l.getRange())},this.sortLines=function(){for(var l=this.$getSelectedRows(),g=this.session,A=[],F=l.first;F<=l.last;F++)A.push(g.getLine(F));A.sort(function(b,S){return b.toLowerCase()<S.toLowerCase()?-1:b.toLowerCase()>S.toLowerCase()?1:0});for(var h=new o(0,0,0,0),F=l.first;F<=l.last;F++){var p=g.getLine(F);h.start.row=F,h.end.row=F,h.end.column=p.length,g.replace(h,A[F-l.first])}},this.toggleCommentLines=function(){var l=this.session.getState(this.getCursorPosition().row),g=this.$getSelectedRows();this.session.getMode().toggleCommentLines(l,this.session,g.first,g.last)},this.toggleBlockComment=function(){var l=this.getCursorPosition(),g=this.session.getState(l.row),A=this.getSelectionRange();this.session.getMode().toggleBlockComment(g,this.session,A,l)},this.getNumberAt=function(l,g){var A=/[\-]?[0-9]+(?:\.[0-9]+)?/g;A.lastIndex=0;for(var F=this.session.getLine(l);A.lastIndex<g;){var h=A.exec(F);if(h.index<=g&&h.index+h[0].length>=g){var p={value:h[0],start:h.index,end:h.index+h[0].length};return p}}return null},this.modifyNumber=function(l){var g=this.selection.getCursor().row,A=this.selection.getCursor().column,F=new o(g,A-1,g,A),h=this.session.getTextRange(F);if(!isNaN(parseFloat(h))&&isFinite(h)){var p=this.getNumberAt(g,A);if(p){var b=p.value.indexOf(".")>=0?p.start+p.value.indexOf(".")+1:p.end,S=p.start+p.value.length-b,k=parseFloat(p.value);k*=Math.pow(10,S),b!==p.end&&A<b?l*=Math.pow(10,p.end-A-1):l*=Math.pow(10,p.end-A),k+=l,k/=Math.pow(10,S);var L=k.toFixed(S),D=new o(g,p.start,g,p.end);this.session.replace(D,L),this.moveCursorTo(g,Math.max(p.start+1,A+L.length-p.value.length))}}},this.removeLines=function(){var l=this.$getSelectedRows();this.session.removeFullLines(l.first,l.last),this.clearSelection()},this.duplicateSelection=function(){var l=this.selection,g=this.session,A=l.getRange(),F=l.isBackwards();if(A.isEmpty()){var h=A.start.row;g.duplicateLines(h,h)}else{var p=F?A.start:A.end,b=g.insert(p,g.getTextRange(A),!1);A.start=p,A.end=b,l.setSelectionRange(A,F)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(l,g,A){return this.session.moveText(l,g,A)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(l,g){var A,F,h=this.selection;if(!h.inMultiSelectMode||this.inVirtualSelectionMode){var p=h.toOrientedRange();A=this.$getSelectedRows(p),F=this.session.$moveLines(A.first,A.last,g?0:l),g&&l==-1&&(F=0),p.moveBy(F,0),h.fromOrientedRange(p)}else{var b=h.rangeList.ranges;h.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var S=0,k=0,L=b.length,D=0;D<L;D++){var O=D;b[D].moveBy(S,0),A=this.$getSelectedRows(b[D]);for(var I=A.first,W=A.last;++D<L;){k&&b[D].moveBy(k,0);var H=this.$getSelectedRows(b[D]);if(g&&H.first!=W)break;if(!g&&H.first>W+1)break;W=H.last}for(D--,S=this.session.$moveLines(I,W,g?0:l),g&&l==-1&&(O=D+1);O<=D;)b[O].moveBy(S,0),O++;g||(S=0),k+=S}h.fromOrientedRange(h.ranges[0]),h.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(l){return l=(l||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(l.start.row),last:this.session.getRowFoldEnd(l.end.row)}},this.onCompositionStart=function(l){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(l){this.renderer.setCompositionText(l)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(l){return l>=this.getFirstVisibleRow()&&l<=this.getLastVisibleRow()},this.isRowFullyVisible=function(l){return l>=this.renderer.getFirstFullyVisibleRow()&&l<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(l,g){var A=this.renderer,F=this.renderer.layerConfig,h=l*Math.floor(F.height/F.lineHeight);this.$blockScrolling++,g===!0?this.selection.$moveSelection(function(){this.moveCursorBy(h,0)}):g===!1&&(this.selection.moveCursorBy(h,0),this.selection.clearSelection()),this.$blockScrolling--;var p=A.scrollTop;A.scrollBy(0,h*F.lineHeight),g!=null&&A.scrollCursorIntoView(null,.5),A.animateScrolling(p)},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(l){this.renderer.scrollToRow(l)},this.scrollToLine=function(l,g,A,F){this.renderer.scrollToLine(l,g,A,F)},this.centerSelection=function(){var l=this.getSelectionRange(),g={row:Math.floor(l.start.row+(l.end.row-l.start.row)/2),column:Math.floor(l.start.column+(l.end.column-l.start.column)/2)};this.renderer.alignCursor(g,.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(l,g){this.selection.moveCursorTo(l,g)},this.moveCursorToPosition=function(l){this.selection.moveCursorToPosition(l)},this.jumpToMatching=function(l,g){var A=this.getCursorPosition(),F=new c(this.session,A.row,A.column),h=F.getCurrentToken(),p=h||F.stepForward();if(!!p){var b,S=!1,k={},L=A.column-p.start,D,O={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(p.value.match(/[{}()\[\]]/g)){for(;L<p.value.length&&!S;L++)if(!!O[p.value[L]])switch(D=O[p.value[L]]+"."+p.type.replace("rparen","lparen"),isNaN(k[D])&&(k[D]=0),p.value[L]){case"(":case"[":case"{":k[D]++;break;case")":case"]":case"}":k[D]--,k[D]===-1&&(b="bracket",S=!0);break}}else p&&p.type.indexOf("tag-name")!==-1&&(isNaN(k[p.value])&&(k[p.value]=0),h.value==="<"?k[p.value]++:h.value==="</"&&k[p.value]--,k[p.value]===-1&&(b="tag",S=!0));S||(h=p,p=F.stepForward(),L=0)}while(p&&!S);if(!!b){var I,W;if(b==="bracket")I=this.session.getBracketRange(A),I||(I=new o(F.getCurrentTokenRow(),F.getCurrentTokenColumn()+L-1,F.getCurrentTokenRow(),F.getCurrentTokenColumn()+L-1),W=I.start,(g||W.row===A.row&&Math.abs(W.column-A.column)<2)&&(I=this.session.getBracketRange(W)));else if(b==="tag"){if(p&&p.type.indexOf("tag-name")!==-1)var H=p.value;else return;if(I=new o(F.getCurrentTokenRow(),F.getCurrentTokenColumn()-2,F.getCurrentTokenRow(),F.getCurrentTokenColumn()-2),I.compare(A.row,A.column)===0){S=!1;do p=h,h=F.stepBackward(),h&&(h.type.indexOf("tag-close")!==-1&&I.setEnd(F.getCurrentTokenRow(),F.getCurrentTokenColumn()+1),p.value===H&&p.type.indexOf("tag-name")!==-1&&(h.value==="<"?k[H]++:h.value==="</"&&k[H]--,k[H]===0&&(S=!0)));while(h&&!S)}p&&p.type.indexOf("tag-name")&&(W=I.start,W.row==A.row&&Math.abs(W.column-A.column)<2&&(W=I.end))}W=I&&I.cursor||W,W&&(l?I&&g?this.selection.setRange(I):I&&I.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(W.row,W.column):this.selection.moveTo(W.row,W.column))}}},this.gotoLine=function(l,g,A){this.selection.clearSelection(),this.session.unfold({row:l-1,column:g||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(l-1,g||0),this.$blockScrolling-=1,this.isRowFullyVisible(l-1)||this.scrollToLine(l-1,!0,A)},this.navigateTo=function(l,g){this.selection.moveTo(l,g)},this.navigateUp=function(l){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var g=this.selection.anchor.getPosition();return this.moveCursorToPosition(g)}this.selection.clearSelection(),this.selection.moveCursorBy(-l||-1,0)},this.navigateDown=function(l){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var g=this.selection.anchor.getPosition();return this.moveCursorToPosition(g)}this.selection.clearSelection(),this.selection.moveCursorBy(l||1,0)},this.navigateLeft=function(l){if(this.selection.isEmpty())for(l=l||1;l--;)this.selection.moveCursorLeft();else{var g=this.getSelectionRange().start;this.moveCursorToPosition(g)}this.clearSelection()},this.navigateRight=function(l){if(this.selection.isEmpty())for(l=l||1;l--;)this.selection.moveCursorRight();else{var g=this.getSelectionRange().end;this.moveCursorToPosition(g)}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(l,g){g&&this.$search.set(g);var A=this.$search.find(this.session),F=0;return A&&(this.$tryReplace(A,l)&&(F=1),A!==null&&(this.selection.setSelectionRange(A),this.renderer.scrollSelectionIntoView(A.start,A.end))),F},this.replaceAll=function(l,g){g&&this.$search.set(g);var A=this.$search.findAll(this.session),F=0;if(!A.length)return F;this.$blockScrolling+=1;var h=this.getSelectionRange();this.selection.moveTo(0,0);for(var p=A.length-1;p>=0;--p)this.$tryReplace(A[p],l)&&F++;return this.selection.setSelectionRange(h),this.$blockScrolling-=1,F},this.$tryReplace=function(l,g){var A=this.session.getTextRange(l);return g=this.$search.replace(A,g),g!==null?(l.end=this.session.replace(l,g),l):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(l,g,A){g||(g={}),typeof l=="string"||l instanceof RegExp?g.needle=l:typeof l=="object"&&$.mixin(g,l);var F=this.selection.getRange();g.needle==null&&(l=this.session.getTextRange(F)||this.$search.$options.needle,l||(F=this.session.getWordRange(F.start.row,F.start.column),l=this.session.getTextRange(F)),this.$search.set({needle:l})),this.$search.set(g),g.start||this.$search.set({start:F});var h=this.$search.find(this.session);if(g.preventScroll)return h;if(h)return this.revealRange(h,A),h;g.backwards?F.start=F.end:F.end=F.start,this.selection.setRange(F)},this.findNext=function(l,g){this.find({skipCurrent:!0,backwards:!1},l,g)},this.findPrevious=function(l,g){this.find(l,{skipCurrent:!0,backwards:!0},g)},this.revealRange=function(l,g){this.$blockScrolling+=1,this.session.unfold(l),this.selection.setSelectionRange(l),this.$blockScrolling-=1;var A=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(l.start,l.end,.5),g!==!1&&this.renderer.animateScrolling(A)},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(l){if(!!l){var g,A=this,F=!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 p=this.on("changeSelection",function(){F=!0}),b=this.renderer.on("beforeRender",function(){F&&(g=A.renderer.container.getBoundingClientRect())}),S=this.renderer.on("afterRender",function(){if(F&&g&&(A.isFocused()||A.searchBox&&A.searchBox.isFocused())){var k=A.renderer,L=k.$cursorLayer.$pixelPos,D=k.layerConfig,O=L.top-D.offset;L.top>=0&&O+g.top<0?F=!0:L.top<D.height&&L.top+g.top+D.lineHeight>window.innerHeight?F=!1:F=null,F!=null&&(h.style.top=O+"px",h.style.left=L.left+"px",h.style.height=D.lineHeight+"px",h.scrollIntoView(F)),F=g=null}});this.setAutoScrollEditorIntoView=function(k){k||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",p),this.renderer.off("afterRender",S),this.renderer.off("beforeRender",b))}}},this.$resetCursorStyle=function(){var l=this.$cursorStyle||"ace",g=this.renderer.$cursorLayer;!g||(g.setSmoothBlinking(/smooth/.test(l)),g.isBlinking=!this.$readOnly&&l!="wide",C.setCssClass(g.element,"ace_slim-cursors",/slim/.test(l)))}}.call(m.prototype),w.defineOptions(m.prototype,"editor",{selectionStyle:{set:function(l){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:l})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(l){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(l){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(l){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(l){this.setAutoScrollEditorIntoView(l)}},keyboardHandler:{set:function(l){this.setKeyboardHandler(l)},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"}),E.Editor=m});ace.define("ace/undomanager",["require","exports","module"],function(B,E,K){var $=function(){this.reset()};(function(){this.execute=function(s){var t=s.args[0];this.$doc=s.args[1],s.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(s){var t=this.$undoStack.pop(),e=null;return t&&(e=this.$doc.undoChanges(t,s),this.$redoStack.push(t),this.dirtyCounter--),e},this.redo=function(s){var t=this.$redoStack.pop(),e=null;return t&&(e=this.$doc.redoChanges(this.$deserializeDeltas(t),s),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(s){return a(s,C)},this.$deserializeDeltas=function(s){return a(s,d)};function C(s){return{action:s.action,start:s.start,end:s.end,lines:s.lines.length==1?null:s.lines,text:s.lines.length==1?s.lines[0]:null}}function d(s){return{action:s.action,start:s.start,end:s.end,lines:s.lines||[s.text]}}function a(s,t){for(var e=new Array(s.length),n=0;n<s.length;n++){for(var i=s[n],r={group:i.group,deltas:new Array(i.length)},o=0;o<i.deltas.length;o++){var u=i.deltas[o];r.deltas[o]=t(u)}e[n]=r}return e}}).call($.prototype),E.UndoManager=$});ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(B,E,K){var $=B("../lib/dom"),C=B("../lib/oop"),d=B("../lib/lang"),a=B("../lib/event_emitter").EventEmitter,s=function(t){this.element=$.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(){C.implement(this,a),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,r=this.$annotations[i];r||(r=this.$annotations[i]={text:[]});var o=n.text;o=o?d.escapeHTML(o):n.html||"",r.text.indexOf(o)===-1&&r.text.push(o);var u=n.type;u=="error"?r.className=" ace_error":u=="warning"&&r.className!=" ace_error"?r.className=" ace_warning":u=="info"&&!r.className&&(r.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),r=e.getNextFoldLine(n),o=r?r.start.row:1/0,u=this.$showFoldWidgets&&e.foldWidgets,f=e.$breakpoints,v=e.$decorations,w=e.$firstLineNumber,c=0,m=e.gutterRenderer||this.$renderer,l=null,g=-1,A=n;;){if(A>o&&(A=r.end.row+1,r=e.getNextFoldLine(A,r),o=r?r.start.row:1/0),A>i){for(;this.$cells.length>g+1;)l=this.$cells.pop(),this.element.removeChild(l.element);break}l=this.$cells[++g],l||(l={element:null,textNode:null,foldWidget:null},l.element=$.createElement("div"),l.textNode=document.createTextNode(""),l.element.appendChild(l.textNode),this.element.appendChild(l.element),this.$cells[g]=l);var F="ace_gutter-cell ";f[A]&&(F+=f[A]),v[A]&&(F+=v[A]),this.$annotations[A]&&(F+=this.$annotations[A].className),l.element.className!=F&&(l.element.className=F);var h=e.getRowLength(A)*t.lineHeight+"px";if(h!=l.element.style.height&&(l.element.style.height=h),u){var p=u[A];p==null&&(p=u[A]=e.getFoldWidget(A))}if(p){l.foldWidget||(l.foldWidget=$.createElement("span"),l.element.appendChild(l.foldWidget));var F="ace_fold-widget ace_"+p;p=="start"&&A==o&&A<r.end.row?F+=" ace_closed":F+=" ace_open",l.foldWidget.className!=F&&(l.foldWidget.className=F);var h=t.lineHeight+"px";l.foldWidget.style.height!=h&&(l.foldWidget.style.height=h)}else l.foldWidget&&(l.element.removeChild(l.foldWidget),l.foldWidget=null);var b=c=m?m.getText(e,A):A+w;b!==l.textNode.data&&(l.textNode.data=b),A++}this.element.style.height=t.minHeight+"px",(this.$fixedWidth||e.$useWrapMode)&&(c=e.getLength()+w);var S=m?m.getWidth(e,c,t):c.toString().length*t.characterWidth,k=this.$padding||this.$computePadding();S+=k.left+k.right,S!==this.gutterWidth&&!isNaN(S)&&(this.gutterWidth=S,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",S))},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?$.addCssClass(this.element,"ace_folding-enabled"):$.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=$.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(s.prototype),E.Gutter=s});ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(B,E,K){var $=B("../range").Range,C=B("../lib/dom"),d=function(a){this.element=C.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(s){this.$padding=s},this.setSession=function(s){this.session=s},this.setMarkers=function(s){this.markers=s},this.update=function(s){if(!!s){this.config=s;var t=[];for(var e in this.markers){var n=this.markers[e];if(!n.range){n.update(t,this,this.session,s);continue}var i=n.range.clipRows(s.firstRow,s.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),n.renderer){var r=this.$getTop(i.start.row,s),o=this.$padding+(this.session.$bidiHandler.isBidiRow(i.start.row)?this.session.$bidiHandler.getPosLeft(i.start.column):i.start.column*s.characterWidth);n.renderer(t,i,o,r,s)}else n.type=="fullLine"?this.drawFullLineMarker(t,i,n.clazz,s):n.type=="screenLine"?this.drawScreenLineMarker(t,i,n.clazz,s):i.isMultiLine()?n.type=="text"?this.drawTextMarker(t,i,n.clazz,s):this.drawMultiLineMarker(t,i,n.clazz,s):this.session.$bidiHandler.isBidiRow(i.start.row)?this.drawBidiSingleLineMarker(t,i,n.clazz+" ace_start ace_br15",s):this.drawSingleLineMarker(t,i,n.clazz+" ace_start ace_br15",s)}this.element.innerHTML=t.join("")}},this.$getTop=function(s,t){return(s-t.firstRowScreen)*t.lineHeight};function a(s,t,e,n){return(s?1:0)|(t?2:0)|(e?4:0)|(n?8:0)}this.drawTextMarker=function(s,t,e,n,i){for(var r=this.session,o=t.start.row,u=t.end.row,f=o,v=0,w=0,c=r.getScreenLastRowColumn(f),m=null,l=new $(f,t.start.column,f,w);f<=u;f++)l.start.row=l.end.row=f,l.start.column=f==o?t.start.column:r.getRowWrapIndent(f),l.end.column=c,v=w,w=c,c=f+1<u?r.getScreenLastRowColumn(f+1):f==u?0:t.end.column,m=e+(f==o?" ace_start":"")+" ace_br"+a(f==o||f==o+1&&t.start.column,v<w,w>c,f==u),this.session.$bidiHandler.isBidiRow(f)?this.drawBidiSingleLineMarker(s,l,m,n,f==u?0:1,i):this.drawSingleLineMarker(s,l,m,n,f==u?0:1,i)},this.drawMultiLineMarker=function(s,t,e,n,i){var r=this.$padding,o,u,f;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var v=t.clone();v.end.row=v.start.row,v.end.column=this.session.getLine(v.start.row).length,this.drawBidiSingleLineMarker(s,v,e+" ace_br1 ace_start",n,null,i)}else o=n.lineHeight,u=this.$getTop(t.start.row,n),f=r+t.start.column*n.characterWidth,s.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 v=t.clone();v.start.row=v.end.row,v.start.column=0,this.drawBidiSingleLineMarker(s,v,e+" ace_br12",n,null,i)}else{var w=t.end.column*n.characterWidth;o=n.lineHeight,u=this.$getTop(t.end.row,n),s.push("<div class='",e," ace_br12' style='","height:",o,"px;","width:",w,"px;","top:",u,"px;","left:",r,"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);s.push("<div class='",e,c?" ace_br"+c:"","' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",r,"px;",i,"'></div>")}},this.drawSingleLineMarker=function(s,t,e,n,i,r){var o=n.lineHeight,u=(t.end.column+(i||0)-t.start.column)*n.characterWidth,f=this.$getTop(t.start.row,n),v=this.$padding+t.start.column*n.characterWidth;s.push("<div class='",e,"' style='","height:",o,"px;","width:",u,"px;","top:",f,"px;","left:",v,"px;",r||"","'></div>")},this.drawBidiSingleLineMarker=function(s,t,e,n,i,r){var o=n.lineHeight,u=this.$getTop(t.start.row,n),f=this.$padding,v=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);v.forEach(function(w){s.push("<div class='",e,"' style='","height:",o,"px;","width:",w.width+(i||0),"px;","top:",u,"px;","left:",f+w.left,"px;",r||"","'></div>")})},this.drawFullLineMarker=function(s,t,e,n,i){var r=this.$getTop(t.start.row,n),o=n.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,n)-r),s.push("<div class='",e,"' style='","height:",o,"px;","top:",r,"px;","left:0;right:0;",i||"","'></div>")},this.drawScreenLineMarker=function(s,t,e,n,i){var r=this.$getTop(t.start.row,n),o=n.lineHeight;s.push("<div class='",e,"' style='","height:",o,"px;","top:",r,"px;","left:0;right:0;",i||"","'></div>")}}).call(d.prototype),E.Marker=d});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,E,K){var $=B("../lib/oop"),C=B("../lib/dom"),d=B("../lib/lang");B("../lib/useragent");var a=B("../lib/event_emitter").EventEmitter,s=function(t){this.element=C.createElement("div"),this.element.className="ace_layer ace_text-layer",t.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){$.implement(this,a),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 t=this.session.doc.getNewLineCharacter()==`
|
|
`?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},this.setPadding=function(t){this.$padding=t,this.element.style.padding="0 "+t+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(t){this.$fontMetrics=t,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(t){this.session=t,t&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(t){return this.showInvisibles==t?!1:(this.showInvisibles=t,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(t){return this.displayIndentGuides==t?!1:(this.displayIndentGuides=t,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var t=this.session.getTabSize();this.tabSize=t;for(var e=this.$tabStrings=[0],n=1;n<t+1;n++)this.showInvisibles?e.push("<span class='ace_invisible ace_invisible_tab'>"+d.stringRepeat(this.TAB_CHAR,n)+"</span>"):e.push(d.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var i="ace_indent-guide",r="",o="";if(this.showInvisibles){i+=" ace_invisible",r=" ace_invisible_space",o=" ace_invisible_tab";var u=d.stringRepeat(this.SPACE_CHAR,this.tabSize),f=d.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=d.stringRepeat(" ",this.tabSize),f=u;this.$tabStrings[" "]="<span class='"+i+r+"'>"+u+"</span>",this.$tabStrings[" "]="<span class='"+i+o+"'>"+f+"</span>"}},this.updateLines=function(t,e,n){(this.config.lastRow!=t.lastRow||this.config.firstRow!=t.firstRow)&&this.scrollLines(t),this.config=t;for(var i=Math.max(e,t.firstRow),r=Math.min(n,t.lastRow),o=this.element.childNodes,u=0,f=t.firstRow;f<i;f++){var v=this.session.getFoldLine(f);if(v)if(v.containsRow(i)){i=v.start.row;break}else f=v.end.row;u++}for(var f=i,v=this.session.getNextFoldLine(f),w=v?v.start.row:1/0;f>w&&(f=v.end.row+1,v=this.session.getNextFoldLine(f,v),w=v?v.start.row:1/0),!(f>r);){var c=o[u++];if(c){var m=[];this.$renderLine(m,f,!this.$useLineGroups(),f==w?v:!1),c.style.height=t.lineHeight*this.session.getRowLength(f)+"px",c.innerHTML=m.join("")}f++}},this.scrollLines=function(t){var e=this.config;if(this.config=t,!e||e.lastRow<t.firstRow)return this.update(t);if(t.lastRow<e.firstRow)return this.update(t);var n=this.element;if(e.firstRow<t.firstRow)for(var i=this.session.getFoldedRowCount(e.firstRow,t.firstRow-1);i>0;i--)n.removeChild(n.firstChild);if(e.lastRow>t.lastRow)for(var i=this.session.getFoldedRowCount(t.lastRow+1,e.lastRow);i>0;i--)n.removeChild(n.lastChild);if(t.firstRow<e.firstRow){var r=this.$renderLinesFragment(t,t.firstRow,e.firstRow-1);n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r)}if(t.lastRow>e.lastRow){var r=this.$renderLinesFragment(t,e.lastRow+1,t.lastRow);n.appendChild(r)}},this.$renderLinesFragment=function(t,e,n){for(var i=this.element.ownerDocument.createDocumentFragment(),r=e,o=this.session.getNextFoldLine(r),u=o?o.start.row:1/0;r>u&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),u=o?o.start.row:1/0),!(r>n);){var f=C.createElement("div"),v=[];if(this.$renderLine(v,r,!1,r==u?o:!1),f.innerHTML=v.join(""),this.$useLineGroups())f.className="ace_line_group",i.appendChild(f),f.style.height=t.lineHeight*this.session.getRowLength(r)+"px";else for(;f.firstChild;)i.appendChild(f.firstChild);r++}return i},this.update=function(t){this.config=t;for(var e=[],n=t.firstRow,i=t.lastRow,r=n,o=this.session.getNextFoldLine(r),u=o?o.start.row:1/0;r>u&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),u=o?o.start.row:1/0),!(r>i);)this.$useLineGroups()&&e.push("<div class='ace_line_group' style='height:",t.lineHeight*this.session.getRowLength(r),"px'>"),this.$renderLine(e,r,!1,r==u?o:!1),this.$useLineGroups()&&e.push("</div>"),r++;this.element.innerHTML=e.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(t,e,n,i){var r=this,o=/\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,u=function(c,m,l,g,A){if(m)return r.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+d.stringRepeat(r.SPACE_CHAR,c.length)+"</span>":c;if(c=="&")return"&";if(c=="<")return"<";if(c==">")return">";if(c==" "){var F=r.session.getScreenTabSize(e+g);return e+=F-1,r.$tabStrings[F]}else if(c=="\u3000"){var h=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",p=r.showInvisibles?r.SPACE_CHAR:"";return e+=1,"<span class='"+h+"' style='width:"+r.config.characterWidth*2+"px'>"+p+"</span>"}else return l?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+r.SPACE_CHAR+"</span>":(e+=1,"<span class='ace_cjk' style='width:"+r.config.characterWidth*2+"px'>"+c+"</span>")},f=i.replace(o,u);if(this.$textToken[n.type])t.push(f);else{var v="ace_"+n.type.replace(/\./g," ace_"),w="";n.type=="fold"&&(w=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),t.push("<span class='",v,"'",w,">",f,"</span>")}return e+i.length},this.renderIndentGuide=function(t,e,n){var i=e.search(this.$indentGuideRe);return i<=0||i>=n?e:e[0]==" "?(i-=i%this.tabSize,t.push(d.stringRepeat(this.$tabStrings[" "],i/this.tabSize)),e.substr(i)):e[0]==" "?(t.push(d.stringRepeat(this.$tabStrings[" "],i)),e.substr(i)):e},this.$renderWrappedLine=function(t,e,n,i){for(var r=0,o=0,u=n[0],f=0,v=0;v<e.length;v++){var w=e[v],c=w.value;if(v==0&&this.displayIndentGuides){if(r=c.length,c=this.renderIndentGuide(t,c,u),!c)continue;r-=c.length}if(r+c.length<u)f=this.$renderToken(t,f,w,c),r+=c.length;else{for(;r+c.length>=u;)f=this.$renderToken(t,f,w,c.substring(0,u-r)),c=c.substring(u-r),r=u,i||t.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),t.push(d.stringRepeat("\xA0",n.indent)),o++,f=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,f=this.$renderToken(t,f,w,c))}}},this.$renderSimpleLine=function(t,e){var n=0,i=e[0],r=i.value;this.displayIndentGuides&&(r=this.renderIndentGuide(t,r)),r&&(n=this.$renderToken(t,n,i,r));for(var o=1;o<e.length;o++)i=e[o],r=i.value,n=this.$renderToken(t,n,i,r)},this.$renderLine=function(t,e,n,i){if(!i&&i!=!1&&(i=this.session.getFoldLine(e)),i)var r=this.$getFoldLineTokens(e,i);else var r=this.session.getTokens(e);if(n||t.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(e)),"px'>"),r.length){var o=this.session.getRowSplitData(e);o&&o.length?this.$renderWrappedLine(t,r,o,n):this.$renderSimpleLine(t,r)}this.showInvisibles&&(i&&(e=i.end.row),t.push("<span class='ace_invisible ace_invisible_eol'>",e==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||t.push("</div>")},this.$getFoldLineTokens=function(t,e){var n=this.session,i=[];function r(u,f,v){for(var w=0,c=0;c+u[w].value.length<f;)if(c+=u[w].value.length,w++,w==u.length)return;if(c!=f){var m=u[w].value.substring(f-c);m.length>v-f&&(m=m.substring(0,v-f)),i.push({type:u[w].type,value:m}),c=f+m.length,w+=1}for(;c<v&&w<u.length;){var m=u[w].value;m.length+c>v?i.push({type:u[w].type,value:m.substring(0,v-c)}):i.push(u[w]),c+=m.length,w+=1}}var o=n.getTokens(t);return e.walk(function(u,f,v,w,c){u!=null?i.push({type:"fold",value:u}):(c&&(o=n.getTokens(f)),o.length&&r(o,w,v))},e.end.row,this.session.getLine(e.end.row).length),i},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(s.prototype),E.Text=s});ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(B,E,K){var $=B("../lib/dom"),C,d=function(a){this.element=$.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),C===void 0&&(C=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),$.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(C?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(a){for(var s=this.cursors,t=s.length;t--;)s[t].style.visibility=a?"":"hidden"},this.$updateOpacity=function(a){for(var s=this.cursors,t=s.length;t--;)s[t].style.opacity=a?"":"0"},this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},this.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},this.setSmoothBlinking=function(a){a!=this.smoothBlinking&&!C&&(this.smoothBlinking=a,$.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var a=$.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},this.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},this.hideCursor=function(){this.isVisible=!1,$.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,$.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&$.removeCssClass(this.element,"ace_smooth-blinking"),a(!0),!(!this.isBlinking||!this.blinkInterval||!this.isVisible)){this.smoothBlinking&&setTimeout(function(){$.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var s=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),s()},this.blinkInterval),s()}},this.getPixelPosition=function(a,s){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var t=this.session.documentToScreenPosition(a),e=this.$padding+(this.session.$bidiHandler.isBidiRow(t.row,a.row)?this.session.$bidiHandler.getPosLeft(t.column):t.column*this.config.characterWidth),n=(t.row-(s?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:e,top:n}},this.update=function(a){this.config=a;var s=this.session.$selectionMarkers,t=0,e=0;(s===void 0||s.length===0)&&(s=[{cursor:null}]);for(var t=0,n=s.length;t<n;t++){var i=this.getPixelPosition(s[t].cursor,!0);if(!((i.top>a.height+a.offset||i.top<0)&&t>1)){var r=(this.cursors[e++]||this.addCursor()).style;this.drawCursor?this.drawCursor(r,i,a,s[t],this.session):(r.left=i.left+"px",r.top=i.top+"px",r.width=a.characterWidth+"px",r.height=a.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(a){a!=this.overwrite&&(this.overwrite=a,a?$.addCssClass(this.element,"ace_overwrite-cursors"):$.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(d.prototype),E.Cursor=d});ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/dom"),d=B("./lib/event"),a=B("./lib/event_emitter").EventEmitter,s=32768,t=function(i){this.element=C.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=C.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),i.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,d.addListener(this.element,"scroll",this.onScroll.bind(this)),d.addListener(this.element,"mousedown",d.preventDefault)};(function(){$.implement(this,a),this.setVisible=function(i){this.element.style.display=i?"":"none",this.isVisible=i,this.coeff=1}}).call(t.prototype);var e=function(i,r){t.call(this,i),this.scrollTop=0,this.scrollHeight=0,r.$scrollbarWidth=this.width=C.scrollbarWidth(i.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};$.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>s?(this.coeff=s/i,i=s):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,r){t.call(this,i),this.scrollLeft=0,this.height=r.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};$.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),E.ScrollBar=e,E.ScrollBarV=e,E.ScrollBarH=n,E.VScrollBar=e,E.HScrollBar=n});ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(B,E,K){var $=B("./lib/event"),C=function(d,a){this.onRender=d,this.pending=!1,this.changes=0,this.window=a||window};(function(){this.schedule=function(d){if(this.changes=this.changes|d,!this.pending&&this.changes){this.pending=!0;var a=this;$.nextFrame(function(){a.pending=!1;for(var s;s=a.changes;)a.changes=0,a.onRender(s)},this.window)}}}).call(C.prototype),E.RenderLoop=C});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,E,K){var $=B("../lib/oop"),C=B("../lib/dom"),d=B("../lib/lang"),a=B("../lib/useragent"),s=B("../lib/event_emitter").EventEmitter,t=0,e=E.FontMetrics=function(n){this.el=C.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=C.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=C.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=d.stringRepeat("X",t),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){$.implement(this,s),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var n=C.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",a.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=d.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,E,K){var $=B("./lib/oop"),C=B("./lib/dom"),d=B("./config"),a=B("./lib/useragent"),s=B("./layer/gutter").Gutter,t=B("./layer/marker").Marker,e=B("./layer/text").Text,n=B("./layer/cursor").Cursor,i=B("./scrollbar").HScrollBar,r=B("./scrollbar").VScrollBar,o=B("./renderloop").RenderLoop,u=B("./layer/font_metrics").FontMetrics,f=B("./lib/event_emitter").EventEmitter,v=`.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;}`;C.importCssString(v,"ace_editor.css");var w=function(c,m){var l=this;this.container=c||C.createElement("div"),this.$keepTextAreaAtCursor=!a.isOldIE,C.addCssClass(this.container,"ace_editor"),this.setTheme(m),this.$gutter=C.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=C.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=C.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new t(this.content);var g=this.$textLayer=new e(this.content);this.canvas=g.element,this.$markerFront=new t(this.content),this.$cursorLayer=new n(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new r(this.container,this),this.scrollBarH=new i(this.container,this),this.scrollBarV.addEventListener("scroll",function(A){l.$scrollAnimation||l.session.setScrollTop(A.data-l.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(A){l.$scrollAnimation||l.session.setScrollLeft(A.data-l.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(A){l.updateCharacterSize(),l.onResize(!0,l.gutterWidth,l.$size.width,l.$size.height),l._signal("changeCharacterSize",A)}),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),d.resetOptions(this),d._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,$.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,l){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(l)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,l,g){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=c?1:0;var A=this.container;g||(g=A.clientHeight||A.scrollHeight),l||(l=A.clientWidth||A.scrollWidth);var F=this.$updateCachedSize(c,m,l,g);if(!this.$size.scrollerHeight||!l&&!g)return this.resizing=0;c&&(this.$gutterLayer.$padding=null),c?this.$renderChanges(F|this.$changes,!0):this.$loop.schedule(F|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(c,m,l,g){g-=this.$extraHeight||0;var A=0,F=this.$size,h={width:F.width,height:F.height,scrollerHeight:F.scrollerHeight,scrollerWidth:F.scrollerWidth};return g&&(c||F.height!=g)&&(F.height=g,A|=this.CHANGE_SIZE,F.scrollerHeight=F.height,this.$horizScroll&&(F.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",A=A|this.CHANGE_SCROLL),l&&(c||F.width!=l)&&(A|=this.CHANGE_SIZE,F.width=l,m==null&&(m=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=m,this.scrollBarH.element.style.left=this.scroller.style.left=m+"px",F.scrollerWidth=Math.max(0,l-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)&&(A|=this.CHANGE_FULL)),F.$dirty=!l||!g,A&&this._signal("resize",h),A},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 l=this.session.selection.getCursor();l.column=0,c=this.$cursorLayer.getPixelPosition(l,!0),m*=this.session.getRowLength(l.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=C.createElement("div");c.className="ace_layer ace_print-margin-layer",this.$printMarginEl=C.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,l=this.$cursorLayer.$pixelPos.left;m-=c.offset;var g=this.textarea.style,A=this.lineHeight;if(m<0||m>c.height-A){g.top=g.left="0";return}var F=this.characterWidth;if(this.$composition){var h=this.textarea.value.replace(/^\x01+/,"");F*=this.session.$getStringScreenWidth(h)[0]+2,A+=2}l-=this.scrollLeft,l>this.$size.scrollerWidth-F&&(l=this.$size.scrollerWidth-F),l+=this.gutterWidth,g.height=A+"px",g.width=F+"px",g.left=Math.min(l,this.$size.scrollerWidth-F)+"px",g.top=Math.min(m,this.$size.height-A)+"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,l=this.session.documentToScreenRow(m,0)*c.lineHeight;return l-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,l,g){var A=this.scrollMargin;A.top=c|0,A.bottom=m|0,A.right=g|0,A.left=l|0,A.v=A.top+A.bottom,A.h=A.left+A.right,A.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-A.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 l=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(),l.firstRow!=this.layerConfig.firstRow&&l.firstRowScreen==this.layerConfig.firstRowScreen){var g=this.scrollTop+(l.firstRow-this.layerConfig.firstRow)*this.lineHeight;g>0&&(this.scrollTop=g,c=c|this.CHANGE_SCROLL,c|=this.$computeLayerConfig())}l=this.layerConfig,this.$updateScrollBarV(),c&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-l.offset+"px",this.content.style.marginTop=-l.offset+"px",this.content.style.width=l.width+2*this.$padding+"px",this.content.style.height=l.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(l),this.$showGutter&&this.$gutterLayer.update(l),this.$markerBack.update(l),this.$markerFront.update(l),this.$cursorLayer.update(l),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(l):this.$textLayer.scrollLines(l),this.$showGutter&&this.$gutterLayer.update(l),this.$markerBack.update(l),this.$markerFront.update(l),this.$cursorLayer.update(l),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}c&this.CHANGE_TEXT?(this.$textLayer.update(l),this.$showGutter&&this.$gutterLayer.update(l)):c&this.CHANGE_LINES?(this.$updateLines()||c&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(l):(c&this.CHANGE_TEXT||c&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(l),c&this.CHANGE_CURSOR&&(this.$cursorLayer.update(l),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),c&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(l),c&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(l),this._signal("afterRender")},this.$autosize=function(){var c=this.session.getScreenLength()*this.lineHeight,m=this.$maxLines*this.lineHeight,l=Math.min(m,Math.max((this.$minLines||1)*this.lineHeight,c))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(l+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&l>this.$maxPixelHeight&&(l=this.$maxPixelHeight);var g=c>m;if(l!=this.desiredHeight||this.$size.height!=this.desiredHeight||g!=this.$vScroll){g!=this.$vScroll&&(this.$vScroll=g,this.scrollBarV.setVisible(g));var A=this.container.clientWidth;this.container.style.height=l+"px",this.$updateCachedSize(!0,this.$gutterWidth,A,l),this.desiredHeight=l,this._signal("autosize")}},this.$computeLayerConfig=function(){var c=this.session,m=this.$size,l=m.height<=2*this.lineHeight,g=this.session.getScreenLength(),A=g*this.lineHeight,F=this.$getLongestLine(),h=!l&&(this.$hScrollBarAlwaysVisible||m.scrollerWidth-F-2*this.$padding<0),p=this.$horizScroll!==h;p&&(this.$horizScroll=h,this.scrollBarH.setVisible(h));var b=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var S=this.scrollTop%this.lineHeight,k=m.scrollerHeight+this.lineHeight,L=!this.$maxLines&&this.$scrollPastEnd?(m.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;A+=L;var D=this.scrollMargin;this.session.setScrollTop(Math.max(-D.top,Math.min(this.scrollTop,A-m.scrollerHeight+D.bottom))),this.session.setScrollLeft(Math.max(-D.left,Math.min(this.scrollLeft,F+2*this.$padding-m.scrollerWidth+D.right)));var O=!l&&(this.$vScrollBarAlwaysVisible||m.scrollerHeight-A+L<0||this.scrollTop>D.top),I=b!==O;I&&(this.$vScroll=O,this.scrollBarV.setVisible(O));var W=Math.ceil(k/this.lineHeight)-1,H=Math.max(0,Math.round((this.scrollTop-S)/this.lineHeight)),z=H+W,M,y,x=this.lineHeight;H=c.screenToDocumentRow(H,0);var R=c.getFoldLine(H);R&&(H=R.start.row),M=c.documentToScreenRow(H,0),y=c.getRowLength(H)*x,z=Math.min(c.screenToDocumentRow(z,0),c.getLength()-1),k=m.scrollerHeight+c.getRowLength(z)*x+y,S=this.scrollTop-M*x;var T=0;return this.layerConfig.width!=F&&(T=this.CHANGE_H_SCROLL),(p||I)&&(T=this.$updateCachedSize(!0,this.gutterWidth,m.width,m.height),this._signal("scrollbarVisibilityChanged"),I&&(F=this.$getLongestLine())),this.layerConfig={width:F,padding:this.$padding,firstRow:H,firstRowScreen:M,lastRow:z,lineHeight:x,characterWidth:this.characterWidth,minHeight:k,maxHeight:A,offset:S,gutterOffset:x?Math.max(0,Math.ceil((S+m.height-m.scrollerHeight)/x)):0,height:this.$size.scrollerHeight},T},this.$updateLines=function(){if(!!this.$changedLines){var c=this.$changedLines.firstRow,m=this.$changedLines.lastRow;this.$changedLines=null;var l=this.layerConfig;if(!(c>l.lastRow+1)&&!(m<l.firstRow)){if(m===1/0){this.$showGutter&&this.$gutterLayer.update(l),this.$textLayer.update(l);return}return this.$textLayer.updateLines(l,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,l){this.scrollCursorIntoView(c,l),this.scrollCursorIntoView(m,l)},this.scrollCursorIntoView=function(c,m,l){if(this.$size.scrollerHeight!==0){var g=this.$cursorLayer.getPixelPosition(c),A=g.left,F=g.top,h=l&&l.top||0,p=l&&l.bottom||0,b=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;b+h>F?(m&&b+h>F+this.lineHeight&&(F-=m*this.$size.scrollerHeight),F===0&&(F=-this.scrollMargin.top),this.session.setScrollTop(F)):b+this.$size.scrollerHeight-p<F+this.lineHeight&&(m&&b+this.$size.scrollerHeight-p<F-this.lineHeight&&(F+=m*this.$size.scrollerHeight),this.session.setScrollTop(F+this.lineHeight-this.$size.scrollerHeight));var S=this.scrollLeft;S>A?(A<this.$padding+2*this.layerConfig.characterWidth&&(A=-this.scrollMargin.left),this.session.setScrollLeft(A)):S+this.$size.scrollerWidth<A+this.characterWidth?this.session.setScrollLeft(Math.round(A+this.characterWidth-this.$size.scrollerWidth)):S<=this.$padding&&A-S<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 l=this.$cursorLayer.getPixelPosition(c),g=this.$size.scrollerHeight-this.lineHeight,A=l.top-g*(m||0);return this.session.setScrollTop(A),A},this.STEPS=8,this.$calcSteps=function(c,m){var l=0,g=this.STEPS,A=[],F=function(h,p,b){return b*(Math.pow(h-1,3)+1)+p};for(l=0;l<g;++l)A.push(F(l/this.STEPS,c,m-c));return A},this.scrollToLine=function(c,m,l,g){var A=this.$cursorLayer.getPixelPosition({row:c,column:0}),F=A.top;m&&(F-=this.$size.scrollerHeight/2);var h=this.scrollTop;this.session.setScrollTop(F),l!==!1&&this.animateScrolling(h,g)},this.animateScrolling=function(c,m){var l=this.scrollTop;if(!!this.$animatedScroll){var g=this;if(c!=l){if(this.$scrollAnimation){var A=this.$scrollAnimation.steps;if(A.length&&(c=A[0],c==l))return}var F=g.$calcSteps(c,l);this.$scrollAnimation={from:c,to:l,steps:F},clearInterval(this.$timer),g.session.setScrollTop(F.shift()),g.session.$scrollTop=l,this.$timer=setInterval(function(){F.length?(g.session.setScrollTop(F.shift()),g.session.$scrollTop=l):l!=null?(g.session.$scrollTop=-1,g.session.setScrollTop(l),l=null):(g.$timer=clearInterval(g.$timer),g.$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 l=this.scroller.getBoundingClientRect(),g=c+this.scrollLeft-l.left-this.$padding,A=g/this.characterWidth,F=Math.floor((m+this.scrollTop-l.top)/this.lineHeight),h=Math.round(A);return{row:F,column:h,side:A-h>0?1:-1,offsetX:g}},this.screenToTextCoordinates=function(c,m){var l=this.scroller.getBoundingClientRect(),g=c+this.scrollLeft-l.left-this.$padding,A=Math.round(g/this.characterWidth),F=(m+this.scrollTop-l.top)/this.lineHeight;return this.session.screenToDocumentPosition(F,Math.max(A,0),g)},this.textToScreenCoordinates=function(c,m){var l=this.scroller.getBoundingClientRect(),g=this.session.documentToScreenPosition(c,m),A=this.$padding+(this.session.$bidiHandler.isBidiRow(g.row,c)?this.session.$bidiHandler.getPosLeft(g.column):Math.round(g.column*this.characterWidth)),F=g.row*this.lineHeight;return{pageX:l.left+A-this.scrollLeft,pageY:l.top+F-this.scrollTop}},this.visualizeFocus=function(){C.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){C.removeCssClass(this.container,"ace_focus")},this.showComposition=function(c){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,C.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(c){this.$moveTextAreaToCursor()},this.hideComposition=function(){!this.$composition||(C.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 l=this;if(this.$themeId=c,l._dispatchEvent("themeChange",{theme:c}),!c||typeof c=="string"){var g=c||this.$options.theme.initialValue;d.loadModule(["theme",g],A)}else A(c);function A(F){if(l.$themeId!=c)return m&&m();if(!F||!F.cssClass)throw new Error("couldn't load module "+c+" or it didn't call define");C.importCssString(F.cssText,F.cssClass,l.container.ownerDocument),l.theme&&C.removeCssClass(l.container,l.theme.cssClass);var h="padding"in F?F.padding:"padding"in(l.theme||{})?4:l.$padding;l.$padding&&h!=l.$padding&&l.setPadding(h),l.$theme=F.cssClass,l.theme=F,C.addCssClass(l.container,F.cssClass),C.setCssClass(l.container,"ace_dark",F.isDark),l.$size&&(l.$size.width=0,l.$updateSizeAsync()),l._dispatchEvent("themeLoaded",{theme:F}),m&&m()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(c,m){C.setCssClass(this.container,c,m!==!1)},this.unsetStyle=function(c){C.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(w.prototype),d.defineOptions(w.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){C.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=C.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}}),E.VirtualRenderer=w});ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(B,E,K){var $=B("../lib/oop"),C=B("../lib/net"),d=B("../lib/event_emitter").EventEmitter,a=B("../config");function s(i,r){var o=r.src;""+C.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,r){var o=s(i,r),u=window.URL||window.webkitURL,f=u.createObjectURL(o);return new Worker(f)}var e=function(i,r,o,u,f){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),B.nameToUrl&&!B.toUrl&&(B.toUrl=B.nameToUrl),a.get("packaged")||!B.toUrl)u=u||a.moduleUrl(r.id,"worker");else{var v=this.$normalizePath;u=u||v(B.toUrl("ace/worker/worker.js",null,"_"));var w={};i.forEach(function(c){w[c]=v(B.toUrl(c,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=t(u,r),f&&this.send("importScripts",f),this.$worker.postMessage({init:!0,tlns:w,module:r.id,classname:o}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){$.implement(this,d),this.onMessage=function(i){var r=i.data;switch(r.type){case"event":this._signal(r.name,{data:r.data});break;case"call":var o=this.callbacks[r.id];o&&(o(r.data),delete this.callbacks[r.id]);break;case"error":this.reportError(r.data);break;case"log":window.console&&console.log&&console.log.apply(console,r.data);break}},this.reportError=function(i){window.console&&console.error&&console.error(i)},this.$normalizePath=function(i){return C.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,r){this.$worker.postMessage({command:i,args:r})},this.call=function(i,r,o){if(o){var u=this.callbackId++;this.callbacks[u]=o,r.push(u)}this.send(i,r)},this.emit=function(i,r){try{this.$worker.postMessage({event:i,data:{data:r.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,r,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,v=Object.create(d),w=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(m){w.messageBuffer.push(m),u&&(f?setTimeout(c):c())},this.setEmitSync=function(m){f=m};var c=function(){var m=w.messageBuffer.shift();m.command?u[m.command].apply(u,m.args):m.event&&v._signal(m.event,m.data)};v.postMessage=function(m){w.onMessage({data:m})},v.callback=function(m,l){this.postMessage({type:"call",id:l,data:m})},v.emit=function(m,l){this.postMessage({type:"event",name:m,data:l})},a.loadModule(["worker",r],function(m){for(u=new m[o](v);w.messageBuffer.length;)c()})};n.prototype=e.prototype,E.UIWorkerClient=n,E.WorkerClient=e,E.createWorker=t});ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(B,E,K){var $=B("./range").Range,C=B("./lib/event_emitter").EventEmitter,d=B("./lib/oop"),a=function(s,t,e,n,i,r){var o=this;this.length=t,this.session=s,this.doc=s.getDocument(),this.mainClass=i,this.othersClass=r,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=s.getUndoManager().$undoStack||s.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),s.selection.on("changeCursor",this.$onCursorChange)};(function(){d.implement(this,C),this.setup=function(){var s=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 $(n.row,n.column,n.row,n.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var r=t.createAnchor(i.row,i.column);r.$insertRight=!0,r.detach(),s.others.push(r)}),e.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var s=this.session,t=this;this.othersActive=!0,this.others.forEach(function(e){e.markerId=s.addMarker(new $(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 s=0;s<this.others.length;s++)this.session.removeMarker(this.others[s].markerId)}},this.onUpdate=function(s){if(this.$updating)return this.updateAnchors(s);var t=s;if(t.start.row===t.end.row&&t.start.row===this.pos.row){this.$updating=!0;var e=s.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(s),n&&(this.length+=e),n&&!this.session.$fromUndo){if(s.action==="insert")for(var r=this.others.length-1;r>=0;r--){var o=this.others[r],u={row:o.row,column:o.column+i};this.doc.insertMergedLines(u,s.lines)}else if(s.action==="remove")for(var r=this.others.length-1;r>=0;r--){var o=this.others[r],u={row:o.row,column:o.column+i};this.doc.remove(new $(u.row,u.column,u.row,u.column-e))}}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(s){this.pos.onChange(s);for(var t=this.others.length;t--;)this.others[t].onChange(s);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var s=this,t=this.session,e=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new $(i.row,i.column,i.row,i.column+s.length),r,null,!1)};e(this.pos,this.mainClass);for(var n=this.others.length;n--;)e(this.others[n],this.othersClass)}},this.onCursorChange=function(s){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",s)):(this.hideOtherMarkers(),this._emit("cursorLeave",s))}},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 s=this.session.getUndoManager(),t=(s.$undoStack||s.$undostack).length-this.$undoStackDepth,e=0;e<t;e++)s.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(a.prototype),E.PlaceHolder=a});ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(B,E,K){var $=B("../lib/event"),C=B("../lib/useragent");function d(s,t){return s.row==t.row&&s.column==t.column}function a(s){var t=s.domEvent,e=t.altKey,n=t.shiftKey,i=t.ctrlKey,r=s.getAccelKey(),o=s.getButton();if(i&&C.isMac&&(o=t.button),s.editor.inMultiSelectMode&&o==2){s.editor.textInput.onContextMenu(s.domEvent);return}if(!i&&!e&&!r){o===0&&s.editor.inMultiSelectMode&&s.editor.exitMultiSelectMode();return}if(o===0){var u=s.editor,f=u.selection,v=u.inMultiSelectMode,w=s.getDocumentPosition(),c=f.getCursor(),m=s.inSelection()||f.isEmpty()&&d(w,c),l=s.x,g=s.y,A=function(z){l=z.clientX,g=z.clientY},F=u.session,h=u.renderer.pixelToScreenCoordinates(l,g),p=h,b;if(u.$mouseHandler.$enableJumpToDef)i&&e||r&&e?b=n?"block":"add":e&&u.$blockSelectEnabled&&(b="block");else if(r&&!e){if(b="add",!v&&n)return}else e&&u.$blockSelectEnabled&&(b="block");if(b&&C.isMac&&t.ctrlKey&&u.$mouseHandler.cancelContextMenu(),b=="add"){if(!v&&m)return;if(!v){var S=f.toOrientedRange();u.addSelectionMarker(S)}var k=f.rangeList.rangeAtPoint(w);u.$blockScrolling++,u.inVirtualSelectionMode=!0,n&&(k=null,S=f.ranges[0]||S,u.removeSelectionMarker(S)),u.once("mouseup",function(){var z=f.toOrientedRange();k&&z.isEmpty()&&d(k.cursor,z.cursor)?f.substractPoint(z.cursor):(n?f.substractPoint(S.cursor):S&&(u.removeSelectionMarker(S),f.addRange(S)),f.addRange(z)),u.$blockScrolling--,u.inVirtualSelectionMode=!1})}else if(b=="block"){s.stop(),u.inVirtualSelectionMode=!0;var L,D=[],O=function(){var z=u.renderer.pixelToScreenCoordinates(l,g),M=F.screenToDocumentPosition(z.row,z.column,z.offsetX);d(p,z)&&d(M,f.lead)||(p=z,u.$blockScrolling++,u.selection.moveToPosition(M),u.renderer.scrollCursorIntoView(),u.removeSelectionMarkers(D),D=f.rectangularRangeBlock(p,h),u.$mouseHandler.$clickSelection&&D.length==1&&D[0].isEmpty()&&(D[0]=u.$mouseHandler.$clickSelection.clone()),D.forEach(u.addSelectionMarker,u),u.updateSelectionMarkers(),u.$blockScrolling--)};u.$blockScrolling++,v&&!r?f.toSingleRange():!v&&r&&(L=f.toOrientedRange(),u.addSelectionMarker(L)),n?h=F.documentToScreenPosition(f.lead):f.moveToPosition(w),u.$blockScrolling--,p={row:-1,column:-1};var I=function(z){clearInterval(H),u.removeSelectionMarkers(D),D.length||(D=[f.toOrientedRange()]),u.$blockScrolling++,L&&(u.removeSelectionMarker(L),f.toSingleRange(L));for(var M=0;M<D.length;M++)f.addRange(D[M]);u.inVirtualSelectionMode=!1,u.$mouseHandler.$clickSelection=null,u.$blockScrolling--},W=O;$.capture(u.container,A,I);var H=setInterval(function(){W()},20);return s.preventDefault()}}}E.onMouseDown=a});ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(B,E,K){E.defaultCommands=[{name:"addCursorAbove",exec:function(C){C.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(C){C.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(C){C.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(C){C.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(C){C.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(C){C.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(C){C.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(C){C.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(C){C.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(C){C.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(C){C.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],E.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(C){C.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(C){return C&&C.inMultiSelectMode}}];var $=B("../keyboard/hash_handler").HashHandler;E.keyboardHandler=new $(E.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,E,K){var $=B("./range_list").RangeList,C=B("./range").Range,d=B("./selection").Selection,a=B("./mouse/multi_select_handler").onMouseDown,s=B("./lib/event"),t=B("./lib/lang"),e=B("./commands/multi_select_commands");E.commands=e.defaultCommands.concat(e.multiSelectCommands);var n=B("./search").Search,i=new n;function r(c,m,l){return i.$options.wrap=!0,i.$options.needle=m,i.$options.backwards=l==-1,i.find(c)}var o=B("./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 l=this.toOrientedRange();if(this.rangeList.add(l),this.rangeList.add(c),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),m||this.fromOrientedRange(c);this.rangeList.removeAll(),this.rangeList.add(l),this.$onAddRange(l)}c.cursor||(c.cursor=c.end);var g=this.rangeList.add(c);return this.$onAddRange(c),g.length&&this.$onRemoveRange(g),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 l=c.length;l--;){var g=this.ranges.indexOf(c[l]);this.ranges.splice(g,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 $,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],l=C.fromPoints(c[0].start,m.end);this.toSingleRange(),this.setSelectionRange(l,m.cursor==m.start)}else{var l=this.getRange(),g=this.isBackwards(),A=l.start.row,F=l.end.row;if(A==F){if(g)var h=l.end,p=l.start;else var h=l.start,p=l.end;this.addRange(C.fromPoints(p,p)),this.addRange(C.fromPoints(h,h));return}var b=[],S=this.getLineRange(A,!0);S.start.column=l.start.column,b.push(S);for(var k=A+1;k<F;k++)b.push(this.getLineRange(k,!0));S=this.getLineRange(F,!0),S.end.column=l.end.column,b.push(S),b.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var c=this.rangeList.ranges,m=c[c.length-1],l=C.fromPoints(c[0].start,m.end);this.toSingleRange(),this.setSelectionRange(l,m.cursor==m.start)}else{var g=this.session.documentToScreenPosition(this.selectionLead),A=this.session.documentToScreenPosition(this.selectionAnchor),F=this.rectangularRangeBlock(g,A);F.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(c,m,l){var g=[],A=c.column<m.column;if(A)var F=c.column,h=m.column,p=c.offsetX,b=m.offsetX;else var F=m.column,h=c.column,p=m.offsetX,b=c.offsetX;var S=c.row<m.row;if(S)var k=c.row,L=m.row;else var k=m.row,L=c.row;F<0&&(F=0),k<0&&(k=0),k==L&&(l=!0);for(var D=k;D<=L;D++){var O=C.fromPoints(this.session.screenToDocumentPosition(D,F,p),this.session.screenToDocumentPosition(D,h,b));if(O.isEmpty()){if(I&&f(O.end,I))break;var I=O.end}O.cursor=A?O.start:O.end,g.push(O)}if(S&&g.reverse(),!l){for(var W=g.length-1;g[W].isEmpty()&&W>0;)W--;if(W>0)for(var H=0;g[H].isEmpty();)H++;for(var z=W;z>=H;z--)g[z].isEmpty()&&g.splice(z,1)}return g}}.call(d.prototype);var u=B("./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,l=c.length;l--;){var g=c[l];if(!!g.marker){this.session.removeMarker(g.marker);var A=m.indexOf(g);A!=-1&&m.splice(A,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,l=c.editor;if(!!l.multiSelect){if(m.multiSelectAction)m.multiSelectAction=="forEach"?g=l.forEachSelection(m,c.args):m.multiSelectAction=="forEachLine"?g=l.forEachSelection(m,c.args,!0):m.multiSelectAction=="single"?(l.exitMultiSelectMode(),g=m.exec(l,c.args||{})):g=m.multiSelectAction(l,c.args||{});else{var g=m.exec(l,c.args||{});l.multiSelect.addRange(l.multiSelect.toOrientedRange()),l.multiSelect.mergeOverlappingRanges()}return g}},this.forEachSelection=function(c,m,l){if(!this.inVirtualSelectionMode){var g=l&&l.keepOrder,A=l==!0||l&&l.$byLines,F=this.session,h=this.selection,p=h.rangeList,b=(g?h:p).ranges,S;if(!b.length)return c.exec?c.exec(this,m||{}):c(this,m||{});var k=h._eventRegistry;h._eventRegistry={};var L=new d(F);this.inVirtualSelectionMode=!0;for(var D=b.length;D--;){if(A)for(;D>0&&b[D].start.row==b[D-1].end.row;)D--;L.fromOrientedRange(b[D]),L.index=D,this.selection=F.selection=L;var O=c.exec?c.exec(this,m||{}):c(this,m||{});!S&&O!==void 0&&(S=O),L.toOrientedRange(b[D])}L.detach(),this.selection=F.selection=h,this.inVirtualSelectionMode=!1,h._eventRegistry=k,h.mergeOverlappingRanges();var I=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),I&&I.from==I.to&&this.renderer.animateScrolling(I.from),S}},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,l=[],g=0;g<m.length;g++)l.push(this.session.getTextRange(m[g]));var A=this.session.getDocument().getNewLineCharacter();c=l.join(A),c.length==(l.length-1)*A.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 l=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&m==this.multiSelect.anchor)return;var g=m==this.multiSelect.anchor?l.cursor==l.start?l.end:l.start:l.cursor;(g.row!=m.row||this.session.$clipPositionToDocument(g.row,g.column).column!=m.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(c,m,l){if(m=m||{},m.needle=c||m.needle,m.needle==null){var g=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();m.needle=this.session.getTextRange(g)}this.$search.set(m);var A=this.$search.findAll(this.session);if(!A.length)return 0;this.$blockScrolling+=1;var F=this.multiSelect;l||F.toSingleRange(A[0]);for(var h=A.length;h--;)F.addRange(A[h],!0);return g&&F.rangeList.rangeAtPoint(g.start)&&F.addRange(g,!0),this.$blockScrolling-=1,A.length},this.selectMoreLines=function(c,m){var l=this.selection.toOrientedRange(),g=l.cursor==l.end,A=this.session.documentToScreenPosition(l.cursor);this.selection.$desiredColumn&&(A.column=this.selection.$desiredColumn);var F=this.session.screenToDocumentPosition(A.row+c,A.column);if(l.isEmpty())var p=F;else var h=this.session.documentToScreenPosition(g?l.end:l.start),p=this.session.screenToDocumentPosition(h.row+c,h.column);if(g){var b=C.fromPoints(F,p);b.cursor=b.start}else{var b=C.fromPoints(p,F);b.cursor=b.end}if(b.desiredColumn=A.column,!this.selection.inMultiSelectMode)this.selection.addRange(l);else if(m)var S=l.cursor;this.selection.addRange(b),S&&this.selection.substractPoint(S)},this.transposeSelections=function(c){for(var m=this.session,l=m.multiSelect,g=l.ranges,A=g.length;A--;){var F=g[A];if(F.isEmpty()){var h=m.getWordRange(F.start.row,F.start.column);F.start.row=h.start.row,F.start.column=h.start.column,F.end.row=h.end.row,F.end.column=h.end.column}}l.mergeOverlappingRanges();for(var p=[],A=g.length;A--;){var F=g[A];p.unshift(m.getTextRange(F))}c<0?p.unshift(p.pop()):p.push(p.shift());for(var A=g.length;A--;){var F=g[A],h=F.clone();m.replace(F,p[A]),F.start.row=h.start.row,F.start.column=h.start.column}},this.selectMore=function(c,m,l){var g=this.session,A=g.multiSelect,F=A.toOrientedRange();if(!(F.isEmpty()&&(F=g.getWordRange(F.start.row,F.start.column),F.cursor=c==-1?F.start:F.end,this.multiSelect.addRange(F),l))){var h=g.getTextRange(F),p=r(g,h,c);p&&(p.cursor=c==-1?p.start:p.end,this.$blockScrolling+=1,this.session.unfold(p),this.multiSelect.addRange(p),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),m&&this.multiSelect.substractPoint(F.cursor)}},this.alignCursors=function(){var c=this.session,m=c.multiSelect,l=m.ranges,g=-1,A=l.filter(function(W){if(W.cursor.row==g)return!0;g=W.cursor.row});if(!l.length||A.length==l.length-1){var F=this.selection.getRange(),h=F.start.row,p=F.end.row,b=h==p;if(b){var S=this.session.getLength(),k;do k=this.session.getLine(p);while(/[=:]/.test(k)&&++p<S);do k=this.session.getLine(h);while(/[=:]/.test(k)&&--h>0);h<0&&(h=0),p>=S&&(p=S-1)}var L=this.session.removeFullLines(h,p);L=this.$reAlignText(L,b),this.session.insert({row:h,column:0},L.join(`
|
|
`)+`
|
|
`),b||(F.start.column=0,F.end.column=L[L.length-1].length),this.selection.setRange(F)}else{A.forEach(function(W){m.substractPoint(W.cursor)});var D=0,O=1/0,I=l.map(function(W){var H=W.cursor,z=c.getLine(H.row),M=z.substr(H.column).search(/\S/g);return M==-1&&(M=0),H.column>D&&(D=H.column),M<O&&(O=M),M});l.forEach(function(W,H){var z=W.cursor,M=D-z.column,y=I[H]-O;M>y?c.insert(z,t.stringRepeat(" ",M-y)):c.remove(new C(z.row,z.column,z.row,z.column-M+y)),W.start.column=W.end.column=D,W.start.row=W.end.row=z.row,W.cursor=W.end}),m.fromOrientedRange(l[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(c,m){var l=!0,g=!0,A,F,h;return c.map(function(L){var D=L.match(/(\s*)(.*?)(\s*)([=:].*)/);return D?A==null?(A=D[1].length,F=D[2].length,h=D[3].length,D):(A+F+h!=D[1].length+D[2].length+D[3].length&&(g=!1),A!=D[1].length&&(l=!1),A>D[1].length&&(A=D[1].length),F<D[2].length&&(F=D[2].length),h>D[3].length&&(h=D[3].length),D):[L]}).map(m?b:l?g?S:b:k);function p(L){return t.stringRepeat(" ",L)}function b(L){return L[2]?p(A)+L[2]+p(F-L[2].length+h)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}function S(L){return L[2]?p(A+F-L[2].length)+L[2]+p(h)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}function k(L){return L[2]?p(A)+L[2]+p(h)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}}}).call(u.prototype);function f(c,m){return c.row==m.row&&c.column==m.column}E.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 l=c.oldSession;l&&(l.multiSelect.off("addRange",this.$onAddRange),l.multiSelect.off("removeRange",this.$onRemoveRange),l.multiSelect.off("multiSelect",this.$onMultiSelect),l.multiSelect.off("singleSelect",this.$onSingleSelect),l.multiSelect.lead.off("change",this.$checkMultiselectChange),l.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 v(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=E.onSessionChange.bind(c),c.$checkMultiselectChange=c.$checkMultiselectChange.bind(c),c.$multiselectOnSessionChange(c),c.on("changeSession",c.$multiselectOnSessionChange),c.on("mousedown",a),c.commands.addCommands(e.defaultCommands),w(c))}function w(c){var m=c.textInput.getElement(),l=!1;s.addListener(m,"keydown",function(A){var F=A.keyCode==18&&!(A.ctrlKey||A.shiftKey||A.metaKey);c.$blockSelectEnabled&&F?l||(c.renderer.setMouseCursor("crosshair"),l=!0):l&&g()}),s.addListener(m,"keyup",g),s.addListener(m,"blur",g);function g(A){l&&(c.renderer.setMouseCursor(""),l=!1)}}E.MultiSelect=v,B("./config").defineOptions(u.prototype,"editor",{enableMultiselect:{set:function(c){v(this),c?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},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,E,K){var $=B("../../range").Range,C=E.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(d,a,s){var t=d.getLine(s);return this.foldingStartMarker.test(t)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(t)?"end":""},this.getFoldWidgetRange=function(d,a,s){return null},this.indentationBlock=function(d,a,s){var t=/\S/,e=d.getLine(a),n=e.search(t);if(n!=-1){for(var i=s||e.length,r=d.getLength(),o=a,u=a;++a<r;){var f=d.getLine(a).search(t);if(f!=-1){if(f<=n)break;u=a}}if(u>o){var v=d.getLine(u).length;return new $(o,i,u,v)}}},this.openingBracketBlock=function(d,a,s,t,e){var n={row:s,column:t+1},i=d.$findClosingBracket(a,n,e);if(!!i){var r=d.foldWidgets[i.row];return r==null&&(r=d.getFoldWidget(i.row)),r=="start"&&i.row>n.row&&(i.row--,i.column=d.getLine(i.row).length),$.fromPoints(n,i)}},this.closingBracketBlock=function(d,a,s,t,e){var n={row:s,column:t},i=d.$findOpeningBracket(a,n);if(!!i)return i.column++,n.column--,$.fromPoints(i,n)}}).call(C.prototype)});ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(B,E,K){E.isDark=!1,E.cssClass="ace-tm",E.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");$.importCssString(E.cssText,E.cssClass)});ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(B,E,K){B("./lib/oop");var $=B("./lib/dom");B("./range").Range;function C(d){this.session=d,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(d){var a;return this.lineWidgets?a=this.lineWidgets[d]&&this.lineWidgets[d].rowCount||0:a=0,!this.$useWrapMode||!this.$wrapData[d]?1+a:this.$wrapData[d].length+1+a},this.$getWidgetScreenLength=function(){var d=0;return this.lineWidgets.forEach(function(a){a&&a.rowCount&&!a.hidden&&(d+=a.rowCount)}),d},this.$onChangeEditor=function(d){this.attach(d.editor)},this.attach=function(d){d&&d.widgetManager&&d.widgetManager!=this&&d.widgetManager.detach(),this.editor!=d&&(this.detach(),this.editor=d,d&&(d.widgetManager=this,d.renderer.on("beforeRender",this.measureWidgets),d.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(d){var a=this.editor;if(!!a){this.editor=null,a.widgetManager=null,a.renderer.off("beforeRender",this.measureWidgets),a.renderer.off("afterRender",this.renderWidgets);var s=this.session.lineWidgets;s&&s.forEach(function(t){t&&t.el&&t.el.parentNode&&(t._inDocument=!1,t.el.parentNode.removeChild(t.el))})}},this.updateOnFold=function(d,a){var s=a.lineWidgets;if(!(!s||!d.action)){for(var t=d.data,e=t.start.row,n=t.end.row,i=d.action=="add",r=e+1;r<n;r++)s[r]&&(s[r].hidden=i);s[n]&&(i?s[e]?s[n].hidden=i:s[e]=s[n]:(s[e]==s[n]&&(s[e]=void 0),s[n].hidden=i))}},this.updateOnChange=function(d){var a=this.session.lineWidgets;if(!!a){var s=d.start.row,t=d.end.row-s;if(t!==0)if(d.action=="remove"){var e=a.splice(s+1,t);e.forEach(function(i){i&&this.removeLineWidget(i)},this),this.$updateRows()}else{var n=new Array(t);n.unshift(s,0),a.splice.apply(a,n),this.$updateRows()}}},this.$updateRows=function(){var d=this.session.lineWidgets;if(!!d){var a=!0;d.forEach(function(s,t){if(s)for(a=!1,s.row=t;s.$oldWidget;)s.$oldWidget.row=t,s=s.$oldWidget}),a&&(this.session.lineWidgets=null)}},this.addLineWidget=function(d){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var a=this.session.lineWidgets[d.row];a&&(d.$oldWidget=a,a.el&&a.el.parentNode&&(a.el.parentNode.removeChild(a.el),a._inDocument=!1)),this.session.lineWidgets[d.row]=d,d.session=this.session;var s=this.editor.renderer;d.html&&!d.el&&(d.el=$.createElement("div"),d.el.innerHTML=d.html),d.el&&($.addCssClass(d.el,"ace_lineWidgetContainer"),d.el.style.position="absolute",d.el.style.zIndex=5,s.container.appendChild(d.el),d._inDocument=!0),d.coverGutter||(d.el.style.zIndex=3),d.pixelHeight==null&&(d.pixelHeight=d.el.offsetHeight),d.rowCount==null&&(d.rowCount=d.pixelHeight/s.layerConfig.lineHeight);var t=this.session.getFoldAt(d.row,0);if(d.$fold=t,t){var e=this.session.lineWidgets;d.row==t.end.row&&!e[t.start.row]?e[t.start.row]=d:d.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:d.row}}}),this.$updateRows(),this.renderWidgets(null,s),this.onWidgetChanged(d),d},this.removeLineWidget=function(d){if(d._inDocument=!1,d.session=null,d.el&&d.el.parentNode&&d.el.parentNode.removeChild(d.el),d.editor&&d.editor.destroy)try{d.editor.destroy()}catch{}if(this.session.lineWidgets){var a=this.session.lineWidgets[d.row];if(a==d)this.session.lineWidgets[d.row]=d.$oldWidget,d.$oldWidget&&this.onWidgetChanged(d.$oldWidget);else for(;a;){if(a.$oldWidget==d){a.$oldWidget=d.$oldWidget;break}a=a.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:d.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(d){for(var a=this.session.lineWidgets,s=a&&a[d],t=[];s;)t.push(s),s=s.$oldWidget;return t},this.onWidgetChanged=function(d){this.session._changedWidgets.push(d),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(d,a){var s=this.session._changedWidgets,t=a.layerConfig;if(!(!s||!s.length)){for(var e=1/0,n=0;n<s.length;n++){var i=s[n];if(!(!i||!i.el)&&i.session==this.session){if(!i._inDocument){if(this.session.lineWidgets[i.row]!=i)continue;i._inDocument=!0,a.container.appendChild(i.el)}i.h=i.el.offsetHeight,i.fixedWidth||(i.w=i.el.offsetWidth,i.screenWidth=Math.ceil(i.w/t.characterWidth));var r=i.h/t.lineHeight;i.coverLine&&(r-=this.session.getRowLineCount(i.row),r<0&&(r=0)),i.rowCount!=r&&(i.rowCount=r,i.row<e&&(e=i.row))}}e!=1/0&&(this.session._emit("changeFold",{data:{start:{row:e}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},this.renderWidgets=function(d,a){var s=a.layerConfig,t=this.session.lineWidgets;if(!!t){for(var e=Math.min(this.firstRow,s.firstRow),n=Math.max(this.lastRow,s.lastRow,t.length);e>0&&!t[e];)e--;this.firstRow=s.firstRow,this.lastRow=s.lastRow,a.$cursorLayer.config=s;for(var i=e;i<=n;i++){var r=t[i];if(!(!r||!r.el)){if(r.hidden){r.el.style.top=-100-(r.pixelHeight||0)+"px";continue}r._inDocument||(r._inDocument=!0,a.container.appendChild(r.el));var o=a.$cursorLayer.getPixelPosition({row:i,column:0},!0).top;r.coverLine||(o+=s.lineHeight*this.session.getRowLineCount(r.row)),r.el.style.top=o-s.offset+"px";var u=r.coverGutter?0:a.gutterWidth;r.fixedWidth||(u-=a.scrollLeft),r.el.style.left=u+"px",r.fullWidth&&r.screenWidth&&(r.el.style.minWidth=s.width+2*s.padding+"px"),r.fixedWidth?r.el.style.right=a.scrollBar.getWidth()+"px":r.el.style.right=""}}}}}).call(C.prototype),E.LineWidgets=C});ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(B,E,K){var $=B("../line_widgets").LineWidgets,C=B("../lib/dom"),d=B("../range").Range;function a(t,e,n){for(var i=0,r=t.length-1;i<=r;){var o=i+r>>1,u=n(e,t[o]);if(u>0)i=o+1;else if(u<0)r=o-1;else return o}return-(i+1)}function s(t,e,n){var i=t.getAnnotations().sort(d.comparePoints);if(!!i.length){var r=a(i,{row:e,column:-1},d.comparePoints);r<0&&(r=-r-1),r>=i.length?r=n>0?0:i.length-1:r===0&&n<0&&(r=i.length-1);var o=i[r];if(!(!o||!n)){if(o.row===e){do o=i[r+=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[r+=n];while(o&&o.row==e);return u.length&&u}}}E.showErrorMarker=function(t,e){var n=t.session;n.widgetManager||(n.widgetManager=new $(n),n.widgetManager.attach(t));var i=t.getCursorPosition(),r=i.row,o=n.widgetManager.getWidgetsAtRow(r).filter(function(A){return A.type=="errorMarker"})[0];o?o.destroy():r-=e;var u=s(n,r,e),f;if(u){var v=u[0];i.column=(v.pos&&typeof v.column!="number"?v.pos.sc:v.column)||0,i.row=v.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 w={row:i.row,fixedWidth:!0,coverGutter:!0,el:C.createElement("div"),type:"errorMarker"},c=w.el.appendChild(C.createElement("div")),m=w.el.appendChild(C.createElement("div"));m.className="error_widget_arrow "+f.className;var l=t.renderer.$cursorLayer.getPixelPosition(i).left;m.style.left=l+t.renderer.gutterWidth-5+"px",w.el.className="error_widget_wrapper",c.className="error_widget "+f.className,c.innerHTML=f.text.join("<br>"),c.appendChild(C.createElement("div"));var g=function(A,F,h){if(F===0&&(h==="esc"||h==="return"))return w.destroy(),{command:"null"}};w.destroy=function(){t.$mouseHandler.isMousePressed||(t.keyBinding.removeKeyboardHandler(g),n.widgetManager.removeLineWidget(w),t.off("changeSelection",w.destroy),t.off("changeSession",w.destroy),t.off("mouseup",w.destroy),t.off("change",w.destroy))},t.keyBinding.addKeyboardHandler(g),t.on("changeSelection",w.destroy),t.on("changeSession",w.destroy),t.on("mouseup",w.destroy),t.on("change",w.destroy),t.session.widgetManager.addLineWidget(w),w.el.onmousedown=t.focus.bind(t),t.renderer.scrollCursorIntoView(null,.5,{bottom:w.el.offsetHeight})},C.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,E,K){B("./lib/fixoldbrowsers");var $=B("./lib/dom"),C=B("./lib/event"),d=B("./editor").Editor,a=B("./edit_session").EditSession,s=B("./undomanager").UndoManager,t=B("./virtual_renderer").VirtualRenderer;B("./worker/worker_client"),B("./keyboard/hash_handler"),B("./placeholder"),B("./multi_select"),B("./mode/folding/fold_mode"),B("./theme/textmate"),B("./ext/error_marker"),E.config=B("./config"),E.acequire=B,E.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 d)return e.env.editor;var i="";if(e&&/input|textarea/i.test(e.tagName)){var r=e;i=r.value,e=$.createElement("pre"),r.parentNode.replaceChild(e,r)}else e&&(i=$.getInnerText(e),e.innerHTML="");var o=E.createEditSession(i),u=new d(new t(e));u.setSession(o);var f={document:o,editor:u,onResize:u.resize.bind(u,null)};return r&&(f.textarea=r),C.addListener(window,"resize",f.onResize),u.on("destroy",function(){C.removeListener(window,"resize",f.onResize),f.editor.container.env=null}),u.container.env=u.env=f,u},E.createEditSession=function(e,n){var i=new a(e,n);return i.setUndoManager(new s),i},E.EditSession=a,E.UndoManager=s,E.version="1.2.9"});(function(){ace.acequire(["ace/ace"],function(B){B&&(B.config.init(!0),B.define=ace.define),window.ace||(window.ace=B);for(var E in B)B.hasOwnProperty(E)&&(window.ace[E]=B[E])})})();var ie=window.ace.acequire("ace/ace"),se=re({__proto__:null,default:ie},[ie]);export{se as i};
|
|
//# sourceMappingURL=index.8ac52a74.js.map
|