0?x>P&&(x=P):x==null?x=0:x<0&&(x=Math.max(P+x,0)),x+kY)for(H=Q;H--;)this[j+H]=this[Y+H];if(R&&x===J)this.length=J,this.push.apply(this,N);else for(this.length=J+R,H=0;H>>0;if(t(k)!="[object Function]")throw new TypeError;for(;++R>>0,R=Array(N),W=arguments[1];if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var Y=0;Y>>0,R=[],W,Y=arguments[1];if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var j=0;j>>0,R=arguments[1];if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var W=0;W>>0,R=arguments[1];if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var W=0;W>>0;if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");if(!N&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var R=0,W;if(arguments.length>=2)W=arguments[1];else do{if(R in I){W=I[R++];break}if(++R>=N)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;R>>0;if(t(k)!="[object Function]")throw new TypeError(k+" is not a function");if(!N&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var R,W=N-1;if(arguments.length>=2)R=arguments[1];else do{if(W in I){R=I[W--];break}if(--W<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do W in this&&(R=k.call(void 0,R,I[W],W,P));while(W--);return R}),(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)&&(Array.prototype.indexOf=function(k){var P=F&&t(this)=="[object String]"?this.split(""):T(this),I=P.length>>>0;if(!I)return-1;var N=0;for(arguments.length>1&&(N=V(arguments[1])),N=N>=0?N:Math.max(0,I+N);N>>0;if(!I)return-1;var N=I-1;for(arguments.length>1&&(N=Math.min(N,V(arguments[1]))),N=N>=0?N:I-Math.abs(N);N>=0;N--)if(N in P&&k===P[N])return N;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||(k.constructor?k.constructor.prototype:l)}),!Object.getOwnPropertyDescriptor){var c="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(k,P){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError(c+k);if(e(k,P)){var I,N,R;if(I={enumerable:!0,configurable:!0},u){var W=k.__proto__;k.__proto__=l;var N=s(k,P),R=o(k,P);if(k.__proto__=W,N||R)return N&&(I.get=N),R&&(I.set=R),I}return I.value=k[P],I}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k)}),!Object.create){var m;Object.prototype.__proto__===null?m=function(){return{__proto__:null}}:m=function(){var x={};for(var k in x)x[k]=null;return x.constructor=x.hasOwnProperty=x.propertyIsEnumerable=x.isPrototypeOf=x.toLocaleString=x.toString=x.valueOf=x.__proto__=null,x},Object.create=function(k,P){var I;if(k===null)I=m();else{if(typeof k!="object")throw new TypeError("typeof prototype["+typeof k+"] != 'object'");var N=function(){};N.prototype=k,I=new N,I.__proto__=k}return P!==void 0&&Object.defineProperties(I,P),I}}function a(x){try{return Object.defineProperty(x,"sentinel",{}),"sentinel"in x}catch{}}if(Object.defineProperty){var d=a({}),p=typeof document>"u"||a(document.createElement("div"));if(!d||!p)var C=Object.defineProperty}if(!Object.defineProperty||C){var h="Property description must be an object: ",v="Object.defineProperty called on non-object: ",w="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(k,P,I){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError(v+k);if(typeof I!="object"&&typeof I!="function"||I===null)throw new TypeError(h+I);if(C)try{return C.call(Object,k,P,I)}catch{}if(e(I,"value"))if(u&&(s(k,P)||o(k,P))){var N=k.__proto__;k.__proto__=l,delete k[P],k[P]=I.value,k.__proto__=N}else k[P]=I.value;else{if(!u)throw new TypeError(w);e(I,"get")&&n(k,P,I.get),e(I,"set")&&i(k,P,I.set)}return k}}Object.defineProperties||(Object.defineProperties=function(k,P){for(var I in P)e(P,I)&&Object.defineProperty(k,I,P[I]);return k}),Object.seal||(Object.seal=function(k){return k}),Object.freeze||(Object.freeze=function(k){return k});try{Object.freeze(function(){})}catch{Object.freeze=function(P){return function(N){return typeof N=="function"?N:P(N)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(k){return k}),Object.isSealed||(Object.isSealed=function(k){return!1}),Object.isFrozen||(Object.isFrozen=function(k){return!1}),Object.isExtensible||(Object.isExtensible=function(k){if(Object(k)===k)throw new TypeError;for(var P="";e(k,P);)P+="?";k[P]=!0;var I=e(k,P);return delete k[P],I}),!Object.keys){var y=!0,D=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=D.length;for(var L in{toString:null})y=!1;Object.keys=function(k){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError("Object.keys called on a non-object");var P=[];for(var I in k)e(k,I)&&P.push(I);if(y)for(var N=0,R=S;N0||-1)*Math.floor(Math.abs(x))),x}function M(x){var k=typeof x;return x===null||k==="undefined"||k==="boolean"||k==="number"||k==="string"}function U(x){var k,P,I;if(M(x))return x;if(P=x.valueOf,typeof P=="function"&&(k=P.call(x),M(k))||(I=x.toString,typeof I=="function"&&(k=I.call(x),M(k))))return k;throw new TypeError}var T=function(x){if(x==null)throw new TypeError("can't convert "+x+" to object");return Object(x)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function($,b,K){"use strict";$("./regexp"),$("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function($,b,K){"use strict";var B="http://www.w3.org/1999/xhtml";if(b.getDocumentHead=function(A){return A||(A=document),A.head||A.getElementsByTagName("head")[0]||A.documentElement},b.createElement=function(A,g){return document.createElementNS?document.createElementNS(g||B,A):document.createElement(A)},b.hasCssClass=function(A,g){var l=(A.className+"").split(/\s+/g);return l.indexOf(g)!==-1},b.addCssClass=function(A,g){b.hasCssClass(A,g)||(A.className+=" "+g)},b.removeCssClass=function(A,g){for(var l=A.className.split(/\s+/g);;){var r=l.indexOf(g);if(r==-1)break;l.splice(r,1)}A.className=l.join(" ")},b.toggleCssClass=function(A,g){for(var l=A.className.split(/\s+/g),r=!0;;){var t=l.indexOf(g);if(t==-1)break;r=!1,l.splice(t,1)}return r&&l.push(g),A.className=l.join(" "),r},b.setCssClass=function(A,g,l){l?b.addCssClass(A,g):b.removeCssClass(A,g)},b.hasCssString=function(A,g){var l=0,r;if(g=g||document,g.createStyleSheet&&(r=g.styleSheets)){for(;l"u"){b.importCssString=function(){};return}window.pageYOffset!==void 0?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(A,g){return g?(window.getComputedStyle(A,"")||{})[g]||"":window.getComputedStyle(A,"")||{}}:b.computedStyle=function(A,g){return g?A.currentStyle[g]:A.currentStyle},b.setInnerHtml=function(A,g){var l=A.cloneNode(!1);return l.innerHTML=g,A.parentNode.replaceChild(l,A),l},"textContent"in document.documentElement?(b.setInnerText=function(A,g){A.textContent=g},b.getInnerText=function(A){return A.textContent}):(b.setInnerText=function(A,g){A.innerText=g},b.getInnerText=function(A){return A.innerText}),b.getParentWindow=function(A){return A.defaultView||A.parentWindow}}),ace.define("ace/lib/oop",["require","exports","module"],function($,b,K){"use strict";b.inherits=function(B,A){B.super_=A,B.prototype=Object.create(A.prototype,{constructor:{value:B,enumerable:!1,writable:!0,configurable:!0}})},b.mixin=function(B,A){for(var g in A)B[g]=A[g];return B},b.implement=function(B,A){b.mixin(B,A)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function($,b,K){"use strict";$("./fixoldbrowsers");var B=$("./oop"),A=function(){var g={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},l,r;for(r in g.FUNCTION_KEYS)l=g.FUNCTION_KEYS[r].toLowerCase(),g[l]=parseInt(r,10);for(r in g.PRINTABLE_KEYS)l=g.PRINTABLE_KEYS[r].toLowerCase(),g[l]=parseInt(r,10);return B.mixin(g,g.MODIFIER_KEYS),B.mixin(g,g.PRINTABLE_KEYS),B.mixin(g,g.FUNCTION_KEYS),g.enter=g.return,g.escape=g.esc,g.del=g.delete,g[173]="-",function(){for(var t=["cmd","ctrl","alt","shift"],e=Math.pow(2,t.length);e--;)g.KEY_MODS[e]=t.filter(function(n){return e&g.KEY_MODS[n]}).join("-")+"-"}(),g.KEY_MODS[0]="",g.KEY_MODS[-1]="input-",g}();B.mixin(b,A),b.keyCodeToString=function(g){var l=A[g];return typeof l!="string"&&(l=String.fromCharCode(g)),l.toLowerCase()}}),ace.define("ace/lib/useragent",["require","exports","module"],function($,b,K){"use strict";if(b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS},typeof navigator=="object"){var B=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),A=navigator.userAgent;b.isWin=B=="win",b.isMac=B=="mac",b.isLinux=B=="linux",b.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((A.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((A.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),b.isOldIE=b.isIE&&b.isIE<9,b.isGecko=b.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",b.isOldGecko=b.isGecko&&parseInt((A.match(/rv:(\d+)/)||[])[1],10)<4,b.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",b.isWebKit=parseFloat(A.split("WebKit/")[1])||void 0,b.isChrome=parseFloat(A.split(" Chrome/")[1])||void 0,b.isAIR=A.indexOf("AdobeAIR")>=0,b.isIPad=A.indexOf("iPad")>=0,b.isChromeOS=A.indexOf(" CrOS ")>=0,b.isIOS=/iPad|iPhone|iPod/.test(A)&&!window.MSStream,b.isIOS&&(b.isMac=!0)}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function($,b,K){"use strict";var B=$("./keys"),A=$("./useragent"),g=null,l=0;b.addListener=function(i,s,o){if(i.addEventListener)return i.addEventListener(s,o,!1);if(i.attachEvent){var u=function(){o.call(i,window.event)};o._wrapper=u,i.attachEvent("on"+s,u)}},b.removeListener=function(i,s,o){if(i.removeEventListener)return i.removeEventListener(s,o,!1);i.detachEvent&&i.detachEvent("on"+s,o._wrapper||o)},b.stopEvent=function(i){return b.stopPropagation(i),b.preventDefault(i),!1},b.stopPropagation=function(i){i.stopPropagation?i.stopPropagation():i.cancelBubble=!0},b.preventDefault=function(i){i.preventDefault?i.preventDefault():i.returnValue=!1},b.getButton=function(i){return i.type=="dblclick"?0:i.type=="contextmenu"||A.isMac&&i.ctrlKey&&!i.altKey&&!i.shiftKey?2:i.preventDefault?i.button:{1:0,2:2,4:1}[i.button]},b.capture=function(i,s,o){function u(f){s&&s(f),o&&o(f),b.removeListener(document,"mousemove",s,!0),b.removeListener(document,"mouseup",u,!0),b.removeListener(document,"dragstart",u,!0)}return b.addListener(document,"mousemove",s,!0),b.addListener(document,"mouseup",u,!0),b.addListener(document,"dragstart",u,!0),u},b.addTouchMoveListener=function(i,s){var o,u;b.addListener(i,"touchstart",function(f){var E=f.touches,F=E[0];o=F.clientX,u=F.clientY}),b.addListener(i,"touchmove",function(f){var E=f.touches;if(!(E.length>1)){var F=E[0];f.wheelX=o-F.clientX,f.wheelY=u-F.clientY,o=F.clientX,u=F.clientY,s(f)}})},b.addMouseWheelListener=function(i,s){"onmousewheel"in i?b.addListener(i,"mousewheel",function(o){var u=8;o.wheelDeltaX!==void 0?(o.wheelX=-o.wheelDeltaX/u,o.wheelY=-o.wheelDeltaY/u):(o.wheelX=0,o.wheelY=-o.wheelDelta/u),s(o)}):"onwheel"in i?b.addListener(i,"wheel",function(o){var u=.35;switch(o.deltaMode){case o.DOM_DELTA_PIXEL:o.wheelX=o.deltaX*u||0,o.wheelY=o.deltaY*u||0;break;case o.DOM_DELTA_LINE:case o.DOM_DELTA_PAGE:o.wheelX=(o.deltaX||0)*5,o.wheelY=(o.deltaY||0)*5;break}s(o)}):b.addListener(i,"DOMMouseScroll",function(o){o.axis&&o.axis==o.HORIZONTAL_AXIS?(o.wheelX=(o.detail||0)*5,o.wheelY=0):(o.wheelX=0,o.wheelY=(o.detail||0)*5),s(o)})},b.addMultiMouseDownListener=function(i,s,o,u){var f=0,E,F,c,m={2:"dblclick",3:"tripleclick",4:"quadclick"};function a(p){if(b.getButton(p)!==0?f=0:p.detail>1?(f++,f>4&&(f=1)):f=1,A.isIE){var C=Math.abs(p.clientX-E)>5||Math.abs(p.clientY-F)>5;(!c||C)&&(f=1),c&&clearTimeout(c),c=setTimeout(function(){c=null},s[f-1]||600),f==1&&(E=p.clientX,F=p.clientY)}if(p._clicks=f,o[u]("mousedown",p),f>4)f=0;else if(f>1)return o[u](m[f],p)}function d(p){f=2,c&&clearTimeout(c),c=setTimeout(function(){c=null},s[f-1]||600),o[u]("mousedown",p),o[u](m[f],p)}Array.isArray(i)||(i=[i]),i.forEach(function(p){b.addListener(p,"mousedown",a),A.isOldIE&&b.addListener(p,"dblclick",d)})};var r=A.isMac&&A.isOpera&&!("KeyboardEvent"in window)?function(i){return 0|(i.metaKey?1:0)|(i.altKey?2:0)|(i.shiftKey?4:0)|(i.ctrlKey?8:0)}:function(i){return 0|(i.ctrlKey?1:0)|(i.altKey?2:0)|(i.shiftKey?4:0)|(i.metaKey?8:0)};b.getModifierString=function(i){return B.KEY_MODS[r(i)]};function t(i,s,o){var u=r(s);if(!A.isMac&&g){if(s.getModifierState&&(s.getModifierState("OS")||s.getModifierState("Win"))&&(u|=8),g.altGr)if((3&u)!=3)g.altGr=0;else return;if(o===18||o===17){var f="location"in s?s.location:s.keyLocation;if(o===17&&f===1)g[o]==1&&(l=s.timeStamp);else if(o===18&&u===3&&f===2){var E=s.timeStamp-l;E<50&&(g.altGr=!0)}}}if(o in B.MODIFIER_KEYS&&(o=-1),u&8&&o>=91&&o<=93&&(o=-1),!u&&o===13){var f="location"in s?s.location:s.keyLocation;if(f===3&&(i(s,u,-o),s.defaultPrevented))return}if(A.isChromeOS&&u&8){if(i(s,u,o),s.defaultPrevented)return;u&=-9}return!u&&!(o in B.FUNCTION_KEYS)&&!(o in B.PRINTABLE_KEYS)?!1:i(s,u,o)}b.addCommandKeyListener=function(i,s){var o=b.addListener;if(A.isOldGecko||A.isOpera&&!("KeyboardEvent"in window)){var u=null;o(i,"keydown",function(E){u=E.keyCode}),o(i,"keypress",function(E){return t(s,E,u)})}else{var f=null;o(i,"keydown",function(E){g[E.keyCode]=(g[E.keyCode]||0)+1;var F=t(s,E,E.keyCode);return f=E.defaultPrevented,F}),o(i,"keypress",function(E){f&&(E.ctrlKey||E.altKey||E.shiftKey||E.metaKey)&&(b.stopEvent(E),f=null)}),o(i,"keyup",function(E){g[E.keyCode]=null}),g||(e(),o(window,"focus",e))}};function e(){g=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!A.isOldIE){var n=1;b.nextTick=function(i,s){s=s||window;var o="zero-timeout-message-"+n;b.addListener(s,"message",function u(f){f.data==o&&(b.stopPropagation(f),b.removeListener(s,"message",u),i())}),s.postMessage(o,"*")}}b.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),b.nextFrame?b.nextFrame=b.nextFrame.bind(window):b.nextFrame=function(i){setTimeout(i,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function($,b,K){"use strict";b.last=function(g){return g[g.length-1]},b.stringReverse=function(g){return g.split("").reverse().join("")},b.stringRepeat=function(g,l){for(var r="";l>0;)l&1&&(r+=g),(l>>=1)&&(g+=g);return r};var B=/^\s\s*/,A=/\s\s*$/;b.stringTrimLeft=function(g){return g.replace(B,"")},b.stringTrimRight=function(g){return g.replace(A,"")},b.copyObject=function(g){var l={};for(var r in g)l[r]=g[r];return l},b.copyArray=function(g){for(var l=[],r=0,t=g.length;rE.length?H=H.substr(9):H.substr(0,4)==E.substr(0,4)?H=H.substr(4,H.length-E.length+1):H.charAt(H.length-1)==E.charAt(0)&&(H=H.slice(0,-1)),H==E.charAt(0)||H.charAt(H.length-1)==E.charAt(0)&&(H=H.slice(0,-1)),H&&o.onTextInput(H)),F&&(F=!1),_&&(_=!1))},z=function(H){if(!a){var G=f.value;O(G),y()}},V=function(H,G,X){var ee=H.clipboardData||window.clipboardData;if(!(!ee||e)){var te=n||X?"Text":"text/plain";try{return G?ee.setData(te,G)!==!1:ee.getData(te)}catch(q){if(!X)return V(q,G,!0)}}},M=function(H,G){var X=o.getCopyText();if(!X)return B.preventDefault(H);V(H,X)?(A.isIOS&&(c=G,f.value=`
aa`+X+`a a
`,f.setSelectionRange(4,4+X.length),F={value:X}),G?o.onCut():o.onCopy(),A.isIOS||B.preventDefault(H)):(F=!0,f.value=X,f.select(),setTimeout(function(){F=!1,y(),w(),G?o.onCut():o.onCopy()}))},U=function(H){M(H,!0)},T=function(H){M(H,!1)},x=function(H){var G=V(H);typeof G=="string"?(G&&o.onPaste(G,H),A.isIE&&setTimeout(w),B.preventDefault(H)):(f.value="",m=!0)};B.addCommandKeyListener(f,o.onCommandKey.bind(o)),B.addListener(f,"select",S),B.addListener(f,"input",z),B.addListener(f,"cut",U),B.addListener(f,"copy",T),B.addListener(f,"paste",x);var k=function(H){a||!o.onCompositionStart||o.$readOnly||(a={},a.canUndo=o.session.$undoManager,o.onCompositionStart(),setTimeout(P,0),o.on("mousedown",I),a.canUndo&&!o.selection.isEmpty()&&(o.insert(""),o.session.markUndoGroup(),o.selection.clearSelection()),o.session.markUndoGroup())},P=function(){if(!(!a||!o.onCompositionUpdate||o.$readOnly)){var H=f.value.replace(/\x01/g,"");if(a.lastValue!==H&&(o.onCompositionUpdate(H),a.lastValue&&o.undo(),a.canUndo&&(a.lastValue=H),a.lastValue)){var G=o.selection.getRange();o.insert(a.lastValue),o.session.markUndoGroup(),a.range=o.selection.getRange(),o.selection.setRange(G),o.selection.clearSelection()}}},I=function(H){if(!(!o.onCompositionEnd||o.$readOnly)){var G=a;a=!1;var X=setTimeout(function(){X=null;var te=f.value.replace(/\x01/g,"");a||(te==G.lastValue?y():!G.lastValue&&te&&(y(),O(te)))});L=function(q){return X&&clearTimeout(X),q=q.replace(/\x01/g,""),q==G.lastValue?"":(G.lastValue&&X&&o.undo(),q)},o.onCompositionEnd(),o.removeListener("mousedown",I),H.type=="compositionend"&&G.range&&o.selection.setRange(G.range);var ee=!!A.isChrome&&A.isChrome>=53||!!A.isWebKit&&A.isWebKit>=603;ee&&z()}},N=l.delayedCall(P,50);B.addListener(f,"compositionstart",k),A.isGecko?B.addListener(f,"text",function(){N.schedule()}):(B.addListener(f,"keyup",function(){N.schedule()}),B.addListener(f,"keydown",function(){N.schedule()})),B.addListener(f,"compositionend",I),this.getElement=function(){return f},this.setReadOnly=function(H){f.readOnly=H},this.onContextMenu=function(H){_=!0,w(o.selection.isEmpty()),o._emit("nativecontextmenu",{target:o,domEvent:H}),this.moveToMouse(H,!0)},this.moveToMouse=function(H,G){d||(d=f.style.cssText),f.style.cssText=(G?"z-index:100000;":"")+"height:"+f.style.height+";"+(A.isIE?"opacity:0.1;":"");var X=o.container.getBoundingClientRect(),ee=g.computedStyle(o.container),te=X.top+(parseInt(ee.borderTopWidth)||0),q=X.left+(parseInt(X.borderLeftWidth)||0),Z=X.bottom-te-f.clientHeight-2,ie=function(ne){f.style.left=ne.clientX-q-2+"px",f.style.top=Math.min(ne.clientY-te-2,Z)+"px"};ie(H),H.type=="mousedown"&&(o.renderer.$keepTextAreaAtCursor&&(o.renderer.$keepTextAreaAtCursor=null),clearTimeout(R),A.isWin&&B.capture(o.container,ie,W))},this.onContextMenuClose=W;var R;function W(){clearTimeout(R),R=setTimeout(function(){d&&(f.style.cssText=d,d=""),o.renderer.$keepTextAreaAtCursor==null&&(o.renderer.$keepTextAreaAtCursor=!0,o.renderer.$moveTextAreaToCursor())},0)}var Y=function(H){o.textInput.onContextMenu(H),W()};if(B.addListener(f,"mouseup",Y),B.addListener(f,"mousedown",function(H){H.preventDefault(),W()}),B.addListener(o.renderer.scroller,"contextmenu",Y),B.addListener(f,"contextmenu",Y),A.isIOS){var j=null,Q=!1;s.addEventListener("keydown",function(H){j&&clearTimeout(j),Q=!0}),s.addEventListener("keyup",function(H){j=setTimeout(function(){Q=!1},100)});var J=function(H){if(document.activeElement===f&&!Q){if(c)return setTimeout(function(){c=!1},100);var G=f.selectionStart,X=f.selectionEnd;if(f.setSelectionRange(4,5),G==X)switch(G){case 0:o.onCommandKey(null,0,r.up);break;case 1:o.onCommandKey(null,0,r.home);break;case 2:o.onCommandKey(null,t.option,r.left);break;case 4:o.onCommandKey(null,0,r.left);break;case 5:o.onCommandKey(null,0,r.right);break;case 7:o.onCommandKey(null,t.option,r.right);break;case 8:o.onCommandKey(null,0,r.end);break;case 9:o.onCommandKey(null,0,r.down);break}else{switch(X){case 6:o.onCommandKey(null,t.shift,r.right);break;case 7:o.onCommandKey(null,t.shift|t.option,r.right);break;case 8:o.onCommandKey(null,t.shift,r.end);break;case 9:o.onCommandKey(null,t.shift,r.down);break}switch(G){case 0:o.onCommandKey(null,t.shift,r.up);break;case 1:o.onCommandKey(null,t.shift,r.home);break;case 2:o.onCommandKey(null,t.shift|t.option,r.left);break;case 3:o.onCommandKey(null,t.shift,r.left);break}}}};document.addEventListener("selectionchange",J),o.on("destroy",function(){document.removeEventListener("selectionchange",J)})}};b.TextInput=i}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function($,b,K){"use strict";var B=$("../lib/event"),A=$("../lib/useragent"),g=$("../lib/dom"),l=$("../lib/lang"),r=A.isChrome<18,t=A.isIE,e=$("./textinput_ios").TextInput,n=function(i,s){if(A.isIOS)return e.call(this,i,s);var o=g.createElement("textarea");o.className="ace_text-input",o.setAttribute("wrap","off"),o.setAttribute("autocorrect","off"),o.setAttribute("autocapitalize","off"),o.setAttribute("spellcheck",!1),o.style.opacity="0",i.insertBefore(o,i.firstChild);var u="\u2028\u2028",f=!1,E=!1,F=!1,c="",m=!0;try{var a=document.activeElement===o}catch{}B.addListener(o,"blur",function(R){s.onBlur(R),a=!1}),B.addListener(o,"focus",function(R){a=!0,s.onFocus(R),C()}),this.focus=function(){if(c)return o.focus();var R=o.style.top;o.style.position="fixed",o.style.top="0px",o.focus(),setTimeout(function(){o.style.position="",o.style.top=="0px"&&(o.style.top=R)},0)},this.blur=function(){o.blur()},this.isFocused=function(){return a};var d=l.delayedCall(function(){a&&C(m)}),p=l.delayedCall(function(){F||(o.value=u,a&&C())});function C(R){if(!F){if(F=!0,y)var W=0,Y=R?0:o.value.length-1;else var W=R?2:1,Y=2;try{o.setSelectionRange(W,Y)}catch{}F=!1}}function h(){F||(o.value=u,A.isWebKit&&p.schedule())}A.isWebKit||s.addEventListener("changeSelection",function(){s.selection.isEmpty()!=m&&(m=!m,d.schedule())}),h(),a&&s.onFocus();var v=function(R){return R.selectionStart===0&&R.selectionEnd===R.value.length},w=function(R){f?f=!1:v(o)?(s.selectAll(),C()):y&&C(s.selection.isEmpty())},y=null;this.setInputHandler=function(R){y=R},this.getInputHandler=function(){return y};var D=!1,S=function(R){y&&(R=y(R),y=null),E?(C(),R&&s.onPaste(R),E=!1):R==u.charAt(0)?D?s.execCommand("del",{source:"ace"}):s.execCommand("backspace",{source:"ace"}):(R.substring(0,2)==u?R=R.substr(2):R.charAt(0)==u.charAt(0)?R=R.substr(1):R.charAt(R.length-1)==u.charAt(0)&&(R=R.slice(0,-1)),R.charAt(R.length-1)==u.charAt(0)&&(R=R.slice(0,-1)),R&&s.onTextInput(R)),D&&(D=!1)},L=function(R){if(!F){var W=o.value;S(W),h()}},_=function(R,W,Y){var j=R.clipboardData||window.clipboardData;if(!(!j||r)){var Q=t||Y?"Text":"text/plain";try{return W?j.setData(Q,W)!==!1:j.getData(Q)}catch(J){if(!Y)return _(J,W,!0)}}},O=function(R,W){var Y=s.getCopyText();if(!Y)return B.preventDefault(R);_(R,Y)?(W?s.onCut():s.onCopy(),B.preventDefault(R)):(f=!0,o.value=Y,o.select(),setTimeout(function(){f=!1,h(),C(),W?s.onCut():s.onCopy()}))},z=function(R){O(R,!0)},V=function(R){O(R,!1)},M=function(R){var W=_(R);typeof W=="string"?(W&&s.onPaste(W,R),A.isIE&&setTimeout(C),B.preventDefault(R)):(o.value="",E=!0)};B.addCommandKeyListener(o,s.onCommandKey.bind(s)),B.addListener(o,"select",w),B.addListener(o,"input",L),B.addListener(o,"cut",z),B.addListener(o,"copy",V),B.addListener(o,"paste",M),(!("oncut"in o)||!("oncopy"in o)||!("onpaste"in o))&&B.addListener(i,"keydown",function(R){if(!(A.isMac&&!R.metaKey||!R.ctrlKey))switch(R.keyCode){case 67:V(R);break;case 86:M(R);break;case 88:z(R);break}});var U=function(R){F||!s.onCompositionStart||s.$readOnly||(F={},F.canUndo=s.session.$undoManager,s.onCompositionStart(),setTimeout(T,0),s.on("mousedown",x),F.canUndo&&!s.selection.isEmpty()&&(s.insert(""),s.session.markUndoGroup(),s.selection.clearSelection()),s.session.markUndoGroup())},T=function(){if(!(!F||!s.onCompositionUpdate||s.$readOnly)){var R=o.value.replace(/\u2028/g,"");if(F.lastValue!==R&&(s.onCompositionUpdate(R),F.lastValue&&s.undo(),F.canUndo&&(F.lastValue=R),F.lastValue)){var W=s.selection.getRange();s.insert(F.lastValue),s.session.markUndoGroup(),F.range=s.selection.getRange(),s.selection.setRange(W),s.selection.clearSelection()}}},x=function(R){if(!(!s.onCompositionEnd||s.$readOnly)){var W=F;F=!1;var Y=setTimeout(function(){Y=null;var Q=o.value.replace(/\u2028/g,"");F||(Q==W.lastValue?h():!W.lastValue&&Q&&(h(),S(Q)))});y=function(J){return Y&&clearTimeout(Y),J=J.replace(/\u2028/g,""),J==W.lastValue?"":(W.lastValue&&Y&&s.undo(),J)},s.onCompositionEnd(),s.removeListener("mousedown",x),R.type=="compositionend"&&W.range&&s.selection.setRange(W.range);var j=!!A.isChrome&&A.isChrome>=53||!!A.isWebKit&&A.isWebKit>=603;j&&L()}},k=l.delayedCall(T,50);B.addListener(o,"compositionstart",U),A.isGecko?B.addListener(o,"text",function(){k.schedule()}):(B.addListener(o,"keyup",function(){k.schedule()}),B.addListener(o,"keydown",function(){k.schedule()})),B.addListener(o,"compositionend",x),this.getElement=function(){return o},this.setReadOnly=function(R){o.readOnly=R},this.onContextMenu=function(R){D=!0,C(s.selection.isEmpty()),s._emit("nativecontextmenu",{target:s,domEvent:R}),this.moveToMouse(R,!0)},this.moveToMouse=function(R,W){c||(c=o.style.cssText),o.style.cssText=(W?"z-index:100000;":"")+"height:"+o.style.height+";"+(A.isIE?"opacity:0.1;":"");var Y=s.container.getBoundingClientRect(),j=g.computedStyle(s.container),Q=Y.top+(parseInt(j.borderTopWidth)||0),J=Y.left+(parseInt(Y.borderLeftWidth)||0),H=Y.bottom-Q-o.clientHeight-2,G=function(X){o.style.left=X.clientX-J-2+"px",o.style.top=Math.min(X.clientY-Q-2,H)+"px"};G(R),R.type=="mousedown"&&(s.renderer.$keepTextAreaAtCursor&&(s.renderer.$keepTextAreaAtCursor=null),clearTimeout(P),A.isWin&&B.capture(s.container,G,I))},this.onContextMenuClose=I;var P;function I(){clearTimeout(P),P=setTimeout(function(){c&&(o.style.cssText=c,c=""),s.renderer.$keepTextAreaAtCursor==null&&(s.renderer.$keepTextAreaAtCursor=!0,s.renderer.$moveTextAreaToCursor())},0)}var N=function(R){s.textInput.onContextMenu(R),I()};B.addListener(o,"mouseup",N),B.addListener(o,"mousedown",function(R){R.preventDefault(),I()}),B.addListener(s.renderer.scroller,"contextmenu",N),B.addListener(o,"contextmenu",N)};b.TextInput=n}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function($,b,K){"use strict";var B=$("../lib/dom"),A=$("../lib/event"),g=$("../lib/useragent"),l=0,r=250;function t(i){i.$clickSelection=null;var s=i.editor;s.setDefaultHandler("mousedown",this.onMouseDown.bind(i)),s.setDefaultHandler("dblclick",this.onDoubleClick.bind(i)),s.setDefaultHandler("tripleclick",this.onTripleClick.bind(i)),s.setDefaultHandler("quadclick",this.onQuadClick.bind(i)),s.setDefaultHandler("mousewheel",this.onMouseWheel.bind(i)),s.setDefaultHandler("touchmove",this.onTouchMove.bind(i));var o=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];o.forEach(function(u){i[u]=this[u]},this),i.selectByLines=this.extendSelectionBy.bind(i,"getLineRange"),i.selectByWords=this.extendSelectionBy.bind(i,"getWordRange")}(function(){this.onMouseDown=function(i){var s=i.inSelection(),o=i.getDocumentPosition();this.mousedownEvent=i;var u=this.editor,f=i.getButton();if(f!==0){var E=u.getSelectionRange(),F=E.isEmpty();u.$blockScrolling++,(F||f==1)&&u.selection.moveToPosition(o),u.$blockScrolling--,f==2&&(u.textInput.onContextMenu(i.domEvent),g.isMozilla||i.preventDefault());return}if(this.mousedownEvent.time=Date.now(),s&&!u.isFocused()&&(u.focus(),this.$focusTimout&&!this.$clickSelection&&!u.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(i);return}return this.captureMouse(i),this.startSelect(o,i.domEvent._clicks>1),i.preventDefault()},this.startSelect=function(i,s){i=i||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var o=this.editor;o.$blockScrolling++,this.mousedownEvent.getShiftKey()?o.selection.selectToPosition(i):s||o.selection.moveToPosition(i),s||this.select(),o.renderer.scroller.setCapture&&o.renderer.scroller.setCapture(),o.setStyle("ace_selecting"),this.setState("select"),o.$blockScrolling--},this.select=function(){var i,s=this.editor,o=s.renderer.screenToTextCoordinates(this.x,this.y);if(s.$blockScrolling++,this.$clickSelection){var u=this.$clickSelection.comparePoint(o);if(u==-1)i=this.$clickSelection.end;else if(u==1)i=this.$clickSelection.start;else{var f=n(this.$clickSelection,o);o=f.cursor,i=f.anchor}s.selection.setSelectionAnchor(i.row,i.column)}s.selection.selectToPosition(o),s.$blockScrolling--,s.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(i){var s,o=this.editor,u=o.renderer.screenToTextCoordinates(this.x,this.y),f=o.selection[i](u.row,u.column);if(o.$blockScrolling++,this.$clickSelection){var E=this.$clickSelection.comparePoint(f.start),F=this.$clickSelection.comparePoint(f.end);if(E==-1&&F<=0)s=this.$clickSelection.end,(f.end.row!=u.row||f.end.column!=u.column)&&(u=f.start);else if(F==1&&E>=0)s=this.$clickSelection.start,(f.start.row!=u.row||f.start.column!=u.column)&&(u=f.end);else if(E==-1&&F==1)u=f.end,s=f.start;else{var c=n(this.$clickSelection,u);u=c.cursor,s=c.anchor}o.selection.setSelectionAnchor(s.row,s.column)}o.selection.selectToPosition(u),o.$blockScrolling--,o.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var i=e(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),s=Date.now();(i>l||s-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(i){var s=i.getDocumentPosition(),o=this.editor,u=o.session,f=u.getBracketRange(s);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=o.selection.getWordRange(s.row,s.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},this.onTripleClick=function(i){var s=i.getDocumentPosition(),o=this.editor;this.setState("selectByLines");var u=o.getSelectionRange();u.isMultiLine()&&u.contains(s.row,s.column)?(this.$clickSelection=o.selection.getLineRange(u.start.row),this.$clickSelection.end=o.selection.getLineRange(u.end.row).end):this.$clickSelection=o.selection.getLineRange(s.row),this.select()},this.onQuadClick=function(i){var s=this.editor;s.selectAll(),this.$clickSelection=s.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(i){if(!i.getAccelKey()){i.getShiftKey()&&i.wheelY&&!i.wheelX&&(i.wheelX=i.wheelY,i.wheelY=0);var s=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var o=this.$lastScroll,u=i.domEvent.timeStamp,f=u-o.t,E=i.wheelX/f,F=i.wheelY/f;f=1&&s.renderer.isScrollableBy(i.wheelX*i.speed,0)&&(m=!0),c<=1&&s.renderer.isScrollableBy(0,i.wheelY*i.speed)&&(m=!0),m)o.allowed=u;else if(u-o.allowedn.session.documentToScreenRow(C.row,C.column))return F()}if(f!=a)if(f=a.text.join("
"),s.setHtml(f),s.show(),n._signal("showGutterTooltip",s),n.on("mousewheel",F),e.$tooltipFollowsMouse)c(u);else{var h=u.domEvent.target,v=h.getBoundingClientRect(),w=s.getElement().style;w.left=v.right+"px",w.top=v.bottom+"px"}}function F(){o&&(o=clearTimeout(o)),f&&(s.hide(),f=null,n._signal("hideGutterTooltip",s),n.removeEventListener("mousewheel",F))}function c(m){s.setPosition(m.x,m.y)}e.editor.setDefaultHandler("guttermousemove",function(m){var a=m.domEvent.target||m.domEvent.srcElement;if(B.hasCssClass(a,"ace_fold-widget"))return F();f&&e.$tooltipFollowsMouse&&c(m),u=m,!o&&(o=setTimeout(function(){o=null,u&&!e.isMousePressed?E():F()},50))}),g.addListener(n.renderer.$gutter,"mouseout",function(m){u=null,!(!f||o)&&(o=setTimeout(function(){o=null,F()},50))}),n.on("changeSession",F)}function t(e){l.call(this,e)}A.inherits(t,l),function(){this.setPosition=function(e,n){var i=window.innerWidth||document.documentElement.clientWidth,s=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),u=this.getHeight();e+=15,n+=15,e+o>i&&(e-=e+o-i),n+u>s&&(n-=20+u),l.prototype.setPosition.call(this,e,n)}}.call(t.prototype),b.GutterHandler=r}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function($,b,K){"use strict";var B=$("../lib/event"),A=$("../lib/useragent"),g=b.MouseEvent=function(l,r){this.domEvent=l,this.editor=r,this.x=this.clientX=l.clientX,this.y=this.clientY=l.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){B.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){B.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var l=this.editor,r=l.getSelectionRange();if(r.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=r.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return B.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=A.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(g.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function($,b,K){"use strict";var B=$("../lib/dom"),A=$("../lib/event"),g=$("../lib/useragent"),l=200,r=200,t=5;function e(i){var s=i.editor,o=B.createElement("img");o.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",g.isOpera&&(o.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var u=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];u.forEach(function(T){i[T]=this[T]},this),s.addEventListener("mousedown",this.onMouseDown.bind(i));var f=s.container,E,F,c,m,a,d,p=0,C,h,v,w,y;this.onDragStart=function(T){if(this.cancelDrag||!f.draggable){var x=this;return setTimeout(function(){x.startSelect(),x.captureMouse(T)},0),T.preventDefault()}a=s.getSelectionRange();var k=T.dataTransfer;k.effectAllowed=s.getReadOnly()?"copy":"copyMove",g.isOpera&&(s.container.appendChild(o),o.scrollTop=0),k.setDragImage&&k.setDragImage(o,0,0),g.isOpera&&s.container.removeChild(o),k.clearData(),k.setData("Text",s.session.getTextRange()),h=!0,this.setState("drag")},this.onDragEnd=function(T){if(f.draggable=!1,h=!1,this.setState(null),!s.getReadOnly()){var x=T.dataTransfer.dropEffect;!C&&x=="move"&&s.session.remove(s.getSelectionRange()),s.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(T){if(!(s.getReadOnly()||!M(T.dataTransfer)))return F=T.clientX,c=T.clientY,E||_(),p++,T.dataTransfer.dropEffect=C=U(T),A.preventDefault(T)},this.onDragOver=function(T){if(!(s.getReadOnly()||!M(T.dataTransfer)))return F=T.clientX,c=T.clientY,E||(_(),p++),z!==null&&(z=null),T.dataTransfer.dropEffect=C=U(T),A.preventDefault(T)},this.onDragLeave=function(T){if(p--,p<=0&&E)return O(),C=null,A.preventDefault(T)},this.onDrop=function(T){if(d){var x=T.dataTransfer;if(h)switch(C){case"move":a.contains(d.row,d.column)?a={start:d,end:d}:a=s.moveText(a,d);break;case"copy":a=s.moveText(a,d,!0);break}else{var k=x.getData("Text");a={start:d,end:s.session.insert(d,k)},s.focus(),C=null}return O(),A.preventDefault(T)}},A.addListener(f,"dragstart",this.onDragStart.bind(i)),A.addListener(f,"dragend",this.onDragEnd.bind(i)),A.addListener(f,"dragenter",this.onDragEnter.bind(i)),A.addListener(f,"dragover",this.onDragOver.bind(i)),A.addListener(f,"dragleave",this.onDragLeave.bind(i)),A.addListener(f,"drop",this.onDrop.bind(i));function D(T,x){var k=Date.now(),P=!x||T.row!=x.row,I=!x||T.column!=x.column;if(!w||P||I)s.$blockScrolling+=1,s.moveCursorToPosition(T),s.$blockScrolling-=1,w=k,y={x:F,y:c};else{var N=n(y.x,y.y,F,c);N>t?w=null:k-w>=r&&(s.renderer.scrollCursorIntoView(),w=null)}}function S(T,x){var k=Date.now(),P=s.renderer.layerConfig.lineHeight,I=s.renderer.layerConfig.characterWidth,N=s.renderer.scroller.getBoundingClientRect(),R={x:{left:F-N.left,right:N.right-F},y:{top:c-N.top,bottom:N.bottom-c}},W=Math.min(R.x.left,R.x.right),Y=Math.min(R.y.top,R.y.bottom),j={row:T.row,column:T.column};W/I<=2&&(j.column+=R.x.left=l&&s.renderer.scrollCursorIntoView(j):v=k:v=null}function L(){var T=d;d=s.renderer.screenToTextCoordinates(F,c),D(d,T),S(d,T)}function _(){a=s.selection.toOrientedRange(),E=s.session.addMarker(a,"ace_selection",s.getSelectionStyle()),s.clearSelection(),s.isFocused()&&s.renderer.$cursorLayer.setBlinking(!1),clearInterval(m),L(),m=setInterval(L,20),p=0,A.addListener(document,"mousemove",V)}function O(){clearInterval(m),s.session.removeMarker(E),E=null,s.$blockScrolling+=1,s.selection.fromOrientedRange(a),s.$blockScrolling-=1,s.isFocused()&&!h&&s.renderer.$cursorLayer.setBlinking(!s.getReadOnly()),a=null,d=null,p=0,v=null,w=null,A.removeListener(document,"mousemove",V)}var z=null;function V(){z==null&&(z=setTimeout(function(){z!=null&&E&&O()},20))}function M(T){var x=T.types;return!x||Array.prototype.some.call(x,function(k){return k=="text/plain"||k=="Text"})}function U(T){var x=["copy","copymove","all","uninitialized"],k=["move","copymove","linkmove","all","uninitialized"],P=g.isMac?T.altKey:T.ctrlKey,I="uninitialized";try{I=T.dataTransfer.effectAllowed.toLowerCase()}catch{}var N="none";return P&&x.indexOf(I)>=0?N="copy":k.indexOf(I)>=0?N="move":x.indexOf(I)>=0&&(N="copy"),N}}(function(){this.dragWait=function(){var i=Date.now()-this.mousedownEvent.time;i>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var i=this.editor.container;i.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(i){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var i=this.editor,s=i.container;s.draggable=!0,i.renderer.$cursorLayer.setBlinking(!1),i.setStyle("ace_dragging");var o=g.isWin?"default":"move";i.renderer.setCursorStyle(o),this.setState("dragReady")},this.onMouseDrag=function(i){var s=this.editor.container;if(g.isIE&&this.state=="dragReady"){var o=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>3&&s.dragDrop()}if(this.state==="dragWait"){var o=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>0&&(s.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(i){if(this.$dragEnabled){this.mousedownEvent=i;var s=this.editor,o=i.inSelection(),u=i.getButton(),f=i.domEvent.detail||1;if(f===1&&u===0&&o){if(i.editor.inMultiSelectMode&&(i.getAccelKey()||i.getShiftKey()))return;this.mousedownEvent.time=Date.now();var E=i.domEvent.target||i.domEvent.srcElement;if("unselectable"in E&&(E.unselectable="on"),s.getDragDelay()){if(g.isWebKit){this.cancelDrag=!0;var F=s.container;F.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(i,this.onMouseDrag.bind(this)),i.defaultPrevented=!0}}}}).call(e.prototype);function n(i,s,o,u){return Math.sqrt(Math.pow(o-i,2)+Math.pow(u-s,2))}b.DragdropHandler=e}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function($,b,K){"use strict";var B=$("./dom");b.get=function(A,g){var l=new XMLHttpRequest;l.open("GET",A,!0),l.onreadystatechange=function(){l.readyState===4&&g(l.responseText)},l.send(null)},b.loadScript=function(A,g){var l=B.getDocumentHead(),r=document.createElement("script");r.src=A,l.appendChild(r),r.onload=r.onreadystatechange=function(t,e){(e||!r.readyState||r.readyState=="loaded"||r.readyState=="complete")&&(r=r.onload=r.onreadystatechange=null,e||g())}},b.qualifyURL=function(A){var g=document.createElement("a");return g.href=A,g.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function($,b,K){"use strict";var B={},A=function(){this.propagationStopped=!0},g=function(){this.defaultPrevented=!0};B._emit=B._dispatchEvent=function(l,r){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var t=this._eventRegistry[l]||[],e=this._defaultHandlers[l];if(!(!t.length&&!e)){(typeof r!="object"||!r)&&(r={}),r.type||(r.type=l),r.stopPropagation||(r.stopPropagation=A),r.preventDefault||(r.preventDefault=g),t=t.slice();for(var n=0;n1&&(f=o[o.length-2]);var F=t[s+"Path"];return F==null?F=t.basePath:u=="/"&&(s=u=""),F&&F.slice(-1)!="/"&&(F+="/"),F+s+u+f+this.get("suffix")},b.setModuleUrl=function(i,s){return t.$moduleUrls[i]=s},b.$loading={},b.loadModule=function(i,s){var o,u;Array.isArray(i)&&(u=i[0],i=i[1]);try{o=$(i)}catch{}if(o&&!b.$loading[i])return s&&s(o);if(b.$loading[i]||(b.$loading[i]=[]),b.$loading[i].push(s),!(b.$loading[i].length>1)){var f=function(){$([i],function(E){b._emit("load.module",{name:i,module:E});var F=b.$loading[i];b.$loading[i]=null,F.forEach(function(c){c&&c(E)})})};if(!b.get("packaged"))return f();g.loadScript(b.moduleUrl(i,u),f)}},e(!0);function e(i){if(!(!r||!r.document)){t.packaged=i||$.packaged||K.packaged||r.define&&se.amdD.packaged;for(var s={},o="",u=document.currentScript||document._currentScript,f=u&&u.ownerDocument||document,E=f.getElementsByTagName("script"),F=0;F0)if(ee==16){for(Z=q;Z-1){for(Z=q;Z=0&&j[re]==v;re--)W[re]=g}}}function k(R,W,Y){if(!(l=R){for(J=Q+1;J=R;)J++;for(H=Q,G=J-1;H=W.length||(J=Y[j-1])!=m&&J!=a||(H=W[j+1])!=m&&H!=a?d:(r&&(H=a),H==J?H:d);case y:return J=j>0?Y[j-1]:p,J==m&&j+10&&Y[j-1]==m)return m;if(r)return d;for(X=j+1,G=W.length;X=1425&&ee<=2303||ee==64286;if(J=W[X],te&&(J==c||J==h))return c}return j<1||(J=W[j-1])==p?d:Y[j-1];case p:return r=!1,e=!0,g;case C:return n=!0,d;case L:case _:case z:case V:case O:r=!1;case M:return d}}function I(R){var W=R.charCodeAt(0),Y=W>>8;return Y==0?W>191?F:U[W]:Y==5?/[\u0591-\u05f4]/.test(R)?c:F:Y==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(R)?S:/[\u0660-\u0669\u066b-\u066c]/.test(R)?a:W==1642?D:/[\u06f0-\u06f9]/.test(R)?m:h:Y==32&&W<=8287?T[W&255]:Y==254&&W>=65136?h:d}function N(R){return R>="\u064B"&&R<="\u0655"}b.L=F,b.R=c,b.EN=m,b.ON_R=3,b.AN=4,b.R_H=5,b.B=6,b.DOT="\xB7",b.doBidiReorder=function(R,W,Y){if(R.length<2)return{};var j=R.split(""),Q=new Array(j.length),J=new Array(j.length),H=[];g=Y?E:f,x(j,H,j.length,W);for(var G=0;Gh&&W[G]0&&j[G-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(j[G])&&(H[G-1]=H[G]=b.R_H,G++);j[j.length-1]===b.DOT&&(H[j.length-1]=b.B);for(var G=0;G=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=e0?t-1:0,this.bidiMap),n=this.bidiMap.bidiLevels,i=0;t===0&&n[e]%2!==0&&e++;for(var s=0;s=f&&ai+u/2;){if(i+=u,s===o.length-1){u=0;break}u=this.charWidths[o[++s]]}return s>0&&o[s-1]%2!==0&&o[s]%2===0?(n0&&o[s-1]%2===0&&o[s]%2!==0?e=1+(n>i?this.bidiMap.logicalFromVisual[s]:this.bidiMap.logicalFromVisual[s-1]):this.isRtlDir&&s===o.length-1&&u===0&&o[s-1]%2===0||!this.isRtlDir&&s===0&&o[s]%2!==0?e=1+this.bidiMap.logicalFromVisual[s]:(s>0&&o[s-1]%2!==0&&u!==0&&s--,e=this.bidiMap.logicalFromVisual[s]),e+this.wrapIndent}}).call(r.prototype),b.BidiHandler=r}),ace.define("ace/range",["require","exports","module"],function($,b,K){"use strict";var B=function(g,l){return g.row-l.row||g.column-l.column},A=function(g,l,r,t){this.start={row:g,column:l},this.end={row:r,column:t}};(function(){this.isEqual=function(g){return this.start.row===g.start.row&&this.end.row===g.end.row&&this.start.column===g.start.column&&this.end.column===g.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(g,l){return this.compare(g,l)==0},this.compareRange=function(g){var l,r=g.end,t=g.start;return l=this.compare(r.row,r.column),l==1?(l=this.compare(t.row,t.column),l==1?2:l==0?1:0):l==-1?-2:(l=this.compare(t.row,t.column),l==-1?-1:l==1?42:0)},this.comparePoint=function(g){return this.compare(g.row,g.column)},this.containsRange=function(g){return this.comparePoint(g.start)==0&&this.comparePoint(g.end)==0},this.intersects=function(g){var l=this.compareRange(g);return l==-1||l==0||l==1},this.isEnd=function(g,l){return this.end.row==g&&this.end.column==l},this.isStart=function(g,l){return this.start.row==g&&this.start.column==l},this.setStart=function(g,l){typeof g=="object"?(this.start.column=g.column,this.start.row=g.row):(this.start.row=g,this.start.column=l)},this.setEnd=function(g,l){typeof g=="object"?(this.end.column=g.column,this.end.row=g.row):(this.end.row=g,this.end.column=l)},this.inside=function(g,l){return this.compare(g,l)==0?!(this.isEnd(g,l)||this.isStart(g,l)):!1},this.insideStart=function(g,l){return this.compare(g,l)==0?!this.isEnd(g,l):!1},this.insideEnd=function(g,l){return this.compare(g,l)==0?!this.isStart(g,l):!1},this.compare=function(g,l){return!this.isMultiLine()&&g===this.start.row?lthis.end.column?1:0:gthis.end.row?1:this.start.row===g?l>=this.start.column?0:-1:this.end.row===g?l<=this.end.column?0:1:0},this.compareStart=function(g,l){return this.start.row==g&&this.start.column==l?-1:this.compare(g,l)},this.compareEnd=function(g,l){return this.end.row==g&&this.end.column==l?1:this.compare(g,l)},this.compareInside=function(g,l){return this.end.row==g&&this.end.column==l?1:this.start.row==g&&this.start.column==l?-1:this.compare(g,l)},this.clipRows=function(g,l){if(this.end.row>l)var r={row:l+1,column:0};else if(this.end.rowl)var t={row:l+1,column:0};else if(this.start.rowe.row||t.row==e.row&&t.column>e.column},this.getRange=function(){var t=this.anchor,e=this.lead;return this.isEmpty()?l.fromPoints(e,e):this.isBackwards()?l.fromPoints(e,t):l.fromPoints(t,e)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var t=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(t,this.doc.getLine(t).length)},this.setRange=this.setSelectionRange=function(t,e){e?(this.setSelectionAnchor(t.end.row,t.end.column),this.selectTo(t.start.row,t.start.column)):(this.setSelectionAnchor(t.start.row,t.start.column),this.selectTo(t.end.row,t.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(t){var e=this.lead;this.$isEmpty&&this.setSelectionAnchor(e.row,e.column),t.call(this)},this.selectTo=function(t,e){this.$moveSelection(function(){this.moveCursorTo(t,e)})},this.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},this.moveTo=function(t,e){this.clearSelection(),this.moveCursorTo(t,e)},this.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(t,e){if(typeof e>"u"){var n=t||this.lead;t=n.row,e=n.column}return this.session.getWordRange(t,e)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var t=this.getCursor(),e=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(e)},this.getLineRange=function(t,e){var n=typeof t=="number"?t:this.lead.row,i,s=this.session.getFoldLine(n);return s?(n=s.start.row,i=s.end.row):i=n,e===!0?new l(n,0,i,this.session.getLine(i).length):new l(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(t,e,n){var i=t.column,s=t.column+e;return n<0&&(i=t.column-e,s=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(i,s).split(" ").length-1==e},this.moveCursorLeft=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(e.column=i)}}this.moveCursorTo(e.row,e.column)},this.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,e=this.doc.getLine(t).length;this.moveCursorTo(t,e)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var t=this.lead.row,e=this.lead.column,n=this.doc.getLine(t),i=n.substring(e),s;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var o=this.session.getFoldAt(t,e,1);if(o){this.moveCursorTo(o.end.row,o.end.column);return}if((s=this.session.nonTokenRe.exec(i))&&(e+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,i=n.substring(e)),e>=n.length){this.moveCursorTo(t,n.length),this.moveCursorRight(),t0&&this.moveCursorWordLeft();return}(o=this.session.tokenRe.exec(s))&&(e-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.$shortWordEndIndex=function(t){var e,n=0,i,s=/\s/,o=this.session.tokenRe;if(o.lastIndex=0,e=this.session.tokenRe.exec(t))n=this.session.tokenRe.lastIndex;else{for(;(i=t[n])&&s.test(i);)n++;if(n<1){for(o.lastIndex=0;(i=t[n])&&!o.test(i);)if(o.lastIndex=0,n++,s.test(i))if(n>2){n--;break}else{for(;(i=t[n])&&s.test(i);)n++;if(n>2)break}}}return o.lastIndex=0,n},this.moveCursorShortWordRight=function(){var t=this.lead.row,e=this.lead.column,n=this.doc.getLine(t),i=n.substring(e),s=this.session.getFoldAt(t,e,1);if(s)return this.moveCursorTo(s.end.row,s.end.column);if(e==n.length){var o=this.doc.getLength();do t++,i=this.doc.getLine(t);while(t0&&/^\s*$/.test(i));e=i.length,/\s+$/.test(i)||(i="")}var s=A.stringReverse(i),o=this.$shortWordEndIndex(s);return this.moveCursorTo(t,e-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(t,e){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),i;e===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var s=this.session.screenToDocumentPosition(n.row+t,n.column,i);t!==0&&e===0&&s.row===this.lead.row&&s.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[s.row]&&(s.row>0||t>0)&&s.row++,this.moveCursorTo(s.row,s.column+e,e===0)},this.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},this.moveCursorTo=function(t,e,n){var i=this.session.getFoldAt(t,e,1);i&&(t=i.start.row,e=i.start.column),this.$keepDesiredColumnOnChange=!0;var s=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(s.charAt(e))&&s.charAt(e-1)&&(this.lead.row==t&&this.lead.column==e+1?e=e-1:e=e+1),this.lead.setPosition(t,e),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(t,e,n){var i=this.session.screenToDocumentPosition(t,e);this.moveCursorTo(i.row,i.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(t){var e=this.getRange();return t?(t.start.column=e.start.column,t.start.row=e.start.row,t.end.column=e.end.column,t.end.row=e.end.row):t=e,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},this.getRangeOfMovements=function(t){var e=this.getCursor();try{t(this);var n=this.getCursor();return l.fromPoints(e,n)}catch{return l.fromPoints(e,e)}finally{this.moveCursorToPosition(e)}},this.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(e){var n=e.clone();return n.isBackwards=e.cursor==e.start,n});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},this.fromJSON=function(t){if(t.start==null)if(this.rangeList){this.toSingleRange(t[0]);for(var e=t.length;e--;){var n=l.fromPoints(t[e].start,t[e].end);t[e].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},this.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var e=this.ranges.length;e--;)if(!this.ranges[e].isEqual(t[e]))return!1;return!0}}).call(r.prototype),b.Selection=r}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function($,b,K){"use strict";var B=$("./config"),A=2e3,g=function(l){this.states=l,this.regExps={},this.matchMappings={};for(var r in this.states){for(var t=this.states[r],e=[],n=0,i=this.matchMappings[r]={defaultToken:"text"},s="g",o=[],u=0;u1?f.onMatch=this.$applyToken:f.onMatch=f.token),F>1&&(/\\\d/.test(f.regex)?E=f.regex.replace(/\\([0-9]+)/g,function(c,m){return"\\"+(parseInt(m,10)+n+1)}):(F=1,E=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&o.push(f)),i[n]=u,n+=F,e.push(E),f.onMatch||(f.onMatch=null)}}e.length||(i[0]=0,e.push("$")),o.forEach(function(c){c.splitRegex=this.createSplitterRegexp(c.regex,s)},this),this.regExps[r]=new RegExp("("+e.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(l){A=l|0},this.$applyToken=function(l){var r=this.splitRegex.exec(l).slice(1),t=this.token.apply(this,r);if(typeof t=="string")return[{type:t,value:l}];for(var e=[],n=0,i=t.length;nf){var p=l.substring(f,d-a.length);F.type==c?F.value+=p:(F.type&&u.push(F),F={type:c,value:p})}for(var C=0;CA){for(E>2*l.length&&this.reportError("infinite loop with in ace tokenizer",{startState:r,line:l});f1&&t[0]!==e&&t.unshift("#tmp",e),{tokens:u,state:t.length?t:e}},this.reportError=B.reportError}).call(g.prototype),b.Tokenizer=g}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function($,b,K){"use strict";var B=$("../lib/lang"),A=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(r,t){if(!t){for(var e in r)this.$rules[e]=r[e];return}for(var e in r){for(var n=r[e],i=0;i=this.$rowTokens.length;){if(this.$row+=1,g||(g=this.$session.getLength()),this.$row>=g)return this.$row=g-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var g=this.$rowTokens,l=this.$tokenIndex,r=g[l].start;if(r!==void 0)return r;for(r=0;l>0;)l-=1,r+=g[l].value.length;return r},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var g=this.$rowTokens[this.$tokenIndex],l=this.getCurrentTokenColumn();return new B(this.$row,l,this.$row,l+g.value.length)}}).call(A.prototype),b.TokenIterator=A}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function($,b,K){"use strict";var B=$("../../lib/oop"),A=$("../behaviour").Behaviour,g=$("../../token_iterator").TokenIterator,l=$("../../lib/lang"),r=["text","paren.rparen","punctuation.operator"],t=["text","paren.rparen","punctuation.operator","comment"],e,n={},i={'"':'"',"'":"'"},s=function(f){var E=-1;if(f.multiSelect&&(E=f.selection.index,n.rangeCount!=f.multiSelect.rangeCount&&(n={rangeCount:f.multiSelect.rangeCount})),n[E])return e=n[E];e=n[E]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},o=function(f,E,F,c){var m=f.end.row-f.start.row;return{text:F+E+c,selection:[0,f.start.column+1,m,f.end.column+(m?0:1)]}},u=function(f){this.add("braces","insertion",function(E,F,c,m,a){var d=c.getCursorPosition(),p=m.doc.getLine(d.row);if(a=="{"){s(c);var C=c.getSelectionRange(),h=m.doc.getTextRange(C);if(h!==""&&h!=="{"&&c.getWrapBehavioursEnabled())return o(C,h,"{","}");if(u.isSaneInsertion(c,m))return/[\]\}\)]/.test(p[d.column])||c.inMultiSelectMode||f&&f.braces?(u.recordAutoInsert(c,m,"}"),{text:"{}",selection:[1,1]}):(u.recordMaybeInsert(c,m,"{"),{text:"{",selection:[1,1]})}else if(a=="}"){s(c);var v=p.substring(d.column,d.column+1);if(v=="}"){var w=m.$findOpeningBracket("}",{column:d.column+1,row:d.row});if(w!==null&&u.isAutoInsertedClosing(d,p,a))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(a==`
`||a==`\r
`){s(c);var y="";u.isMaybeInsertedClosing(d,p)&&(y=l.stringRepeat("}",e.maybeInsertedBrackets),u.clearMaybeInsertedClosing());var v=p.substring(d.column,d.column+1);if(v==="}"){var D=m.findMatchingBracket({row:d.row,column:d.column+1},"}");if(!D)return null;var S=this.$getIndent(m.getLine(D.row))}else if(y)var S=this.$getIndent(p);else{u.clearMaybeInsertedClosing();return}var L=S+m.getTabString();return{text:`
`+L+`
`+S+y,selection:[1,L.length,1,L.length]}}else u.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(E,F,c,m,a){var d=m.doc.getTextRange(a);if(!a.isMultiLine()&&d=="{"){s(c);var p=m.doc.getLine(a.start.row),C=p.substring(a.end.column,a.end.column+1);if(C=="}")return a.end.column++,a;e.maybeInsertedBrackets--}}),this.add("parens","insertion",function(E,F,c,m,a){if(a=="("){s(c);var d=c.getSelectionRange(),p=m.doc.getTextRange(d);if(p!==""&&c.getWrapBehavioursEnabled())return o(d,p,"(",")");if(u.isSaneInsertion(c,m))return u.recordAutoInsert(c,m,")"),{text:"()",selection:[1,1]}}else if(a==")"){s(c);var C=c.getCursorPosition(),h=m.doc.getLine(C.row),v=h.substring(C.column,C.column+1);if(v==")"){var w=m.$findOpeningBracket(")",{column:C.column+1,row:C.row});if(w!==null&&u.isAutoInsertedClosing(C,h,a))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(E,F,c,m,a){var d=m.doc.getTextRange(a);if(!a.isMultiLine()&&d=="("){s(c);var p=m.doc.getLine(a.start.row),C=p.substring(a.start.column+1,a.start.column+2);if(C==")")return a.end.column++,a}}),this.add("brackets","insertion",function(E,F,c,m,a){if(a=="["){s(c);var d=c.getSelectionRange(),p=m.doc.getTextRange(d);if(p!==""&&c.getWrapBehavioursEnabled())return o(d,p,"[","]");if(u.isSaneInsertion(c,m))return u.recordAutoInsert(c,m,"]"),{text:"[]",selection:[1,1]}}else if(a=="]"){s(c);var C=c.getCursorPosition(),h=m.doc.getLine(C.row),v=h.substring(C.column,C.column+1);if(v=="]"){var w=m.$findOpeningBracket("]",{column:C.column+1,row:C.row});if(w!==null&&u.isAutoInsertedClosing(C,h,a))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(E,F,c,m,a){var d=m.doc.getTextRange(a);if(!a.isMultiLine()&&d=="["){s(c);var p=m.doc.getLine(a.start.row),C=p.substring(a.start.column+1,a.start.column+2);if(C=="]")return a.end.column++,a}}),this.add("string_dquotes","insertion",function(E,F,c,m,a){var d=m.$mode.$quotes||i;if(a.length==1&&d[a]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(a)!=-1)return;s(c);var p=a,C=c.getSelectionRange(),h=m.doc.getTextRange(C);if(h!==""&&(h.length!=1||!d[h])&&c.getWrapBehavioursEnabled())return o(C,h,p,p);if(!h){var v=c.getCursorPosition(),w=m.doc.getLine(v.row),y=w.substring(v.column-1,v.column),D=w.substring(v.column,v.column+1),S=m.getTokenAt(v.row,v.column),L=m.getTokenAt(v.row,v.column+1);if(y=="\\"&&S&&/escape/.test(S.type))return null;var _=S&&/string|escape/.test(S.type),O=!L||/string|escape/.test(L.type),z;if(D==p)z=_!==O,z&&/string\.end/.test(L.type)&&(z=!1);else{if(_&&!O||_&&O)return null;var V=m.$mode.tokenRe;V.lastIndex=0;var M=V.test(y);V.lastIndex=0;var U=V.test(y);if(M||U||D&&!/[\s;,.})\]\\]/.test(D))return null;z=!0}return{text:z?p+p:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(E,F,c,m,a){var d=m.doc.getTextRange(a);if(!a.isMultiLine()&&(d=='"'||d=="'")){s(c);var p=m.doc.getLine(a.start.row),C=p.substring(a.start.column+1,a.start.column+2);if(C==d)return a.end.column++,a}})};u.isSaneInsertion=function(f,E){var F=f.getCursorPosition(),c=new g(E,F.row,F.column);if(!this.$matchTokenType(c.getCurrentToken()||"text",r)){var m=new g(E,F.row,F.column+1);if(!this.$matchTokenType(m.getCurrentToken()||"text",r))return!1}return c.stepForward(),c.getCurrentTokenRow()!==F.row||this.$matchTokenType(c.getCurrentToken()||"text",t)},u.$matchTokenType=function(f,E){return E.indexOf(f.type||f)>-1},u.recordAutoInsert=function(f,E,F){var c=f.getCursorPosition(),m=E.doc.getLine(c.row);this.isAutoInsertedClosing(c,m,e.autoInsertedLineEnd[0])||(e.autoInsertedBrackets=0),e.autoInsertedRow=c.row,e.autoInsertedLineEnd=F+m.substr(c.column),e.autoInsertedBrackets++},u.recordMaybeInsert=function(f,E,F){var c=f.getCursorPosition(),m=E.doc.getLine(c.row);this.isMaybeInsertedClosing(c,m)||(e.maybeInsertedBrackets=0),e.maybeInsertedRow=c.row,e.maybeInsertedLineStart=m.substr(0,c.column)+F,e.maybeInsertedLineEnd=m.substr(c.column),e.maybeInsertedBrackets++},u.isAutoInsertedClosing=function(f,E,F){return e.autoInsertedBrackets>0&&f.row===e.autoInsertedRow&&F===e.autoInsertedLineEnd[0]&&E.substr(f.column)===e.autoInsertedLineEnd},u.isMaybeInsertedClosing=function(f,E){return e.maybeInsertedBrackets>0&&f.row===e.maybeInsertedRow&&E.substr(f.column)===e.maybeInsertedLineEnd&&E.substr(0,f.column)==e.maybeInsertedLineStart},u.popAutoInsertedClosing=function(){e.autoInsertedLineEnd=e.autoInsertedLineEnd.substr(1),e.autoInsertedBrackets--},u.clearMaybeInsertedClosing=function(){e&&(e.maybeInsertedBrackets=0,e.maybeInsertedRow=-1)},B.inherits(u,A),b.CstyleBehaviour=u}),ace.define("ace/unicode",["require","exports","module"],function($,b,K){"use strict";b.packages={},B({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function B(A){var g=/\w{4}/g;for(var l in A)b.packages[l]=A[l].replace(g,"\\u$&")}}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function($,b,K){"use strict";var B=$("../tokenizer").Tokenizer,A=$("./text_highlight_rules").TextHighlightRules,g=$("./behaviour/cstyle").CstyleBehaviour,l=$("../unicode"),r=$("../lib/lang"),t=$("../token_iterator").TokenIterator,e=$("../range").Range,n=function(){this.HighlightRules=A};(function(){this.$defaultBehaviour=new g,this.tokenRe=new RegExp("^["+l.packages.L+l.packages.Mn+l.packages.Mc+l.packages.Nd+l.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+l.packages.L+l.packages.Mn+l.packages.Mc+l.packages.Nd+l.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new B(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(i,s,o,u){var f=s.doc,E=!0,F=!0,c=1/0,m=s.getTabSize(),a=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var C=this.lineCommentStart.map(r.escapeRegExp).join("|"),d=this.lineCommentStart[0];else var C=r.escapeRegExp(this.lineCommentStart),d=this.lineCommentStart;C=new RegExp("^(\\s*)(?:"+C+") ?"),a=s.getUseSoftTabs();var w=function(M,U){var T=M.match(C);if(T){var x=T[1].length,k=T[0].length;!S(M,x,k)&&T[0][k-1]==" "&&k--,f.removeInLine(U,x,k)}},D=d+" ",v=function(M,U){(!E||/\S/.test(M))&&(S(M,c,c)?f.insertInLine({row:U,column:c},D):f.insertInLine({row:U,column:c},d))},y=function(M,U){return C.test(M)},S=function(M,U,T){for(var x=0;U--&&M.charAt(U)==" ";)x++;if(x%m!=0)return!1;for(var x=0;M.charAt(T++)==" ";)x++;return m>2?x%m!=m-1:x%m==0}}else{if(!this.blockComment)return!1;var d=this.blockComment.start,p=this.blockComment.end,C=new RegExp("^(\\s*)(?:"+r.escapeRegExp(d)+")"),h=new RegExp("(?:"+r.escapeRegExp(p)+")\\s*$"),v=function(O,z){y(O,z)||(!E||/\S/.test(O))&&(f.insertInLine({row:z,column:O.length},p),f.insertInLine({row:z,column:c},d))},w=function(O,z){var V;(V=O.match(h))&&f.removeInLine(z,O.length-V[0].length,O.length),(V=O.match(C))&&f.removeInLine(z,V[1].length,V[0].length)},y=function(O,z){if(C.test(O))return!0;for(var V=s.getTokens(z),M=0;MO.length&&(_=O.length)}),c==1/0&&(c=_,E=!1,F=!1),a&&c%m!=0&&(c=Math.floor(c/m)*m),L(F?w:v)},this.toggleBlockComment=function(i,s,o,u){var f=this.blockComment;if(f){!f.start&&f[0]&&(f=f[0]);var E=new t(s,u.row,u.column),F=E.getCurrentToken(),c=s.selection,m=s.selection.toOrientedRange(),a,d;if(F&&/comment/.test(F.type)){for(var p,C;F&&/comment/.test(F.type);){var h=F.value.indexOf(f.start);if(h!=-1){var v=E.getCurrentTokenRow(),w=E.getCurrentTokenColumn()+h;p=new e(v,w,v,w+f.start.length);break}F=E.stepBackward()}for(var E=new t(s,u.row,u.column),F=E.getCurrentToken();F&&/comment/.test(F.type);){var h=F.value.indexOf(f.end);if(h!=-1){var v=E.getCurrentTokenRow(),w=E.getCurrentTokenColumn()+h;C=new e(v,w,v,w+f.end.length);break}F=E.stepForward()}C&&s.remove(C),p&&(s.remove(p),a=p.start.row,d=-f.start.length)}else d=f.start.length,a=o.start.row,s.insert(o.end,f.end),s.insert(o.start,f.start);m.start.row==a&&(m.start.column+=d),m.end.row==a&&(m.end.column+=d),s.selection.fromOrientedRange(m)}},this.getNextLineIndent=function(i,s,o){return this.$getIndent(s)},this.checkOutdent=function(i,s,o){return!1},this.autoOutdent=function(i,s,o){},this.$getIndent=function(i){return i.match(/^\s*/)[0]},this.createWorker=function(i){return null},this.createModeDelegates=function(i){this.$embeds=[],this.$modes={};for(var s in i)i[s]&&(this.$embeds.push(s),this.$modes[s]=new i[s]);for(var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],s=0;s=0&&r.row=0&&r.column<=l[r.row].length}function g(l,r){r.action!="insert"&&r.action!="remove"&&B(r,"delta.action must be 'insert' or 'remove'"),r.lines instanceof Array||B(r,"delta.lines must be an Array"),(!r.start||!r.end)&&B(r,"delta.start/end must be an present");var t=r.start;A(l,r.start)||B(r,"delta.start must be contained in document");var e=r.end;r.action=="remove"&&!A(l,e)&&B(r,"delta.end must contained in document for 'remove' actions");var n=e.row-t.row,i=e.column-(n==0?t.column:0);(n!=r.lines.length-1||r.lines[n].length!=i)&&B(r,"delta.range must match delta lines")}b.applyDelta=function(l,r,t){var e=r.start.row,n=r.start.column,i=l[e]||"";switch(r.action){case"insert":var s=r.lines;if(s.length===1)l[e]=i.substring(0,n)+r.lines[0]+i.substring(n);else{var o=[e,1].concat(r.lines);l.splice.apply(l,o),l[e]=i.substring(0,n)+l[e],l[e+r.lines.length-1]+=i.substring(n)}break;case"remove":var u=r.end.column,f=r.end.row;e===f?l[e]=i.substring(0,n)+i.substring(u):l.splice(e,f-e+1,i.substring(0,n)+l[f].substring(u));break}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./lib/event_emitter").EventEmitter,g=b.Anchor=function(l,r,t){this.$onChange=this.onChange.bind(this),this.attach(l),typeof t>"u"?this.setPosition(r.row,r.column):this.setPosition(r,t)};(function(){B.implement(this,A),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var e=r(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}};function l(t,e,n){var i=n?t.column<=e.column:t.column=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):t<0?(n.row=0,n.column=0):(n.row=t,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,e))),e<0&&(n.column=0),n}}).call(g.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function($,b,K){"use strict";var B=$("./lib/oop"),A=$("./apply_delta").applyDelta,g=$("./lib/event_emitter").EventEmitter,l=$("./range").Range,r=$("./anchor").Anchor,t=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){B.implement(this,g),this.setValue=function(e){var n=this.getLength()-1;this.remove(new l(0,0,n,this.getLine(n).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,n){return new r(this,e,n)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,`
`).split(`
`)}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var n=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=n?n[1]:`
`,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r
`;case"unix":return`
`;default:return this.$autoNewLine||`
`}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==`\r
`||e=="\r"||e==`
`},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,n){return this.$lines.slice(e,n+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var n;if(e.start.row===e.end.row)n=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{n=this.getLines(e.start.row,e.end.row),n[0]=(n[0]||"").substring(e.start.column);var i=n.length-1;e.end.row-e.start.row==i&&(n[i]=n[i].substring(0,e.end.column))}return n},this.insertLines=function(e,n){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,n)},this.removeLines=function(e,n){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,n)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,n){return this.getLength()<=1&&this.$detectNewLine(n),this.insertMergedLines(e,this.$split(n))},this.insertInLine=function(e,n){var i=this.clippedPos(e.row,e.column),s=this.pos(e.row,e.column+n.length);return this.applyDelta({start:i,end:s,action:"insert",lines:[n]},!0),this.clonePos(s)},this.clippedPos=function(e,n){var i=this.getLength();e===void 0?e=i:e<0?e=0:e>=i&&(e=i-1,n=void 0);var s=this.getLine(e);return n==null&&(n=s.length),n=Math.min(Math.max(n,0),s.length),{row:e,column:n}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,n){return{row:e,column:n}},this.$clipPosition=function(e){var n=this.getLength();return e.row>=n?(e.row=Math.max(0,n-1),e.column=this.getLine(n-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,n){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,s=n=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,n){if(e instanceof l||(e=l.fromPoints(e.start,e.end)),n.length===0&&e.isEmpty())return e.start;if(n==this.getTextRange(e))return e.end;this.remove(e);var i;return n?i=this.insert(e.start,n):i=e.start,i},this.applyDeltas=function(e){for(var n=0;n=0;n--)this.revertDelta(e[n])},this.applyDelta=function(e,n){var i=e.action=="insert";(i?e.lines.length<=1&&!e.lines[0]:!l.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),A(this.$lines,e,n),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,n){var i=e.lines,s=i.length,o=e.start.row,u=e.start.column,f=0,E=0;do{f=E,E+=n-1;var F=i.slice(f,E);if(E>s){e.lines=F,e.start.row=o+f,e.start.column=u;break}F.push(""),this.applyDelta({start:this.pos(o+f,u),end:this.pos(o+E,u=0),action:e.action,lines:F},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,n){for(var i=this.$lines||this.getAllLines(),s=this.getNewLineCharacter().length,o=n||0,u=i.length;o20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=n,i==-1&&(i=n),o<=i&&t.fireUpdateEvent(o,i)}}};(function(){B.implement(this,A),this.setTokenizer=function(l){this.tokenizer=l,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(l){this.doc=l,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(l,r){var t={first:l,last:r};this._signal("update",{data:t})},this.start=function(l){this.currentLine=Math.min(l||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(l){var r=l.start.row,t=l.end.row-r;if(t===0)this.lines[r]=null;else if(l.action=="remove")this.lines.splice(r,t+1,null),this.states.splice(r,t+1,null);else{var e=Array(t+1);e.unshift(r,1),this.lines.splice.apply(this.lines,e),this.states.splice.apply(this.states,e)}this.currentLine=Math.min(r,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(l){return this.lines[l]||this.$tokenizeRow(l)},this.getState=function(l){return this.currentLine==l&&this.$tokenizeRow(l),this.states[l]||"start"},this.$tokenizeRow=function(l){var r=this.doc.getLine(l),t=this.states[l-1],e=this.tokenizer.getLineTokens(r,t,l);return this.states[l]+""!=e.state+""?(this.states[l]=e.state,this.lines[l+1]=null,this.currentLine>l+1&&(this.currentLine=l+1)):this.currentLine==l&&(this.currentLine=l+1),this.lines[l]=e.tokens}}).call(g.prototype),b.BackgroundTokenizer=g}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function($,b,K){"use strict";var B=$("./lib/lang"),A=$("./lib/oop"),g=$("./range").Range,l=function(r,t,e){this.setRegexp(r),this.clazz=t,this.type=e||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(r){this.regExp+""!=r+""&&(this.regExp=r,this.cache=[])},this.update=function(r,t,e,n){if(this.regExp)for(var i=n.firstRow,s=n.lastRow,o=i;o<=s;o++){var u=this.cache[o];u==null&&(u=B.getMatchOffsets(e.getLine(o),this.regExp),u.length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map(function(E){return new g(o,E.offset,o,E.offset+E.length)}),this.cache[o]=u.length?u:"");for(var f=u.length;f--;)t.drawSingleLineMarker(r,u[f].toScreenRange(e),this.clazz,n)}}}).call(l.prototype),b.SearchHighlight=l}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function($,b,K){"use strict";var B=$("../range").Range;function A(g,l){this.foldData=g,Array.isArray(l)?this.folds=l:l=this.folds=[l];var r=l[l.length-1];this.range=new B(l[0].start.row,l[0].start.column,r.end.row,r.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(t){t.setFoldLine(this)},this)}(function(){this.shiftRow=function(g){this.start.row+=g,this.end.row+=g,this.folds.forEach(function(l){l.start.row+=g,l.end.row+=g})},this.addFold=function(g){if(g.sameRow){if(g.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(g),this.folds.sort(function(l,r){return-l.range.compareEnd(r.start.row,r.start.column)}),this.range.compareEnd(g.start.row,g.start.column)>0?(this.end.row=g.end.row,this.end.column=g.end.column):this.range.compareStart(g.end.row,g.end.column)<0&&(this.start.row=g.start.row,this.start.column=g.start.column)}else if(g.start.row==this.end.row)this.folds.push(g),this.end.row=g.end.row,this.end.column=g.end.column;else if(g.end.row==this.start.row)this.folds.unshift(g),this.start.row=g.start.row,this.start.column=g.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");g.foldLine=this},this.containsRow=function(g){return g>=this.start.row&&g<=this.end.row},this.walk=function(g,l,r){var t=0,e=this.folds,n,i,s,o=!0;l==null&&(l=this.end.row,r=this.end.column);for(var u=0;u0)){var o=A(l,i.start);return s===0?r&&o!==0?-n-2:n:o>0||o===0&&!r?n:-n-1}}return-n-1},this.add=function(l){var r=!l.isEmpty(),t=this.pointIndex(l.start,r);t<0&&(t=-t-1);var e=this.pointIndex(l.end,r,t);return e<0?e=-e-1:e++,this.ranges.splice(t,e-t,l)},this.addList=function(l){for(var r=[],t=l.length;t--;)r.push.apply(r,this.add(l[t]));return r},this.substractPoint=function(l){var r=this.pointIndex(l);if(r>=0)return this.ranges.splice(r,1)},this.merge=function(){var l=[],r=this.ranges;r=r.sort(function(s,o){return A(s.start,o.start)});for(var t=r[0],e,n=1;n=0},this.containsPoint=function(l){return this.pointIndex(l)>=0},this.rangeAtPoint=function(l){var r=this.pointIndex(l);if(r>=0)return this.ranges[r]},this.clipRows=function(l,r){var t=this.ranges;if(t[0].start.row>r||t[t.length-1].start.rowe)break;if(E.start.row==e&&E.start.column>=r.column&&(E.start.column==r.column&&this.$insertRight||(E.start.column+=s,E.start.row+=i)),E.end.row==e&&E.end.column>=r.column){if(E.end.column==r.column&&this.$insertRight)continue;E.end.column==r.column&&s>0&&uE.start.column&&E.end.column==o[u+1].start.column&&(E.end.column-=s),E.end.column+=s,E.end.row+=i}}}if(i!=0&&u=t)return s;if(s.end.row>t)return null}return null},this.getNextFoldLine=function(t,e){var n=this.$foldData,i=0;for(e&&(i=n.indexOf(e)),i==-1&&(i=0),i;i=t)return s}return null},this.getFoldedRowCount=function(t,e){for(var n=this.$foldData,i=e-t+1,s=0;s=e){f=t?i-=e-f:i=0);break}else u>=t&&(f>=t?i-=u-f:i-=u-t+1)}return i},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(e,n){return e.start.row-n.start.row}),t},this.addFold=function(t,e){var n=this.$foldData,i=!1,s;t instanceof g?s=t:(s=new g(e,t),s.collapseChildren=e.collapseChildren),this.$clipRangeToDocument(s.range);var o=s.start.row,u=s.start.column,f=s.end.row,E=s.end.column;if(!(o0&&(this.removeFolds(m),m.forEach(function(C){s.addSubFold(C)}));for(var a=0;a0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(t,e){var n,i;if(t==null?(n=new B(0,0,this.getLength(),0),e=!0):typeof t=="number"?n=new B(t,0,t,this.getLine(t).length):"row"in t?n=B.fromPoints(t,t):n=t,i=this.getFoldsInRangeList(n),e)this.removeFolds(i);else for(var s=i;s.length;)this.expandFolds(s),s=this.getFoldsInRangeList(n);if(i.length)return i},this.isRowFolded=function(t,e){return!!this.getFoldLine(t,e)},this.getRowFoldEnd=function(t,e){var n=this.getFoldLine(t,e);return n?n.end.row:t},this.getRowFoldStart=function(t,e){var n=this.getFoldLine(t,e);return n?n.start.row:t},this.getFoldDisplayLine=function(t,e,n,i,s){i==null&&(i=t.start.row),s==null&&(s=0),e==null&&(e=t.end.row),n==null&&(n=this.getLine(e).length);var o=this.doc,u="";return t.walk(function(f,E,F,c){if(!(EE)break;while(s&&u.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+s.value.length-2,f}},this.foldAll=function(t,e,n){n==null&&(n=1e5);var i=this.foldWidgets;if(i){e=e||this.getLength(),t=t||0;for(var s=t;s=t){s=o.end.row;try{var u=this.addFold("...",o);u&&(u.collapseChildren=n)}catch{}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(t){if(!this.$foldStyles[t])throw new Error("invalid fold style: "+t+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=t){this.$foldStyle=t,t=="manual"&&this.unfold();var e=this.$foldMode;this.$setFolding(null),this.$setFolding(e)}},this.$setFolding=function(t){if(this.$foldMode!=t){if(this.$foldMode=t,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!t||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=t.getFoldWidget.bind(t,this,this.$foldStyle),this.getFoldWidgetRange=t.getFoldWidgetRange.bind(t,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(t,e){var n=this.foldWidgets;if(!n||e&&n[t])return{};for(var i=t-1,s;i>=0;){var o=n[i];if(o==null&&(o=n[i]=this.getFoldWidget(i)),o=="start"){var u=this.getFoldWidgetRange(i);if(s||(s=u),u&&u.end.row>=t)break}i--}return{range:i!==-1&&u,firstRange:s}},this.onFoldWidgetClick=function(t,e){e=e.domEvent;var n={children:e.shiftKey,all:e.ctrlKey||e.metaKey,siblings:e.altKey},i=this.$toggleFoldWidget(t,n);if(!i){var s=e.target||e.srcElement;s&&/ace_fold-widget/.test(s.className)&&(s.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,e){if(this.getFoldWidget){var n=this.getFoldWidget(t),i=this.getLine(t),s=n==="end"?-1:1,o=this.getFoldAt(t,s===-1?0:i.length,s);if(o)return e.children||e.all?this.removeFold(o):this.expandFold(o),o;var u=this.getFoldWidgetRange(t,!0);if(u&&!u.isMultiLine()&&(o=this.getFoldAt(u.start.row,u.start.column,1),o&&u.isEqual(o.range)))return this.removeFold(o),o;if(e.siblings){var f=this.getParentFoldRangeData(t);if(f.range)var E=f.range.start.row+1,F=f.range.end.row;this.foldAll(E,F,e.all?1e4:0)}else e.children?(F=u?u.end.row:this.getLength(),this.foldAll(t+1,F,e.all?1e4:0)):u&&(e.all&&(u.collapseChildren=1e4),this.addFold("...",u));return u}},this.toggleFoldWidget=function(t){var e=this.selection.getCursor().row;e=this.getRowFoldStart(e);var n=this.$toggleFoldWidget(e,{});if(!n){var i=this.getParentFoldRangeData(e,!0);if(n=i.range||i.firstRange,n){e=n.start.row;var s=this.getFoldAt(e,this.getLine(e).length,1);s?this.removeFold(s):this.addFold("...",n)}}},this.updateFoldWidgets=function(t){var e=t.start.row,n=t.end.row-e;if(n===0)this.foldWidgets[e]=null;else if(t.action=="remove")this.foldWidgets.splice(e,n+1,null);else{var i=Array(n+1);i.unshift(e,1),this.foldWidgets.splice.apply(this.foldWidgets,i)}},this.tokenizerUpdateFoldWidgets=function(t){var e=t.data;e.first!=e.last&&this.foldWidgets.length>e.first&&this.foldWidgets.splice(e.first,this.foldWidgets.length)}}b.Folding=r}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function($,b,K){"use strict";var B=$("../token_iterator").TokenIterator,A=$("../range").Range;function g(){this.findMatchingBracket=function(l,r){if(l.column==0)return null;var t=r||this.getLine(l.row).charAt(l.column-1);if(t=="")return null;var e=t.match(/([\(\[\{])|([\)\]\}])/);return e?e[1]?this.$findClosingBracket(e[1],l):this.$findOpeningBracket(e[2],l):null},this.getBracketRange=function(l){var r=this.getLine(l.row),t=!0,e,n=r.charAt(l.column-1),i=n&&n.match(/([\(\[\{])|([\)\]\}])/);if(i||(n=r.charAt(l.column),l={row:l.row,column:l.column+1},i=n&&n.match(/([\(\[\{])|([\)\]\}])/),t=!1),!i)return null;if(i[1]){var s=this.$findClosingBracket(i[1],l);if(!s)return null;e=A.fromPoints(l,s),t||(e.end.column++,e.start.column--),e.cursor=e.end}else{var s=this.$findOpeningBracket(i[2],l);if(!s)return null;e=A.fromPoints(s,l),t||(e.start.column++,e.end.column--),e.cursor=e.start}return e},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(l,r,t){var e=this.$brackets[l],n=1,i=new B(this,r.row,r.column),s=i.getCurrentToken();if(s||(s=i.stepForward()),!!s){t||(t=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var o=r.column-i.getCurrentTokenColumn()-2,u=s.value;;){for(;o>=0;){var f=u.charAt(o);if(f==e){if(n-=1,n==0)return{row:i.getCurrentTokenRow(),column:o+i.getCurrentTokenColumn()}}else f==l&&(n+=1);o-=1}do s=i.stepBackward();while(s&&!t.test(s.type));if(s==null)break;u=s.value,o=u.length-1}return null}},this.$findClosingBracket=function(l,r,t){var e=this.$brackets[l],n=1,i=new B(this,r.row,r.column),s=i.getCurrentToken();if(s||(s=i.stepForward()),!!s){t||(t=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var o=r.column-i.getCurrentTokenColumn();;){for(var u=s.value,f=u.length;ow&&(this.$docRowCache.splice(w,v),this.$screenRowCache.splice(w,v))},this.$getRowCacheIndex=function(h,v){for(var w=0,y=h.length-1;w<=y;){var D=w+y>>1,S=h[D];if(v>S)w=D+1;else if(v=v));S++);return y=w[S],y?(y.index=S,y.start=D-y.value.length,y):null},this.setUndoManager=function(h){if(this.$undoManager=h,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),h){var v=this;this.$syncInformUndoManager=function(){v.$informUndoManager.cancel(),v.$deltasFold.length&&(v.$deltas.push({group:"fold",deltas:v.$deltasFold}),v.$deltasFold=[]),v.$deltasDoc.length&&(v.$deltas.push({group:"doc",deltas:v.$deltasDoc}),v.$deltasDoc=[]),v.$deltas.length>0&&h.execute({action:"aceupdate",args:[v.$deltas,v],merge:v.mergeUndoDeltas}),v.mergeUndoDeltas=!1,v.$deltas=[]},this.$informUndoManager=A.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?A.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(h){this.setOption("useSoftTabs",h)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(h){this.setOption("tabSize",h)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(h){return this.$useSoftTabs&&h.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(h){this.setOption("navigateWithinSoftTabs",h)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(h){this.setOption("overwrite",h)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(h,v){this.$decorations[h]||(this.$decorations[h]=""),this.$decorations[h]+=" "+v,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(h,v){this.$decorations[h]=(this.$decorations[h]||"").replace(" "+v,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(h){this.$breakpoints=[];for(var v=0;v0&&(y=!!w.charAt(v-1).match(this.tokenRe)),y||(y=!!w.charAt(v).match(this.tokenRe)),y)var D=this.tokenRe;else if(/^\s+$/.test(w.slice(v-1,v+1)))var D=/\s/;else var D=this.nonTokenRe;var S=v;if(S>0){do S--;while(S>=0&&w.charAt(S).match(D));S++}for(var L=v;Lh&&(h=v.screenWidth)}),this.lineWidgetWidth=h},this.$computeWidth=function(h){if(this.$modified||h){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var v=this.doc.getAllLines(),w=this.$rowLengthCache,y=0,D=0,S=this.$foldData[D],L=S?S.start.row:1/0,_=v.length,O=0;O<_;O++){if(O>L){if(O=S.end.row+1,O>=_)break;S=this.$foldData[D++],L=S?S.start.row:1/0}w[O]==null&&(w[O]=this.$getStringScreenWidth(v[O])[0]),w[O]>y&&(y=w[O])}this.screenWidth=y}},this.getLine=function(h){return this.doc.getLine(h)},this.getLines=function(h,v){return this.doc.getLines(h,v)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(h){return this.doc.getTextRange(h||this.selection.getRange())},this.insert=function(h,v){return this.doc.insert(h,v)},this.remove=function(h){return this.doc.remove(h)},this.removeFullLines=function(h,v){return this.doc.removeFullLines(h,v)},this.undoChanges=function(h,v){if(h.length){this.$fromUndo=!0;for(var w=null,y=h.length-1;y!=-1;y--){var D=h[y];D.group=="doc"?(this.doc.revertDeltas(D.deltas),w=this.$getUndoSelection(D.deltas,!0,w)):D.deltas.forEach(function(S){this.addFolds(S.folds)},this)}return this.$fromUndo=!1,w&&this.$undoSelect&&!v&&this.selection.setSelectionRange(w),w}},this.redoChanges=function(h,v){if(h.length){this.$fromUndo=!0;for(var w=null,y=0;yh.end.column&&(S.start.column+=_),S.end.row==h.end.row&&S.end.column>h.end.column&&(S.end.column+=_)),L&&S.start.row>=h.end.row&&(S.start.row+=L,S.end.row+=L)}if(S.end=this.insert(S.start,y),D.length){var O=h.start,z=S.start,L=z.row-O.row,_=z.column-O.column;this.addFolds(D.map(function(U){return U=U.clone(),U.start.row==O.row&&(U.start.column+=_),U.end.row==O.row&&(U.end.column+=_),U.start.row+=L,U.end.row+=L,U}))}return S},this.indentRows=function(h,v,w){w=w.replace(/\t/g,this.getTabString());for(var y=h;y<=v;y++)this.doc.insertInLine({row:y,column:0},w)},this.outdentRows=function(h){for(var v=h.collapseRows(),w=new n(0,0,0,0),y=this.getTabSize(),D=v.start.row;D<=v.end.row;++D){var S=this.getLine(D);w.start.row=D,w.end.row=D;for(var L=0;L0){var y=this.getRowFoldEnd(v+w);if(y>this.doc.getLength()-1)return 0;var D=y-v}else{h=this.$clipRowToDocument(h),v=this.$clipRowToDocument(v);var D=v-h+1}var S=new n(h,0,v,Number.MAX_VALUE),L=this.getFoldsInRange(S).map(function(O){return O=O.clone(),O.start.row+=D,O.end.row+=D,O}),_=w==0?this.doc.getLines(h,v):this.doc.removeFullLines(h,v);return this.doc.insertFullLines(h+D,_),L.length&&this.addFolds(L),D},this.moveLinesUp=function(h,v){return this.$moveLines(h,v,-1)},this.moveLinesDown=function(h,v){return this.$moveLines(h,v,1)},this.duplicateLines=function(h,v){return this.$moveLines(h,v,0)},this.$clipRowToDocument=function(h){return Math.max(0,Math.min(h,this.doc.getLength()-1))},this.$clipColumnToRow=function(h,v){return v<0?0:Math.min(this.doc.getLine(h).length,v)},this.$clipPositionToDocument=function(h,v){if(v=Math.max(0,v),h<0)h=0,v=0;else{var w=this.doc.getLength();h>=w?(h=w-1,v=this.doc.getLine(w-1).length):v=Math.min(this.doc.getLine(h).length,v)}return{row:h,column:v}},this.$clipRangeToDocument=function(h){h.start.row<0?(h.start.row=0,h.start.column=0):h.start.column=this.$clipColumnToRow(h.start.row,h.start.column);var v=this.doc.getLength()-1;return h.end.row>v?(h.end.row=v,h.end.column=this.doc.getLine(v).length):h.end.column=this.$clipColumnToRow(h.end.row,h.end.column),h},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(h){if(h!=this.$useWrapMode){if(this.$useWrapMode=h,this.$modified=!0,this.$resetRowCache(0),h){var v=this.getLength();this.$wrapData=Array(v),this.$updateWrapData(0,v-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(h,v){(this.$wrapLimitRange.min!==h||this.$wrapLimitRange.max!==v)&&(this.$wrapLimitRange={min:h,max:v},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(h,v){var w=this.$wrapLimitRange;w.max<0&&(w={min:v,max:v});var y=this.$constrainWrapLimit(h,w.min,w.max);return y!=this.$wrapLimit&&y>1?(this.$wrapLimit=y,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(h,v,w){return v&&(h=Math.max(v,h)),w&&(h=Math.min(w,h)),h},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(h){this.setWrapLimitRange(h,h)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(h){var v=this.$useWrapMode,w=h.action,y=h.start,D=h.end,S=y.row,L=D.row,_=L-S,O=null;if(this.$updating=!0,_!=0)if(w==="remove"){this[v?"$wrapData":"$rowLengthCache"].splice(S,_);var z=this.$foldData;O=this.getFoldsInRange(h),this.removeFolds(O);var V=this.getFoldLine(D.row),M=0;if(V){V.addRemoveChars(D.row,D.column,y.column-D.column),V.shiftRow(-_);var U=this.getFoldLine(S);U&&U!==V&&(U.merge(V),V=U),M=z.indexOf(V)+1}for(M;M=D.row&&V.shiftRow(-_)}L=S}else{var T=Array(_);T.unshift(S,0);var x=v?this.$wrapData:this.$rowLengthCache;x.splice.apply(x,T);var z=this.$foldData,V=this.getFoldLine(S),M=0;if(V){var k=V.range.compareInside(y.row,y.column);k==0?(V=V.split(y.row,y.column),V&&(V.shiftRow(_),V.addRemoveChars(L,0,D.column-y.column))):k==-1&&(V.addRemoveChars(S,0,D.column-y.column),V.shiftRow(_)),M=z.indexOf(V)+1}for(M;M=S&&V.shiftRow(_)}}else{_=Math.abs(h.start.column-h.end.column),w==="remove"&&(O=this.getFoldsInRange(h),this.removeFolds(O),_=-_);var V=this.getFoldLine(S);V&&V.addRemoveChars(S,y.column,_)}return v&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,v?this.$updateWrapData(S,L):this.$updateRowLengthCache(S,L),O},this.$updateRowLengthCache=function(h,v,w){this.$rowLengthCache[h]=null,this.$rowLengthCache[v]=null},this.$updateWrapData=function(h,v){var w=this.doc.getAllLines(),y=this.getTabSize(),D=this.$wrapData,S=this.$wrapLimit,L,_,O=h;for(v=Math.min(v,w.length-1);O<=v;)_=this.getFoldLine(O,_),_?(L=[],_.walk(function(z,V,M,U){var T;if(z!=null){T=this.$getDisplayTokens(z,L.length),T[0]=F;for(var x=1;xv-U;){var T=S+v-U;if(h[T-1]>=a&&h[T]>=a){M(T);continue}if(h[T]==F||h[T]==c){for(T;T!=S-1&&h[T]!=F;T--);if(T>S){M(T);continue}for(T=S+v,T;T>2)),S-1);T>x&&h[T]x&&h[T]x&&h[T]==m;)T--}else for(;T>x&&h[T]x){M(++T);continue}T=S+v,h[T]==E&&T--,M(T-U)}return y},this.$getDisplayTokens=function(h,v){var w=[],y;v=v||0;for(var D=0;D39&&S<48||S>57&&S<64?w.push(m):S>=4352&&C(S)?w.push(f,E):w.push(f)}return w},this.$getStringScreenWidth=function(h,v,w){if(v==0)return[0,0];v==null&&(v=1/0),w=w||0;var y,D;for(D=0;D=4352&&C(y)?w+=2:w+=1,!(w>v));D++);return[w,D]},this.lineWidgets=null,this.getRowLength=function(h){if(this.lineWidgets)var v=this.lineWidgets[h]&&this.lineWidgets[h].rowCount||0;else v=0;return!this.$useWrapMode||!this.$wrapData[h]?1+v:this.$wrapData[h].length+1+v},this.getRowLineCount=function(h){return!this.$useWrapMode||!this.$wrapData[h]?1:this.$wrapData[h].length+1},this.getRowWrapIndent=function(h){if(this.$useWrapMode){var v=this.screenToDocumentPosition(h,Number.MAX_VALUE),w=this.$wrapData[v.row];return w.length&&w[0]=0)var _=z[V],D=this.$docRowCache[V],U=h>z[M-1];else var U=!M;for(var T=this.getLength()-1,x=this.getNextFoldLine(D),k=x?x.start.row:1/0;_<=h&&(O=this.getRowLength(D),!(_+O>h||D>=T));)_+=O,D++,D>k&&(D=x.end.row+1,x=this.getNextFoldLine(D,x),k=x?x.start.row:1/0),U&&(this.$docRowCache.push(D),this.$screenRowCache.push(_));if(x&&x.start.row<=D)y=this.getFoldDisplayLine(x),D=x.start.row;else{if(_+O<=h||D>T)return{row:T,column:this.getLine(T).length};y=this.getLine(D),x=null}var P=0,I=Math.floor(h-_);if(this.$useWrapMode){var N=this.$wrapData[D];N&&(L=N[I],I>0&&N.length&&(P=N.indent,S=N[I-1]||N[N.length-1],y=y.substring(S)))}return w!==void 0&&this.$bidiHandler.isBidiRow(_+I,D,I)&&(v=this.$bidiHandler.offsetToCol(w)),S+=this.$getStringScreenWidth(y,v-P)[1],this.$useWrapMode&&S>=L&&(S=L-1),x?x.idxToPosition(S):{row:D,column:S}},this.documentToScreenPosition=function(h,v){if(typeof v>"u")var w=this.$clipPositionToDocument(h.row,h.column);else w=this.$clipPositionToDocument(h,v);h=w.row,v=w.column;var y=0,D=null,S=null;S=this.getFoldAt(h,v,1),S&&(h=S.start.row,v=S.start.column);var L,_=0,O=this.$docRowCache,z=this.$getRowCacheIndex(O,h),V=O.length;if(V&&z>=0)var _=O[z],y=this.$screenRowCache[z],M=h>O[V-1];else var M=!V;for(var U=this.getNextFoldLine(_),T=U?U.start.row:1/0;_=T){if(L=U.end.row+1,L>h)break;U=this.getNextFoldLine(L,U),T=U?U.start.row:1/0}else L=_+1;y+=this.getRowLength(_),_=L,M&&(this.$docRowCache.push(_),this.$screenRowCache.push(y))}var x="";U&&_>=T?(x=this.getFoldDisplayLine(U,h,v),D=U.start.row):(x=this.getLine(h).substring(0,v),D=h);var k=0;if(this.$useWrapMode){var P=this.$wrapData[D];if(P){for(var I=0;x.length>=P[I];)y++,I++;x=x.substring(P[I-1]||0,x.length),k=I>0?P.indent:0}}return{row:y,column:k+this.$getStringScreenWidth(x)[0]}},this.documentToScreenColumn=function(h,v){return this.documentToScreenPosition(h,v).column},this.documentToScreenRow=function(h,v){return this.documentToScreenPosition(h,v).row},this.getScreenLength=function(){var h=0,v=null;if(this.$useWrapMode)for(var D=this.$wrapData.length,S=0,y=0,v=this.$foldData[y++],L=v?v.start.row:1/0;SL&&(S=v.end.row+1,v=this.$foldData[y++],L=v?v.start.row:1/0)}else{h=this.getLength();for(var w=this.$foldData,y=0;yw));S++);return[y,S]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=C;function C(h){return h<4352?!1:h>=4352&&h<=4447||h>=4515&&h<=4519||h>=4602&&h<=4607||h>=9001&&h<=9002||h>=11904&&h<=11929||h>=11931&&h<=12019||h>=12032&&h<=12245||h>=12272&&h<=12283||h>=12288&&h<=12350||h>=12353&&h<=12438||h>=12441&&h<=12543||h>=12549&&h<=12589||h>=12593&&h<=12686||h>=12688&&h<=12730||h>=12736&&h<=12771||h>=12784&&h<=12830||h>=12832&&h<=12871||h>=12880&&h<=13054||h>=13056&&h<=19903||h>=19968&&h<=42124||h>=42128&&h<=42182||h>=43360&&h<=43388||h>=44032&&h<=55203||h>=55216&&h<=55238||h>=55243&&h<=55291||h>=63744&&h<=64255||h>=65040&&h<=65049||h>=65072&&h<=65106||h>=65108&&h<=65126||h>=65128&&h<=65131||h>=65281&&h<=65376||h>=65504&&h<=65510}}.call(u.prototype),$("./edit_session/folding").Folding.call(u.prototype),$("./edit_session/bracket_match").BracketMatch.call(u.prototype),l.defineOptions(u.prototype,"session",{wrap:{set:function(f){if(!f||f=="off"?f=!1:f=="free"?f=!0:f=="printMargin"?f=-1:typeof f=="string"&&(f=parseInt(f,10)||!1),this.$wrap!=f)if(this.$wrap=f,!f)this.setUseWrapMode(!1);else{var E=typeof f=="number"?f:null;this.setWrapLimitRange(E,E),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(f){f=f=="auto"?this.$mode.type!="text":f!="text",f!=this.$wrapAsCode&&(this.$wrapAsCode=f,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(f){this.$useWorker=f,this.$stopWorker(),f&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(f){isNaN(f)||this.$tabSize===f||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=f,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(f){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(f){this.doc.setNewLineMode(f)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(f){this.setMode(f)},get:function(){return this.$modeId}}}),b.EditSession=u}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function($,b,K){"use strict";var B=$("./lib/lang"),A=$("./lib/oop"),g=$("./range").Range,l=function(){this.$options={}};(function(){this.set=function(t){return A.mixin(this.$options,t),this},this.getOptions=function(){return B.copyObject(this.$options)},this.setOptions=function(t){this.$options=t},this.find=function(t){var e=this.$options,n=this.$matchIterator(t,e);if(!n)return!1;var i=null;return n.forEach(function(s,o,u,f){return i=new g(s,o,u,f),o==f&&e.start&&e.start.start&&e.skipCurrent!=!1&&i.isEqual(e.start)?(i=null,!1):!0}),i},this.findAll=function(t){var e=this.$options;if(!e.needle)return[];this.$assembleRegExp(e);var n=e.range,i=n?t.getLines(n.start.row,n.end.row):t.doc.getAllLines(),s=[],o=e.re;if(e.$isMultiLine){var u=o.length,f=i.length-u,E;e:for(var F=o.offset||0;F<=f;F++){for(var c=0;cd||(s.push(E=new g(F,d,F+u-1,p)),u>2&&(F=F+u-2))}}else for(var C=0;Cy&&s[c].end.row==n.end.row;)c--;for(s=s.slice(C,c+1),C=0,c=s.length;C=f;d--)if(m(d,Number.MAX_VALUE,a))return;if(e.wrap!=!1){for(d=E,f=u.row;d>=f;d--)if(m(d,Number.MAX_VALUE,a))return}}};else var F=function(d){var p=u.row;if(!m(p,u.column,d)){for(p=p+1;p<=E;p++)if(m(p,0,d))return;if(e.wrap!=!1){for(p=f,E=u.row;p<=E;p++)if(m(p,0,d))return}}};if(e.$isMultiLine)var c=n.length,m=function(a,d,p){var C=i?a-c+1:a;if(!(C<0)){var h=t.getLine(C),v=h.search(n[0]);if(!(!i&&vd)&&p(C,v,C+c-1,y))return!0}}};else if(i)var m=function(d,p,C){var h=t.getLine(d),v=[],w,y=0;for(n.lastIndex=0;w=n.exec(h);){var D=w[0].length;if(y=w.index,!D){if(y>=h.length)break;n.lastIndex=y+=1}if(w.index+D>p)break;v.push(w.index,D)}for(var S=v.length-1;S>=0;S-=2){var L=v[S-1],D=v[S];if(C(d,L,d,L+D))return!0}};else var m=function(d,p,C){var h=t.getLine(d),v,w=p;for(n.lastIndex=p;v=n.exec(h);){var y=v[0].length;if(w=v.index,C(d,w,d,w+y))return!0;if(!y&&(n.lastIndex=w+=1,w>=h.length))return!1}};return{forEach:F}}}).call(l.prototype);function r(t,e){function n(i){return/\w/.test(i)||e.regExp?"\\b":""}return n(t[0])+t+n(t[t.length-1])}b.Search=l}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function($,b,K){"use strict";var B=$("../lib/keys"),A=$("../lib/useragent"),g=B.KEY_MODS;function l(t,e){this.platform=e||(A.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(t),this.$singleCommand=!0}function r(t,e){l.call(this,t,e),this.$singleCommand=!1}r.prototype=l.prototype,function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,n){var i=e&&(typeof e=="string"?e:e.name);e=this.commands[i],n||delete this.commands[i];var s=this.commandKeyBinding;for(var o in s){var u=s[o];if(u==e)delete s[o];else if(Array.isArray(u)){var f=u.indexOf(e);f!=-1&&(u.splice(f,1),u.length==1&&(s[o]=u[0]))}}},this.bindKey=function(e,n,i){if(typeof e=="object"&&e&&(i==null&&(i=e.position),e=e[this.platform]),!!e){if(typeof n=="function")return this.addCommand({exec:n,bindKey:e,name:n.name||e});e.split("|").forEach(function(s){var o="";if(s.indexOf(" ")!=-1){var u=s.split(/\s+/);s=u.pop(),u.forEach(function(F){var c=this.parseKeys(F),m=g[c.hashId]+c.key;o+=(o?" ":"")+m,this._addCommandToBinding(o,"chainKeys")},this),o+=" "}var f=this.parseKeys(s),E=g[f.hashId]+f.key;this._addCommandToBinding(o+E,n,i)},this)}};function t(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this._addCommandToBinding=function(e,n,i){var s=this.commandKeyBinding,o;if(!n)delete s[e];else if(!s[e]||this.$singleCommand)s[e]=n;else{Array.isArray(s[e])?(o=s[e].indexOf(n))!=-1&&s[e].splice(o,1):s[e]=[s[e]],typeof i!="number"&&(i=t(n));var u=s[e];for(o=0;oi)break}u.splice(o,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(n){var i=e[n];if(i){if(typeof i=="string")return this.bindKey(i,n);typeof i=="function"&&(i={exec:i}),typeof i=="object"&&(i.name||(i.name=n),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(n){this.removeCommand(e[n])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(n){this.bindKey(n,e[n])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var n=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(E){return E}),i=n.pop(),s=B[i];if(B.FUNCTION_KEYS[s])i=B.FUNCTION_KEYS[s].toLowerCase();else if(n.length){if(n.length==1&&n[0]=="shift")return{key:i.toUpperCase(),hashId:-1}}else return{key:i,hashId:-1};for(var o=0,u=n.length;u--;){var f=B.KEY_MODS[n[u]];if(f==null)return typeof console<"u"&&console.error("invalid modifier "+n[u]+" in "+e),!1;o|=f}return{key:i,hashId:o}},this.findKeyCommand=function(n,i){var s=g[n]+i;return this.commandKeyBinding[s]},this.handleKeyboard=function(e,n,i,s){if(!(s<0)){var o=g[n]+i,u=this.commandKeyBinding[o];return e.$keyChain&&(e.$keyChain+=" "+o,u=this.commandKeyBinding[e.$keyChain]||u),u&&(u=="chainKeys"||u[u.length-1]=="chainKeys")?(e.$keyChain=e.$keyChain||o,{command:"null"}):(e.$keyChain&&((!n||n==4)&&i.length==1?e.$keyChain=e.$keyChain.slice(0,-o.length-1):(n==-1||s>0)&&(e.$keyChain="")),{command:u})}},this.getStatusText=function(e,n){return n.$keyChain||""}}.call(l.prototype),b.HashHandler=l,b.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("../lib/oop"),A=$("../keyboard/hash_handler").MultiHashHandler,g=$("../lib/event_emitter").EventEmitter,l=function(r,t){A.call(this,t,r),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};B.inherits(l,A),function(){B.implement(this,g),this.exec=function(r,t,e){if(Array.isArray(r)){for(var n=r.length;n--;)if(this.exec(r[n],t,e))return!0;return!1}if(typeof r=="string"&&(r=this.commands[r]),!r||t&&t.$readOnly&&!r.readOnly||r.isAvailable&&!r.isAvailable(t))return!1;var i={editor:t,command:r,args:e};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue!==!1},this.toggleRecording=function(r){if(!this.$inReplay)return r&&r._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(t){this.macro.push([t.command,t.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(r){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(r);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,r):this.exec(t[0],r,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(r){return r.map(function(t){return typeof t[0]!="string"&&(t[0]=t[0].name),t[1]||(t=t[0]),t})}}.call(l.prototype),b.CommandManager=l}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function($,b,K){"use strict";var B=$("../lib/lang"),A=$("../config"),g=$("../range").Range;function l(r,t){return{win:r,mac:t}}b.commands=[{name:"showSettingsMenu",bindKey:l("Ctrl-,","Command-,"),exec:function(r){A.loadModule("ace/ext/settings_menu",function(t){t.init(r),r.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:l("Alt-E","F4"),exec:function(r){A.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(r,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:l("Alt-Shift-E","Shift-F4"),exec:function(r){A.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(r,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:l("Ctrl-A","Command-A"),exec:function(r){r.selectAll()},readOnly:!0},{name:"centerselection",bindKey:l(null,"Ctrl-L"),exec:function(r){r.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:l("Ctrl-L","Command-L"),exec:function(r){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||r.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:l("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(r){r.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:l("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(r){r.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:l("F2","F2"),exec:function(r){r.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:l("Alt-F2","Alt-F2"),exec:function(r){r.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:l(null,"Ctrl-Command-Option-0"),exec:function(r){r.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:l("Alt-0","Command-Option-0"),exec:function(r){r.session.foldAll(),r.session.unfold(r.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:l("Alt-Shift-0","Command-Option-Shift-0"),exec:function(r){r.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:l("Ctrl-K","Command-G"),exec:function(r){r.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:l("Ctrl-Shift-K","Command-Shift-G"),exec:function(r){r.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:l("Alt-K","Ctrl-G"),exec:function(r){r.selection.isEmpty()?r.selection.selectWord():r.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:l("Alt-Shift-K","Ctrl-Shift-G"),exec:function(r){r.selection.isEmpty()?r.selection.selectWord():r.findPrevious()},readOnly:!0},{name:"find",bindKey:l("Ctrl-F","Command-F"),exec:function(r){A.loadModule("ace/ext/searchbox",function(t){t.Search(r)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(r){r.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:l("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(r){r.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:l("Ctrl-Home","Command-Home|Command-Up"),exec:function(r){r.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:l("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(r){r.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:l("Up","Up|Ctrl-P"),exec:function(r,t){r.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:l("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(r){r.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:l("Ctrl-End","Command-End|Command-Down"),exec:function(r){r.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:l("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(r){r.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:l("Down","Down|Ctrl-N"),exec:function(r,t){r.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:l("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(r){r.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:l("Ctrl-Left","Option-Left"),exec:function(r){r.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:l("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(r){r.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:l("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(r){r.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:l("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(r){r.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:l("Left","Left|Ctrl-B"),exec:function(r,t){r.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:l("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(r){r.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:l("Ctrl-Right","Option-Right"),exec:function(r){r.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:l("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(r){r.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:l("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(r){r.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:l("Shift-Right","Shift-Right"),exec:function(r){r.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:l("Right","Right|Ctrl-F"),exec:function(r,t){r.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(r){r.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:l(null,"Option-PageDown"),exec:function(r){r.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:l("PageDown","PageDown|Ctrl-V"),exec:function(r){r.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(r){r.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:l(null,"Option-PageUp"),exec:function(r){r.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(r){r.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:l("Ctrl-Up",null),exec:function(r){r.renderer.scrollBy(0,-2*r.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:l("Ctrl-Down",null),exec:function(r){r.renderer.scrollBy(0,2*r.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(r){r.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(r){r.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:l("Ctrl-Alt-E","Command-Option-E"),exec:function(r){r.commands.toggleRecording(r)},readOnly:!0},{name:"replaymacro",bindKey:l("Ctrl-Shift-E","Command-Shift-E"),exec:function(r){r.commands.replay(r)},readOnly:!0},{name:"jumptomatching",bindKey:l("Ctrl-P","Ctrl-P"),exec:function(r){r.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:l("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(r){r.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:l("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(r){r.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:l(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(r){},readOnly:!0},{name:"cut",exec:function(r){var t=r.getSelectionRange();r._emit("cut",t),r.selection.isEmpty()||(r.session.remove(t),r.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(r,t){r.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:l("Ctrl-D","Command-D"),exec:function(r){r.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:l("Ctrl-Shift-D","Command-Shift-D"),exec:function(r){r.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:l("Ctrl-Alt-S","Command-Alt-S"),exec:function(r){r.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:l("Ctrl-/","Command-/"),exec:function(r){r.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:l("Ctrl-Shift-/","Command-Shift-/"),exec:function(r){r.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:l("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(r){r.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:l("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(r){r.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:l("Ctrl-H","Command-Option-F"),exec:function(r){A.loadModule("ace/ext/searchbox",function(t){t.Search(r,!0)})}},{name:"undo",bindKey:l("Ctrl-Z","Command-Z"),exec:function(r){r.undo()}},{name:"redo",bindKey:l("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(r){r.redo()}},{name:"copylinesup",bindKey:l("Alt-Shift-Up","Command-Option-Up"),exec:function(r){r.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:l("Alt-Up","Option-Up"),exec:function(r){r.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:l("Alt-Shift-Down","Command-Option-Down"),exec:function(r){r.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:l("Alt-Down","Option-Down"),exec:function(r){r.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:l("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(r){r.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:l("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(r){r.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:l("Shift-Delete",null),exec:function(r){if(r.selection.isEmpty())r.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:l("Alt-Backspace","Command-Backspace"),exec:function(r){r.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:l("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(r){r.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:l("Ctrl-Shift-Backspace",null),exec:function(r){var t=r.selection.getRange();t.start.column=0,r.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:l("Ctrl-Shift-Delete",null),exec:function(r){var t=r.selection.getRange();t.end.column=Number.MAX_VALUE,r.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:l("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(r){r.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:l("Ctrl-Delete","Alt-Delete"),exec:function(r){r.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:l("Shift-Tab","Shift-Tab"),exec:function(r){r.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:l("Tab","Tab"),exec:function(r){r.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:l("Ctrl-[","Ctrl-["),exec:function(r){r.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:l("Ctrl-]","Ctrl-]"),exec:function(r){r.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(r,t){r.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(r,t){r.insert(B.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:l(null,"Ctrl-O"),exec:function(r){r.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:l("Alt-Shift-X","Ctrl-T"),exec:function(r){r.transposeLetters()},multiSelectAction:function(r){r.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:l("Ctrl-U","Ctrl-U"),exec:function(r){r.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:l("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(r){r.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:l("Ctrl-Shift-L","Command-Shift-L"),exec:function(r){var t=r.selection.getRange();t.start.column=t.end.column=0,t.end.row++,r.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:l(null,null),exec:function(r){for(var t=r.selection.isBackwards(),e=t?r.selection.getSelectionLead():r.selection.getSelectionAnchor(),n=t?r.selection.getSelectionAnchor():r.selection.getSelectionLead(),i=r.session.doc.getLine(e.row).length,s=r.session.doc.getTextRange(r.selection.getRange()),o=s.replace(/\n\s*/," ").length,u=r.session.doc.getLine(e.row),f=e.row+1;f<=n.row+1;f++){var E=B.stringTrimLeft(B.stringTrimRight(r.session.doc.getLine(f)));E.length!==0&&(E=" "+E),u+=E}n.row+10?(r.selection.moveCursorTo(e.row,e.column),r.selection.selectTo(e.row,e.column+o)):(i=r.session.doc.getLine(e.row).length>i?i+1:i,r.selection.moveCursorTo(e.row,i))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:l(null,null),exec:function(r){var t=r.session.doc.getLength()-1,e=r.session.doc.getLine(t).length,n=r.selection.rangeList.ranges,i=[];n.length<1&&(n=[r.selection.getRange()]);for(var s=0;s0&&this.$blockScrolling--;var p=d&&d.scrollIntoView;if(p){switch(p){case"center-animate":p="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var C=this.selection.getRange(),h=this.renderer.layerConfig;(C.start.row>=h.lastRow||C.end.row<=h.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:break}p=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(a){if(this.$mergeUndoDeltas){var d=this.prevOp,p=this.$mergeableCommands,C=d.command&&a.command.name==d.command.name;if(a.command.name=="insertstring"){var h=a.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),C=C&&this.mergeNextCommand&&(!/\s/.test(h)||/\s/.test(d.args)),this.mergeNextCommand=!0}else C=C&&p.indexOf(a.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(C=!1),C?this.session.mergeUndoDeltas=!0:p.indexOf(a.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(a,d){if(a&&typeof a=="string"){this.$keybindingId=a;var p=this;F.loadModule(["keybinding",a],function(C){p.$keybindingId==a&&p.keyBinding.setKeyboardHandler(C&&C.handler),d&&d()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(a),d&&d()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){this.curOp&&this.endOperation(),this.curOp={};var d=this.session;if(d){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var p=this.session.getSelection();p.off("changeCursor",this.$onCursorChange),p.off("changeSelection",this.$onSelectionChange)}this.session=a,a?(this.$onDocumentChange=this.onDocumentChange.bind(this),a.on("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),a.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=a.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(a)),this._signal("changeSession",{session:a,oldSession:d}),this.curOp=null,d&&d._signal("changeEditor",{oldEditor:this}),a&&a._signal("changeEditor",{editor:this}),a&&a.bgTokenizer&&a.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(a,d){return this.session.doc.setValue(a),d?d==1?this.navigateFileEnd():d==-1&&this.navigateFileStart():this.selectAll(),a},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(a){this.renderer.onResize(a)},this.setTheme=function(a,d){this.renderer.setTheme(a,d)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.getFontSize=function(){return this.getOption("fontSize")||A.computedStyle(this.container,"fontSize")},this.setFontSize=function(a){this.setOption("fontSize",a)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var d=a.session;if(!(!d||!d.bgTokenizer)){var p=d.findMatchingBracket(a.getCursorPosition());if(p)var C=new o(p.row,p.column,p.row,p.column+1);else if(d.$mode.getMatching)var C=d.$mode.getMatching(a.session);C&&(d.$bracketHighlight=d.addMarker(C,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var a=this;this.$highlightTagPending=!0,setTimeout(function(){a.$highlightTagPending=!1;var d=a.session;if(!(!d||!d.bgTokenizer)){var p=a.getCursorPosition(),C=new c(a.session,p.row,p.column),h=C.getCurrentToken();if(!h||!/\b(?:tag-open|tag-name)/.test(h.type)){d.removeMarker(d.$tagHighlight),d.$tagHighlight=null;return}if(!(h.type.indexOf("tag-open")!=-1&&(h=C.stepForward(),!h))){var v=h.value,w=0,y=C.stepBackward();if(y.value=="<")do y=h,h=C.stepForward(),h&&h.value===v&&h.type.indexOf("tag-name")!==-1&&(y.value==="<"?w++:y.value===""&&w--);while(h&&w>=0);else{do h=y,y=C.stepBackward(),h&&h.value===v&&h.type.indexOf("tag-name")!==-1&&(y.value==="<"?w++:y.value===""&&w--);while(y&&w<=0);C.stepForward()}if(!h){d.removeMarker(d.$tagHighlight),d.$tagHighlight=null;return}var D=C.getCurrentTokenRow(),S=C.getCurrentTokenColumn(),L=new o(D,S,D,S+h.value.length),_=d.$backMarkers[d.$tagHighlight];d.$tagHighlight&&_!=null&&L.compareRange(_.range)!==0&&(d.removeMarker(d.$tagHighlight),d.$tagHighlight=null),L&&!d.$tagHighlight&&(d.$tagHighlight=d.addMarker(L,"ace_bracket","text"))}}},50)}},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(a){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",a))},this.onBlur=function(a){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",a))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(a){var d=this.session.$useWrapMode,p=a.start.row==a.end.row?a.end.row:1/0;this.renderer.updateLines(a.start.row,p,d),this._signal("change",a),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(a){var d=a.data;this.renderer.updateLines(d.first,d.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(F.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var a=this.getSession(),d;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(d=this.getCursorPosition()),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(d=!1)),a.$highlightLineMarker&&!d)a.removeMarker(a.$highlightLineMarker.id),a.$highlightLineMarker=null;else if(!a.$highlightLineMarker&&d){var p=new o(d.row,d.column,d.row,1/0);p.id=a.addMarker(p,"ace_active-line","screenLine"),a.$highlightLineMarker=p}else d&&(a.$highlightLineMarker.start.row=d.row,a.$highlightLineMarker.end.row=d.row,a.$highlightLineMarker.start.column=d.column,a._signal("changeBackMarker"))},this.onSelectionChange=function(a){var d=this.session;if(d.$selectionMarker&&d.removeMarker(d.$selectionMarker),d.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var p=this.selection.getRange(),C=this.getSelectionStyle();d.$selectionMarker=d.addMarker(p,"ace_selection",C)}var h=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(h),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var a=this.session,d=this.getSelectionRange();if(!(d.isEmpty()||d.isMultiLine())){var p=d.start.column-1,C=d.end.column+1,h=a.getLine(d.start.row),v=h.length,w=h.substring(Math.max(p,0),Math.min(C,v));if(!(p>=0&&/^[\w\d]/.test(w)||C<=v&&/[\w\d]$/.test(w))&&(w=h.substring(d.start.column,d.end.column),!!/^[\w\d]+$/.test(w))){var y=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:w});return y}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(a){this.renderer.updateText(),this._emit("changeMode",a)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var a=this.getSelectedText();return this._signal("copy",a),a},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(a,d){var p={text:a,event:d};this.commands.exec("paste",this,p)},this.$handlePaste=function(a){typeof a=="string"&&(a={text:a}),this._signal("paste",a);var d=a.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(d);else{var p=d.split(/\r\n|\r|\n/),C=this.selection.rangeList.ranges;if(p.length>C.length||p.length<2||!p[1])return this.commands.exec("insertstring",this,d);for(var h=C.length;h--;){var v=C[h];v.isEmpty()||this.session.remove(v),this.session.insert(v.start,p[h])}}},this.execCommand=function(a,d){return this.commands.exec(a,this,d)},this.insert=function(a,d){var p=this.session,C=p.getMode(),h=this.getCursorPosition();if(this.getBehavioursEnabled()&&!d){var v=C.transformAction(p.getState(h.row),"insertion",this,p,a);v&&(a!==v.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),a=v.text)}if(a==" "&&(a=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&a.indexOf(`
`)==-1){var w=new o.fromPoints(h,h);w.end.column+=a.length,this.session.remove(w)}}else{var w=this.getSelectionRange();h=this.session.remove(w),this.clearSelection()}if(a==`
`||a==`\r
`){var L=p.getLine(h.row);if(h.column>L.search(/\S|$/)){var y=L.substr(h.column).search(/\S|$/);p.doc.removeInLine(h.row,h.column,h.column+y)}}this.clearSelection();var D=h.column,S=p.getState(h.row),L=p.getLine(h.row),_=C.checkOutdent(S,L,a),O=p.insert(h,a);if(v&&v.selection&&(v.selection.length==2?this.selection.setSelectionRange(new o(h.row,D+v.selection[0],h.row,D+v.selection[1])):this.selection.setSelectionRange(new o(h.row+v.selection[0],v.selection[1],h.row+v.selection[2],v.selection[3]))),p.getDocument().isNewLine(a)){var z=C.getNextLineIndent(S,L.slice(0,h.column),p.getTabString());p.insert({row:h.row+1,column:0},z)}_&&C.autoOutdent(S,p,h.row)},this.onTextInput=function(a){this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,d,p){this.keyBinding.onCommandKey(a,d,p)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.setOption("scrollSpeed",a)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(a){this.setOption("dragDelay",a)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(a){this.setOption("selectionStyle",a)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(a){this.setOption("highlightActiveLine",a)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(a){this.setOption("highlightGutterLine",a)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(a){this.setOption("highlightSelectedWord",a)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(a){this.renderer.setAnimatedScroll(a)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(a){this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(a){this.renderer.setDisplayIndentGuides(a)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(a){this.setOption("readOnly",a)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(a){this.setOption("behavioursEnabled",a)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(a){this.setOption("wrapBehavioursEnabled",a)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(a){this.setOption("showFoldWidgets",a)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(a){this.setOption("fadeFoldWidgets",a)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(a){this.selection.isEmpty()&&(a=="left"?this.selection.selectLeft():this.selection.selectRight());var d=this.getSelectionRange();if(this.getBehavioursEnabled()){var p=this.session,C=p.getState(d.start.row),h=p.getMode().transformAction(C,"deletion",this,p,d);if(d.end.column===0){var v=p.getTextRange(d);if(v[v.length-1]==`
`){var w=p.getLine(d.end.row);/^\s+$/.test(w)&&(d.end.column=w.length)}}h&&(d=h)}this.session.remove(d),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert(`
`),this.moveCursorToPosition(a)},this.transposeLetters=function(){if(this.selection.isEmpty()){var a=this.getCursorPosition(),d=a.column;if(d!==0){var p=this.session.getLine(a.row),C,h;dy.toLowerCase()?1:0});for(var h=new o(0,0,0,0),C=a.first;C<=a.last;C++){var v=d.getLine(C);h.start.row=C,h.end.row=C,h.end.column=v.length,d.replace(h,p[C-a.first])}},this.toggleCommentLines=function(){var a=this.session.getState(this.getCursorPosition().row),d=this.$getSelectedRows();this.session.getMode().toggleCommentLines(a,this.session,d.first,d.last)},this.toggleBlockComment=function(){var a=this.getCursorPosition(),d=this.session.getState(a.row),p=this.getSelectionRange();this.session.getMode().toggleBlockComment(d,this.session,p,a)},this.getNumberAt=function(a,d){var p=/[\-]?[0-9]+(?:\.[0-9]+)?/g;p.lastIndex=0;for(var C=this.session.getLine(a);p.lastIndex=d){var v={value:h[0],start:h.index,end:h.index+h[0].length};return v}}return null},this.modifyNumber=function(a){var d=this.selection.getCursor().row,p=this.selection.getCursor().column,C=new o(d,p-1,d,p),h=this.session.getTextRange(C);if(!isNaN(parseFloat(h))&&isFinite(h)){var v=this.getNumberAt(d,p);if(v){var w=v.value.indexOf(".")>=0?v.start+v.value.indexOf(".")+1:v.end,y=v.start+v.value.length-w,D=parseFloat(v.value);D*=Math.pow(10,y),w!==v.end&&pz+1)break;z=V.last}for(L--,y=this.session.$moveLines(O,z,d?0:a),d&&a==-1&&(_=L+1);_<=L;)w[_].moveBy(y,0),_++;d||(y=0),D+=y}h.fromOrientedRange(h.ranges[0]),h.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(a){return a=(a||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(a.start.row),last:this.session.getRowFoldEnd(a.end.row)}},this.onCompositionStart=function(a){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(a){this.renderer.setCompositionText(a)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(a){return a>=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.isRowFullyVisible=function(a){return a>=this.renderer.getFirstFullyVisibleRow()&&a<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(a,d){var p=this.renderer,C=this.renderer.layerConfig,h=a*Math.floor(C.height/C.lineHeight);this.$blockScrolling++,d===!0?this.selection.$moveSelection(function(){this.moveCursorBy(h,0)}):d===!1&&(this.selection.moveCursorBy(h,0),this.selection.clearSelection()),this.$blockScrolling--;var v=p.scrollTop;p.scrollBy(0,h*C.lineHeight),d!=null&&p.scrollCursorIntoView(null,.5),p.animateScrolling(v)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,d,p,C){this.renderer.scrollToLine(a,d,p,C)},this.centerSelection=function(){var a=this.getSelectionRange(),d={row:Math.floor(a.start.row+(a.end.row-a.start.row)/2),column:Math.floor(a.start.column+(a.end.column-a.start.column)/2)};this.renderer.alignCursor(d,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,d){this.selection.moveCursorTo(a,d)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.jumpToMatching=function(a,d){var p=this.getCursorPosition(),C=new c(this.session,p.row,p.column),h=C.getCurrentToken(),v=h||C.stepForward();if(v){var w,y=!1,D={},S=p.column-v.start,L,_={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(v.value.match(/[{}()\[\]]/g)){for(;S=0;--v)this.$tryReplace(p[v],a)&&C++;return this.selection.setSelectionRange(h),this.$blockScrolling-=1,C},this.$tryReplace=function(a,d){var p=this.session.getTextRange(a);return d=this.$search.replace(p,d),d!==null?(a.end=this.session.replace(a,d),a):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,d,p){d||(d={}),typeof a=="string"||a instanceof RegExp?d.needle=a:typeof a=="object"&&B.mixin(d,a);var C=this.selection.getRange();d.needle==null&&(a=this.session.getTextRange(C)||this.$search.$options.needle,a||(C=this.session.getWordRange(C.start.row,C.start.column),a=this.session.getTextRange(C)),this.$search.set({needle:a})),this.$search.set(d),d.start||this.$search.set({start:C});var h=this.$search.find(this.session);if(d.preventScroll)return h;if(h)return this.revealRange(h,p),h;d.backwards?C.start=C.end:C.end=C.start,this.selection.setRange(C)},this.findNext=function(a,d){this.find({skipCurrent:!0,backwards:!1},a,d)},this.findPrevious=function(a,d){this.find(a,{skipCurrent:!0,backwards:!0},d)},this.revealRange=function(a,d){this.$blockScrolling+=1,this.session.unfold(a),this.selection.setSelectionRange(a),this.$blockScrolling-=1;var p=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(a.start,a.end,.5),d!==!1&&this.renderer.animateScrolling(p)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(a){if(a){var d,p=this,C=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var h=this.$scrollAnchor;h.style.cssText="position:absolute",this.container.insertBefore(h,this.container.firstChild);var v=this.on("changeSelection",function(){C=!0}),w=this.renderer.on("beforeRender",function(){C&&(d=p.renderer.container.getBoundingClientRect())}),y=this.renderer.on("afterRender",function(){if(C&&d&&(p.isFocused()||p.searchBox&&p.searchBox.isFocused())){var D=p.renderer,S=D.$cursorLayer.$pixelPos,L=D.layerConfig,_=S.top-L.offset;S.top>=0&&_+d.top<0?C=!0:S.topwindow.innerHeight?C=!1:C=null,C!=null&&(h.style.top=_+"px",h.style.left=S.left+"px",h.style.height=L.lineHeight+"px",h.scrollIntoView(C)),C=d=null}});this.setAutoScrollEditorIntoView=function(D){D||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",v),this.renderer.off("afterRender",y),this.renderer.off("beforeRender",w))}}},this.$resetCursorStyle=function(){var a=this.$cursorStyle||"ace",d=this.renderer.$cursorLayer;d&&(d.setSmoothBlinking(/smooth/.test(a)),d.isBlinking=!this.$readOnly&&a!="wide",A.setCssClass(d.element,"ace_slim-cursors",/slim/.test(a)))}}.call(m.prototype),F.defineOptions(m.prototype,"editor",{selectionStyle:{set:function(a){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:a})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(a){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(a){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(a){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(a){this.setAutoScrollEditorIntoView(a)}},keyboardHandler:{set:function(a){this.setKeyboardHandler(a)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),b.Editor=m}),ace.define("ace/undomanager",["require","exports","module"],function($,b,K){"use strict";var B=function(){this.reset()};(function(){this.execute=function(r){var t=r.args[0];this.$doc=r.args[1],r.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(r){var t=this.$undoStack.pop(),e=null;return t&&(e=this.$doc.undoChanges(t,r),this.$redoStack.push(t),this.dirtyCounter--),e},this.redo=function(r){var t=this.$redoStack.pop(),e=null;return t&&(e=this.$doc.redoChanges(this.$deserializeDeltas(t),r),this.$undoStack.push(t),this.dirtyCounter++),e},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(r){return l(r,A)},this.$deserializeDeltas=function(r){return l(r,g)};function A(r){return{action:r.action,start:r.start,end:r.end,lines:r.lines.length==1?null:r.lines,text:r.lines.length==1?r.lines[0]:null}}function g(r){return{action:r.action,start:r.start,end:r.end,lines:r.lines||[r.text]}}function l(r,t){for(var e=new Array(r.length),n=0;no&&(p=s.end.row+1,s=e.getNextFoldLine(p,s),o=s?s.start.row:1/0),p>i){for(;this.$cells.length>d+1;)a=this.$cells.pop(),this.element.removeChild(a.element);break}a=this.$cells[++d],a||(a={element:null,textNode:null,foldWidget:null},a.element=B.createElement("div"),a.textNode=document.createTextNode(""),a.element.appendChild(a.textNode),this.element.appendChild(a.element),this.$cells[d]=a);var C="ace_gutter-cell ";f[p]&&(C+=f[p]),E[p]&&(C+=E[p]),this.$annotations[p]&&(C+=this.$annotations[p].className),a.element.className!=C&&(a.element.className=C);var h=e.getRowLength(p)*t.lineHeight+"px";if(h!=a.element.style.height&&(a.element.style.height=h),u){var v=u[p];v==null&&(v=u[p]=e.getFoldWidget(p))}if(v){a.foldWidget||(a.foldWidget=B.createElement("span"),a.element.appendChild(a.foldWidget));var C="ace_fold-widget ace_"+v;v=="start"&&p==o&&pn.right-e.right)return"foldWidgets"}}).call(r.prototype),b.Gutter=r}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function($,b,K){"use strict";var B=$("../range").Range,A=$("../lib/dom"),g=function(l){this.element=A.createElement("div"),this.element.className="ace_layer ace_marker-layer",l.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(r){this.$padding=r},this.setSession=function(r){this.session=r},this.setMarkers=function(r){this.markers=r},this.update=function(r){if(r){this.config=r;var t=[];for(var e in this.markers){var n=this.markers[e];if(!n.range){n.update(t,this,this.session,r);continue}var i=n.range.clipRows(r.firstRow,r.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),n.renderer){var s=this.$getTop(i.start.row,r),o=this.$padding+(this.session.$bidiHandler.isBidiRow(i.start.row)?this.session.$bidiHandler.getPosLeft(i.start.column):i.start.column*r.characterWidth);n.renderer(t,i,o,s,r)}else n.type=="fullLine"?this.drawFullLineMarker(t,i,n.clazz,r):n.type=="screenLine"?this.drawScreenLineMarker(t,i,n.clazz,r):i.isMultiLine()?n.type=="text"?this.drawTextMarker(t,i,n.clazz,r):this.drawMultiLineMarker(t,i,n.clazz,r):this.session.$bidiHandler.isBidiRow(i.start.row)?this.drawBidiSingleLineMarker(t,i,n.clazz+" ace_start ace_br15",r):this.drawSingleLineMarker(t,i,n.clazz+" ace_start ace_br15",r)}this.element.innerHTML=t.join("")}},this.$getTop=function(r,t){return(r-t.firstRowScreen)*t.lineHeight};function l(r,t,e,n){return(r?1:0)|(t?2:0)|(e?4:0)|(n?8:0)}this.drawTextMarker=function(r,t,e,n,i){for(var s=this.session,o=t.start.row,u=t.end.row,f=o,E=0,F=0,c=s.getScreenLastRowColumn(f),m=null,a=new B(f,t.start.column,f,F);f<=u;f++)a.start.row=a.end.row=f,a.start.column=f==o?t.start.column:s.getRowWrapIndent(f),a.end.column=c,E=F,F=c,c=f+1c,f==u),this.session.$bidiHandler.isBidiRow(f)?this.drawBidiSingleLineMarker(r,a,m,n,f==u?0:1,i):this.drawSingleLineMarker(r,a,m,n,f==u?0:1,i)},this.drawMultiLineMarker=function(r,t,e,n,i){var s=this.$padding,o,u,f;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var E=t.clone();E.end.row=E.start.row,E.end.column=this.session.getLine(E.start.row).length,this.drawBidiSingleLineMarker(r,E,e+" ace_br1 ace_start",n,null,i)}else o=n.lineHeight,u=this.$getTop(t.start.row,n),f=s+t.start.column*n.characterWidth,r.push("");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var E=t.clone();E.start.row=E.end.row,E.start.column=0,this.drawBidiSingleLineMarker(r,E,e+" ace_br12",n,null,i)}else{var F=t.end.column*n.characterWidth;o=n.lineHeight,u=this.$getTop(t.end.row,n),r.push("")}if(o=(t.end.row-t.start.row-1)*n.lineHeight,!(o<=0)){u=this.$getTop(t.start.row+1,n);var c=(t.start.column?1:0)|(t.end.column?0:8);r.push("")}},this.drawSingleLineMarker=function(r,t,e,n,i,s){var o=n.lineHeight,u=(t.end.column+(i||0)-t.start.column)*n.characterWidth,f=this.$getTop(t.start.row,n),E=this.$padding+t.start.column*n.characterWidth;r.push("")},this.drawBidiSingleLineMarker=function(r,t,e,n,i,s){var o=n.lineHeight,u=this.$getTop(t.start.row,n),f=this.$padding,E=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);E.forEach(function(F){r.push("")})},this.drawFullLineMarker=function(r,t,e,n,i){var s=this.$getTop(t.start.row,n),o=n.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,n)-s),r.push("")},this.drawScreenLineMarker=function(r,t,e,n,i){var s=this.$getTop(t.start.row,n),o=n.lineHeight;r.push("")}}).call(g.prototype),b.Marker=g}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function($,b,K){"use strict";var B=$("../lib/oop"),A=$("../lib/dom"),g=$("../lib/lang"),l=$("../lib/useragent"),r=$("../lib/event_emitter").EventEmitter,t=function(e){this.element=A.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){B.implement(this,r),this.EOF_CHAR="\xB6",this.EOL_CHAR_LF="\xAC",this.EOL_CHAR_CRLF="\xA4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\xB7",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()==`
`?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(n){this._signal("changeCharacterSize",n)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var n=this.$tabStrings=[0],i=1;i"+g.stringRepeat(this.TAB_CHAR,i)+""):n.push(g.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var s="ace_indent-guide",o="",u="";if(this.showInvisibles){s+=" ace_invisible",o=" ace_invisible_space",u=" ace_invisible_tab";var f=g.stringRepeat(this.SPACE_CHAR,this.tabSize),E=g.stringRepeat(this.TAB_CHAR,this.tabSize)}else var f=g.stringRepeat(" ",this.tabSize),E=f;this.$tabStrings[" "]=""+f+"",this.$tabStrings[" "]=""+E+""}},this.updateLines=function(e,n,i){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;for(var s=Math.max(n,e.firstRow),o=Math.min(i,e.lastRow),u=this.element.childNodes,f=0,E=e.firstRow;Ec&&(E=F.end.row+1,F=this.session.getNextFoldLine(E,F),c=F?F.start.row:1/0),!(E>o);){var m=u[f++];if(m){var a=[];this.$renderLine(a,E,!this.$useLineGroups(),E==c?F:!1),m.style.height=e.lineHeight*this.session.getRowLength(E)+"px",m.innerHTML=a.join("")}E++}},this.scrollLines=function(e){var n=this.config;if(this.config=e,!n||n.lastRow0;s--)i.removeChild(i.firstChild);if(n.lastRow>e.lastRow)for(var s=this.session.getFoldedRowCount(e.lastRow+1,n.lastRow);s>0;s--)i.removeChild(i.lastChild);if(e.firstRown.lastRow){var o=this.$renderLinesFragment(e,n.lastRow+1,e.lastRow);i.appendChild(o)}},this.$renderLinesFragment=function(e,n,i){for(var s=this.element.ownerDocument.createDocumentFragment(),o=n,u=this.session.getNextFoldLine(o),f=u?u.start.row:1/0;o>f&&(o=u.end.row+1,u=this.session.getNextFoldLine(o,u),f=u?u.start.row:1/0),!(o>i);){var E=A.createElement("div"),F=[];if(this.$renderLine(F,o,!1,o==f?u:!1),E.innerHTML=F.join(""),this.$useLineGroups())E.className="ace_line_group",s.appendChild(E),E.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;E.firstChild;)s.appendChild(E.firstChild);o++}return s},this.update=function(e){this.config=e;for(var n=[],i=e.firstRow,s=e.lastRow,o=i,u=this.session.getNextFoldLine(o),f=u?u.start.row:1/0;o>f&&(o=u.end.row+1,u=this.session.getNextFoldLine(o,u),f=u?u.start.row:1/0),!(o>s);)this.$useLineGroups()&&n.push(""),this.$renderLine(n,o,!1,o==f?u:!1),this.$useLineGroups()&&n.push("
"),o++;this.element.innerHTML=n.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,n,i,s){var o=this,u=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=function(m,a,d,p,C){if(a)return o.showInvisibles?""+g.stringRepeat(o.SPACE_CHAR,m.length)+"":m;if(m=="&")return"&";if(m=="<")return"<";if(m==">")return">";if(m==" "){var h=o.session.getScreenTabSize(n+p);return n+=h-1,o.$tabStrings[h]}else if(m=="\u3000"){var v=o.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w=o.showInvisibles?o.SPACE_CHAR:"";return n+=1,""+w+""}else return d?""+o.SPACE_CHAR+"":(n+=1,""+m+"")},E=s.replace(u,f);if(this.$textToken[i.type])e.push(E);else{var F="ace_"+i.type.replace(/\./g," ace_"),c="";i.type=="fold"&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",E,"")}return n+s.length},this.renderIndentGuide=function(e,n,i){var s=n.search(this.$indentGuideRe);return s<=0||s>=i?n:n[0]==" "?(s-=s%this.tabSize,e.push(g.stringRepeat(this.$tabStrings[" "],s/this.tabSize)),n.substr(s)):n[0]==" "?(e.push(g.stringRepeat(this.$tabStrings[" "],s)),n.substr(s)):n},this.$renderWrappedLine=function(e,n,i,s){for(var o=0,u=0,f=i[0],E=0,F=0;F=f;)E=this.$renderToken(e,E,c,m.substring(0,f-o)),m=m.substring(f-o),o=f,s||e.push("