PageSourceSearch

https://razorsys.com/1566.ae1fd24b6f8bccde.js

js razorsys.com collected 2026-10-04 03:42:40 UTC 646,409 bytes, 1 lines download raw bytes

1(self.webpackChunkwebclient_webpack=self.webpackChunkwebclient_webpack||[]).push([[1566],{56699(Y,te,G){"use strict";G.d(te,{x:()=>O});var w=G(6507),e=(G(5621),G(61421),G(50763),G(94177),G(25949),G(84397)),n=G.n(e),o=G(16596),l=G.n(o),f=(G(12591),G(17705)),m=G(35547),y=G(85802),p=G(69296),S=G(89417),$=G(98352),A=G(89079),E=G(95604),x=G(88753),b=G(3417),g=G.n(b),d=G(68018),k=G(2275);const T=["ace"],L=["container"];function R(N,D){if(1&N&&(m.j41(0,"app-simple-copy",6)(1,"span",8),m.EFF(2),m.nI1(3,"translate"),m.k0s()()),2&N){const B=m.XpG();m.Y8G("source",B.editorValue)("iconFirst",!0),m.R7$(2),m.JRh(m.bMT(3,3,"_i18n.DisplayCopy"))}}function I(N,D){if(1&N){const B=m.RV6();m.j41(0,"button",9),m.bIt("click",function(){y.eBV(B);const z=m.XpG();return y.Njj(z.onResetClick())}),m.EFF(1),m.nI1(2,"translate"),m.k0s()}2&N&&(m.R7$(),m.SpI(" ",m.bMT(2,1,"_i18n.Reset")," "))}w.config.setModuleUrl("ace/mode/xml_worker",(0,x.lE)("/assets/worker-xml.js")),w.config.setModuleUrl("ace/mode/html_worker",(0,x.lE)("/assets/worker-html.js"));let O=(()=>{class N extends $.z{themes=(0,y.WQX)(p.Z);destroy$=(0,y.WQX)(y.abz);fs;isFullscreen=!1;editor;label;readOnly;mode="xml";isShowCopy=!1;showReset=!1;resetClicked=(0,f.CGW)();fullscreenChanged=(0,f.CGW)();aceElement;containerEl;fullscreenTarget;setAnnotations(B){this.editor.getSession().setAnnotations(B)}get isCustomFsClass(){return this.isFullscreen&&!!this.fullscreenTarget}onResetClick(){this.resetClicked.emit()}get editorValue(){return this.editor?.getValue()||this.value||""}insertTextAtCursor(B){this.editor&&(this.editor.insert(B),this.editor.focus())}emitEvent=!0;writeValue(B){super.writeValue(B||""),this.emitEvent=!1,this.editor&&this.editor.session.setValue(this.value),this.emitEvent=!0}ngAfterViewInit(){const B=this.fullscreenTarget instanceof m.aKT?this.fullscreenTarget.nativeElement:this.fullscreenTarget||this.containerEl.nativeElement;this.fs=g()(B),this.fs.on("attain",()=>{this.isFullscreen=!0,this.fullscreenChanged.emit(!0),this.cd.markForCheck()}),this.fs.on("release",()=>{this.isFullscreen=!1,this.fullscreenChanged.emit(!1),this.cd.markForCheck()}),this.editor=(0,w.edit)(this.aceElement.nativeElement),this.initAce()}toggleFullscreen(){try{this.isFullscreen?document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen():this.fs.request()}catch{}}initAce(){this.editor.setOptions({mode:"ace/mode/"+this.mode,readOnly:this.readOnly||this.disabled,highlightActiveLine:!0,showPrintMargin:!1}),this.editor.on("change",()=>{this.emitEvent&&(super.valueChanged(this.editor.getValue()||""),this.markAsTouched())}),this.themes.applicationColorScheme$.pipe((0,A.pQ)(this.destroy$)).subscribe(B=>this.editor.setTheme("dark"===B?l():n())),this.value&&this.editor.session.setValue(this.value),this.cd.markForCheck()}setDisabledState(B){super.setDisabledState(B),this.editor?.setOptions({readOnly:this.readOnly||this.disabled})}ngOnChanges(B){B.readOnly&&this.editor?.setOptions({readOnly:this.readOnly||this.disabled})}ngOnDestroy(){this.editor?.destroy()}static \u0275fac=(()=>{let B;return function(z){return(B||(B=m.xGo(N)))(z||N)}})();static \u0275cmp=m.VBU({type:N,selectors:[["app-ace"]],viewQuery:function(W,z){if(1&W&&m.GBs(T,7)(L,7),2&W){let H;m.mGM(H=m.lsd())&&(z.aceElement=H.first),m.mGM(H=m.lsd())&&(z.containerEl=H.first)}},inputs:{label:"label",readOnly:"readOnly",mode:"mode",isShowCopy:"isShowCopy",showReset:"showReset",fullscreenTarget:"fullscreenTarget"},outputs:{resetClicked:"resetClicked",fullscreenChanged:"fullscreenChanged"},features:[m.Jv_([{provide:S.kq,multi:!0,useExisting:N}]),m.Vt3,m.OA$],decls:12,vars:12,consts:[["container",""],["ace",""],[3,"label"],[1,"ace-container"],[1,"ace"],["type","button","data-qa","fullscreen-btn",1,"btn","btn-border",3,"click"],["data-qa","copy-btn","tooltipContainer","body",1,"copy-button",3,"source","iconFirst"],["type","button","data-qa","ace-reset",1,"btn","btn-border"],[1,"line-clamp-1"],["type","button","data-qa","ace-reset",1,"btn","btn-border",3,"click"]],template:function(W,z){1&W&&(m.j41(0,"field-wrapper",2)(1,"div",3,0),m.nrm(3,"div",4,1),m.j41(5,"div")(6,"button",5),m.bIt("click",function(){return z.toggleFullscreen()}),m.EFF(7),m.nI1(8,"translate"),m.nI1(9,"translate"),m.k0s(),m.nVh(10,R,4,5,"app-simple-copy",6),m.nVh(11,I,3,3,"button",7),m.k0s()()()),2&W&&(m.Y8G("label",z.label),m.R7$(),m.AVh("fullscreen",z.isCustomFsClass),m.R7$(4),m.HbH(z.isFullscreen?"button-block-fullscreen":"button-block"),m.R7$(2),m.SpI(" ",z.isFullscreen?m.bMT(8,8,"_i18n.CloseFullScreen"):m.bMT(9,10,"_i18n.PrefFullScreen")," "),m.R7$(3),m.vxM(z.isShowCopy&&z.editorValue?10:-1),m.R7$(),m.vxM(z.showReset?11:-1))},dependencies:[E.z,k.T,d.D9],styles:[".ace-container[_ngcontent-%COMP%]{position:relative;width:100%;height:60vh;isolation:isolate}.ace-container.fullscreen[_ngcontent-%COMP%]{height:90vh}.ace[_ngcontent-%COMP%]{border:1px solid var(--input-border-color);display:block;width:100%;height:100%}.ace[_ngcontent-%COMP%]     .ace_editor, .ace[_ngcontent-%COMP%]     .ace_scroller{width:100%;height:100%}.ace[_ngcontent-%COMP%]     .ace_search{right:55px}.button-block[_ngcontent-%COMP%], .button-block-fullscreen[_ngcontent-%COMP%]{position:absolute;right:1.1rem;top:1rem;display:flex;flex-direction:column;gap:.5rem}.copy-button[_ngcontent-%COMP%]{padding:.375rem .75rem;border:1px solid var(--input-border-color);display:flex;align-items:center;height:32px;
1cursor:pointer}.copy-button[_ngcontent-%COMP%]:hover{background:var(--bg-icon-primary-hover)}.ng-touched.ng-invalid[_nghost-%COMP%]   .ace[_ngcontent-%COMP%]{border-color:var(--error)}"],changeDetection:0})}return N})()},74536(Y,te,G){"use strict";G.d(te,{Z:()=>F});var w=G(35547),M=G(85802);let F=(()=>{class _{static \u0275fac=function(a){return new(a||_)};static \u0275cmp=w.VBU({type:_,selectors:[["app-cog-solid-icon"],["","app-cog-solid-icon",""]],decls:2,vars:0,consts:[["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 512 512"],["d","m487.4 315.7-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]],template:function(a,c){1&a&&(M.qSk(),w.rj2(0,"svg",0),w.Hgh(1,"path",1),w.eux())},encapsulation:2})}return _})()},6507(Y,te,G){Y=G.nmd(Y),function(){var M=function(){return this}();!M&&typeof window<"u"&&(M=window);var F=function(s,r,i){"string"==typeof s?(2==arguments.length&&(i=r),F.modules[s]||(F.payloads[s]=i,F.modules[s]=null)):F.original?F.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};F.modules={},F.payloads={};var _=function(s,r,i){if("string"==typeof r){var t=a(s,r);if(null!=t)return i&&i(),t}else if("[object Array]"===Object.prototype.toString.call(r)){for(var e=[],n=0,o=r.length;n<o;++n){var l=a(s,r[n]);if(null==l&&C.original)return;e.push(l)}return i&&i.apply(null,e)||!0}},C=function(s,r){var i=_("",s,r);return null==i&&C.original?C.original.apply(this,arguments):i},v=function(s,r){if(-1!==r.indexOf("!")){var i=r.split("!");return v(s,i[0])+"!"+v(s,i[1])}if("."==r.charAt(0))for(r=s.split("/").slice(0,-1).join("/")+"/"+r;-1!==r.indexOf(".")&&e!=r;){var e=r;r=r.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}return r},a=function(s,r){r=v(s,r);var i=F.modules[r];if(!i){if("function"==typeof(i=F.payloads[r])){var t={},e={id:r,uri:"",exports:t,packaged:!0},o=i(function(l,u){return _(r,l,u)},t,e);F.modules[r]=t=o||e.exports,delete F.payloads[r]}i=F.modules[r]=t||i}return i};!function c(s){var r=M;s&&(M[s]||(M[s]={}),r=M[s]),(!r.define||!r.define.packaged)&&(F.original=r.define,r.define=F,r.define.packaged=!0),(!r.require||!r.require.packaged)&&(C.original=r.require,r.require=C,r.require.packaged=!0)}("ace")}(),ace.define("ace/lib/es6-shim",["require","exports","module"],function(w,M,F){function _(C,v,a){Object.defineProperty(C,v,{value:a,enumerable:!1,writable:!0,configurable:!0})}String.prototype.startsWith||_(String.prototype,"startsWith",function(C,v){return this.lastIndexOf(C,v=v||0
vendor: 20,566 bytes, line 1
1)===v}),String.prototype.endsWith||_(String.prototype,"endsWith",function(C,v){var a=this;(void 0===v||v>a.length)&&(v=a.length);var c=a.indexOf(C,v-=C.length);return-1!==c&&c===v}),String.prototype.repeat||_(String.prototype,"repeat",function(C){for(var v="",a=this;C>0;)1&C&&(v+=a),(C>>=1)&&(a+=a);return v}),String.prototype.includes||_(String.prototype,"includes",function(C,v){return-1!=this.indexOf(C,v)}),Object.assign||(Object.assign=function(C){if(null==C)throw new TypeError("Cannot convert undefined or null to object");for(var v=Object(C),a=1;a<arguments.length;a++){var c=arguments[a];null!=c&&Object.keys(c).forEach(function(s){v[s]=c[s]})}return v}),Object.values||(Object.values=function(C){return Object.keys(C).map(function(v){return C[v]})}),Array.prototype.find||_(Array.prototype,"find",function(C){for(var v=this.length,a=arguments[1],c=0;c<v;c++){var s=this[c];if(C.call(a,s,c,this))return s}}),Array.prototype.findIndex||_(Array.prototype,"findIndex",function(C){for(var v=this.length,a=arguments[1],c=0;c<v;c++)if(C.call(a,this[c],c,this))return c}),Array.prototype.includes||_(Array.prototype,"includes",function(C,v){return-1!=this.indexOf(C,v)}),Array.prototype.fill||_(Array.prototype,"fill",function(C){for(var v=this,a=v.length>>>0,s=0|arguments[1],r=s<0?Math.max(a+s,0):Math.min(s,a),i=arguments[2],t=void 0===i?a:0|i,e=t<0?Math.max(a+t,0):Math.min(t,a);r<e;)v[r]=C,r++;return v}),Array.of||_(Array,"of",function(){return Array.prototype.slice.call(arguments)})}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/es6-shim"],function(w,M,F){"use strict";w("./es6-shim")}),ace.define("ace/lib/deep_copy",["require","exports","module"],function(w,M,F){M.deepCopy=function _(C){if("object"!=typeof C||!C)return C;var v;if(Array.isArray(C)){v=[];for(var a=0;a<C.length;a++)v[a]=_(C[a]);return v}if("[object Object]"!==Object.prototype.toString.call(C))return C;for(var a in v={},C)v[a]=_(C[a]);return v}}),ace.define("ace/lib/lang",["require","exports","module","ace/lib/deep_copy"],function(w,M,F){"use strict";M.last=function(v){return v[v.length-1]},M.stringReverse=function(v){return v.split("").reverse().join("")},M.stringRepeat=function(v,a){for(var c="";a>0;)1&a&&(c+=v),(a>>=1)&&(v+=v);return c};var _=/^\s\s*/,C=/\s\s*$/;M.stringTrimLeft=function(v){return v.replace(_,"")},M.stringTrimRight=function(v){return v.replace(C,"")},M.copyObject=function(v){var a={};for(var c in v)a[c]=v[c];return a},M.copyArray=function(v){for(var a=[],c=0,s=v.length;c<s;c++)a[c]=v[c]&&"object"==typeof v[c]?this.copyObject(v[c]):v[c];return a},M.deepCopy=w("./deep_copy").deepCopy,M.arrayToMap=function(v){for(var a={},c=0;c<v.length;c++)a[v[c]]=1;return a},M.createMap=function(v){var a=Object.create(null);for(var c in v)a[c]=v[c];return a},M.arrayRemove=function(v,a){for(var c=0;c<=v.length;c++)a===v[c]&&v.splice(c,1)},M.escapeRegExp=function(v){return v.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},M.escapeHTML=function(v){return(""+v).replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},M.getMatchOffsets=function(v,a){var c=[];return v.replace(a,function(s){c.push({offset:arguments[arguments.length-2],length:s.length})}),c},M.deferredCall=function(v){var a=null,c=function(){a=null,v()},s=function(r){return s.cancel(),a=setTimeout(c,r||0),s};return s.schedule=s,s.call=function(){return this.cancel(),v(),s},s.cancel=function(){return clearTimeout(a),a=null,s},s.isPending=function(){return a},s},M.delayedCall=function(v,a){var c=null,s=function(){c=null,v()},r=function(i){null==c&&(c=setTimeout(s,i||a))};return r.delay=function(i){c&&clearTimeout(c),c=setTimeout(s,i||a)},r.schedule=r,r.call=function(){this.cancel(),v()},r.cancel=function(){c&&clearTimeout(c),c=null},r.isPending=function(){return c},r},M.supportsLookbehind=function(){try{new RegExp("(?<=.)")}catch{return!1}return!0},M.skipEmptyMatch=function(v,a,c){return c&&v.codePointAt(a)>65535?2:1}}),ace.define("ace/lib/useragent",["require","exports","module"],function(w,M,F){"use strict";M.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},M.getOS=function(){return M.isMac?M.OS.MAC:M.isLinux?M.OS.LINUX:M.OS.WINDOWS};var _="object"==typeof navigator?navigator:{},C=(/mac|win|linux/i.exec(_.platform)||["other"])[0].toLowerCase(),v=_.userAgent||"",a=_.appName||"";M.isWin="win"==C,M.isMac="mac"==C,M.isLinux="linux"==C,M.isIE="Microsoft Internet Explorer"==a||a.indexOf("MSAppHost")>=0?parseFloat((v.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((v.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),M.isOldIE=M.isIE&&M.isIE<9,M.isGecko=M.isMozilla=v.match(/ Gecko\/\d+/),M.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),M.isWebKit=parseFloat(v.split("WebKit/")[1])||void 0,M.isChrome=parseFloat(v.split(" Chrome/")[1])||void 0,M.isSafari=parseFloat(v.split(" Safari/")[1])&&!M.isChrome||void 0,M.isEdge=parseFloat(v.split(" Edge/")[1])||void 0,M.isAIR=v.indexOf("AdobeAIR")>=0,M.isAndroid=v.indexOf("Android")>=0,M.isChromeOS=v.indexOf(" CrOS ")>=0,M.isIOS=/iPad|iPhone|iPod/.test(v)&&!window.MSStream,M.isIOS&&(M.isMac=!0),M.isMobile=M.isIOS||M.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(w,M,F){"use strict";var _=w("./useragent");M.buildDom=function i(t,e,n){if("string"==typeof t&&t){var o=document.createTextNode(t);return e&&e.appendChild(o),o}if(!Array.isArray(t))return t&&t.appendChild&&e&&e.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var l=[],u=0;u<t.length;u++){var h=i(t[u],e,n);h&&l.push(h)}return l}var f=document.createElement(t[0]),m=t[1],y=1;for(m&&"object"==typeof m&&!Array.isArray(m)&&(y=2),u=y;u<t.length;u++)i(t[u],f,n);return 2==y&&Object.keys(m).forEach(function(p){var S=m[p];"class"===p?f.className=Array.isArray(S)?S.join(" "):S:"function"==typeof S||"value"==p||"$"==p[0]?f[p]=S:"ref"===p?n&&(n[S]=f):"style"===p?"string"==typeof S&&(f.style.cssText=S):null!=S&&f.setAttribute(p,S)}),e&&e.appendChild(f),f},M.getDocumentHead=function(i){return i||(i=document),i.head||i.getElementsByTagName("head")[0]||i.documentElement},M.createElement=function(i,t){return document.createElementNS?document.createElementNS(t||"http://www.w3.org/1999/xhtml",i):document.createElement(i)},M.removeChildren=function(i){i.innerHTML=""},M.createTextNode=function(i,t){return(t?t.ownerDocument:document).createTextNode(i)},M.createFragment=function(i){return(i?i.ownerDocument:document).createDocumentFragment()},M.hasCssClass=function(i,t){return-1!==(i.className+"").split(/\s+/g).indexOf(t)},M.addCssClass=function(i,t){M.hasCssClass(i,t)||(i.className+=" "+t)},M.removeCssClass=function(i,t){for(var e=i.className.split(/\s+/g);;){var n=e.indexOf(t);if(-1==n)break;e.splice(n,1)}i.className=e.join(" ")},M.toggleCssClass=function(i,t){for(var e=i.className.split(/\s+/g),n=!0;;){var o=e.indexOf(t);if(-1==o)break;n=!1,e.splice(o,1)}return n&&e.push(t),i.className=e.join(" "),n},M.setCssClass=function(i,t,e){e?M.addCssClass(i,t):M.removeCssClass(i,t)},M.hasCssString=function(i,t){var n,e=0;if(n=(t=t||document).querySelectorAll("style"))for(;e<n.length;)if(n[e++].id===i)return!0},M.removeElementById=function(i,t){(t=t||document).getElementById(i)&&t.getElementById(i).remove()};var v,a=[];function c(){var i=a;a=null,i&&i.forEach(function(t){s(t[0],t[1])})}function s(i,t,e){if(!(typeof document>"u")){if(a)if(e)c();else if(!1===e)return a.push([i,t]);if(!v){var n=e;e&&e.getRootNode?(!(n=e.getRootNode())||n==e)&&(n=document):n=document;var o=n.ownerDocument||n;if(t&&M.hasCssString(t,n))return null;t&&(i+="\n/*# sourceURL=ace/css/"+t+" */");var l=M.createElement("style");l.appendChild(o.createTextNode(i)),t&&(l.id=t),n==o&&(n=M.getDocumentHead(o)),n.insertBefore(l,n.firstChild)}}}if(M.useStrictCSP=function(i){v=i,0==i?c():a||(a=[])},M.importCssString=s,M.importCssStylsheet=function(i,t){M.buildDom(["link",{rel:"stylesheet",href:i}],M.getDocumentHead(t))},M.$fixPositionBug=function(i){var t=i.getBoundingClientRect();if(i.style.left){var e=parseFloat(i.style.left),n=+t.left;Math.abs(e-n)>1&&(i.style.left=2*e-n+"px")}i.style.right&&(e=parseFloat(i.style.right),n=window.innerWidth-t.right,Math.abs(e-n)>1&&(i.style.right=2*e-n+"px")),i.style.top&&(e=parseFloat(i.style.top),n=+t.top,Math.abs(e-n)>1&&(i.style.top=2*e-n+"px")),i.style.bottom&&(e=parseFloat(i.style.bottom),n=window.innerHeight-t.bottom,Math.abs(e-n)>1&&(i.style.bottom=2*e-n+"px"))},M.scrollbarWidth=function(i){var t=M.createElement("ace_inner");t.style.width="100%",t.style.minWidth="0px",t.style.height="200px",t.style.display="block";var e=M.createElement("ace_outer"),n=e.style;n.position="absolute",n.left="-10000px",n.overflow="hidden",n.width="200px",n.minWidth="0px",n.height="150px",n.display="block",e.appendChild(t);var o=i&&i.documentElement||document&&document.documentElement;if(!o)return 0;o.appendChild(e);var l=t.offsetWidth;n.overflow="scroll";var u=t.offsetWidth;return l===u&&(u=e.clientWidth),o.removeChild(e),l-u},M.computedStyle=function(i,t){return window.getComputedStyle(i,"")||{}},M.setStyle=function(i,t,e){i[t]!==e&&(i[t]=e)},M.HAS_CSS_ANIMATION=!1,M.HAS_CSS_TRANSFORMS=!1,M.HI_DPI=!_.isWin||typeof window<"u"&&window.devicePixelRatio>=1.5,_.isChromeOS&&(M.HI_DPI=!1),typeof document<"u"){var r=document.createElement("div");M.HI_DPI&&void 0!==r.style.transform&&(M.HAS_CSS_TRANSFORMS=!0),!_.isEdge&&typeof r.style.animationName<"u"&&(M.HAS_CSS_ANIMATION=!0),r=null}M.translate=M.HAS_CSS_TRANSFORMS?function(i,t,e){i.style.transform="translate("+Math.round(t)+"px, "+Math.round(e)+"px)"}:function(i,t,e){i.style.top=Math.round(e)+"px",i.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(w,M,F){"use strict";var _=w("./dom");M.get=function(C,v){var a=new XMLHttpRequest;a.open("GET",C,!0),a.onreadystatechange=function(){4===a.readyState&&v(a.responseText)},a.send(null)},M.loadScript=function(C,v){var a=_.getDocumentHead(),c=document.createElement("script");c.src=C,a.appendChild(c),c.onload=c.onreadystatechange=function(s,r){(r||!c.readyState||"loaded"==c.readyState||"complete"==c.readyState)&&(c=c.onload=c.onreadystatechange=null,r||v())}},M.qualifyURL=function(C){var v=document.createElement("a");return v.href=C,v.href}}),ace.define("ace/lib/oop",["require","exports","module"],function(w,M,F){"use strict";M.inherits=function(_,C){_.super_=C,_.prototype=Object.create(C.prototype,{constructor:{value:_,enumerable:!1,writable:!0,configurable:!0}})},M.mixin=function(_,C){for(var v in C)_[v]=C[v];return _},M.implement=function(_,C){M.mixin(_,C)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(w,M,F){"use strict";var _={},C=function(){this.propagationStopped=!0},v=function(){this.defaultPrevented=!0};_._emit=_._dispatchEvent=function(a,c){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var s=this._eventRegistry[a]||[],r=this._defaultHandlers[a];if(s.length||r){("object"!=typeof c||!c)&&(c={}),c.type||(c.type=a),c.stopPropagation||(c.stopPropagation=C),c.preventDefault||(c.preventDefault=v),s=s.slice();for(var i=0;i<s.length&&(s[i](c,this),!c.propagationStopped);i++);if(r&&!c.defaultPrevented)return r(c,this)}},_._signal=function(a,c){var s=(this._eventRegistry||{})[a];if(s){s=s.slice();for(var r=0;r<s.length;r++)s[r](c,this)}},_.once=function(a,c){var s=this;if(this.on(a,function r(){s.off(a,r),c.apply(null,arguments)}),!c)return new Promise(function(r){c=r})},_.setDefaultHandler=function(a,c){var s=this._defaultHandlers;if(s||(s=this._defaultHandlers={_disabled_:{}}),s[a]){var r=s[a],i=s._disabled_[a];i||(s._disabled_[a]=i=[]),i.push(r);var t=i.indexOf(c);-1!=t&&i.splice(t,1)}s[a]=c},_.removeDefaultHandler=function(a,c){var s=this._defaultHandlers;if(s){var r=s._disabled_[a];if(s[a]==c)r&&this.setDefaultHandler(a,r.pop());else if(r){var i=r.indexOf(c);-1!=i&&r.splice(i,1)}}},_.on=_.addEventListener=function(a,c,s){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[a];return r||(r=this._eventRegistry[a]=[]),-1==r.indexOf(c)&&r[s?"unshift":"push"](c),c},_.off=_.removeListener=_.removeEventListener=function(a,c){this._eventRegistry=this._eventRegistry||{};var s=this._eventRegistry[a];if(s){var r=s.indexOf(c);-1!==r&&s.splice(r,1)}},_.removeAllListeners=function(a){a||(this._eventRegistry=this._defaultHandlers=void 0),this._eventRegistry&&(this._eventRegistry[a]=void 0),this._defaultHandlers&&(this._defaultHandlers[a]=void 0)},M.EventEmitter=_}),ace.define("ace/lib/report_error",["require","exports","module"],function(w,M,F){M.reportError=function(C,v){var a=new Error(C);a.data=v,"object"==typeof console&&console.error&&console.error(a),setTimeout(function(){throw a})}}),ace.define("ace/lib/default_english_messages",["require","exports","module"],function(w,M,F){M.defaultEnglishMessages={"autocomplete.popup.aria-roledescription":"Autocomplete suggestions","autocomplete.popup.aria-label":"Autocomplete suggestions","autocomplete.popup.item.aria-roledescription":"item","autocomplete.loading":"Loading...","editor.scroller.aria-roledescription":"editor","editor.scroller.aria-label":"Editor content, press Enter to start editing, press Escape to exit","editor.gutter.aria-roledescription":"editor gutter","editor.gutter.aria-label":"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit","error-marker.good-state":"Looks good!","prompt.recently-used":"Recently used","prompt.other-commands":"Other commands","prompt.no-matching-commands":"No matching commands","search-box.find.placeholder":"Search for","search-box.find-all.text":"All","search-box.replace.placeholder":"Replace with","search-box.replace-next.text":"Replace","search-box.replace-all.text":"All","search-box.toggle-replace.title":"Toggle Replace mode","search-box.toggle-regexp.title":"RegExp Search","search-box.toggle-case.title":"CaseSensitive Search","search-box.toggle-whole-word.title":"Whole Word Search","search-box.toggle-in-selection.title":"Search In Selection","search-box.search-counter":"$0 of $1","text-input.aria-roledescription":"editor","text-input.aria-label":"Cursor at row $0","gutter.code-folding.range.aria-label":"Toggle code folding, rows $0 through $1","gutter.code-folding.closed.aria-label":"Toggle code folding, rows $0 through $1","gutter.code-folding.open.aria-label":"Toggle code folding, row $0","gutter.code-folding.closed.title":"Unfold code","gutter.code-folding.open.title":"Fold code","gutter.annotation.aria-label.error":"Error, read annotations row $0","gutter.annotation.aria-label.warning":"Warning, read annotations row $0","gutter.annotation.aria-label.info":"Info, read annotations row $0","inline-fold.closed.title":"Unfold code","gutter-tooltip.aria-label.error.singular":"error","gutter-tooltip.aria-label.error.plural":"errors","gutter-tooltip.aria-label.warning.singular":"warning","gutter-tooltip.aria-label.warning.plural":"warnings","gutter-tooltip.aria-label.info.singular":"information message","gutter-tooltip.aria-label.info.plural":"information messages","gutter.annotation.aria-label.security":"Security finding, read annotations row $0","gutter.annotation.aria-label.hint":"Suggestion, read annotations row $0","gutter-tooltip.aria-label.security.singular":"security finding","gutter-tooltip.aria-label.security.plural":"security findings","gutter-tooltip.aria-label.hint.singular":"suggestion","gutter-tooltip.aria-label.hint.plural":"suggestions","editor.tooltip.disable-editing":"Editing is disabled"}}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/report_error","ace/lib/default_english_messages"],function(w,M,F){var _=w("./oop"),C=w("./event_emitter").EventEmitter,v=w("./report_error").reportError,a=w("./default_english_messages").defaultEnglishMessages,c={setOptions:function(e){Object.keys(e).forEach(function(n){this.setOption(n,e[n])},this)},getOptions:function(e){var n={};if(e)Array.isArray(e)||(e=Object.keys(e));else{var o=this.$options;e=Object.keys(o).filter(function(l){return!o[l].hidden})}return e.forEach(function(l){n[l]=this.getOption(l)},this),n},setOption:function(e,n){if(this["$"+e]!==n){var o=this.$options[e];if(!o)return s('misspelled option "'+e+'"');if(o.forwardTo)return this[o.forwardTo]&&this[o.forwardTo].setOption(e,n);o.handlesSet||(this["$"+e]=n),o&&o.set&&o.set.call(this,n)}},getOption:function(e){var n=this.$options[e];return n?n.forwardTo?this[n.forwardTo]&&this[n.forwardTo].getOption(e):n&&n.get?n.get.call(this):this["$"+e]:s('misspelled option "'+e+'"')}};function s(e){typeof console<"u"&&console.warn&&console.warn.apply(console,arguments)}var r,i,t=function(){function e(){this.$defaultOptions={},r=a,i="dollarSigns"}return e.prototype.defineOptions=function(n,o,l){return n.$options||(this.$defaultOptions[o]=n.$options={}),Object.keys(l).forEach(function(u){var h=l[u];"string"==typeof h&&(h={forwardTo:h}),h.name||(h.name=u),n.$options[h.name]=h,"initialValue"in h&&(n["$"+h.name]=h.initialValue)}),_.implement(n,c),this},e.prototype.resetOptions=function(n){Object.keys(n.$options).forEach(function(o){var l=n.$options[o];"value"in l&&n.setOption(o,l.value)})},e.prototype.setDefaultValue=function(n,o,l){if(!n){for(n in this.$defaultOptions)if(this.$defaultOptions[n][o])break;if(!this.$defaultOptions[n][o])return!1}var u=this.$defaultOptions[n]||(this.$defaultOptions[n]={});u[o]&&(u.forwardTo?this.setDefaultValue(u.forwardTo,o,l):u[o].value=l)},e.prototype.setDefaultValues=function(n,o){Object.keys(o).forEach(function(l){this.setDefaultValue(n,l,o[l])},this)},e.prototype.setMessages=function(n,o){r=n,o&&o.placeholders&&(i=o.placeholders)},e.prototype.nls=function(n,o,l){r[n]||(s("No message found for the key '"+n+"' in messages with id "+r.$id+", trying to find a translation for the default string '"+o+"'."),r[o]||s("No message found for the default string '"+o+"' in the provided messages. Falling back to the default English message."));var u=r[n]||r[o]||o;return l&&("dollarSigns"===i&&(u=u.replace(/\$(\$|[\d]+)/g,function(h,f){return"$"==f?"$":l[f]})),"curlyBrackets"===i&&(u=u.replace(/\{([^\}]+)\}/g,function(h,f){return l[f]}))),u},e}();t.prototype.warn=s,t.prototype.reportError=v,_.implement(t.prototype,C),M.AppConfig=t}),ace.define("ace/theme/textmate-css",["require","exports","module"],function(w,M,F){F.exports='.ace-tm .ace_gutter {\n  background: #f0f0f0;\n  color: #333;\n}\n\n.ace-tm .ace_print-margin {\n  width: 1px;\n  background: #e8e8e8;\n}\n\n.ace-tm .ace_fold {\n    background-color: #6B72E6;\n}\n\n.ace-tm {\n  background-color: #FFFFFF;\n  color: black;\n}\n\n.ace-tm .ace_cursor {\n  color: black;\n}\n        \n.ace-tm .ace_invisible {\n  color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_storage,\n.ace-tm .ace_keyword {\n  color: blue;\n}\n\n.ace-tm .ace_constant {\n  color: rgb(197, 6, 11);\n}\n\n.ace-tm .ace_constant.ace_buildin {\n  color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_constant.ace_language {\n  color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_constant.ace_library {\n  color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_invalid {\n  background-color: rgba(255, 0, 0, 0.1);\n  color: red;\n}\n\n.ace-tm .ace_support.ace_function {\n  color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_support.ace_constant {\n  color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_support.ace_type,\n.ace-tm .ace_support.ace_class {\n  color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_keyword.ace_operator {\n  color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_string {\n  color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_comment {\n  color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_comment.ace_doc {\n  color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_comment.ace_doc.ace_tag {\n  color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_constant.ace_numeric {\n  color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_variable {\n  color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_xml-pe {\n  color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_entity.ace_name.ace_function {\n  color: #0000A2;\n}\n\n\n.ace-tm .ace_heading {\n  color: rgb(12, 7, 255);\n}\n\n.ace-tm .ace_list {\n  color:rgb(185, 6, 144);\n}\n\n.ace-tm .ace_meta.ace_tag {\n  color:rgb(0, 22, 142);\n}\n\n.ace-tm .ace_string.ace_regex {\n  color: rgb(255, 0, 0)\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n  background: rgb(181, 213, 255);\n}\n.ace-tm.ace_multiselect .ace_selection.ace_start {\n  box-shadow: 0 0 3px 0px white;\n}\n.ace-tm .ace_marker-layer .ace_step {\n  background: rgb(252, 255, 0
1);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n  background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n  margin: -1px 0 0 -1px;\n  border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active-line {\n  background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_gutter-active-line {\n    background-color : #dcdcdc;\n}\n\n.ace-tm .ace_marker-layer .ace_selected-word {\n  background: rgb(250, 250, 255);\n  border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_indent-guide {\n  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-tm .ace_indent-guide-active {\n  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'}),ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"],function(w,M,F){"use strict";M.isDark=!1,M.cssClass="ace-tm",M.cssText=w("./textmate-css"),M.$id="ace/theme/textmate",w("../lib/dom").importCssString(M.cssText,M.cssClass,!1)}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/net","ace/lib/dom","ace/lib/app_config","ace/theme/textmate"],function(w,M,F){var _=w("./lib/lang"),C=w("./lib/net"),v=w("./lib/dom"),a=w("./lib/app_config").AppConfig;F.exports=M=new a;var r,c={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1,useStrictCSP:null};M.get=function(t){if(!c.hasOwnProperty(t))throw new Error("Unknown config key: "+t);return c[t]},M.set=function(t,e){if(c.hasOwnProperty(t))c[t]=e;else if(0==this.setDefaultValue("",t,e))throw new Error("Unknown config key: "+t);"useStrictCSP"==t&&v.useStrictCSP(e)},M.all=function(){return _.copyObject(c)},M.$modes={},M.moduleUrl=function(t,e){if(c.$moduleUrls[t])return c.$moduleUrls[t];var n=t.split("/"),o="snippets"==(e=e||n[n.length-2]||"")?"/":"-",l=n[n.length-1];if("worker"==e&&"-"==o){var u=new RegExp("^"+e+"[\\-_]|[\\-_]"+e+"$","g");l=l.replace(u,"")}(!l||l==e)&&n.length>1&&(l=n[n.length-2]);var h=c[e+"Path"];return null==h?h=c.basePath:"/"==o&&(e=o=""),h&&"/"!=h.slice(-1)&&(h+="/"),h+e+o+l+this.get("suffix")},M.setModuleUrl=function(t,e){return c.$moduleUrls[t]=e},M.setLoader=function(t){r=t},M.dynamicModules=Object.create(null),M.$loading={},M.$loaded={},M.loadModule=function(t,e){var n;if(Array.isArray(t))var o=t[0],l=t[1];else"string"==typeof t&&(l=t);var u=function(h){if(h&&!M.$loading[l])return e&&e(h);if(M.$loading[l]||(M.$loading[l]=[]),M.$loading[l].push(e),!(M.$loading[l].length>1)){var f=function(){!function(t,e){"ace/theme/textmate"===t||"./theme/textmate"===t?e(0,w("./theme/textmate")):r?r(t,e):console.error("loader is not configured")}(l,function(m,y){y&&(M.$loaded[l]=y),M._emit("load.module",{name:l,module:y});var p=M.$loading[l];M.$loading[l]=null,p.forEach(function(S){S&&S(y)})})};if(!M.get("packaged"))return f();C.loadScript(M.moduleUrl(l,o),f),i()}};if(M.dynamicModules[l])M.dynamicModules[l]().then(function(h){u(h.default?h.default:h)});else{try{n=this.$require(l)}catch{}u(n||M.$loaded[l])}},M.$require=function(t){if("function"==typeof F.require)return F.require(t)},M.setModuleLoader=function(t,e){M.dynamicModules[t]=e};var i=function(){!c.basePath&&!c.workerPath&&!c.modePath&&!c.themePath&&!Object.keys(c.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),i=function(){})};M.version="1.43.6"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(w,M,F){"use strict";w("./lib/fixoldbrowsers");var _=w("./config");_.setLoader(function(c,s){w([c],function(r){s(null,r)}
vendor: 99,067 bytes, line 1
1)});var C=function(){return this||typeof window<"u"&&window}();function v(c){if(C&&C.document){_.set("packaged",c||w.packaged||F.packaged||C.define&&G.amdD.packaged);var s={},r="",i=document.currentScript||document._currentScript,t=i&&i.ownerDocument||document;i&&i.src&&(r=i.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var e=t.getElementsByTagName("script"),n=0;n<e.length;n++){var o=e[n],l=o.src||o.getAttribute("src");if(l){for(var u=o.attributes,h=0,f=u.length;h<f;h++){var m=u[h];0===m.name.indexOf("data-ace-")&&(s[a(m.name.replace(/^data-ace-/,""))]=m.value)}var y=l.match(/^(.*)\/ace([\-.]\w+)?\.js(\?|$)/);y&&(r=y[1])}}for(var p in r&&(s.base=s.base||r,s.packaged=!0),s.basePath=s.base,s.workerPath=s.workerPath||s.base,s.modePath=s.modePath||s.base,s.themePath=s.themePath||s.base,delete s.base,s)typeof s[p]<"u"&&_.set(p,s[p])}}function a(c){return c.replace(/-(.)/g,function(s,r){return r.toUpperCase()})}F.exports=function(c){_.init=v,_.$require=w,c.require=w,c.define=G.amdD},v(!0)}),ace.define("ace/range",["require","exports","module"],function(w,M,F){"use strict";var _=function(){function C(v,a,c,s){this.start={row:v,column:a},this.end={row:c,column:s}}return C.prototype.isEqual=function(v){return this.start.row===v.start.row&&this.end.row===v.end.row&&this.start.column===v.start.column&&this.end.column===v.end.column},C.prototype.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},C.prototype.contains=function(v,a){return 0==this.compare(v,a)},C.prototype.compareRange=function(v){var a,c=v.end,s=v.start;return 1==(a=this.compare(c.row,c.column))?1==(a=this.compare(s.row,s.column))?2:0==a?1:0:-1==a?-2:-1==(a=this.compare(s.row,s.column))?-1:1==a?42:0},C.prototype.comparePoint=function(v){return this.compare(v.row,v.column)},C.prototype.containsRange=function(v){return 0==this.comparePoint(v.start)&&0==this.comparePoint(v.end)},C.prototype.intersects=function(v){var a=this.compareRange(v);return-1==a||0==a||1==a},C.prototype.isEnd=function(v,a){return this.end.row==v&&this.end.column==a},C.prototype.isStart=function(v,a){return this.start.row==v&&this.start.column==a},C.prototype.setStart=function(v,a){"object"==typeof v?(this.start.column=v.column,this.start.row=v.row):(this.start.row=v,this.start.column=a)},C.prototype.setEnd=function(v,a){"object"==typeof v?(this.end.column=v.column,this.end.row=v.row):(this.end.row=v,this.end.column=a)},C.prototype.inside=function(v,a){return 0==this.compare(v,a)&&!(this.isEnd(v,a)||this.isStart(v,a))},C.prototype.insideStart=function(v,a){return 0==this.compare(v,a)&&!this.isEnd(v,a)},C.prototype.insideEnd=function(v,a){return 0==this.compare(v,a)&&!this.isStart(v,a)},C.prototype.compare=function(v,a){return this.isMultiLine()||v!==this.start.row?v<this.start.row?-1:v>this.end.row?1:this.start.row===v?a>=this.start.column?0:-1:this.end.row===v?a<=this.end.column?0:1:0:a<this.start.column?-1:a>this.end.column?1:0},C.prototype.compareStart=function(v,a){return this.start.row==v&&this.start.column==a?-1:this.compare(v,a)},C.prototype.compareEnd=function(v,a){return this.end.row==v&&this.end.column==a?1:this.compare(v,a)},C.prototype.compareInside=function(v,a){return this.end.row==v&&this.end.column==a?1:this.start.row==v&&this.start.column==a?-1:this.compare(v,a)},C.prototype.clipRows=function(v,a){if(this.end.row>a)var c={row:a+1,column:0};else this.end.row<v&&(c={row:v,column:0});if(this.start.row>a)var s={row:a+1,column:0};else this.start.row<v&&(s={row:v,column:0});return C.fromPoints(s||this.start,c||this.end)},C.prototype.extend=function(v,a){var c=this.compare(v,a);if(0==c)return this;if(-1==c)var s={row:v,column:a};else var r={row:v,column:a};return C.fromPoints(s||this.start,r||this.end)},C.prototype.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},C.prototype.isMultiLine=function(){return this.start.row!==this.end.row},C.prototype.clone=function(){return C.fromPoints(this.start,this.end)},C.prototype.collapseRows=function(){return new C(this.start.row,0,0==this.end.column?Math.max(this.start.row,this.end.row-1):this.end.row,0)},C.prototype.toScreenRange=function(v){var a=v.documentToScreenPosition(this.start),c=v.documentToScreenPosition(this.end);return new C(a.row,a.column,c.row,c.column)},C.prototype.moveBy=function(v,a){this.start.row+=v,this.start.column+=a,this.end.row+=v,this.end.column+=a},C}();_.fromPoints=function(C,v){return new _(C.row,C.column,v.row,v.column)},_.comparePoints=function(C,v){return C.row-v.row||C.column-v.column},M.Range=_}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(w,M,F){"use strict";for(var _=w("./oop"),C={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta",91:"MetaLeft",92:"MetaRight",93:"ContextMenu"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8,control:1},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","-13":"NumpadEnter",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",59:";",61:"=",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},v={Command:224,Backspace:8,Tab:9,Return:13,Enter:13,Pause:19,Escape:27,PageUp:33,PageDown:34,End:35,Home:36,Insert:45,Delete:46,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,Backquote:192,Minus:189,Equal:187,BracketLeft:219,Backslash:220,BracketRight:221,Semicolon:186,Quote:222,Comma:188,Period:190,Slash:191,Space:32,NumpadAdd:107,NumpadDecimal:110,NumpadSubtract:109,NumpadDivide:111,NumpadMultiply:106},a=0;a<10;a++)v["Digit"+a]=48+a,v["Numpad"+a]=96+a,C.PRINTABLE_KEYS[48+a]=""+a,C.FUNCTION_KEYS[96+a]="Numpad"+a;for(a=65;a<91;a++){var c=String.fromCharCode(a+32);v["Key"+c.toUpperCase()]=a,C.PRINTABLE_KEYS[a]=c}for(a=1;a<13;a++)v["F"+a]=111+a,C.FUNCTION_KEYS[111+a]="F"+a;var s={Shift:16,Control:17,Alt:18,Meta:224};for(var r in s)v[r]=v[r+"Left"]=v[r+"Right"]=s[r];for(var i in M.$codeToKeyCode=v,C.PRINTABLE_KEYS[173]="-",C.FUNCTION_KEYS){var t=C.FUNCTION_KEYS[i].toLowerCase();C[t]=parseInt(i,10)}for(var i in C.PRINTABLE_KEYS)t=C.PRINTABLE_KEYS[i].toLowerCase(),C[t]=parseInt(i,10);_.mixin(C,C.MODIFIER_KEYS),_.mixin(C,C.PRINTABLE_KEYS),_.mixin(C,C.FUNCTION_KEYS),C.enter=C.return,C.escape=C.esc,C.del=C.delete,function(){for(var e=["cmd","ctrl","alt","shift"],n=Math.pow(2,e.length);n--;)C.KEY_MODS[n]=e.filter(function(o){return n&C.KEY_MODS[o]}).join("-")+"-"}(),C.KEY_MODS[0]="",C.KEY_MODS[-1]="input-",_.mixin(M,C),M.default=M,M.keyCodeToString=function(e){var n=C[e];return"string"!=typeof n&&(n=String.fromCharCode(e)),n.toLowerCase()}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(w,M,F){"use strict";var c,_=w("./keys"),C=w("./useragent"),v=null,a=0;function r(){return null==c&&function s(){c=!1;try{document.createComment("").addEventListener("test",function(){},{get passive(){return c={passive:!1},!0}})}catch{}}(),c}function i(h,f,m){this.elem=h,this.type=f,this.callback=m}i.prototype.destroy=function(){e(this.elem,this.type,this.callback),this.elem=this.type=this.callback=void 0};var t=M.addListener=function(h,f,m,y){h.addEventListener(f,m,r()),y&&y.$toDestroy.push(new i(h,f,m))},e=M.removeListener=function(h,f,m){h.removeEventListener(f,m,r())};function n(h){return(h.ctrlKey?1:0)|(h.altKey?2:0)|(h.shiftKey?4:0)|(h.metaKey?8:0)}function l(){v=Object.create(null)}if(M.stopEvent=function(h){return M.stopPropagation(h),M.preventDefault(h),!1},M.stopPropagation=function(h){h.stopPropagation&&h.stopPropagation()},M.preventDefault=function(h){h.preventDefault&&h.preventDefault()},M.getButton=function(h){return"dblclick"==h.type?0:"contextmenu"==h.type||C.isMac&&h.ctrlKey&&!h.altKey&&!h.shiftKey?2:h.button},M.capture=function(h,f,m){var y=h&&h.ownerDocument||document;function p(S){f&&f(S),m&&m(S),e(y,"mousemove",f),e(y,"mouseup",p),e(y,"dragstart",p)}return t(y,"mousemove",f),t(y,"mouseup",p),t(y,"dragstart",p),p},M.addMouseWheelListener=function(h,f,m){t(h,"wheel",function(y){var S=y.deltaX||0,$=y.deltaY||0;switch(y.deltaMode){case y.DOM_DELTA_PIXEL:y.wheelX=.15*S,y.wheelY=.15*$;break;case y.DOM_DELTA_LINE:y.wheelX=15*S,y.wheelY=15*$;break;case y.DOM_DELTA_PAGE:y.wheelX=150*S,y.wheelY=150*$}f(y)},m)},M.addMultiMouseDownListener=function(h,f,m,y,p){var $,A,E,S=0,x={2:"dblclick",3:"tripleclick",4:"quadclick"};function b(g){if(0!==M.getButton(g)?S=0:g.detail>1?++S>4&&(S=1):S=1,C.isIE){var d=Math.abs(g.clientX-$)>5||Math.abs(g.clientY-A)>5;(!E||d)&&(S=1),E&&clearTimeout(E),E=setTimeout(function(){E=null},f[S-1]||600),1==S&&($=g.clientX,A=g.clientY)}if(g._clicks=S,m[y]("mousedown",g),S>4)S=0;else if(S>1)return m[y](x[S],g)}Array.isArray(h)||(h=[h]),h.forEach(function(g){t(g,"mousedown",b,p)})},M.getModifierString=function(h){return _.KEY_MODS[n(h)]},M.addCommandKeyListener=function(h,f,m){var y=null;t(h,"keydown",function(p){v[p.keyCode]=(v[p.keyCode]||0)+1;var S=function o(h,f,m){var y=n(f);if(!m&&f.code&&(m=_.$codeToKeyCode[f.code]||m),!C.isMac&&v){if(f.getModifierState&&(f.getModifierState("OS")||f.getModifierState("Win"))&&(y|=8),v.altGr){if(!(3&~y))return;v.altGr=0}if(18===m||17===m){var p=f.location;17===m&&1===p?1==v[m]&&(a=f.timeStamp):18===m&&3===y&&2===p&&f.timeStamp-a<50&&(v.altGr=!0)}}if(m in _.MODIFIER_KEYS&&(m=-1),y||13!==m||3!==f.location||(h(f,y,-m),!f.defaultPrevented)){if(C.isChromeOS&&8&y){if(h(f,y,m),f.defaultPrevented)return;y&=-9}return!!(y||m in _.FUNCTION_KEYS||m in _.PRINTABLE_KEYS)&&h(f,y,m)}}(f,p,p.keyCode);return y=p.defaultPrevented,S},m),t(h,"keypress",function(p){y&&(p.ctrlKey||p.altKey||p.shiftKey||p.metaKey)&&(M.stopEvent(p),y=null)},m),t(h,"keyup",function(p){v[p.keyCode]=null},m),v||(l(),t(window,"focus",l))},"object"==typeof window&&window.postMessage&&!C.isOldIE){var u=1;M.nextTick=function(h,f){f=f||window;var m="zero-timeout-message-"+u++,y=function(p){p.data==m&&(M.stopPropagation(p),e(f,"message",y),h())};t(f,"message",y),f.postMessage(m,"*")}}M.$idleBlocked=!1,M.onIdle=function(h,f){return setTimeout(function m(){M.$idleBlocked?setTimeout(m,100):h()},f)},M.$idleBlockId=null,M.blockIdle=function(h){M.$idleBlockId&&clearTimeout(M.$idleBlockId),M.$idleBlocked=!0,M.$idleBlockId=setTimeout(function(){M.$idleBlocked=!1},h||100)},M.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),M.nextFrame=M.nextFrame?M.nextFrame.bind(window):function(h){setTimeout(h,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(w,M,F){"use strict";var _;F.exports={lineMode:!1,pasteCancelled:function(){return!!(_&&_>Date.now()-50)||(_=!1)},cancel:function(){_=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(w,M,F){"use strict";var _=w("../lib/event"),C=w("../config").nls,v=w("../lib/useragent"),a=w("../lib/dom"),c=w("../lib/lang"),s=w("../clipboard"),r=v.isChrome<18,i=v.isIE,t=v.isChrome>63,e=400,n=w("../lib/keys"),o=n.KEY_MODS,l=v.isIOS,u=l?/\s/:/\n/,h=v.isMobile,f=function(){function m(y,p){var S=this;this.host=p,this.text=a.createElement("textarea"),this.text.className="ace_text-input",this.text.setAttribute("wrap","off"),this.text.setAttribute("autocomplete","off"),this.text.setAttribute("autocorrect","off"),this.text.setAttribute("autocapitalize","off"),this.text.setAttribute("spellcheck","false"),this.text.style.opacity="0",y.insertBefore(this.text,y.firstChild),this.copied=!1,this.pasted=!1,this.inComposition=!1,this.sendingText=!1,this.tempStyle="",h||(this.text.style.fontSize="1px"),this.commandMode=!1,this.ignoreFocusEvents=!1,this.lastValue="",this.lastSelectionStart=0,this.lastSelectionEnd=0,this.lastRestoreEnd=0,this.rowStart=Number.MAX_SAFE_INTEGER,this.rowEnd=Number.MIN_SAFE_INTEGER,this.numberOfExtraLines=0;try{this.$isFocused=document.activeElement===this.text}catch{}this.cancelComposition=this.cancelComposition.bind(this),this.setAriaOptions({role:"textbox"}),_.addListener(this.text,"blur",function($){S.ignoreFocusEvents||(p.onBlur($),S.$isFocused=!1)},p),_.addListener(this.text,"focus",function($){if(!S.ignoreFocusEvents){if(S.$isFocused=!0,v.isEdge)try{if(!document.hasFocus())return}catch{}p.onFocus($),v.isEdge?setTimeout(S.resetSelection.bind(S)):S.resetSelection()}},p),this.$focusScroll=!1,p.on("beforeEndOperation",function(){var $=p.curOp,A=$&&$.command&&$.command.name;"insertstring"!=A&&(S.inComposition&&A&&($.docChanged||$.selectionChanged)&&(S.lastValue=S.text.value="",S.onCompositionEnd()),S.resetSelection())}),p.on("changeSelection",this.setAriaLabel.bind(this)),this.resetSelection=l?this.$resetSelectionIOS:this.$resetSelection,this.$isFocused&&p.onFocus(),this.inputHandler=null,this.afterContextMenu=!1,_.addCommandKeyListener(this.text,function($,A,E){if(!S.inComposition)return p.onCommandKey($,A,E)},p),_.addListener(this.text,"select",this.onSelect.bind(this),p),_.addListener(this.text,"input",this.onInput.bind(this),p),_.addListener(this.text,"cut",this.onCut.bind(this),p),_.addListener(this.text,"copy",this.onCopy.bind(this),p),_.addListener(this.text,"paste",this.onPaste.bind(this),p),(!("oncut"in this.text)||!("oncopy"in this.text)||!("onpaste"in this.text))&&_.addListener(y,"keydown",function($){if((!v.isMac||$.metaKey)&&$.ctrlKey)switch($.keyCode){case 67:S.onCopy($);break;case 86:S.onPaste($);break;case 88:S.onCut($)}},p),this.syncComposition=c.delayedCall(this.onCompositionUpdate.bind(this),50).schedule.bind(null,null),_.addListener(this.text,"compositionstart",this.onCompositionStart.bind(this),p),_.addListener(this.text,"compositionupdate",this.onCompositionUpdate.bind(this),p),_.addListener(this.text,"keyup",this.onKeyup.bind(this),p),_.addListener(this.text,"keydown",this.syncComposition.bind(this),p),_.addListener(this.text,"compositionend",this.onCompositionEnd.bind(this),p),_.addListener(this.text,"mouseup",this.$onContextMenu.bind(this),p),_.addListener(this.text,"mousedown",function($){$.preventDefault(),S.onContextMenuClose()},p),_.addListener(p.renderer.scroller,"contextmenu",this.$onContextMenu.bind(this),p),_.addListener(this.text,"contextmenu",this.$onContextMenu.bind(this),p),l&&this.addIosSelectionHandler(y,p,this.text)}return m.prototype.addIosSelectionHandler=function(y,p,S){var $=this,A=null,E=!1;S.addEventListener("keydown",function(b){A&&clearTimeout(A),E=!0},!0),S.addEventListener("keyup",function(b){A=setTimeout(function(){E=!1},100)},!0);var x=function(b){if(document.activeElement===S&&!(E||$.inComposition||p.$mouseHandler.isMousePressed)&&!$.copied){var g=S.selectionStart,d=S.selectionEnd,k=null,T=0;if(0==g?k=n.up:1==g?k=n.home:d>$.lastSelectionEnd&&"\n"==$.lastValue[d]?k=n.end:g<$.lastSelectionStart&&" "==$.lastValue[g-1]?(k=n.left,T=o.option):g<$.lastSelectionStart||g==$.lastSelectionStart&&$.lastSelectionEnd!=$.lastSelectionStart&&g==d?k=n.left:d>$.lastSelectionEnd&&$.lastValue.slice(0,d).split("\n").length>2?k=n.down:d>$.lastSelectionEnd&&" "==$.lastValue[d-1]?(k=n.right,T=o.option):(d>$.lastSelectionEnd||d==$.lastSelectionEnd&&$.lastSelectionEnd!=$.lastSelectionStart&&g==d)&&(k=n.right),g!==d&&(T|=o.shift),k){if(!p.onCommandKey({},T,k)&&p.commands){k=n.keyCodeToString(k);var R=p.commands.findKeyCommand(T,k);R&&p.execCommand(R)}$.lastSelectionStart=g,$.lastSelectionEnd=d,$.resetSelection("")}}};document.addEventListener("selectionchange",x),p.on("destroy",function(){document.removeEventListener("selectionchange",x)})},m.prototype.onContextMenuClose=function(){var y=this;clearTimeout(this.closeTimeout),this.closeTimeout=setTimeout(function(){y.tempStyle&&(y.text.style.cssText=y.tempStyle,y.tempStyle=""),y.host.renderer.$isMousePressed=!1,y.host.renderer.$keepTextAreaAtCursor&&y.host.renderer.$moveTextAreaToCursor()},0)},m.prototype.$onContextMenu=function(y){this.host.textInput.onContextMenu(y),this.onContextMenuClose()},m.prototype.onKeyup=function(y){27==y.keyCode&&this.text.value.length<this.text.selectionStart&&(this.inComposition||(this.lastValue=this.text.value),this.lastSelectionStart=this.lastSelectionEnd=-1,this.resetSelection()),this.syncComposition()},m.prototype.cancelComposition=function(){this.ignoreFocusEvents=!0,this.text.blur(),this.text.focus(),this.ignoreFocusEvents=!1},m.prototype.onCompositionStart=function(y){if(!this.inComposition&&this.host.onCompositionStart&&!this.host.$readOnly&&(this.inComposition={},!this.commandMode)){y.data&&(this.inComposition.useTextareaForIME=!1),setTimeout(this.onCompositionUpdate.bind(this),0),this.host._signal("compositionStart"),this.host.on("mousedown",this.cancelComposition);var p=this.host.getSelectionRange();p.end.row=p.start.row,p.end.column=p.start.column,this.inComposition.markerRange=p,this.inComposition.selectionStart=this.lastSelectionStart,this.host.onCompositionStart(this.inComposition),this.inComposition.useTextareaForIME?(this.lastValue=this.text.value="",this.lastSelectionStart=0,this.lastSelectionEnd=0):(this.text.msGetInputContext&&(this.inComposition.context=this.text.msGetInputContext()),this.text.getInputContext&&(this.inComposition.context=this.text.getInputContext()))}},m.prototype.onCompositionUpdate=function(){if(this.inComposition&&this.host.onCompositionUpdate&&!this.host.$readOnly){if(this.commandMode)return this.cancelComposition();this.inComposition.useTextareaForIME?this.host.onCompositionUpdate(this.text.value):(this.sendText(this.text.value),this.inComposition.markerRange&&(this.inComposition.context&&(this.inComposition.markerRange.start.column=this.inComposition.selectionStart=this.inComposition.context.compositionStartOffset),this.inComposition.markerRange.end.column=this.inComposition.markerRange.start.column+this.lastSelectionEnd-this.inComposition.selectionStart+this.lastRestoreEnd))}},m.prototype.onCompositionEnd=function(y){!this.host.onCompositionEnd||this.host.$readOnly||(this.inComposition=!1,this.host.onCompositionEnd(),this.host.off("mousedown",this.cancelComposition),y&&this.onInput())},m.prototype.onCut=function(y){this.doCopy(y,!0)},m.prototype.onCopy=function(y){this.doCopy(y,!1)},m.prototype.onPaste=function(y){var p=this.handleClipboardData(y);s.pasteCancelled()||("string"==typeof p?(p&&this.host.onPaste(p,y),v.isIE&&setTimeout(this.resetSelection),_.preventDefault(y)):(this.text.value="",this.pasted=!0))},m.prototype.doCopy=function(y,p){var S=this,$=this.host.getCopyText();if(!$)return _.preventDefault(y);this.handleClipboardData(y,$)?(l&&(this.resetSelection($),this.copied=$,setTimeout(function(){S.copied=!1},10)),p?this.host.onCut():this.host.onCopy(),_.preventDefault(y)):(this.copied=!0,this.text.value=$,this.text.select(),setTimeout(function(){S.copied=!1,S.resetSelection(),p?S.host.onCut():S.host.onCopy()}))},m.prototype.handleClipboardData=function(y,p,S){var $=y.clipboardData||window.clipboardData;if($&&!r){var A=i||S?"Text":"text/plain";try{return p?!1!==$.setData(A,p):$.getData(A)}catch(E){if(!S)return this.handleClipboardData(E,p,!0)}}},m.prototype.onInput=function(y){if(this.inComposition)return this.onCompositionUpdate();if(y&&y.inputType){if("historyUndo"==y.inputType)return this.host.execCommand("undo");if("historyRedo"==y.inputType)return this.host.execCommand("redo")}var p=this.text.value,S=this.sendText(p,!0);(p.length>500||u.test(S)||h&&this.lastSelectionStart<1&&this.lastSelectionStart==this.lastSelectionEnd)&&this.resetSelection()},m.prototype.sendText=function(y,p){if(this.afterContextMenu&&(this.afterContextMenu=!1),this.pasted)return this.resetSelection(),y&&this.host.onPaste(y),this.pasted=!1,"";for(var S=this.text.selectionStart,$=this.text.selectionEnd,A=this.lastSelectionStart,E=this.lastValue.length-this.lastSelectionEnd,x=y,b=y.length-S,g=y.length-$,d=0;A>0&&this.lastValue[d]==y[d];)d++,A--;for(x=x.slice(d),d=1;E>0&&this.lastValue.length-d>this.lastSelectionStart-1&&this.lastValue[this.lastValue.length-d]==y[y.length-d];)d++,E--;b-=d-1,g-=d-1;var k=x.length-d+1;if(k<0&&(A=-k,k=0),x=x.slice(0,k),!(p||x||b||A||E||g))return"";this.sendingText=!0;var T=!1;return v.isAndroid&&". "==x&&(x="  ",T=!0),x&&!A&&!E&&!b&&!g||this.commandMode?this.host.onTextInput(x):this.host.onTextInput(x,{extendLeft:A,extendRight:E,restoreStart:b,restoreEnd:g}),this.sendingText=!1,this.lastValue=y,this.lastSelectionStart=S,this.lastSelectionEnd=$,this.lastRestoreEnd=g,T?"\n":x},m.prototype.onSelect=function(y){var $,p=this;this.inComposition||(this.copied?this.copied=!1:0===($=this.text).selectionStart&&$.selectionEnd>=p.lastValue.length&&$.value===p.lastValue&&p.lastValue&&$.selectionEnd!==p.lastSelectionEnd?(this.host.selectAll(),this.resetSelection()):h&&this.text.selectionStart!=this.lastSelectionStart&&this.resetSelection())},m.prototype.$resetSelectionIOS=function(y){if(this.$isFocused&&(!this.copied||y)&&!this.sendingText){y||(y="");var p="\n ab"+y+"cde fg\n";p!=this.text.value&&(this.text.value=this.lastValue=p);var $=4+(y.length||(this.host.selection.isEmpty()?0:1));(4!=this.lastSelectionStart||this.lastSelectionEnd!=$)&&this.text.setSelectionRange(4,$),this.lastSelectionStart=4,this.lastSelectionEnd=$}},m.prototype.$resetSelection=function(){var y=this;if(!this.inComposition&&!this.sendingText&&(this.$isFocused||this.afterContextMenu)){this.inComposition=!0;var p=0,S=0,$="",A=function(R,I){for(var O=I,N=1;N<=R-y.rowStart&&N<2*y.numberOfExtraLines+1;N++)O+=y.host.session.getLine(R-N).length+1;return O};if(this.host.session){var E=this.host.selection,x=E.getRange(),b=E.cursor.row;b===this.rowEnd+1?(this.rowStart=this.rowEnd+1,this.rowEnd=this.rowStart+2*this.numberOfExtraLines):b===this.rowStart-1?(this.rowEnd=this.rowStart-1,this.rowStart=this.rowEnd-2*this.numberOfExtraLines):(b<this.rowStart-1||b>this.rowEnd+1)&&(this.rowStart=b>this.numberOfExtraLines?b-this.numberOfExtraLines:0,this.rowEnd=b>this.numberOfExtraLines?b+this.numberOfExtraLines:2*this.numberOfExtraLines);for(var g=[],d=this.rowStart;d<=this.rowEnd;d++)g.push(this.host.session.getLine(d));if($=g.join("\n"),p=A(x.start.row,x.start.column),S=A(x.end.row,x.end.column),x.start.row<this.rowStart){var k=this.host.session.getLine(this.rowStart-1);p=x.start.row<this.rowStart-1?0:p,S+=k.length+1,$=k+"\n"+$}else if(x.end.row>this.rowEnd){var T=this.host.session.getLine(this.rowEnd+1);S=x.end.row>this.rowEnd+1?T.length:x.end.column,S+=$.length+1,$=$+"\n"+T}else h&&b>0&&($="\n"+$,S+=1,p+=1);$.length>e&&(p<e&&S<e?$=$.slice(0,e):($="\n",p==S?p=S=0:(p=0,S=1)));var L=$+"\n\n";L!=this.lastValue&&(this.text.value=this.lastValue=L,this.lastSelectionStart=this.lastSelectionEnd=L.length)}if(this.afterContextMenu&&(this.lastSelectionStart=this.text.selectionStart,this.lastSelectionEnd=this.text.selectionEnd),this.lastSelectionEnd!=S||this.lastSelectionStart!=p||this.text.selectionEnd!=this.lastSelectionEnd)try{this.text.setSelectionRange(p,S),this.lastSelectionStart=p,this.lastSelectionEnd=S}catch{}this.inComposition=!1}},m.prototype.setHost=function(y){this.host=y},m.prototype.setNumberOfExtraLines=function(y){this.rowStart=Number.MAX_SAFE_INTEGER,this.rowEnd=Number.MIN_SAFE_INTEGER,this.numberOfExtraLines=y<0?0:y},m.prototype.setAriaLabel=function(){var y="";this.host.$textInputAriaLabel&&(y+="".concat(this.host.$textInputAriaLabel,", ")),this.host.session&&(y+=C("text-input.aria-label","Cursor at row $0",[this.host.session.selection.cursor.row+1])),this.text.setAttribute("aria-label",y)},m.prototype.setAriaOptions=function(y){y.activeDescendant?(this.text.setAttribute("aria-haspopup","true"),this.text.setAttribute("aria-autocomplete",y.inline?"both":"list"),this.text.setAttribute("aria-activedescendant",y.activeDescendant)):(this.text.setAttribute("aria-haspopup","false"),this.text.setAttribute("aria-autocomplete","both"),this.text.removeAttribute("aria-activedescendant")),y.role&&this.text.setAttribute("role",y.role),y.setLabel&&(this.text.setAttribute("aria-roledescription",C("text-input.aria-roledescription","editor")),this.setAriaLabel())},m.prototype.focus=function(){var y=this;if(this.setAriaOptions({setLabel:this.host.renderer.enableKeyboardAccessibility}),this.tempStyle||t||"browser"==this.$focusScroll)return this.text.focus({preventScroll:!0});var p=this.text.style.top;this.text.style.position="fixed",this.text.style.top="0px";try{var S=0!=this.text.getBoundingClientRect().top}catch{return}var $=[];if(S)for(var A=this.text.parentElement;A&&1==A.nodeType;)$.push(A),A.setAttribute("ace_nocontext","true"),A=!A.parentElement&&A.getRootNode?A.getRootNode().host:A.parentElement;this.text.focus({preventScroll:!0}),S&&$.forEach(function(E){E.removeAttribute("ace_nocontext")}),setTimeout(function(){y.text.style.position="","0px"==y.text.style.top&&(y.text.style.top=p)},0)},m.prototype.blur=function(){this.text.blur()},m.prototype.isFocused=function(){return this.$isFocused},m.prototype.setInputHandler=function(y){this.inputHandler=y},m.prototype.getInputHandler=function(){return this.inputHandler},m.prototype.getElement=function(){return this.text},m.prototype.setCommandMode=function(y){this.commandMode=y,this.text.readOnly=!1},m.prototype.setReadOnly=function(y){this.commandMode||(this.text.readOnly=y)},m.prototype.setCopyWithEmptySelection=function(y){},m.prototype.onContextMenu=function(y){this.afterContextMenu=!0,this.resetSelection(),this.host._emit("nativecontextmenu",{target:this.host,domEvent:y}),this.moveToMouse(y,!0)},m.prototype.moveToMouse=function(y,p){var S=this;this.tempStyle||(this.tempStyle=this.text.style.cssText),this.text.style.cssText=(p?"z-index:100000;":"")+(v.isIE?"opacity:0.1;":"")+"text-indent: -"+(this.lastSelectionStart+this.lastSelectionEnd)*this.host.renderer.characterWidth*.5+"px;";var $=this.host.container.getBoundingClientRect(),A=a.computedStyle(this.host.container),E=$.top+(parseInt(A.borderTopWidth)||0),x=$.left+(parseInt(A.borderLeftWidth)||0),b=$.bottom-E-this.text.clientHeight-2,g=function(d){a.translate(S.text,d.clientX-x-2,Math.min(d.clientY-E-2,b))};g(y),"mousedown"==y.type&&(this.host.renderer.$isMousePressed=!0,clearTimeout(this.closeTimeout),v.isWin&&_.capture(this.host.container,g,this.onContextMenuClose.bind(this)))},m.prototype.destroy=function(){this.text.parentElement&&this.text.parentElement.removeChild(this.text)},m}();M.TextInput=f,M.$setUserAgentForTests=function(m,y){h=m,l=y}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(w,M,F){"use strict";var _=w("../lib/useragent"),a=function(){function r(i){i.$clickSelection=null;var t=i.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(i)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(i)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(i)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(i)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(i)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(n){i[n]=this[n]},this),i.selectByLines=this.extendSelectionBy.bind(i,"getLineRange"),i.selectByWords=this.extendSelectionBy.bind(i,"getWordRange")}return r.prototype.onMouseDown=function(i){var t=i.inSelection(),e=i.getDocumentPosition();this.mousedownEvent=i;var n=this.editor,o=i.getButton();return 0!==o?((n.getSelectionRange().isEmpty()||1==o)&&n.selection.moveToPosition(e),void(2==o&&(n.textInput.onContextMenu(i.domEvent),_.isMozilla||i.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimeout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(i),this.startSelect(e,i.domEvent._clicks>1),i.preventDefault()):(this.setState("focusWait"),void this.captureMouse(i)))},r.prototype.startSelect=function(i,t){i=i||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var e=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?e.selection.selectToPosition(i):t||e.selection.moveToPosition(i),t||this.select(),e.setStyle("ace_selecting"),this.setState("select"))},r.prototype.select=function(){var i,t=this.editor,e=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var n=this.$clickSelection.comparePoint(e);if(-1==n)i=this.$clickSelection.end;else if(1==n)i=this.$clickSelection.start;else{var o=s(this.$clickSelection,e,t.session);e=o.cursor,i=o.anchor}t.selection.setSelectionAnchor(i.row,i.column)}t.selection.selectToPosition(e),t.renderer.scrollCursorIntoView()},r.prototype.extendSelectionBy=function(i){var t,e=this.editor,n=e.renderer.screenToTextCoordinates(this.x,this.y),o=e.selection[i](n.row,n.column);if(this.$clickSelection){var l=this.$clickSelection.comparePoint(o.start),u=this.$clickSelection.comparePoint(o.end);if(-1==l&&u<=0)t=this.$clickSelection.end,(o.end.row!=n.row||o.end.column!=n.column)&&(n=o.start);else if(1==u&&l>=0)t=this.$clickSelection.start,(o.start.row!=n.row||o.start.column!=n.column)&&(n=o.end);else if(-1==l&&1==u)n=o.end,t=o.start;else{var h=s(this.$clickSelection,n,e.session);n=h.cursor,t=h.anchor}e.selection.setSelectionAnchor(t.row,t.column)}e.selection.selectToPosition(n),e.renderer.scrollCursorIntoView()},r.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},r.prototype.focusWait=function(){var i=function c(r,i,t,e){return Math.sqrt(Math.pow(t-r,2)+Math.pow(e-i,2))}(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(i>0||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},r.prototype.onDoubleClick=function(i){var t=i.getDocumentPosition(),e=this.editor,o=e.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=e.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},r.prototype.onTripleClick=function(i){var t=i.getDocumentPosition(),e=this.editor;this.setState("selectByLines");var n=e.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=e.selection.getLineRange(n.start.row),this.$clickSelection.end=e.selection.getLineRange(n.end.row).end):this.$clickSelection=e.selection.getLineRange(t.row),this.select()},r.prototype.onQuadClick=function(i){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},r.prototype.onMouseWheel=function(i){if(!i.getAccelKey()){i.getShiftKey()&&i.wheelY&&!i.wheelX&&(i.wheelX=i.wheelY,i.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var e=this.$lastScroll,n=i.domEvent.timeStamp,o=n-e.t,l=o?i.wheelX/o:e.vx,u=o?i.wheelY/o:e.vy;o<550&&(l=(l+e.vx)/2,u=(u+e.vy)/2);var h=Math.abs(l/u),f=!1;if(h>=1&&t.renderer.isScrollableBy(i.wheelX*i.speed,0)&&(f=!0),h<=1&&t.renderer.isScrollableBy(0,i.wheelY*i.speed)&&(f=!0),f?e.allowed=n:n-e.allowed<550&&(Math.abs(l)<=1.5*Math.abs(e.vx)&&Math.abs(u)<=1.5*Math.abs(e.vy)?(f=!0,e.allowed=n):e.allowed=0),e.t=n,e.vx=l,e.vy=u,f)return t.renderer.scrollBy(i.wheelX*i.speed,i.wheelY*i.speed),i.stop()}},r}();function s(r,i,t){if(r.start.row==r.end.row)var e=2*i.column-r.start.column-r.end.column;else if(r.start.row!=r.end.row-1||r.start.column||r.end.column)e=2*i.row-r.start.row-r.end.row;else e=3*i.column-2*t.getLine(r.start.row).length;return e<0?{cursor:r.start,anchor:r.end}:{cursor:r.end,anchor:r.start}}a.prototype.selectEnd=a.prototype.selectByLinesEnd,a.prototype.selectAllEnd=a.prototype.selectByLinesEnd,a.prototype.selectByWordsEnd=a.prototype.selectByLinesEnd,M.DefaultHandlers=a}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(w,M,F){"use strict";var _=w("../lib/event"),C=w("../lib/useragent"),v=function(){function a(c,s){this.domEvent=c,this.editor=s,this.x=this.clientX=c.clientX,this.y=this.clientY=c.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return a.prototype.stopPropagation=function(){_.stopPropagation(this.domEvent),this.propagationStopped=!0},a.prototype.preventDefault=function(){_.preventDefault(this.domEvent),this.defaultPrevented=!0},a.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},a.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},a.prototype.getGutterRow=function(){var c=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(c,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},a.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var s=this.editor.getSelectionRange();if(s.isEmpty())this.$inSelection=!1;else{var r=this.getDocumentPosition();this.$inSelection=s.contains(r.row,r.column)}return this.$inSelection},a.prototype.getButton=function(){return _.getButton(this.domEvent)},a.prototype.getShiftKey=function(){return this.domEvent.shiftKey},a.prototype.getAccelKey=function(){return C.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},a}();M.MouseEvent=v}),ace.define("ace/lib/scroll",["require","exports","module"],function(w,M,F){M.preventParentScroll=function(C){C.stopPropagation();var v=C.currentTarget;v.scrollHeight>v.clientHeight||C.preventDefault()}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(w,M,F){"use strict";var _=this&&this.__extends||function(){var o=function(l,u){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,f){h.__proto__=f}||function(h,f){for(var m in f)Object.prototype.hasOwnProperty.call(f,m)&&(h[m]=f[m])})(l,u)};return function(l,u){if("function"!=typeof u&&null!==u)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");function h(){this.constructor=l}o(l,u),l.prototype=null===u?Object.create(u):(h.prototype=u.prototype,new h)}}(),C=this&&this.__values||function(o){var l="function"==typeof Symbol&&Symbol.iterator,u=l&&o[l],h=0;if(u)return u.call(o);if(o&&"number"==typeof o.length)return{next:function(){return o&&h>=o.length&&(o=void 0),{value:o&&o[h++],done:!o}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")},v=w("./lib/dom"),c=(w("./lib/event"),w("./range").Range),s=w("./lib/scroll").preventParentScroll,r="ace_tooltip",i=function(){function o(l){this.isOpen=!1,this.$element=null,this.$parentNode=l}return o.prototype.$init=function(){return this.$element=v.createElement("div"),this.$element.className=r,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},o.prototype.getElement=function(){return this.$element||this.$init()},o.prototype.setText=function(l){this.getElement().textContent=l},o.prototype.setHtml=function(l){this.getElement().innerHTML=l},o.prototype.setPosition=function(l,u){this.getElement().style.left=l+"px",this.getElement().style.top=u+"px"},o.prototype.setClassName=function(l){v.addCssClass(this.getElement(),l)},o.prototype.setTheme=function(l){this.theme&&(this.theme.isDark&&v.removeCssClass(this.getElement(),"ace_dark"),this.theme.cssClass&&v.removeCssClass(this.getElement(),this.theme.cssClass)),l.isDark&&v.addCssClass(this.getElement(),"ace_dark"),l.cssClass&&v.addCssClass(this.getElement(),l.cssClass),this.theme={isDark:l.isDark,cssClass:l.cssClass}},o.prototype.show=function(l,u,h){null!=l&&this.setText(l),null!=u&&null!=h&&this.setPosition(u,h),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},o.prototype.hide=function(l){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=r,this.isOpen=!1)},o.prototype.getHeight=function(){return this.getElement().offsetHeight},o.prototype.getWidth=function(){return this.getElement().offsetWidth},o.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},o}(),e=new(function(){function o(){this.popups=[]}return o.prototype.addPopup=function(l){this.popups.push(l),this.updatePopups()},o.prototype.removePopup=function(l){var u=this.popups.indexOf(l);-1!==u&&(this.popups.splice(u,1),this.updatePopups())},o.prototype.updatePopups=function(){var l,u,h,f;this.popups.sort(function(b,g){return g.priority-b.priority});var m=[];try{for(var y=C(this.popups),p=y.next();!p.done;p=y.next()){var S=p.value,$=!0;try{for(var A=(h=void 0,C(m)),E=A.next();!E.done;E=A.next())if(this.doPopupsOverlap(E.value,S)){$=!1;break}}catch(b){h={error:b}}finally{try{E&&!E.done&&(f=A.return)&&f.call(A)}finally{if(h)throw h.error}}$?m.push(S):S.hide()}}catch(b){l={error:b}}finally{try{p&&!p.done&&(u=y.return)&&u.call(y)}finally{if(l)throw l.error}}},o.prototype.doPopupsOverlap=function(l,u){var h=l.getElement().getBoundingClientRect(),f=u.getElement().getBoundingClientRect();return h.left<f.right&&h.right>f.left&&h.top<f.bottom&&h.bottom>f.top},o}());M.popupManager=e,M.Tooltip=i;var n=function(o){function l(u){void 0===u&&(u=document.body);var h=o.call(this,u)||this;h.timeout=void 0,h.lastT=0,h.idleTime=350,h.lastEvent=void 0,h.onMouseOut=h.onMouseOut.bind(h),h.onMouseMove=h.onMouseMove.bind(h),h.waitForHover=h.waitForHover.bind(h),h.hide=h.hide.bind(h);var f=h.getElement();return f.style.whiteSpace="pre-wrap",f.style.pointerEvents="auto",f.addEventListener("mouseout",h.onMouseOut),f.tabIndex=-1,f.addEventListener("blur",function(){f.contains(document.activeElement)||this.hide()}.bind(h)),f.addEventListener("wheel",s),h}return _(l,o),l.prototype.addToEditor=function(u){u.on("mousemove",this.onMouseMove),u.on("mousedown",this.hide);var h=u.renderer.getMouseEventTarget();h&&"function"==typeof h.removeEventListener&&h.addEventListener("mouseout",this.onMouseOut,!0)},l.prototype.removeFromEditor=function(u){u.off("mousemove",this.onMouseMove),u.off("mousedown",this.hide);var h=u.renderer.getMouseEventTarget();h&&"function"==typeof h.removeEventListener&&h.removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},l.prototype.onMouseMove=function(u,h){this.lastEvent=u,this.lastT=Date.now();var f=h.$mouseHandler.isMousePressed;if(this.isOpen){var m=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(m.row,m.column)||f||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||f||(this.lastEvent=u,this.timeout=setTimeout(this.waitForHover,this.idleTime))},l.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var u=Date.now()-this.lastT;this.idleTime-u>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-u):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},l.prototype.isOutsideOfText=function(u){var h=u.editor,f=u.getDocumentPosition(),m=h.session.getLine(f.row);if(f.column==m.length){var y=h.renderer.pixelToScreenCoordinates(u.clientX,u.clientY),p=h.session.documentToScreenPosition(f.row,f.column);if(p.column!=y.column||p.row!=y.row)return!0}return!1},l.prototype.setDataProvider=function(u){this.$gatherData=u},l.prototype.showForRange=function(u,h,f,m){if(!(m&&m!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var y=u.renderer;this.isOpen||(e.addPopup(this),this.$registerCloseEvents(),this.setTheme(y.theme)),this.isOpen=!0,this.range=c.fromPoints(h.start,h.end);var p=y.textToScreenCoordinates(h.start.row,h.start.column),S=y.scroller.getBoundingClientRect();p.pageX<S.left&&(p.pageX=S.left);var $=this.getElement();$.innerHTML="",$.appendChild(f),$.style.maxHeight="",$.style.display="block",this.$setPosition(u,p,!0,h),v.$fixPositionBug($)}},l.prototype.$setPosition=function(u,h,f,m){f&&this.addMarker(m,u.session);var p=u.renderer,S=this.getElement(),A=S.offsetWidth,E=h.pageY,x=h.pageX,b=window.innerHeight-E-p.lineHeight,g=this.$shouldPlaceAbove(S.offsetHeight,E,b-10);S.style.maxHeight=(g?E:b)-10+"px",S.style.top=g?"":E+p.lineHeight+"px",S.style.bottom=g?window.innerHeight-E+"px":"",S.style.left=Math.min(x,window.innerWidth-A-10)+"px"},l.prototype.$shouldPlaceAbove=function(u,h,f){return!(h-u<0&&h<f)},l.prototype.addMarker=function(u,h){this.marker&&this.$markerSession.removeMarker(this.marker),this.$markerSession=h,this.marker=h&&h.addMarker(u,"ace_highlight-marker","text")},l.prototype.hide=function(u){u&&this.$fromKeyboard&&"keydown"==u.type&&"Escape"==u.code||!u&&document.activeElement==this.getElement()||u&&u.target&&("keydown"!=u.type||u.ctrlKey||u.metaKey)&&this.$element.contains(u.target)||(this.lastEvent=null,this.timeout&&clearTimeout(this.timeout),this.timeout=null,this.addMarker(null),this.isOpen&&(this.$fromKeyboard=!1,this.$removeCloseEvents(),this.getElement().style.display="none",this.isOpen=!1,e.removePopup(this)))},l.prototype.$registerCloseEvents=function(){window.addEventListener("keydown",this.hide,!0),window.addEventListener("wheel",this.hide,!0),window.addEventListener("mousedown",this.hide,!0)},l.prototype.$removeCloseEvents=function(){window.removeEventListener("keydown",this.hide,!0),window.removeEventListener("wheel",this.hide,!0),window.removeEventListener("mousedown",this.hide,!0)},l.prototype.onMouseOut=function(u){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.lastEvent=null,this.isOpen&&(!u.relatedTarget||this.getElement().contains(u.relatedTarget)||u&&u.currentTarget.contains(u.relatedTarget)||u.relatedTarget.classList.contains("ace_content")||this.hide())},l}(i);M.HoverTooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/mouse/mouse_event","ace/tooltip","ace/config","ace/range"],function(w,M,F){"use strict";var _=this&&this.__extends||function(){var e=function(n,o){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,u){l.__proto__=u}||function(l,u){for(var h in u)Object.prototype.hasOwnProperty.call(u,h)&&(l[h]=u[h])})(n,o)};return function(n,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function l(){this.constructor=n}e(n,o),n.prototype=null===o?Object.create(o):(l.prototype=o.prototype,new l)}}(),C=this&&this.__values||function(e){var n="function"==typeof Symbol&&Symbol.iterator,o=n&&e[n],l=0;if(o)return o.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&l>=e.length&&(e=void 0),{value:e&&e[l++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")},v=w("../lib/dom"),a=w("./mouse_event").MouseEvent,c=w("../tooltip").HoverTooltip,s=w("../config").nls,r=w("../range").Range;M.GutterHandler=function i(e){var n=e.editor,o=n.renderer.$gutterLayer;e.$tooltip=new t(n),e.$tooltip.addToEditor(n),e.$tooltip.setDataProvider(function(l,u){var h=l.getDocumentPosition().row;e.$tooltip.showTooltip(h)}),e.editor.setDefaultHandler("guttermousedown",function(l){if(n.isFocused()&&0==l.getButton()&&"foldWidgets"!=o.getRegion(l)){var h=l.getDocumentPosition().row,f=n.session.selection;if(l.getShiftKey())f.selectTo(h,0);else{if(2==l.domEvent.detail)return n.selectAll(),l.preventDefault();e.$clickSelection=n.selection.getLineRange(h)}return e.setState("selectByLines"),e.captureMouse(l),l.preventDefault()}})};var t=function(e){function n(o){var l=e.call(this,o.container)||this;l.id="gt"+ ++n.$uid,l.editor=o;var u=l.getElement();return u.setAttribute("role","tooltip"),u.setAttribute("id",l.id),u.style.pointerEvents="auto",l.idleTime=50,l.onDomMouseMove=l.onDomMouseMove.bind(l),l.onDomMouseOut=l.onDomMouseOut.bind(l),l.setClassName("ace_gutter-tooltip"),l}return _(n,e),n.prototype.onDomMouseMove=function(o){var l=new a(o,this.editor);this.onMouseMove(l,this.editor)},n.prototype.onDomMouseOut=function(o){var l=new a(o,this.editor);this.onMouseOut(l)},n.prototype.addToEditor=function(o){var l=o.renderer.$gutter;l.addEventListener("mousemove",this.onDomMouseMove),l.addEventListener("mouseout",this.onDomMouseOut),e.prototype.addToEditor.call(this,o)},n.prototype.removeFromEditor=function(o){var l=o.renderer.$gutter;l.removeEventListener("mousemove",this.onDomMouseMove),l.removeEventListener("mouseout",this.onDomMouseOut),e.prototype.removeFromEditor.call(this,o)},n.prototype.destroy=function(){this.editor&&this.removeFromEditor(this.editor),e.prototype.destroy.call(this)},Object.defineProperty(n,"annotationLabels",{get:function(){return{error:{singular:s("gutter-tooltip.aria-label.error.singular","error"),plural:s("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:s("gutter-tooltip.aria-label.security.singular","security finding"),plural:s("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:s("gutter-tooltip.aria-label.warning.singular","warning"),plural:s("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:s("gutter-tooltip.aria-label.info.singular","information message"),plural:s("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:s("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:s("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),n.prototype.showTooltip=function(o){var l,f,u=this.editor.renderer.$gutterLayer,h=u.$annotations[o];f=h?{displayText:Array.from(h.displayText),type:Array.from(h.type)}:{displayText:[],type:[]};var m=u.session.getFoldLine(o);if(m&&u.$showFoldedAnnotations){for(var S,y={error:[],security:[],warning:[],info:[],hint:[]},p={error:1,security:2,warning:3,info:4,hint:5},$=o+1;$<=m.end.row;$++)if(u.$annotations[$])for(var A=0;A<u.$annotations[$].text.length;A++){var E=u.$annotations[$].type[A];y[E].push(u.$annotations[$].text[A]),(!S||p[E]<p[S])&&(S=E)}if(["error","security","warning"].includes(S)){var x="".concat(n.annotationsToSummaryString(y)," in folded code.");f.displayText.push(x),f.type.push(S+"_fold")}}if(0===f.displayText.length)return this.hide();var b={error:[],security:[],warning:[],info:[],hint:[]},g=u.$useSvgGutterIcons?"ace_icon_svg":"ace_icon";for($=0;$<f.displayText.length;$++){var d=v.createElement("span"),k=v.createElement("span");(l=k.classList).add.apply(l,["ace_".concat(f.type[$]),g]),k.setAttribute("aria-label","".concat(n.annotationLabels[f.type[$].replace("_fold","")].singular)),k.setAttribute("role","img"),k.appendChild(v.createTextNode(" ")),d.appendChild(k),d.appendChild(v.createTextNode(f.displayText[$])),d.appendChild(v.createElement("br")),b[f.type[$].replace("_fold","")].push(d)}var T=v.createElement("span");b.error.forEach(function(I){return T.appendChild(I)}),b.security.forEach(function(I){return T.appendChild(I)}),b.warning.forEach(function(I){return T.appendChild(I)}),b.info.forEach(function(I){return T.appendChild(I)}),b.hint.forEach(function(I){return T.appendChild(I)}),T.setAttribute("aria-live","polite");var L=this.$findLinkedAnnotationNode(o);L&&L.setAttribute("aria-describedby",this.id);var R=r.fromPoints({row:o,column:0},{row:o,column:0});this.showForRange(this.editor,R,T),this.visibleTooltipRow=o,this.editor._signal("showGutterTooltip",this)},n.prototype.$setPosition=function(o,l,u,h){var f=this.$findCellByRow(h.start.row);if(f){var m=f&&f.element,y=m&&m.querySelector(".ace_gutter_annotation");if(y){var p=y.getBoundingClientRect();if(p)return e.prototype.$setPosition.call(this,o,{pageX:p.right,pageY:p.top},!1,h)}}},n.prototype.$shouldPlaceAbove=function(o,l,u){return u<o},n.prototype.$findLinkedAnnotationNode=function(o){var l=this.$findCellByRow(o);if(l){var u=l.element;if(u.childNodes.length>2)return u.childNodes[2]}},n.prototype.$findCellByRow=function(o){return this.editor.renderer.$gutterLayer.$lines.cells.find(function(l){return l.row===o})},n.prototype.hide=function(o){if(this.isOpen){if(this.$element.removeAttribute("aria-live"),null!=this.visibleTooltipRow){var l=this.$findLinkedAnnotationNode(this.visibleTooltipRow);l&&l.removeAttribute("aria-describedby")}this.visibleTooltipRow=void 0,this.editor._signal("hideGutterTooltip",this),e.prototype.hide.call(this,o)}},n.annotationsToSummaryString=function(o){var l,u,h=[];try{for(var m=C(["error","security","warning","info","hint"]),y=m.next();!y.done;y=m.next()){var p=y.value;if(o[p].length){var S=1===o[p].length?n.annotationLabels[p].singular:n.annotationLabels[p].plural;h.push("".concat(o[p].length," ").concat(S))}}}catch($){l={error:$}}finally{try{y&&!y.done&&(u=m.return)&&u.call(m)}finally{if(l)throw l.error}}return h.join(", ")},n.prototype.isOutsideOfText=function(o){var u=o.editor.renderer.$gutter.getBoundingClientRect();return!(o.clientX>=u.left&&o.clientX<=u.right&&o.clientY>=u.top&&o.clientY<=u.bottom)},n}(c);t.$uid=0,M.GutterTooltip=t}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(w,M,F){"use strict";var _=w("../lib/dom"),C=w("../lib/event"),v=w("../lib/useragent");function r(t){var e=t.editor,n=_.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent="\xa0",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(D){t[D]=this[D]},this),e.on("mousedown",this.onMouseDown.bind(t));var u,h,f,m,y,p,$,A,E,x,b,l=e.container,S=0;function k(){var D=p;(function g(D,B){var W=Date.now();x&&B&&D.row==B.row&&B&&D.column==B.column?i(b.x,b.y,h,f)>5?x=null:W-x>=200&&(e.renderer.scrollCursorIntoView(),x=null):(e.moveCursorToPosition(D),x=W,b={x:h,y:f})})(p=e.renderer.screenToTextCoordinates(h,f),D),function d(D,B){var W=Date.now(),z=e.renderer.layerConfig.lineHeight,H=e.renderer.layerConfig.characterWidth,U=e.renderer.scroller.getBoundingClientRect(),j={x:{left:h-U.left,right:U.right-h},y:{top:f-U.top,bottom:U.bottom-f}},P=Math.min(j.x.left,j.x.right),K=Math.min(j.y.top,j.y.bottom),V={row:D.row,column:D.column};P/H<=2&&(V.column+=j.x.left<j.x.right?-3:2),K/z<=1&&(V.row+=j.y.top<j.y.bottom?-1:1),D.row!=V.row||D.column!=V.column&&B&&D.row==B.row?E?W-E>=200&&e.renderer.scrollCursorIntoView(V):E=W:E=null}(p,D)}function T(){y=e.selection.toOrientedRange(),u=e.session.addMarker(y,"ace_selection",e.getSelectionStyle()),e.clearSelection(),e.isFocused()&&e.renderer.$cursorLayer.setBlinking(!1),clearInterval(m),k(),m=setInterval(k,20),S=0,C.addListener(document,"mousemove",I)}function L(){clearInterval(m),e.session.removeMarker(u),u=null,e.selection.fromOrientedRange(y),e.isFocused()&&!A&&e.$resetCursorStyle(),y=null,p=null,S=0,E=null,x=null,C.removeListener(document,"mousemove",I)}this.onDragStart=function(D){if(this.cancelDrag||!l.draggable){var B=this;return setTimeout(function(){B.startSelect(),B.captureMouse(D)},0),D.preventDefault()}y=e.getSelectionRange();var W=D.dataTransfer;W.effectAllowed=e.getReadOnly()?"copy":"copyMove",e.container.appendChild(n),W.setDragImage&&W.setDragImage(n,0,0),setTimeout(function(){e.container.removeChild(n)}),W.clearData(),W.setData("Text",e.session.getTextRange()),A=!0,this.setState("drag")},this.onDragEnd=function(D){l.draggable=!1,A=!1,this.setState(null),e.getReadOnly()||(!$&&"move"==D.dataTransfer.dropEffect&&e.session.remove(e.getSelectionRange()),e.$resetCursorStyle()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(D){if(!e.getReadOnly()&&O(D.dataTransfer))return h=D.clientX,f=D.clientY,u||T(),S++,D.dataTransfer.dropEffect=$=N(D),C.preventDefault(D)},this.onDragOver=function(D){if(!e.getReadOnly()&&O(D.dataTransfer))return h=D.clientX,f=D.clientY,u||(T(),S++),null!==R&&(R=null),D.dataTransfer.dropEffect=$=N(D),C.preventDefault(D)},this.onDragLeave=function(D){if(--S<=0&&u)return L(),$=null,C.preventDefault(D)},this.onDrop=function(D){if(p){var B=D.dataTransfer;if(A)switch($){case"move":y=y.contains(p.row,p.column)?{start:p,end:p}:e.moveText(y,p);break;case"copy":y=e.moveText(y,p,!0)}else{var W=B.getData("Text");y={start:p,end:e.session.insert(p,W)},e.focus(),$=null}return L(),C.preventDefault(D)}},C.addListener(l,"dragstart",this.onDragStart.bind(t),e),C.addListener(l,"dragend",this.onDragEnd.bind(t),e),C.addListener(l,"dragenter",this.onDragEnter.bind(t),e),C.addListener(l,"dragover",this.onDragOver.bind(t),e),C.addListener(l,"dragleave",this.onDragLeave.bind(t),e),C.addListener(l,"drop",this.onDrop.bind(t),e);var R=null;function I(){null==R&&(R=setTimeout(function(){null!=R&&u&&L()},20))}function O(D){var B=D.types;return!B||Array.prototype.some.call(B,function(W){return"text/plain"==W||"Text"==W})}function N(D){var B=["copy","copymove","all","uninitialized"],z=v.isMac?D.altKey:D.ctrlKey,H="uninitialized";try{H=D.dataTransfer.effectAllowed.toLowerCase()}catch{}var U="none";return z&&B.indexOf(H)>=0?U="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(H)>=0?U="move":B.indexOf(H)>=0&&(U="copy"),U}}function i(t,e,n,o){return Math.sqrt(Math.pow(n-t,2)+Math.pow(o-e,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(t){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var t=this.editor;t.container.draggable=!0,t.renderer.$cursorLayer.setBlinking(!1),t.setStyle("ace_dragging"),t.renderer.setCursorStyle(v.isWin?"default":"move"),this.setState("dragReady")},this.onMouseDrag=function(t){var e=this.editor.container;v.isIE&&"dragReady"==this.state&&i(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&e.dragDrop(),"dragWait"===this.state&&i(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(t){if(this.$dragEnabled){this.mousedownEvent=t;var e=this.editor,n=t.inSelection(),o=t.getButton();if(1===(t.domEvent.detail||1)&&0===o&&n){if(t.editor.inMultiSelectMode&&(t.getAccelKey()||t.getShiftKey()))return;this.mousedownEvent.time=Date.now();var u=t.domEvent.target||t.domEvent.srcElement;"unselectable"in u&&(u.unselectable="on"),e.getDragDelay()?(v.isWebKit&&(this.cancelDrag=!0,e.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(t,this.onMouseDrag.bind(this)),t.defaultPrevented=!0}}}}).call(r.prototype),M.DragdropHandler=r}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(w,M,F){"use strict";var _=w("./mouse_event").MouseEvent,C=w("../lib/event"),v=w("../lib/dom");M.addTouchListeners=function(a,c){var r,i,t,e,n,o,u,y,p,s="scroll",l=0,h=0,f=0,m=0;function $(){if(c.getOption("enableMobileMenu")){p||function S(){var g=window.navigator&&window.navigator.clipboard,d=!1,T=function(R){return c.commands.canExecute(R,c)},L=function(R){var I=R.target.getAttribute("action");if("more"==I||!d)return d=!d,function(){var R=c.getCopyText(),I=c.session.getUndoManager().hasUndo();p.replaceChild(v.buildDom(d?["span",!R&&T("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],R&&T("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],R&&T("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],g&&T("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],I&&T("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],T("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],T("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild)}();"paste"==I?g.readText().then(function(O){c.execCommand(I,O)}):I&&(("cut"==I||"copy"==I)&&(g?g.writeText(c.getCopyText()):document.execCommand("copy")),c.execCommand(I)),p.firstChild.style.display="none",d=!1,"openCommandPalette"!=I&&c.focus()};p=v.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(R){s="menu",R.stopPropagation(),R.preventDefault(),c.textInput.focus()},ontouchend:function(R){R.stopPropagation(),R.preventDefault(),L(R)},onclick:L},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],c.container)}();var g=c.selection.cursor,d=c.renderer.textToScreenCoordinates(g.row,g.column),k=c.renderer.textToScreenCoordinates(0,0).pageX,T=c.renderer.scrollLeft,L=c.container.getBoundingClientRect();p.style.top=d.pageY-L.top-3+"px",d.pageX-L.left<L.width-70?(p.style.left="",p.style.right="10px"):(p.style.right="",p.style.left=k+T-L.left+"px"),p.style.display="",p.firstChild.style.display="none",c.on("input",A)}else p&&A()}function A(g){p&&(p.style.display="none"),c.off("input",A)}function E(){n=null,clearTimeout(n);var g=c.selection.getRange(),d=g.contains(u.row,u.column);(g.isEmpty()||!d)&&(c.selection.moveToPosition(u),c.selection.selectWord()),s="wait",$()}C.addListener(a,"contextmenu",function(g){y&&c.textInput.getElement().focus()},c),C.addListener(a,"touchstart",function(g){var d=g.touches;if(n||d.length>1)return clearTimeout(n),n=null,t=-1,void(s="zoom");y=c.$mouseHandler.isMousePressed=!0;var k=c.renderer.layerConfig.lineHeight,T=c.renderer.layerConfig.lineHeight,L=g.timeStamp;e=L;var R=d[0],I=R.clientX,O=R.clientY;Math.abs(r-I)+Math.abs(i-O)>k&&(t=-1),r=g.clientX=I,i=g.clientY=O,f=m=0;var N=new _(g,c);if(u=N.getDocumentPosition(),L-t<500&&1==d.length&&!l)h++,g.preventDefault(),g.button=0,function x(){n=null,clearTimeout(n),c.selection.moveToPosition(u);var g=h>=2?c.selection.getLineRange(u.row):c.session.getBracketRange(u);g&&!g.isEmpty()?c.selection.setRange(g):c.selection.selectWord(),s="wait"}();else{h=0;var D=c.selection.cursor,B=c.selection.isEmpty()?D:c.selection.anchor,W=c.renderer.$cursorLayer.getPixelPosition(D,!0),z=c.renderer.$cursorLayer.getPixelPosition(B,!0),H=c.renderer.scroller.getBoundingClientRect(),U=c.renderer.layerConfig.offset,j=c.renderer.scrollLeft,P=function(Q,Z){return(Q/=T)*Q+(Z=Z/k-.75)*Z};if(g.clientX<H.left)return void(s="zoom");var K=P(g.clientX-H.left-W.left+j,g.clientY-H.top-W.top+U),V=P(g.clientX-H.left-z.left+j,g.clientY-H.top-z.top+U);K<3.5&&V<3.5&&(s=K>V?"cursor":"anchor"),s=V<3.5?"anchor":K<3.5?"cursor":"scroll",n=setTimeout(E,450)}t=L},c),C.addListener(a,"touchend",function(g){y=c.$mouseHandler.isMousePressed=!1,o&&clearInterval(o),"zoom"==s?(s="",l=0):n?(c.selection.moveToPosition(u),l=0,$()):"scroll"==s?(function b(){l+=60,o=setInterval(function(){l--<=0&&(clearInterval(o),o=null),Math.abs(f)<.01&&(f=0),Math.abs(m)<.01&&(m=0),l<20&&(f*=.9),l<20&&(m*=.9);var g=c.session.getScrollTop();c.renderer.scrollBy(10*f,10*m),g==c.session.getScrollTop()&&(l=0)},10)}(),A()):$(),clearTimeout(n),n=null},c),C.addListener(a,"touchmove",function(g){n&&(clearTimeout(n),n=null);var d=g.touches;if(!(d.length>1||"zoom"==s)){var k=d[0],T=r-k.clientX,L=i-k.clientY;if("wait"==s){if(!(T*T+L*L>4))return g.preventDefault();s="cursor"}r=k.clientX,i=k.clientY,g.clientX=k.clientX,g.clientY=k.clientY;var R=g.timeStamp,I=R-e;if(e=R,"scroll"==s){var O=new _(g,c);O.speed=1,O.wheelX=T,O.wheelY=L,10*Math.abs(T)<Math.abs(L)&&(T=0),10*Math.abs(L)<Math.abs(T)&&(L=0),0!=I&&(f=T/I,m=L/I),c._emit("mousewheel",O),O.propagationStopped||(f=m=0)}else{var D=new _(g,c).getDocumentPosition();"cursor"==s?c.selection.moveCursorToPosition(D):"anchor"==s&&c.selection.setSelectionAnchor(D.row,D.column),c.renderer.scrollCursorIntoView(D),g.preventDefault()}}},c)}}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/mouse/touch_handler","ace/config"],function(w,M,F){"use strict";var _=w("../lib/event"),C=w("../lib/useragent"),v=w("./default_handlers").DefaultHandlers,a=w("./default_gutter_handler").GutterHandler,c=w("./mouse_event").MouseEvent,s=w("./dragdrop_handler").DragdropHandler,r=w("./touch_handler").addTouchListeners,i=w("../config"),t=function(){function e(n){var o=this;this.editor=n,new v(this),new a(this),new s(this);var l=function(f){(!document.hasFocus||!document.hasFocus()||!n.isFocused()&&document.activeElement==(n.textInput&&n.textInput.getElement()))&&window.focus(),n.focus(),setTimeout(function(){n.isFocused()||n.focus()})},u=n.renderer.getMouseEventTarget();_.addListener(u,"click",this.onMouseEvent.bind(this,"click"),n),_.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove"),n),_.addMultiMouseDownListener([u,n.renderer.scrollBarV&&n.renderer.scrollBarV.inner,n.renderer.scrollBarH&&n.renderer.scrollBarH.inner,n.textInput&&n.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent",n),_.addMouseWheelListener(n.container,this.onMouseWheel.bind(this,"mousewheel"),n),r(n.container,n);var h=n.renderer.$gutter;_.addListener(h,"mousedown",this.onMouseEvent.bind(this,"guttermousedown"),n),_.addListener(h,"click",this.onMouseEvent.bind(this,"gutterclick"),n),_.addListener(h,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick"),n),_.addListener(h,"mousemove",this.onMouseEvent.bind(this,"guttermousemove"),n),_.addListener(u,"mousedown",l,n),_.addListener(h,"mousedown",l,n),C.isIE&&n.renderer.scrollBarV&&(_.addListener(n.renderer.scrollBarV.element,"mousedown",l,n),_.addListener(n.renderer.scrollBarH.element,"mousedown",l,n)),n.on("mousemove",function(f){if(!o.state&&!o.$dragDelay&&o.$dragEnabled){var m=n.renderer.screenToTextCoordinates(f.x,f.y),y=n.session.selection.getRange(),p=n.renderer;!y.isEmpty()&&y.insideStart(m.row,m.column)?p.setCursorStyle("default"):p.setCursorStyle("")}},n)}return e.prototype.onMouseEvent=function(n,o){this.editor.session&&this.editor._emit(n,new c(o,this.editor))},e.prototype.onMouseMove=function(n,o){var l=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;!l||!l.length||this.editor._emit(n,new c(o,this.editor))},e.prototype.onMouseWheel=function(n,o){var l=new c(o,this.editor);l.speed=2*this.$scrollSpeed,l.wheelX=o.wheelX,l.wheelY=o.wheelY,this.editor._emit(n,l)},e.prototype.setState=function(n){this.state=n},e.prototype.captureMouse=function(n,o){this.x=n.x,this.y=n.y,this.isMousePressed=!0;var l=this.editor,u=this.editor.renderer;u.$isMousePressed=!0;var h=this,f=!0,m=function(A){if(A){if(C.isWebKit&&!A.which&&h.releaseMouse)return h.releaseMouse();h.x=A.clientX,h.y=A.clientY,o&&o(A),h.mouseEvent=new c(A,h.editor),h.$mouseMoved=!0}},y=function(A){l.off("beforeEndOperation",$),f=!1,l.session&&p(),h[h.state+"End"]&&h[h.state+"End"](A),h.state="",h.isMousePressed=u.$isMousePressed=!1,u.$keepTextAreaAtCursor&&u.$moveTextAreaToCursor(),h.$onCaptureMouseMove=h.releaseMouse=null,A&&h.onMouseEvent("mouseup",A),l.endOperation()},p=function(){h[h.state]&&h[h.state](),h.$mouseMoved=!1},S=function(){f&&(p(),_.nextFrame(S))};if(C.isOldIE&&"dblclick"==n.domEvent.type)return setTimeout(function(){y(n)});var $=function(A){h.releaseMouse&&l.curOp.command.name&&l.curOp.selectionChanged&&(h[h.state+"End"]&&h[h.state+"End"](),h.state="",h.releaseMouse())};l.on("beforeEndOperation",$),l.startOperation({command:{name:"mouse"}}),h.$onCaptureMouseMove=m,h.releaseMouse=_.capture(this.editor.container,m,y),S()},e.prototype.cancelContextMenu=function(){var n=function(o){o&&o.domEvent&&"contextmenu"!=o.domEvent.type||(this.editor.off("nativecontextmenu",n),o&&o.domEvent&&_.stopEvent(o.domEvent))}.bind(this);setTimeout(n,10),this.editor.on("nativecontextmenu",n)},e.prototype.destroy=function(){this.releaseMouse&&this.releaseMouse(),this.$tooltip&&this.$tooltip.destroy()},e}();t.prototype.releaseMouse=null,i.defineOptions(t.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:C.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0}}),M.MouseHandler=t}),ace.define("ace/mouse/fold_handler",["require","exports","module","ace/lib/dom"],function(w,M,F){"use strict";var _=w("../lib/dom");M.FoldHandler=function(){return function v(a){a.on("click",function(c){var s=c.getDocumentPosition(),r=a.session,i=r.getFoldAt(s.row,s.column,1);i&&(c.getAccelKey()?r.removeFold(i):r.expandFold(i),c.stop());var t=c.domEvent&&c.domEvent.target;t&&_.hasCssClass(t,"ace_inline_button")&&_.hasCssClass(t,"ace_toggle_wrap")&&(r.setOption("wrap",!r.getUseWrapMode()),a.renderer.scrollCursorIntoView())}),a.on("gutterclick",function(c){if("foldWidgets"==a.renderer.$gutterLayer.getRegion(c)){var r=c.getDocumentPosition().row,i=a.session;i.foldWidgets&&i.foldWidgets[r]&&a.session.onFoldWidgetClick(r,c),a.isFocused()||a.focus(),c.stop()}}),a.on("gutterdblclick",function(c){if("foldWidgets"==a.renderer.$gutterLayer.getRegion(c)){var r=c.getDocumentPosition().row,i=a.session,t=i.getParentFoldRangeData(r,!0),e=t.range||t.firstRange;if(e){var n=i.getFoldAt(r=e.start.row,i.getLine(r).length,1);n?i.removeFold(n):(i.addFold("...",e),a.renderer.scrollCursorIntoView({row:e.start.row,column:0}))}c.stop()}})}}()}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(w,M,F){"use strict";var _=w("../lib/keys"),C=w("../lib/event"),v=function(){function a(c){this.$editor=c,this.$data={editor:c},this.$handlers=[],this.setDefaultHandler(c.commands)}return a.prototype.setDefaultHandler=function(c){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=c,this.addKeyboardHandler(c,0)},a.prototype.setKeyboardHandler=function(c){var s=this.$handlers;if(s[s.length-1]!=c){for(;s[s.length-1]&&s[s.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(s[s.length-1]);this.addKeyboardHandler(c,1)}},a.prototype.addKeyboardHandler=function(c,s){if(c){"function"==typeof c&&!c.handleKeyboard&&(c.handleKeyboard=c);var r=this.$handlers.indexOf(c);-1!=r&&this.$handlers.splice(r,1),null==s?this.$handlers.push(c):this.$handlers.splice(s,0,c),-1==r&&c.attach&&c.attach(this.$editor)}},a.prototype.removeKeyboardHandler=function(c){var s=this.$handlers.indexOf(c);return-1!=s&&(this.$handlers.splice(s,1),c.detach&&c.detach(this.$editor),!0)},a.prototype.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},a.prototype.getStatusText=function(){var c=this.$data,s=c.editor;return this.$handlers.map(function(r){return r.getStatusText&&r.getStatusText(s,c)||""}).filter(Boolean).join(" ")},a.prototype.$callKeyboardHandlers=function(c,s,r,i){for(var t,e=!1,n=this.$editor.commands,o=this.$handlers.length;o--&&!((t=this.$handlers[o].handleKeyboard(this.$data,c,s,r,i))&&t.command&&(e="null"==t.command||n.exec(t.command,this.$editor,t.args,i),e&&i&&-1!=c&&1!=t.passEvent&&1!=t.command.passEvent&&C.stopEvent(i),e)););return!e&&-1==c&&(t={command:"insertstring"},e=n.exec("insertstring",this.$editor,s)),e&&this.$editor._signal&&this.$editor._signal("keyboardActivity",t),e},a.prototype.onCommandKey=function(c,s,r){var i=_.keyCodeToString(r);return this.$callKeyboardHandlers(s,i,r,c)},a.prototype.onTextInput=function(c){return this.$callKeyboardHandlers(-1,c)},a}();M.KeyBinding=v}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(w,M,F){"use strict";var v=0,a=0,c=!1,r=!1,i=!1,n=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],o=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],g=11,O=18,N=[O,O,O,O,O,O,O,O,O,6,5,6,8,5,O,O,O,O,O,O,O,O,O,O,O,O,O,O,5,5,5,6,8,4,4,g,g,g,4,4,4,4,4,10,9,10,9,9,2,2,2,2,2,2,2,2,2,2,9,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,O,O,O,O,O,O,5,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,9,4,g,g,g,g,4,4,4,4,0,4,4,O,4,4,g,g,2,2,4,0,4,4,4,2,0,4,4,4,4,4],D=[8,8,8,8,8,8,8,8,8,8,8,O,O,O,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,5,13,14,15,16,17,9,g,g,g,g,g,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8];function W(j,P,K){if(!(a<j)){if(1==j&&1==v&&!r)return void K.reverse();for(var Z,J,X,q,V=K.length,Q=0;Q<V;){if(P[Q]>=j){for(Z=Q+1;Z<V&&P[Z]>=j;)Z++;for(J=Q,X=Z-1;J<X;J++,X--)q=K[J],K[J]=K[X],K[X]=q;Q=Z}Q++}}}function z(j,P,K,V){var Z,J,X,q,Q=P[V];switch(Q){case 0:case 1:c=!1;case 4:case 3:return Q;case 2:return c?3:2;case 7:return c=!0,1;case 8:return 4;case 9:return V<1||V+1>=P.length||2!=(Z=K[V-1])&&3!=Z||2!=(J=P[V+1])&&3!=J?4:(c&&(J=3),J==Z?J:4);case 10:return 2==(Z=V>0?K[V-1]:5)&&V+1<P.length&&2==P[V+1]?2:4;case g:if(V>0&&2==K[V-1])return 2;if(c)return 4;for(q=V+1,X=P.length;q<X&&P[q]==g;)q++;return q<X&&2==P[q]?2:4;case 12:for(X=P.length,q=V+1;q<X&&12==P[q];)q++;if(q<X){var re=j[V];if(Z=P[q],(re>=1425&&re<=2303||64286==re)&&(1==Z||7==Z))return 1}return V<1||5==(Z=P[V-1])?4:K[V-1];case 5:return c=!1,r=!0,v;case 6:return i=!0,4;case 13:case 14:case 16:case 17:case 15:c=!1;case O:return 4}}function H(j){var P=j.charCodeAt(0),K=P>>8;return 0==K?P>191?0:N[P]:5==K?/[\u0591-\u05f4]/.test(j)?1:0:6==K?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(j)?12:/[\u0660-\u0669\u066b-\u066c]/.test(j)?3:1642==P?g:/[\u06f0-\u06f9]/.test(j)?2:7:32==K&&P<=8287?D[255&P]:254==K&&P>=65136?7:4}M.L=0,M.R=1,M.EN=2,M.ON_R=3,M.AN=4,M.R_H=5,M.B=6,M.RLE=7,M.DOT="\xb7",M.doBidiReorder=function(j,P,K){if(j.length<2)return{};var V=j.split(""),Q=new Array(V.length),Z=new Array(V.length),J=[];v=K?1:0,function B(j,P,K,V){var Q=v?o:n,Z=null,J=null,X=null,q=0,re=null,ie=-1,ee=null,ne=null,ae=[];if(!V)for(ee=0,V=[];ee<K;ee++)V[ee]=H(j[ee]);for(a=v,c=!1,r=!1,i=!1,ne=0;ne<K;ne++){if(Z=q,ae[ne]=J=z(j,V,ae,ne),re=240&(q=Q[Z][J]),P[ne]=X=Q[q&=15][5],re>0)if(16==re){for(ee=ie;ee<ne;ee++)P[ee]=1;ie=-1}else ie=-1;if(Q[q][6])-1==ie&&(ie=ne);else if(ie>-1){for(ee=ie;ee<ne;ee++)P[ee]=X;ie=-1}5==V[ne]&&(P[ne]=0),a|=X}if(i)for(ee=0;ee<K;ee++)if(6==V[ee]){P[ee]=v;for(var se=ee-1;se>=0&&8==V[se];se--)P[se]=v}}(V,J,V.length,P);for(var X=0;X<Q.length;Q[X]=X,X++);for(W(2,J,Q),W(1,J,Q),X=0;X<Q.length-1;X++)3===P[X]?J[X]=M.AN:1===J[X]&&(P[X]>7&&P[X]<13||4===P[X]||P[X]===O)?J[X]=M.ON_R:X>0&&"\u0644"===V[X-1]&&/\u0622|\u0623|\u0625|\u0627/.test(V[X])&&(J[X-1]=J[X]=M.R_H,X++);for(V[V.length-1]===M.DOT&&(J[V.length-1]=M.B),"\u202b"===V[0]&&(J[0]=M.RLE),X=0;X<Q.length;X++)Z[X]=J[Q[X]];return{logicalFromVisual:Q,bidiLevels:Z}},M.hasBidiCharacters=function(j,P){for(var K=!1,V=0;V<j.length;V++)P[V]=H(j.charAt(V)),!K&&(1==P[V]||7==P[V]||3==P[V])&&(K=!0);return K},M.getVisualFromLogicalIdx=function(j,P){for(var K=0;K<P.logicalFromVisual.length;K++)if(P.logicalFromVisual[K]==j)return K;return 0}}),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"],function(w,M,F){"use strict";var _=w("./lib/bidiutil"),C=w("./lib/lang"),v=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,a=function(){function c(s){this.session=s,this.bidiMap={},this.currentRow=null,this.bidiUtil=_,this.charWidths=[],this.EOL="\xac",this.showInvisibles=!0,this.isRtlDir=!1,this.$isRtl=!1,this.line="",this.wrapIndent=0,this.EOF="\xb6",this.RLE="\u202b",this.contentWidth=0,this.fontMetrics=null,this.rtlLineOffset=0,this.wrapOffset=0,this.isMoveLeftOperation=!1,this.seenBidi=v.test(s.getValue())}return c.prototype.isBidiRow=function(s,r,i){return!!this.seenBidi&&(s!==this.currentRow&&(this.currentRow=s,this.updateRowLine(r,i),this.updateBidiMap()),this.bidiMap.bidiLevels)},c.prototype.onChange=function(s){this.seenBidi?this.currentRow=null:"insert"==s.action&&v.test(s.lines.join("\n"))&&(this.seenBidi=!0,this.currentRow=null)},c.prototype.getDocumentRow=function(){var s=0,r=this.session.$screenRowCache;if(r.length){var i=this.session.$getRowCacheIndex(r,this.currentRow);i>=0&&(s=this.session.$docRowCache[i])}return s},c.prototype.getSplitIndex=function(){var s=0,r=this.session.$screenRowCache;if(r.length)for(var i,t=this.session.$getRowCacheIndex(r,this.currentRow);this.currentRow-s>0&&(i=this.session.$getRowCacheIndex(r,this.currentRow-s-1))===t;)t=i,s++;else s=this.currentRow;return s},c.prototype.updateRowLine=function(s,r){void 0===s&&(s=this.getDocumentRow());var t=s===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(s),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var e=this.session.$wrapData[s];e&&(void 0===r&&(r=this.getSplitIndex()),r>0&&e.length?(this.wrapIndent=e.indent,this.wrapOffset=this.wrapIndent*this.charWidths[_.L],this.line=r<e.length?this.line.substring(e[r-1],e[r]):this.line.substring(e[e.length-1])):this.line=this.line.substring(0,e[r]),r==e.length&&(this.line+=this.showInvisibles?t:_.DOT))}else this.line+=this.showInvisibles?t:_.DOT;var l,n=this.session,o=0;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(u,h){return"\t"===u||n.isFullWidth(u.charCodeAt(0))?(l="\t"===u?n.getScreenTabSize(h+o):2,o+=l-1,C.stringRepeat(_.DOT,l)):u}),this.isRtlDir&&(this.fontMetrics.$main.textContent=this.line.charAt(this.line.length-1)==_.DOT?this.line.substr(0,this.line.length-1):this.line,this.rtlLineOffset=this.contentWidth-this.fontMetrics.$main.getBoundingClientRect().width)},c.prototype.updateBidiMap=function(){var s=[];this.bidiMap=_.hasBidiCharacters(this.line,s)||this.isRtlDir?_.doBidiReorder(this.line,s,this.isRtlDir):{}},c.prototype.markAsDirty=function(){this.currentRow=null},c.prototype.updateCharacterWidths=function(s){if(this.characterWidth!==s.$characterSize.width){this.fontMetrics=s;var r=this.characterWidth=s.$characterSize.width,i=s.$measureCharWidth("\u05d4");this.charWidths[_.L]=this.charWidths[_.EN]=this.charWidths[_.ON_R]=r,this.charWidths[_.R]=this.charWidths[_.AN]=i,this.charWidths[_.R_H]=.45*i,this.charWidths[_.B]=this.charWidths[_.RLE]=0,this.currentRow=null}},c.prototype.setShowInvisibles=function(s){this.showInvisibles=s,this.currentRow=null},c.prototype.setEolChar=function(s){this.EOL=s},c.prototype.setContentWidth=function(s){this.contentWidth=s},c.prototype.isRtlLine=function(s){return!!this.$isRtl||(null!=s?this.session.getLine(s).charAt(0)==this.RLE:this.isRtlDir)},c.prototype.setRtlDirection=function(s,r){for(var i=s.getCursorPosition(),t=s.selection.getSelectionAnchor().row;t<=i.row;t++)r||s.session.getLine(t).charAt(0)!==s.session.$bidiHandler.RLE?r&&s.session.getLine(t).charAt(0)!==s.session.$bidiHandler.RLE&&s.session.doc.insert({column:0,row:t},s.session.$bidiHandler.RLE):s.session.doc.removeInLine(t,0,1)},c.prototype.getPosLeft=function(s){s-=this.wrapIndent;var r=this.line.charAt(0)===this.RLE?1:0,i=s>r?this.session.getOverwrite()?s:s-1:r,t=_.getVisualFromLogicalIdx(i,this.bidiMap),e=this.bidiMap.bidiLevels,n=0;!this.session.getOverwrite()&&s<=r&&e[t]%2!=0&&t++;for(var o=0;o<t;o++)n+=this.charWidths[e[o]];return!this.session.getOverwrite()&&s>r&&e[t]%2==0&&(n+=this.charWidths[e[t]]),this.wrapIndent&&(n+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(n+=this.rtlLineOffset),n},c.prototype.getSelections=function(s,r){var e,i=this.bidiMap,t=i.bidiLevels,n=[],o=0,l=Math.min(s,r)-this.wrapIndent,u=Math.max(s,r)-this.wrapIndent,h=!1,f=!1,m=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var y,p=0;p<t.length;p++)e=t[p],(h=(y=i.logicalFromVisual[p])>=l&&y<u)&&!f?m=o:!h&&f&&n.push({left:m,width:o-m}),o+=this.charWidths[e],f=h;if(h&&p===t.length&&n.push({left:m,width:o-m}),this.isRtlDir)for(var S=0;S<n.length;S++)n[S].left+=this.rtlLineOffset;return n},c.prototype.offsetToCol=function(i){this.isRtlDir&&(i-=this.rtlLineOffset);var r=0,t=(i=Math.max(i,0),0),e=0,n=this.bidiMap.bidiLevels,o=this.charWidths[n[e]];for(this.wrapIndent&&(i-=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);i>t+o/2;){if(t+=o,e===n.length-1){o=0;break}o=this.charWidths[n[++e]]}return e>0&&n[e-1]%2!=0&&n[e]%2==0?(i<t&&e--,r=this.bidiMap.logicalFromVisual[e]):e>0&&n[e-1]%2==0&&n[e]%2!=0?r=1+(i>t?this.bidiMap.logicalFromVisual[e]:this.bidiMap.logicalFromVisual[e-1]):this.isRtlDir&&e===n.length-1&&0===o&&n[e-1]%2==0||!this.isRtlDir&&0===e&&n[e]%2!=0?r=1+this.bidiMap.logicalFromVisual[e]:(e>0&&n[e-1]%2!=0&&0!==o&&e--,r=this.bidiMap.logicalFromVisual[e]),0===r&&this.isRtlDir&&r++,r+this.wrapIndent},c}();M.BidiHandler=a}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(w,M,F){"use strict";var _=w("./lib/oop"),C=w("./lib/lang"),v=w("./lib/event_emitter").EventEmitter,a=w("./range").Range,c=function(){function s(r){this.session=r,this.doc=r.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var i=this;this.cursor.on("change",function(t){i.$cursorChanged=!0,i.$silent||i._emit("changeCursor"),!i.$isEmpty&&!i.$silent&&i._emit("changeSelection"),!i.$keepDesiredColumnOnChange&&t.old.column!=t.value.column&&(i.$desiredColumn=null)}),this.anchor.on("change",function(){i.$anchorChanged=!0,!i.$isEmpty&&!i.$silent&&i._emit("changeSelection")})}return s.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},s.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},s.prototype.getCursor=function(){return this.lead.getPosition()},s.prototype.setAnchor=function(r,i){this.$isEmpty=!1,this.anchor.setPosition(r,i)},s.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},s.prototype.getSelectionLead=function(){return this.lead.getPosition()},s.prototype.isBackwards=function(){var r=this.anchor,i=this.lead;return r.row>i.row||r.row==i.row&&r.column>i.column},s.prototype.getRange=function(){var r=this.anchor,i=this.lead;return this.$isEmpty?a.fromPoints(i,i):this.isBackwards()?a.fromPoints(i,r):a.fromPoints(r,i)},s.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},s.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},s.prototype.setRange=function(r,i){var t=i?r.end:r.start,e=i?r.start:r.end;this.$setSelection(t.row,t.column,e.row,e.column)},s.prototype.$setSelection=function(r,i,t,e){if(!this.$silent){var n=this.$isEmpty,o=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(r,i),this.cursor.setPosition(t,e),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||n!=this.$isEmpty||o)&&this._emit("changeSelection")}},s.prototype.$moveSelection=function(r){var i=this.lead;this.$isEmpty&&this.setSelectionAnchor(i.row,i.column),r.call(this)},s.prototype.selectTo=function(r,i){this.$moveSelection(function(){this.moveCursorTo(r,i)})},s.prototype.selectToPosition=function(r){this.$moveSelection(function(){this.moveCursorToPosition(r)})},s.prototype.moveTo=function(r,i){this.clearSelection(),this.moveCursorTo(r,i)},s.prototype.moveToPosition=function(r){this.clearSelection(),this.moveCursorToPosition(r)},s.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},s.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},s.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},s.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},s.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},s.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},s.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},s.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},s.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},s.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},s.prototype.getWordRange=function(r,i){if(typeof i>"u"){var t=r||this.lead;r=t.row,i=t.column}return this.session.getWordRange(r,i)},s.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},s.prototype.selectAWord=function(){var r=this.getCursor(),i=this.session.getAWordRange(r.row,r.column);this.setSelectionRange(i)},s.prototype.getLineRange=function(r,i){var e,t="number"==typeof r?r:this.lead.row,n=this.session.getFoldLine(t);return n?(t=n.start.row,e=n.end.row):e=t,!0===i?new a(t,0,e,this.session.getLine(e).length):new a(t,0,e+1,0)},s.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},s.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},s.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},s.prototype.wouldMoveIntoSoftTab=function(r,i,t){var e=r.column,n=r.column+i;return t<0&&(e=r.column-i,n=r.column),this.session.isTabStop(r)&&this.doc.getLine(r.row).slice(e,n).split(" ").length-1==i},s.prototype.moveCursorLeft=function(){var i,r=this.lead.getPosition();if(i=this.session.getFoldAt(r.row,r.column,-1))this.moveCursorTo(i.start.row,i.start.column);else if(0===r.column)r.row>0&&this.moveCursorTo(r.row-1,this.doc.getLine(r.row-1).length);else{var t=this.session.getTabSize();this.wouldMoveIntoSoftTab(r,t,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-t):this.moveCursorBy(0,-1)}},s.prototype.moveCursorRight=function(){var i,r=this.lead.getPosition();if(i=this.session.getFoldAt(r.row,r.column,1))this.moveCursorTo(i.end.row,i.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var t=this.session.getTabSize();this.wouldMoveIntoSoftTab(r=this.lead,t,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,t):this.moveCursorBy(0,1)}},s.prototype.moveCursorLineStart=function(){var r=this.lead.row,i=this.lead.column,t=this.session.documentToScreenRow(r,i),e=this.session.screenToDocumentPosition(t,0),o=this.session.getDisplayLine(r,null,e.row,e.column).match(/^\s*/);o[0].length!=i&&!this.session.$useEmacsStyleLineStart&&(e.column+=o[0].length),this.moveCursorToPosition(e)},s.prototype.moveCursorLineEnd=function(){var r=this.lead,i=this.session.getDocumentLastRowColumnPosition(r.row,r.column);if(this.lead.column==i.column){var t=this.session.getLine(i.row);if(i.column==t.length){var e=t.search(/\s+$/);e>0&&(i.column=e)}}this.moveCursorTo(i.row,i.column)},s.prototype.moveCursorFileEnd=function(){var r=this.doc.getLength()-1,i=this.doc.getLine(r).length;this.moveCursorTo(r,i)},s.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},s.prototype.moveCursorLongWordRight=function(){var r=this.lead.row,i=this.lead.column,t=this.doc.getLine(r),e=t.substring(i);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var n=this.session.getFoldAt(r,i,1);if(!n)return this.session.nonTokenRe.exec(e)&&(i+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,e=t.substring(i)),i>=t.length?(this.moveCursorTo(r,t.length),this.moveCursorRight(),void(r<this.doc.getLength()-1&&this.moveCursorWordRight())):(this.session.tokenRe.exec(e)&&(i+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),void this.moveCursorTo(r,i));this.moveCursorTo(n.end.row,n.end.column)},s.prototype.moveCursorLongWordLeft=function(){var t,r=this.lead.row,i=this.lead.column;if(t=this.session.getFoldAt(r,i,-1))this.moveCursorTo(t.start.row,t.start.column);else{var e=this.session.getFoldStringAt(r,i,-1);null==e&&(e=this.doc.getLine(r).substring(0,i));var n=C.stringReverse(e);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(n)&&(i-=this.session.nonTokenRe.lastIndex,n=n.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),i<=0)return this.moveCursorTo(r,0),this.moveCursorLeft(),void(r>0&&this.moveCursorWordLeft());this.session.tokenRe.exec(n)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(r,i)}},s.prototype.$shortWordEndIndex=function(r){var t,i=0,e=/\s/,n=this.session.tokenRe;if(n.lastIndex=0,this.session.tokenRe.exec(r))i=this.session.tokenRe.lastIndex;else{for(;(t=r[i])&&e.test(t);)i++;if(i<1)for(n.lastIndex=0;(t=r[i])&&!n.test(t);)if(n.lastIndex=0,i++,e.test(t)){if(i>2){i--;break}for(;(t=r[i])&&e.test(t);)i++;if(i>2)break}}return n.lastIndex=0,i},s.prototype.moveCursorShortWordRight=function(){var r=this.lead.row,i=this.lead.column,t=this.doc.getLine(r),e=t.substring(i),n=this.session.getFoldAt(r,i,1);if(n)return this.moveCursorTo(n.end.row,n.end.column);if(i==t.length){var o=this.doc.getLength();do{r++,e=this.doc.getLine(r)}while(r<o&&/^\s*$/.test(e));/^\s+/.test(e)||(e=""),i=0}var l=this.$shortWordEndIndex(e);this.moveCursorTo(r,i+l)},s.prototype.moveCursorShortWordLeft=function(){var t,r=this.lead.row,i=this.lead.column;if(t=this.session.getFoldAt(r,i,-1))return this.moveCursorTo(t.start.row,t.start.column);var e=this.session.getLine(r).substring(0,i);if(0===i){do{r--,e=this.doc.getLine(r)}while(r>0&&/^\s*$/.test(e));i=e.length,/\s+$/.test(e)||(e="")}var n=C.stringReverse(e),o=this.$shortWordEndIndex(n);return this.moveCursorTo(r,i-o)},s.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},s.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},s.prototype.moveCursorBy=function(r,i){var e,t=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===i&&(0!==r&&(this.session.$bidiHandler.isBidiRow(t.row,this.lead.row)?(e=this.session.$bidiHandler.getPosLeft(t.column),t.column=Math.round(e/this.session.$bidiHandler.charWidths[0])):e=t.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?t.column=this.$desiredColumn:this.$desiredColumn=t.column),0!=r&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var n=this.session.lineWidgets[this.lead.row];r<0?r-=n.rowsAbove||0:r>0&&(r+=n.rowCount-(n.rowsAbove||0))}var o=this.session.screenToDocumentPosition(t.row+r,t.column,e);this.moveCursorTo(o.row,o.column+i,0===i)},s.prototype.moveCursorToPosition=function(r){this.moveCursorTo(r.row,r.column)},s.prototype.moveCursorTo=function(r,i,t){var e=this.session.getFoldAt(r,i,1);e&&(r=e.start.row,i=e.start.column),this.$keepDesiredColumnOnChange=!0;var n=this.session.getLine(r);/[\uDC00-\uDFFF]/.test(n.charAt(i))&&n.charAt(i-1)&&(this.lead.row==r&&this.lead.column==i+1?i-=1:i+=1),this.lead.setPosition(r,i),this.$keepDesiredColumnOnChange=!1,t||(this.$desiredColumn=null)},s.prototype.moveCursorToScreen=function(r,i,t){var e=this.session.screenToDocumentPosition(r,i);this.moveCursorTo(e.row,e.column,t)},s.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},s.prototype.fromOrientedRange=function(r){this.setSelectionRange(r,r.cursor==r.start),this.$desiredColumn=r.desiredColumn||this.$desiredColumn},s.prototype.toOrientedRange=function(r){var i=this.getRange();return r?(r.start.column=i.start.column,r.start.row=i.start.row,r.end.column=i.end.column,r.end.row=i.end.row):r=i,r.cursor=this.isBackwards()?r.start:r.end,r.desiredColumn=this.$desiredColumn,r},s.prototype.getRangeOfMovements=function(r){var i=this.getCursor();try{r(this);var t=this.getCursor();return a.fromPoints(i,t)}catch{return a.fromPoints(i,i)}finally{this.moveCursorToPosition(i)}},s.prototype.toJSON=function(){if(this.rangeCount)var r=this.ranges.map(function(i){var t=i.clone();return t.isBackwards=i.cursor==i.start,t});else(r=this.getRange()).isBackwards=this.isBackwards();return r},s.prototype.fromJSON=function(r){if(null==r.start){if(this.rangeList&&r.length>1){this.toSingleRange(r[0]);for(var i=r.length;i--;){var t=a.fromPoints(r[i].start,r[i].end);r[i].isBackwards&&(t.cursor=t.start),this.addRange(t,!0)}return}r=r[0]}this.rangeList&&this.toSingleRange(r),this.setSelectionRange(r,r.isBackwards)},s.prototype.isEqual=function(r){if((r.length||this.rangeCount)&&r.length!=this.rangeCount)return!1;if(!r.length||!this.ranges)return this.getRange().isEqual(r);for(var i=this.ranges.length;i--;)if(!this.ranges[i].isEqual(r[i]))return!1;return!0},s}();c.prototype.setSelectionAnchor=c.prototype.setAnchor,c.prototype.getSelectionAnchor=c.prototype.getAnchor,c.prototype.setSelectionRange=c.prototype.setRange,_.implement(c.prototype,v),M.Selection=c}),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(w,M,F){"use strict";var _=w("./lib/report_error").reportError,C=2e3,v=function(){function a(c){for(var s in this.states=c,this.regExps={},this.matchMappings={},this.states){for(var r=this.states[s],i=[],t=0,e=this.matchMappings[s]={defaultToken:"text"},n="g",o=[],l=0;l<r.length;l++){var u=r[l];if(u.defaultToken&&(e.defaultToken=u.defaultToken),u.caseInsensitive&&-1===n.indexOf("i")&&(n+="i"),u.unicode&&-1===n.indexOf("u")&&(n+="u"),null!=u.regex){u.regex instanceof RegExp&&(u.regex=u.regex.toString().slice(1,-1));var h=u.regex,f=new RegExp("(?:("+h+")|(.))").exec("a").length-2;Array.isArray(u.token)?1==u.token.length||1==f?u.token=u.token[0]:f-1!=u.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:u,groupCount:f-1}),u.token=u.token[0]):(u.tokenArray=u.token,u.token=null,u.onMatch=this.$arrayTokens):"function"==typeof u.token&&!u.onMatch&&(u.onMatch=f>1?this.$applyToken:u.token),f>1&&(/\\\d/.test(u.regex)?h=u.regex.replace(/\\([0-9]+)/g,function(m,y){return"\\"+(parseInt(y,10)+t+1)}):(f=1,h=this.removeCapturingGroups(u.regex)),!u.splitRegex&&"string"!=typeof u.token&&o.push(u)),e[t]=l,t+=f,i.push(h),u.onMatch||(u.onMatch=null)}}i.length||(e[0]=0,i.push("$")),o.forEach(function(m){m.splitRegex=this.createSplitterRegexp(m.regex,n)},this),this.regExps[s]=new RegExp("("+i.join(")|(")+")|($)",n)}}return a.prototype.$setMaxTokenCount=function(c){C=0|c},a.prototype.$applyToken=function(c){var s=this.splitRegex.exec(c).slice(1),r=this.token.apply(this,s);if("string"==typeof r)return[{type:r,value:c}];for(var i=[],t=0,e=r.length;t<e;t++)s[t]&&(i[i.length]={type:r[t],value:s[t]});return i},a.prototype.$arrayTokens=function(c){if(!c)return[];var s=this.splitRegex.exec(c);if(!s)return"text";for(var r=[],i=this.tokenArray,t=0,e=i.length;t<e;t++)s[t+1]&&(r[r.length]={type:i[t],value:s[t+1]});return r},a.prototype.removeCapturingGroups=function(c){return c.replace(/\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!<]|(\()/g,function(r,i){return i?"(?:":r})},a.prototype.createSplitterRegexp=function(c,s){if(-1!=c.indexOf("(?=")){var r=0,i=!1,t={};c.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,n,o,l,u,h){return i?i="]"!=u:u?i=!0:l?(r==t.stack&&(t.end=h+1,t.stack=-1),r--):o&&(r++,1!=o.length&&(t.stack=r,t.start=h)),e}),null!=t.end&&/^\)*$/.test(c.substr(t.end))&&(c=c.substring(0,t.start)+c.substr(t.end))}return"^"!=c.charAt(0)&&(c="^"+c),"$"!=c.charAt(c.length-1)&&(c+="$"),new RegExp(c,(s||"").replace("g",""))},a.prototype.getLineTokens=function(c,s){if(s&&"string"!=typeof s){var r=s.slice(0);"#tmp"===(s=r[0])&&(r.shift(),s=r.shift())}else r=[];var i=s||"start",t=this.states[i];t||(t=this.states[i="start"]);var e=this.matchMappings[i],n=this.regExps[i];n.lastIndex=0;for(var o,l=[],u=0,h=0,f={type:null,value:""};o=n.exec(c);){var m=e.defaultToken,y=null,p=o[0],S=n.lastIndex;if(S-p.length>u){var $=c.substring(u,S-p.length);f.type==m?f.value+=$:(f.type&&l.push(f),f={type:m,value:$})}for(var A=0;A<o.length-2;A++)if(void 0!==o[A+1]){m=(y=t[e[A]]).onMatch?y.onMatch(p,i,r,c):y.token,y.next&&(i="string"==typeof y.next?y.next:y.next(i,r),(t=this.states[i])||(this.reportError("state doesn't exist",i),t=this.states[i="start"]),e=this.matchMappings[i],u=S,(n=this.regExps[i]).lastIndex=S),y.consumeLineEnd&&(u=S);break}if(p)if("string"==typeof m)y&&!1===y.merge||f.type!==m?(f.type&&l.push(f),f={type:m,value:p}):f.value+=p;else if(m)for(f.type&&l.push(f),f={type:null,value:""},A=0;A<m.length;A++)l.push(m[A]);if(u==c.length)break;if(u=S,h++>C){for(h>2*c.length&&this.reportError("infinite loop with in ace tokenizer",{startState:s,line:c});u<c.length;)f.type&&l.push(f),f={value:c.substring(u,u+=500),type:"overflow"};i="start",r=[];break}}return f.type&&l.push(f),r.length>1&&r[0]!==i&&r.unshift("#tmp",i),{tokens:l,state:r.length?r:i}},a}();v.prototype.reportError=_,M.Tokenizer=v}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(w,M,F){"use strict";var C,_=w("../lib/deep_copy").deepCopy;(function(){this.addRules=function(c,s){if(s)for(var r in c){for(var i=c[r],t=0;t<i.length;t++){var e=i[t];(e.next||e.onMatch)&&("string"==typeof e.next&&0!==e.next.indexOf(s)&&(e.next=s+e.next),e.nextState&&0!==e.nextState.indexOf(s)&&(e.nextState=s+e.nextState))}this.$rules[s+r]=i}else for(var r in c)this.$rules[r]=c[r]},this.getRules=function(){return this.$rules},this.embedRules=function(c,s,r,i,t){var e="function"==typeof c?(new c).getRules():c;if(i)for(var n=0;n<i.length;n++)i[n]=s+i[n];else for(var o in i=[],e)i.push(s+o);if(this.addRules(e,s),r){var l=Array.prototype[t?"push":"unshift"];for(n=0;n<i.length;n++)l.apply(this.$rules[i[n]],_(r))}this.$embeds||(this.$embeds=[]),this.$embeds.push(s)},this.getEmbeds=function(){return this.$embeds};var v=function(c,s){return("start"!=c||s.length)&&s.unshift(this.nextState,c),this.nextState},a=function(c,s){return s.shift(),s.shift()||"start"};this.normalizeRules=function(){var c=0,s=this.$rules;Object.keys(s).forEach(function r(i){var t=s[i];t.processed=!0;for(var e=0;e<t.length;e++){var n=t[e],o=null;Array.isArray(n)&&(o=n,n={}),!n.regex&&n.start&&(n.regex=n.start,n.next||(n.next=[]),n.next.push({defaultToken:n.token},{token:n.token+".end",regex:n.end||n.start,next:"pop"}),n.token=n.token+".start",n.push=!0);var l=n.next||n.push;if(l&&Array.isArray(l)){var u=n.stateName;u||("string"!=typeof(u=n.token)&&(u=u[0]||""),s[u]&&(u+=c++)),s[u]=l,n.next=u,r(u)}else"pop"==l&&(n.next=a);if(n.push&&(n.nextState=n.next||n.push,n.next=v,delete n.push),n.rules)for(var h in n.rules)s[h]?s[h].push&&s[h].push.apply(s[h],n.rules[h]):s[h]=n.rules[h];var f="string"==typeof n?n:n.include;if(f&&("$self"===f&&(f="start"),o=Array.isArray(f)?f.map(function(y){return s[y]}):s[f]),o){var m=[e,1].concat(o);n.noEscape&&(m=m.filter(function(y){return!y.next})),t.splice.apply(t,m),e--}n.keywordMap&&(n.token=this.createKeywordMapper(n.keywordMap,n.defaultToken||"text",n.caseInsensitive),delete n.defaultToken)}},this)},this.createKeywordMapper=function(c,s,r,i){var t=Object.create(null);return this.$keywordList=[],Object.keys(c).forEach(function(e){for(var o=c[e].split(i||"|"),l=o.length;l--;){var u=o[l];this.$keywordList.push(u),r&&(u=u.toLowerCase()),t[u]=e}},this),c=null,r?function(e){return t[e.toLowerCase()]||s}:function(e){return t[e]||s}},this.getKeywords=function(){return this.$keywords}}).call((C=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}}).prototype),M.TextHighlightRules=C}),ace.define("ace/mode/behaviour",["require","exports","module"],function(w,M,F){"use strict";var _;(function(){this.add=function(C,v,a){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[C]:this.$behaviours[C]={}}this.$behaviours[C][v]=a},this.addBehaviours=function(C){for(var v in C)for(var a in C[v])this.add(v,a,C[v][a])},this.remove=function(C){this.$behaviours&&this.$behaviours[C]&&delete this.$behaviours[C]},this.inherit=function(C,v){if("function"==typeof C)var a=(new C).getBehaviours(v);else a=C.getBehaviours(v);this.addBehaviours(a)},this.getBehaviours=function(C){if(C){for(var v={},a=0;a<C.length;a++)this.$behaviours[C[a]]&&(v[C[a]]=this.$behaviours[C[a]]);return v}return this.$behaviours}}).call((_=function(){this.$behaviours={}}).prototype),M.Behaviour=_}),ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(w,M,F){"use strict";var _=w("./range").Range,C=function(){function v(a,c,s){this.$session=a,this.$row=c,this.$rowTokens=a.getTokens(c);var r=a.getTokenAt(c,s);this.$tokenIndex=r?r.index:-1}return v.prototype.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},v.prototype.stepForward=function(){this.$tokenIndex+=1;for(var a;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,a||(a=this.$session.getLength()),this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},v.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},v.prototype.getCurrentTokenRow=function(){return this.$row},v.prototype.getCurrentTokenColumn=function(){var a=this.$rowTokens,c=this.$tokenIndex,s=a[c].start;if(void 0!==s)return s;for(s=0;c>0;)s+=a[c-=1].value.length;return s},v.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},v.prototype.getCurrentTokenRange=function(){var a=this.$rowTokens[this.$tokenIndex],c=this.getCurrentTokenColumn();return new _(this.$row,c,this.$row,c+a.value.length)},v}();M.TokenIterator=C}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(w,M,F){"use strict";var r,o,_=w("../../lib/oop"),C=w("../behaviour").Behaviour,v=w("../../token_iterator").TokenIterator,a=w("../../lib/lang"),c=["text","paren.rparen","rparen","paren","punctuation.operator"],s=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],i={},t={'"':'"',"'":"'"},e=function(l){var u=-1;if(l.multiSelect&&(u=l.selection.index,i.rangeCount!=l.multiSelect.rangeCount&&(i={rangeCount:l.multiSelect.rangeCount})),i[u])return r=i[u];r=i[u]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},n=function(l,u,h,f){var m=l.end.row-l.start.row;return{text:h+u+f,selection:[0,l.start.column+1,m,l.end.column+(m?0:1)]}};(o=function(l){l=l||{},this.add("braces","insertion",function(u,h,f,m,y){var p=f.getCursorPosition(),S=m.doc.getLine(p.row);if("{"==y){e(f);var $=f.getSelectionRange(),A=m.doc.getTextRange($),E=m.getTokenAt(p.row,p.column);if(""!==A&&"{"!==A&&f.getWrapBehavioursEnabled())return n($,A,"{","}");if(E&&/(?:string)\.quasi|\.xml/.test(E.type))return[/tag\-(?:open|name)/,/attribute\-name/].some(function(R){return R.test(E.type)})||/(string)\.quasi/.test(E.type)&&"$"!==E.value[p.column-E.start-1]?void 0:(o.recordAutoInsert(f,m,"}"),{text:"{}",selection:[1,1]});if(o.isSaneInsertion(f,m))return/[\]\}\)]/.test(S[p.column])||f.inMultiSelectMode||l.braces?(o.recordAutoInsert(f,m,"}"),{text:"{}",selection:[1,1]}):(o.recordMaybeInsert(f,m,"{"),{text:"{",selection:[1,1]})}else if("}
1"==y){if(e(f),"}"==S.substring(p.column,p.column+1)&&null!==m.$findOpeningBracket("}",{column:p.column+1,row:p.row})&&o.isAutoInsertedClosing(p,S,y))return o.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==y||"\r\n"==y){e(f);var d="";if(o.isMaybeInsertedClosing(p,S)&&(d=a.stringRepeat("}",r.maybeInsertedBrackets),o.clearMaybeInsertedClosing()),"}"===S.substring(p.column,p.column+1)){var k=m.findMatchingBracket({row:p.row,column:p.column+1},"}");if(!k)return null;var T=this.$getIndent(m.getLine(k.row))}else{if(!d)return void o.clearMaybeInsertedClosing();T=this.$getIndent(S)}var L=T+m.getTabString();return{text:"\n"+L+"\n"+T+d,selection:[1,L.length,1,L.length]}}o.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(u,h,f,m,y){var p=m.doc.getTextRange(y);if(!y.isMultiLine()&&"{"==p){if(e(f),"}"==m.doc.getLine(y.start.row).substring(y.end.column,y.end.column+1))return y.end.column++,y;r.maybeInsertedBrackets--}}),this.add("parens","insertion",function(u,h,f,m,y){if("("==y){e(f);var p=f.getSelectionRange(),S=m.doc.getTextRange(p);if(""!==S&&f.getWrapBehavioursEnabled())return n(p,S,"(",")");if(o.isSaneInsertion(f,m))return o.recordAutoInsert(f,m,")"),{text:"()",selection:[1,1]}}else if(")"==y){e(f);var $=f.getCursorPosition(),A=m.doc.getLine($.row);if(")"==A.substring($.column,$.column+1)&&null!==m.$findOpeningBracket(")",{column:$.column+1,row:$.row})&&o.isAutoInsertedClosing($,A,y))return o.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}),this.add("parens","deletion",function(u,h,f,m,y){var p=m.doc.getTextRange(y);if(!y.isMultiLine()&&"("==p&&(e(f),")"==m.doc.getLine(y.start.row).substring(y.start.column+1,y.start.column+2)))return y.end.column++,y}),this.add("brackets","insertion",function(u,h,f,m,y){if("["==y){e(f);var p=f.getSelectionRange(),S=m.doc.getTextRange(p);if(""!==S&&f.getWrapBehavioursEnabled())return n(p,S,"[","]");if(o.isSaneInsertion(f,m))return o.recordAutoInsert(f,m,"]"),{text:"[]",selection:[1,1]}}else if("]"==y){e(f);var $=f.getCursorPosition(),A=m.doc.getLine($.row);if("]"==A.substring($.column,$.column+1)&&null!==m.$findOpeningBracket("]",{column:$.column+1,row:$.row})&&o.isAutoInsertedClosing($,A,y))return o.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}),this.add("brackets","deletion",function(u,h,f,m,y){var p=m.doc.getTextRange(y);if(!y.isMultiLine()&&"["==p&&(e(f),"]"==m.doc.getLine(y.start.row).substring(y.start.column+1,y.start.column+2)))return y.end.column++,y}),this.add("string_dquotes","insertion",function(u,h,f,m,y){var p=m.$mode.$quotes||t;if(1==y.length&&p[y]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(y))return;e(f);var S=y,$=f.getSelectionRange(),A=m.doc.getTextRange($);if(""!==A&&(1!=A.length||!p[A])&&f.getWrapBehavioursEnabled())return n($,A,S,S);if(!A){var E=f.getCursorPosition(),x=m.doc.getLine(E.row),b=x.substring(E.column-1,E.column),g=x.substring(E.column,E.column+1),d=m.getTokenAt(E.row,E.column),k=m.getTokenAt(E.row,E.column+1);if("\\"==b&&d&&/escape/.test(d.type))return null;var R,T=d&&/string|escape/.test(d.type),L=!k||/string|escape/.test(k.type);if(g==S)(R=T!==L)&&/string\.end/.test(k.type)&&(R=!1);else{if(T&&!L||T&&L)return null;var I=m.$mode.tokenRe;I.lastIndex=0;var O=I.test(b);I.lastIndex=0;var N=I.test(g),D=m.$mode.$pairQuotesAfter;if(!(D&&D[S]&&D[S].test(b))&&O||N||g&&!/[\s;,.})\]\\]/.test(g))return null;var W=x[E.column-2];if(b==S&&(W==S||I.test(W)))return null;R=!0}return{text:R?S+S:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(u,h,f,m,y){var p=m.$mode.$quotes||t,S=m.doc.getTextRange(y);if(!y.isMultiLine()&&p.hasOwnProperty(S)&&(e(f),m.doc.getLine(y.start.row).substring(y.start.column+1,y.start.column+2)==S))return y.end.column++,y}),!1!==l.closeDocComment&&this.add("doc comment end","insertion",function(u,h,f,m,y){if("doc-start"===u&&("\n"===y||"\r\n"===y)&&f.selection.isEmpty()){var p=f.getCursorPosition();if(0===p.column)return;for(var S=m.doc.getLine(p.row),$=m.doc.getLine(p.row+1),A=m.getTokens(p.row),E=0,x=0;x<A.length;x++){var b=A[x];if((E+=A[x].value.length)>=p.column){if(E===p.column){if(!/\.doc/.test(b.type))return;if(/\*\//.test(b.value)){var g=A[x+1];if(!g||!/\.doc/.test(g.type))return}}var d=p.column-(E-b.value.length),k=b.value.indexOf("*/"),T=b.value.indexOf("/**",k>-1?k+2:0);if(-1!==T&&d>T&&d<T+3||-1!==k&&-1!==T&&d>=k&&d<=T||!/\.doc/.test(b.type))return;break}}var L=this.$getIndent(S);if(/\s*\*/.test($))return/^\s*\*/.test(S)?{text:y+L+"* ",selection:[1,2+L.length,1,2+L.length]}:{text:y+L+" * ",selection:[1,3+L.length,1,3+L.length]};if(/\/\*\*/.test(S.substring(0,p.column)))return{text:y+L+" * "+y+" "+L+"*/",selection:[1,4+L.length,1,4+L.length]}}})}).isSaneInsertion=function(l,u){var h=l.getCursorPosition(),f=new v(u,h.row,h.column);if(!this.$matchTokenType(f.getCurrentToken()||"text",c)){if(/[)}\]]/.test(l.session.getLine(h.row)[h.column]))return!0;var m=new v(u,h.row,h.column+1);if(!this.$matchTokenType(m.getCurrentToken()||"text",c))return!1}return f.stepForward(),f.getCurrentTokenRow()!==h.row||this.$matchTokenType(f.getCurrentToken()||"text",s)},o.$matchTokenType=function(l,u){return u.indexOf(l.type||l)>-1},o.recordAutoInsert=function(l,u,h){var f=l.getCursorPosition(),m=u.doc.getLine(f.row);
vendor: 103,210 bytes, line 1
1this.isAutoInsertedClosing(f,m,r.autoInsertedLineEnd[0])||(r.autoInsertedBrackets=0),r.autoInsertedRow=f.row,r.autoInsertedLineEnd=h+m.substr(f.column),r.autoInsertedBrackets++},o.recordMaybeInsert=function(l,u,h){var f=l.getCursorPosition(),m=u.doc.getLine(f.row);this.isMaybeInsertedClosing(f,m)||(r.maybeInsertedBrackets=0),r.maybeInsertedRow=f.row,r.maybeInsertedLineStart=m.substr(0,f.column)+h,r.maybeInsertedLineEnd=m.substr(f.column),r.maybeInsertedBrackets++},o.isAutoInsertedClosing=function(l,u,h){return r.autoInsertedBrackets>0&&l.row===r.autoInsertedRow&&h===r.autoInsertedLineEnd[0]&&u.substr(l.column)===r.autoInsertedLineEnd},o.isMaybeInsertedClosing=function(l,u){return r.maybeInsertedBrackets>0&&l.row===r.maybeInsertedRow&&u.substr(l.column)===r.maybeInsertedLineEnd&&u.substr(0,l.column)==r.maybeInsertedLineStart},o.popAutoInsertedClosing=function(){r.autoInsertedLineEnd=r.autoInsertedLineEnd.substr(1),r.autoInsertedBrackets--},o.clearMaybeInsertedClosing=function(){r&&(r.maybeInsertedBrackets=0,r.maybeInsertedRow=-1)},_.inherits(o,C),M.CstyleBehaviour=o}),ace.define("ace/unicode",["require","exports","module"],function(w,M,F){"use strict";for(var _=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],C=0,v=[],a=0;a<_.length;a+=2)v.push(C+=_[a]),_[a+1]&&v.push(45,C+=_[a+1]);M.wordChars=String.fromCharCode.apply(null,v)}),ace.define("ace/mode/text",["require","exports","module","ace/config","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(w,M,F){"use strict";var t,_=w("../config"),C=w("../tokenizer").Tokenizer,v=w("./text_highlight_rules").TextHighlightRules,a=w("./behaviour/cstyle").CstyleBehaviour,c=w("../unicode"),s=w("../lib/lang"),r=w("../token_iterator").TokenIterator,i=w("../range").Range;(function(){this.$defaultBehaviour=new a,this.tokenRe=new RegExp("^["+c.wordChars+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+c.wordChars+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new C(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,n,o,l){var u=n.doc,h=!0,f=!0,m=1/0,y=n.getTabSize(),p=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var A=this.lineCommentStart.map(s.escapeRegExp).join("|"),S=this.lineCommentStart[0];else A=s.escapeRegExp(this.lineCommentStart),S=this.lineCommentStart;A=new RegExp("^(\\s*)(?:"+A+") ?"),p=n.getUseSoftTabs();var b=function(N,D){var B=N.match(A);if(B){var W=B[1].length,z=B[0].length;!k(N,W,z)&&" "==B[0][z-1]&&z--,u.removeInLine(D,W,z)}},d=S+" ",x=function(N,D){(!h||/\S/.test(N))&&(k(N,m,m)?u.insertInLine({row:D,column:m},d):u.insertInLine({row:D,column:m},S))},g=function(N,D){return A.test(N)},k=function(N,D,B){for(var W=0;D--&&" "==N.charAt(D);)W++;if(W%y!=0)return!1;for(W=0;" "==N.charAt(B++);)W++;return y>2?W%y!=y-1:W%y==0}}else{if(!this.blockComment)return!1;S=this.blockComment.start;var $=this.blockComment.end,E=(A=new RegExp("^(\\s*)(?:"+s.escapeRegExp(S)+")"),new RegExp("(?:"+s.escapeRegExp($)+")\\s*$"));x=function(R,I){g(R,I)||(!h||/\S/.test(R))&&(u.insertInLine({row:I,column:R.length},$),u.insertInLine({row:I,column:m},S))},b=function(R,I){var O;(O=R.match(E))&&u.removeInLine(I,R.length-O[0].length,R.length),(O=R.match(A))&&u.removeInLine(I,O[1].length,O[0].length)},g=function(R,I){if(A.test(R))return!0;for(var O=n.getTokens(I),N=0;N<O.length;N++)if("comment"===O[N].type)return!0}}function T(R){for(var I=o;I<=l;I++)R(u.getLine(I),I)}var L=1/0;T(function(R,I){var O=R.search(/\S/);-1!==O?(O<m&&(m=O),f&&!g(R,I)&&(f=!1)):L>R.length&&(L=R.length)}),m==1/0&&(m=L,h=!1,f=!1),p&&m%y!=0&&(m=Math.floor(m/y)*y),T(f?b:x)},this.toggleBlockComment=function(e,n,o,l){var u=this.blockComment;if(u){!u.start&&u[0]&&(u=u[0]);var p,S,f=(h=new r(n,l.row,l.column)).getCurrentToken(),y=n.selection.toOrientedRange();if(f&&/comment/.test(f.type)){for(var $,A;f&&/comment/.test(f.type);){if(-1!=(E=f.value.indexOf(u.start))){var x=h.getCurrentTokenRow(),b=h.getCurrentTokenColumn()+E;$=new i(x,b,x,b+u.start.length);break}f=h.stepBackward()}var h;for(f=(h=new r(n,l.row,l.column)).getCurrentToken();f&&/comment/.test(f.type);){var E;if(-1!=(E=f.value.indexOf(u.end))){x=h.getCurrentTokenRow(),b=h.getCurrentTokenColumn()+E,A=new i(x,b,x,b+u.end.length);break}f=h.stepForward()}A&&n.remove(A),$&&(n.remove($),p=$.start.row,S=-u.start.length)}else S=u.start.length,p=o.start.row,n.insert(o.end,u.end),n.insert(o.start,u.start);y.start.row==p&&(y.start.column+=S),y.end.row==p&&(y.end.column+=S),n.selection.fromOrientedRange(y)}},this.getNextLineIndent=function(e,n,o){return this.$getIndent(n)},this.checkOutdent=function(e,n,o){return!1},this.autoOutdent=function(e,n,o){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var n in this.$embeds=[],this.$modes={},e)if(e[n]){var o=e[n],l=o.prototype.$id,u=_.$modes[l];u||(_.$modes[l]=u=new o),_.$modes[n]||(_.$modes[n]=u),this.$embeds.push(n),this.$modes[n]=u}var h=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],f=function(y){var p,S,$;$=(p=m)[S=h[y]],p[h[y]]=function(){return this.$delegator(S,arguments,$)}},m=this;for(n=0;n<h.length;n++)f(n)},this.$delegator=function(e,n,o){var l=n[0]||"start";if("string"!=typeof l){if(Array.isArray(l[2])&&(h=this.$modes[l[2][l[2].length-1]]))return h[e].apply(h,[l[1]].concat([].slice.call(n,1)));l=l[0]||"start"}for(var f=0;f<this.$embeds.length;f++)if(this.$modes[this.$embeds[f]]){var h,m=l.split(this.$embeds[f]);if(!m[0]&&m[1])return n[0]=m[1],(h=this.$modes[this.$embeds[f]])[e].apply(h,n)}var y=o.apply(this,n);return o?y:void 0},this.transformAction=function(e,n,o,l,u){if(this.$behaviour){var h=this.$behaviour.getBehaviours();for(var f in h)if(h[f][n]){var m=h[f][n].apply(this,arguments);if(m)return m}}},this.getKeywords=function(e){if(!this.completionKeywords){var n=this.$tokenizer.rules,o=[];for(var l in n)for(var u=n[l],h=0,f=u.length;h<f;h++)if("string"==typeof u[h].token)/keyword|support|storage/.test(u[h].token)&&o.push(u[h].regex);else if("object"==typeof u[h].token)for(var m=0,y=u[h].token.length;m<y;m++)/keyword|support|storage/.test(u[h].token[m])&&(l=u[h].regex.match(/\(.+?\)/g)[m],o.push(l.substr(1,l.length-2)));this.completionKeywords=o}return e?o.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,n,o,l){return(this.$keywordList||this.$createKeywordList()).map(function(h){return{name:h,value:h,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call((t=function(){this.HighlightRules=v}).prototype),M.Mode=t}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/dom"],function(w,M,F){"use strict";var _=w("./lib/dom"),C=function(){function v(a){this.session=a,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}return v.prototype.getRowLength=function(a){var c;return c=this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowCount||0,this.$useWrapMode&&this.$wrapData[a]?this.$wrapData[a].length+1+c:1+c},v.prototype.$getWidgetScreenLength=function(){var a=0;return this.lineWidgets.forEach(function(c){c&&c.rowCount&&!c.hidden&&(a+=c.rowCount)}),a},v.prototype.$onChangeEditor=function(a){this.attach(a.editor)},v.prototype.attach=function(a){a&&a.widgetManager&&a.widgetManager!=this&&a.widgetManager.detach(),this.editor!=a&&(this.detach(),this.editor=a,a&&(a.widgetManager=this,a.renderer.on("beforeRender",this.measureWidgets),a.renderer.on("afterRender",this.renderWidgets)))},v.prototype.detach=function(a){var c=this.editor;if(c){this.editor=null,c.widgetManager=null,c.renderer.off("beforeRender",this.measureWidgets),c.renderer.off("afterRender",this.renderWidgets);var s=this.session.lineWidgets;s&&s.forEach(function(r){r&&r.el&&r.el.parentNode&&(r._inDocument=!1,r.el.parentNode.removeChild(r.el))})}},v.prototype.updateOnFold=function(a,c){var s=c.lineWidgets;if(s&&a.action){for(var r=a.data,i=r.start.row,t=r.end.row,e="add"==a.action,n=i+1;n<t;n++)s[n]&&(s[n].hidden=e);s[t]&&(e?s[i]?s[t].hidden=e:s[i]=s[t]:(s[i]==s[t]&&(s[i]=void 0),s[t].hidden=e))}},v.prototype.updateOnChange=function(a){var c=this.session.lineWidgets;if(c){var s=a.start.row,r=a.end.row-s;if(0!==r)if("remove"==a.action){var i=c.splice(s+1,r);!c[s]&&i[i.length-1]&&(c[s]=i.pop()),i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var t=new Array(r);c[s]&&null!=c[s].column&&a.start.column>c[s].column&&s++,t.unshift(s,0),c.splice.apply(c,t),this.$updateRows()}}},v.prototype.$updateRows=function(){var a=this.session.lineWidgets;if(a){var c=!0;a.forEach(function(s,r){if(s)for(c=!1,s.row=r;s.$oldWidget;)s.$oldWidget.row=r,s=s.$oldWidget}),c&&(this.session.lineWidgets=null)}},v.prototype.$registerLineWidget=function(a){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var c=this.session.lineWidgets[a.row];return c&&(a.$oldWidget=c,c.el&&c.el.parentNode&&(c.el.parentNode.removeChild(c.el),c._inDocument=!1)),this.session.lineWidgets[a.row]=a,a},v.prototype.addLineWidget=function(a){if(this.$registerLineWidget(a),a.session=this.session,!this.editor)return a;var c=this.editor.renderer;a.html&&!a.el&&(a.el=_.createElement("div"),a.el.innerHTML=a.html),a.text&&!a.el&&(a.el=_.createElement("div"),a.el.textContent=a.text),a.el&&(_.addCssClass(a.el,"ace_lineWidgetContainer"),a.className&&_.addCssClass(a.el,a.className),a.el.style.position="absolute",a.el.style.zIndex="5",c.container.appendChild(a.el),a._inDocument=!0,a.coverGutter||(a.el.style.zIndex="3"),null==a.pixelHeight&&(a.pixelHeight=a.el.offsetHeight)),null==a.rowCount&&(a.rowCount=a.pixelHeight/c.layerConfig.lineHeight);var s=this.session.getFoldAt(a.row,0);if(a.$fold=s,s){var r=this.session.lineWidgets;a.row!=s.end.row||r[s.start.row]?a.hidden=!0:r[s.start.row]=a}return this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows(),this.renderWidgets(null,c),this.onWidgetChanged(a),a},v.prototype.removeLineWidget=function(a){if(a._inDocument=!1,a.session=null,a.el&&a.el.parentNode&&a.el.parentNode.removeChild(a.el),a.editor&&a.editor.destroy)try{a.editor.destroy()}catch{}if(this.session.lineWidgets){var c=this.session.lineWidgets[a.row];if(c==a)this.session.lineWidgets[a.row]=a.$oldWidget,a.$oldWidget&&this.onWidgetChanged(a.$oldWidget);else for(;c;){if(c.$oldWidget==a){c.$oldWidget=a.$oldWidget;break}c=c.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows()},v.prototype.getWidgetsAtRow=function(a){for(var c=this.session.lineWidgets,s=c&&c[a],r=[];s;)r.push(s),s=s.$oldWidget;return r},v.prototype.onWidgetChanged=function(a){this.session._changedWidgets.push(a),this.editor&&this.editor.renderer.updateFull()},v.prototype.measureWidgets=function(a,c){var s=this.session._changedWidgets,r=c.layerConfig;if(s&&s.length){for(var i=1/0,t=0;t<s.length;t++){var e=s[t];if(e&&e.el&&e.session==this.session){if(!e._inDocument){if(this.session.lineWidgets[e.row]!=e)continue;e._inDocument=!0,c.container.appendChild(e.el)}e.h=e.el.offsetHeight,e.fixedWidth||(e.w=e.el.offsetWidth,e.screenWidth=Math.ceil(e.w/r.characterWidth));var n=e.h/r.lineHeight;e.coverLine&&(n-=this.session.getRowLineCount(e.row))<0&&(n=0),e.rowCount!=n&&(e.rowCount=n,e.row<i&&(i=e.row))}}i!=1/0&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},v.prototype.renderWidgets=function(a,c){var s=c.layerConfig,r=this.session.lineWidgets;if(r){for(var i=Math.min(this.firstRow,s.firstRow),t=Math.max(this.lastRow,s.lastRow,r.length);i>0&&!r[i];)i--;this.firstRow=s.firstRow,this.lastRow=s.lastRow,c.$cursorLayer.config=s;for(var e=i;e<=t;e++){var n=r[e];if(n&&n.el){if(n.hidden){n.el.style.top=-100-(n.pixelHeight||0)+"px";continue}n._inDocument||(n._inDocument=!0,c.container.appendChild(n.el));var o=c.$cursorLayer.getPixelPosition({row:e,column:0},!0).top;n.coverLine||(o+=s.lineHeight*this.session.getRowLineCount(n.row)),n.el.style.top=o-s.offset+"px";var l=n.coverGutter?0:c.gutterWidth;n.fixedWidth||(l-=c.scrollLeft),n.el.style.left=l+"px",n.fullWidth&&n.screenWidth&&(n.el.style.minWidth=s.width+2*s.padding+"px"),n.el.style.right=n.fixedWidth?c.scrollBar.getWidth()+"px":""}}}},v}();M.LineWidgets=C}),ace.define("ace/apply_delta",["require","exports","module"],function(w,M,F){"use strict";M.applyDelta=function(a,c,s){var r=c.start.row,i=c.start.column,t=a[r]||"";switch(c.action){case"insert":if(1===c.lines.length)a[r]=t.substring(0,i)+c.lines[0]+t.substring(i);else{var n=[r,1].concat(c.lines);a.splice.apply(a,n),a[r]=t.substring(0,i)+a[r],a[r+c.lines.length-1]+=t.substring(i)}break;case"remove":var o=c.end.column,l=c.end.row;r===l?a[r]=t.substring(0,i)+t.substring(o):a.splice(r,l-r+1,t.substring(0,i)+a[l].substring(o))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(w,M,F){"use strict";var _=w("./lib/oop"),C=w("./lib/event_emitter").EventEmitter,v=function(){function s(r,i,t){this.$onChange=this.onChange.bind(this),this.attach(r),"number"!=typeof i?this.setPosition(i.row,i.column):this.setPosition(i,t)}return s.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},s.prototype.getDocument=function(){return this.document},s.prototype.onChange=function(r){if(!(r.start.row==r.end.row&&r.start.row!=this.row||r.start.row>this.row)){var i=function c(s,r,i){var t="insert"==s.action,e=(t?1:-1)*(s.end.row-s.start.row),n=(t?1:-1)*(s.end.column-s.start.column),o=s.start,l=t?o:s.end;return a(r,o,i)?{row:r.row,column:r.column}:a(l,r,!i)?{row:r.row+e,column:r.column+(r.row==l.row?n:0)}:{row:o.row,column:o.column}}(r,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},s.prototype.setPosition=function(r,i,t){var e;if(e=t?{row:r,column:i}:this.$clipPositionToDocument(r,i),this.row!=e.row||this.column!=e.column){var n={row:this.row,column:this.column};this.row=e.row,this.column=e.column,this._signal("change",{old:n,value:e})}},s.prototype.detach=function(){this.document.off("change",this.$onChange)},s.prototype.attach=function(r){this.document=r||this.document,this.document.on("change",this.$onChange)},s.prototype.$clipPositionToDocument=function(r,i){var t={};return r>=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):r<0?(t.row=0,t.column=0):(t.row=r,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,i))),i<0&&(t.column=0),t},s}();function a(s,r,i){return s.row<r.row||s.row==r.row&&(i?s.column<=r.column:s.column<r.column)}v.prototype.$insertRight=!1,_.implement(v.prototype,C),M.Anchor=v}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(w,M,F){"use strict";var _=w("./lib/oop"),C=w("./apply_delta").applyDelta,v=w("./lib/event_emitter").EventEmitter,a=w("./range").Range,c=w("./anchor").Anchor,s=function(){function r(i){this.$lines=[""],0===i.length?this.$lines=[""]:Array.isArray(i)?this.insertMergedLines({row:0,column:0},i):this.insert({row:0,column:0},i)}return r.prototype.setValue=function(i){var t=this.getLength()-1;this.remove(new a(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},i||"")},r.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},r.prototype.createAnchor=function(i,t){return new c(this,i,t)},r.prototype.$detectNewLine=function(i){var t=i.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},r.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},r.prototype.setNewLineMode=function(i){this.$newLineMode!==i&&(this.$newLineMode=i,this._signal("changeNewLineMode"))},r.prototype.getNewLineMode=function(){return this.$newLineMode},r.prototype.isNewLine=function(i){return"\r\n"==i||"\r"==i||"\n"==i},r.prototype.getLine=function(i){return this.$lines[i]||""},r.prototype.getLines=function(i,t){return this.$lines.slice(i,t+1)},r.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},r.prototype.getLength=function(){return this.$lines.length},r.prototype.getTextRange=function(i){return this.getLinesForRange(i).join(this.getNewLineCharacter())},r.prototype.getLinesForRange=function(i){var t;if(i.start.row===i.end.row)t=[this.getLine(i.start.row).substring(i.start.column,i.end.column)];else{(t=this.getLines(i.start.row,i.end.row))[0]=(t[0]||"").substring(i.start.column);var e=t.length-1;i.end.row-i.start.row==e&&(t[e]=t[e].substring(0,i.end.column))}return t},r.prototype.insertLines=function(i,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(i,t)},r.prototype.removeLines=function(i,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(i,t)},r.prototype.insertNewLine=function(i){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(i,["",""])},r.prototype.insert=function(i,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(i,this.$split(t))},r.prototype.insertInLine=function(i,t){var e=this.clippedPos(i.row,i.column),n=this.pos(i.row,i.column+t.length);return this.applyDelta({start:e,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},r.prototype.clippedPos=function(i,t){var e=this.getLength();void 0===i?i=e:i<0?i=0:i>=e&&(i=e-1,t=void 0);var n=this.getLine(i);return null==t&&(t=n.length),{row:i,column:t=Math.min(Math.max(t,0),n.length)}},r.prototype.clonePos=function(i){return{row:i.row,column:i.column}},r.prototype.pos=function(i,t){return{row:i,column:t}},r.prototype.$clipPosition=function(i){var t=this.getLength();return i.row>=t?(i.row=Math.max(0,t-1),i.column=this.getLine(t-1).length):(i.row=Math.max(0,i.row),i.column=Math.min(Math.max(i.column,0),this.getLine(i.row).length)),i},r.prototype.insertFullLines=function(i,t){var e=0;(i=Math.min(Math.max(i,0),this.getLength()))<this.getLength()?(t=t.concat([""]),e=0):(t=[""].concat(t),i--,e=this.$lines[i].length),this.insertMergedLines({row:i,column:e},t)},r.prototype.insertMergedLines=function(i,t){var e=this.clippedPos(i.row,i.column),n={row:e.row+t.length-1,column:(1==t.length?e.column:0)+t[t.length-1].length};return this.applyDelta({start:e,end:n,action:"insert",lines:t}),this.clonePos(n)},r.prototype.remove=function(i){var t=this.clippedPos(i.start.row,i.start.column),e=this.clippedPos(i.end.row,i.end.column);return this.applyDelta({start:t,end:e,action:"remove",lines:this.getLinesForRange({start:t,end:e})}),this.clonePos(t)},r.prototype.removeInLine=function(i,t,e){var n=this.clippedPos(i,t),o=this.clippedPos(i,e);return this.applyDelta({start:n,end:o,action:"remove",lines:this.getLinesForRange({start:n,end:o})},!0),this.clonePos(n)},r.prototype.removeFullLines=function(i,t){i=Math.min(Math.max(0,i),this.getLength()-1);var e=(t=Math.min(Math.max(0,t),this.getLength()-1))==this.getLength()-1&&i>0,n=t<this.getLength()-1,o=e?i-1:i,l=e?this.getLine(o).length:0,u=n?t+1:t,h=n?0:this.getLine(u).length,f=new a(o,l,u,h),m=this.$lines.slice(i,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),m},r.prototype.removeNewLine=function(i){i<this.getLength()-1&&i>=0&&this.applyDelta({start:this.pos(i,this.getLine(i).length),end:this.pos(i+1,0),action:"remove",lines:["",""]})},r.prototype.replace=function(i,t){return i instanceof a||(i=a.fromPoints(i.start,i.end)),0===t.length&&i.isEmpty()?i.start:t==this.getTextRange(i)?i.end:(this.remove(i),t?this.insert(i.start,t):i.start)},r.prototype.applyDeltas=function(i){for(var t=0;t<i.length;t++)this.applyDelta(i[t])},r.prototype.revertDeltas=function(i){for(var t=i.length-1;t>=0;t--)this.revertDelta(i[t])},r.prototype.applyDelta=function(i,t){var e="insert"==i.action;(e?i.lines.length<=1&&!i.lines[0]:!a.comparePoints(i.start,i.end))||(e&&i.lines.length>2e4?this.$splitAndapplyLargeDelta(i,2e4):(C(this.$lines,i,t),this._signal("change",i)))},r.prototype.$safeApplyDelta=function(i){var t=this.$lines.length;("remove"==i.action&&i.start.row<t&&i.end.row<t||"insert"==i.action&&i.start.row<=t)&&this.applyDelta(i)},r.prototype.$splitAndapplyLargeDelta=function(i,t){for(var e=i.lines,n=e.length-t+1,o=i.start.row,l=i.start.column,u=0,h=0;u<n;u=h){var f=e.slice(u,h+=t-1);f.push(""),this.applyDelta({start:this.pos(o+u,l),end:this.pos(o+h,l=0),action:i.action,lines:f},!0)}i.lines=e.slice(u),i.start.row=o+u,i.start.column=l,this.applyDelta(i,!0)},r.prototype.revertDelta=function(i){this.$safeApplyDelta({start:this.clonePos(i.start),end:this.clonePos(i.end),action:"insert"==i.action?"remove":"insert",lines:i.lines.slice()})},r.prototype.indexToPosition=function(i,t){for(var e=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,o=t||0,l=e.length;o<l;o++)if((i-=e[o].length+n)<0)return{row:o,column:i+e[o].length+n};return{row:l-1,column:i+e[l-1].length+n}},r.prototype.positionToIndex=function(i,t){for(var e=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,o=0,l=Math.min(i.row,e.length),u=t||0;u<l;++u)o+=e[u].length+n;return o+i.column},r.prototype.$split=function(i){return i.split(/\r\n|\r|\n/)},r}();s.prototype.$autoNewLine="",s.prototype.$newLineMode="auto",_.implement(s.prototype,v),M.Document=s}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(w,M,F){"use strict";var _=w("./lib/oop"),C=w("./lib/event_emitter").EventEmitter,v=function(){function a(c,s){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=c;var r=this;this.$worker=function(){if(r.running){for(var i=new Date,t=r.currentLine,e=-1,n=r.doc,o=t;r.lines[t];)t++;var l=n.getLength(),u=0;for(r.running=!1;t<l;){r.$tokenizeRow(t),e=t;do{t++}while(r.lines[t]);if(++u%5==0&&new Date-i>20){r.running=setTimeout(r.$worker,20);break}}r.currentLine=t,-1==e&&(e=t),o<=e&&r.fireUpdateEvent(o,e)}}}return a.prototype.setTokenizer=function(c){this.tokenizer=c,this.lines=[],this.states=[],this.start(0)},a.prototype.setDocument=function(c){this.doc=c,this.lines=[],this.states=[],this.stop()},a.prototype.fireUpdateEvent=function(c,s){this._signal("update",{data:{first:c,last:s}})},a.prototype.start=function(c){this.currentLine=Math.min(c||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)},a.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},a.prototype.$updateOnChange=function(c){var s=c.start.row,r=c.end.row-s;if(0===r)this.lines[s]=null;else if("remove"==c.action)this.lines.splice(s,r+1,null),this.states.splice(s,r+1,null);else{var i=Array(r+1);i.unshift(s,1),this.lines.splice.apply(this.lines,i),this.states.splice.apply(this.states,i)}this.currentLine=Math.min(s,this.currentLine,this.doc.getLength()),this.stop()},a.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},a.prototype.getTokens=function(c){return this.lines[c]||this.$tokenizeRow(c)},a.prototype.getState=function(c){return this.currentLine==c&&this.$tokenizeRow(c),this.states[c]||"start"},a.prototype.$tokenizeRow=function(c){var s=this.doc.getLine(c),i=this.tokenizer.getLineTokens(s,this.states[c-1],c);return this.states[c]+""!=i.state+""?(this.states[c]=i.state,this.lines[c+1]=null,this.currentLine>c+1&&(this.currentLine=c+1)):this.currentLine==c&&(this.currentLine=c+1),this.lines[c]=i.tokens},a.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},a}();_.implement(v.prototype,C),M.BackgroundTokenizer=v}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(w,M,F){"use strict";var _=w("./lib/lang"),C=w("./range").Range,v=function(){function a(c,s,r){void 0===r&&(r="text"),this.setRegexp(c),this.clazz=s,this.type=r,this.docLen=0}return a.prototype.setRegexp=function(c){this.regExp+""!=c+""&&(this.regExp=c,this.cache=[])},a.prototype.update=function(c,s,r,i){if(this.regExp){for(var t=i.firstRow,e=i.lastRow,n={},o=r.$editor&&r.$editor.$search,l=o&&o.$isMultilineSearch(r.$editor.getLastSearchOptions()),u=t;u<=e;u++){var h=this.cache[u];if(null==h||r.getValue().length!=this.docLen){if(l){h=[];var f=o.$multiLineForward(r,this.regExp,u,e);if(f){var m=f.endRow<=e?f.endRow-1:e;m>u&&(u=m),h.push(new C(f.startRow,f.startCol,f.endRow,f.endCol))}h.length>this.MAX_RANGES&&(h=h.slice(0,this.MAX_RANGES))}else(h=_.getMatchOffsets(r.getLine(u),this.regExp)).length>this.MAX_RANGES&&(h=h.slice(0,this.MAX_RANGES)),h=h.map(function($){return new C(u,$.offset,u,$.offset+$.length)});this.cache[u]=h.length?h:""}if(0!==h.length)for(var y=h.length;y--;){var p=h[y].toScreenRange(r),S=p.toString();n[S]||(n[S]=!0,s.drawSingleLineMarker(c,p,this.clazz,i))}}this.docLen=r.getValue().length}},a}();v.prototype.MAX_RANGES=500,M.SearchHighlight=v}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(w,M,F){"use strict";var _=function(){function p(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return p.prototype.addSession=function(S){this.$session=S},p.prototype.add=function(S,$,A){if(!this.$fromUndo&&S!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===$||!this.lastDeltas){this.lastDeltas=[];var E=this.$undoStack.length;E>this.$undoDepth-1&&this.$undoStack.splice(0,E-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),S.id=this.$rev=++this.$maxRev}("remove"==S.action||"insert"==S.action)&&(this.$lastDelta=S),this.lastDeltas.push(S)}},p.prototype.addSelection=function(S,$){this.selections.push({value:S,rev:$||this.$rev})},p.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},p.prototype.markIgnored=function(S,$){null==$&&($=this.$rev+1);for(var A=this.$undoStack,E=A.length;E--;){var x=A[E][0];if(x.id<=S)break;x.id<$&&(x.ignore=!0)}this.lastDeltas=null},p.prototype.getSelection=function(S,$){for(var A=this.selections,E=A.length;E--;){var x=A[E];if(x.rev<S)return $&&(x=A[E+1]),x}},p.prototype.getRevision=function(){return this.$rev},p.prototype.getDeltas=function(S,$){null==$&&($=this.$rev+1);for(var A=this.$undoStack,E=null,x=0,b=A.length;b--;){var g=A[b][0];if(g.id<$&&!E&&(E=b+1),g.id<=S){x=b+1;break}}return A.slice(x,E)},p.prototype.getChangedRanges=function(S,$){null==$&&($=this.$rev+1)},p.prototype.getChangedLines=function(S,$){null==$&&($=this.$rev+1)},p.prototype.undo=function(S,$){this.lastDeltas=null;var A=this.$undoStack;if(function C(p,S){for(var $=S;$--;){var A=p[$];if(A&&!A[0].ignore){for(;$<S-1;){var E=o(p[$],p[$+1]);p[$]=E[0],p[$+1]=E[1],$++}return!0}}}(A,A.length)){S||(S=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var E=A.pop(),x=null;return E&&(x=S.undoChanges(E,$),this.$redoStack.push(E),this.$syncRev()),this.$fromUndo=!1,x}},p.prototype.redo=function(S,$){if(this.lastDeltas=null,S||(S=this.$session),this.$fromUndo=!0,this.$redoStackBaseRev!=this.$rev){var A=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);(function y(p,S){for(var $=0;$<S.length;$++)for(var A=S[$],E=0;E<A.length;E++)m(p,A[E])})(this.$redoStack,A),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(b){b[0].id=++this.$maxRev},this)}var E=this.$redoStack.pop(),x=null;return E&&(x=S.redoChanges(E,$),this.$undoStack.push(E),this.$syncRev()),this.$fromUndo=!1,x},p.prototype.$syncRev=function(){var S=this.$undoStack,$=S[S.length-1],A=$&&$[0].id||0;this.$redoStackBaseRev=A,this.$rev=A},p.prototype.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},p.prototype.canUndo=function(){return this.$undoStack.length>0},p.prototype.canRedo=function(){return this.$redoStack.length>0},p.prototype.bookmark=function(S){null==S&&(S=this.$rev),this.mark=S},p.prototype.isAtBookmark=function(){return this.$rev===this.mark},p.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},p.prototype.fromJSON=function(S){this.reset(),this.$undoStack=S.$undoStack,this.$redoStack=S.$redoStack},p.prototype.$prettyPrint=function(S){return S?t(S):t(this.$undoStack)+"\n---\n"+t(this.$redoStack)},p}();_.prototype.hasUndo=_.prototype.canUndo,_.prototype.hasRedo=_.prototype.canRedo,_.prototype.isClean=_.prototype.isAtBookmark,_.prototype.markClean=_.prototype.bookmark;var v=w("./range").Range,a=v.comparePoints;function r(p){return{row:p.row,column:p.column}}function t(p){if(p=p||this,Array.isArray(p))return p.map(t).join("\n");var S="";return p.action?(S="insert"==p.action?"+":"-",S+="["+p.lines+"]"):p.value&&(S=Array.isArray(p.value)?p.value.map(e).join("\n"):e(p.value)),p.start&&(S+=e(p)),(p.id||p.rev)&&(S+="\t("+(p.id||p.rev)+")"),S}function e(p){return p.start.row+":"+p.start.column+"=>"+p.end.row+":"+p.end.column}function n(p,S){var $="insert"==p.action,A="insert"==S.action;if($&&A)if(a(S.start,p.end)>=0)u(S,p,-1);else{if(!(a(S.start,p.start)<=0))return null;u(p,S,1)}else if($&&!A)if(a(S.start,p.end)>=0)u(S,p,-1);else{if(!(a(S.end,p.start)<=0))return null;u(p,S,-1)}else if(!$&&A)if(a(S.start,p.start)>=0)u(S,p,1);else{if(!(a(S.start,p.start)<=0))return null;u(p,S,1)}else if(!$&&!A)if(a(S.start,p.start)>=0)u(S,p,1);else{if(!(a(S.end,p.start)<=0))return null;u(p,S,-1)}return[S,p]}function o(p,S){for(var $=p.length;$--;)for(var A=0;A<S.length;A++)if(!n(p[$],S[A])){for(;$<p.length;){for(;A--;)n(S[A],p[$]);A=S.length,$++}return[p,S]}return p.selectionBefore=S.selectionBefore=p.selectionAfter=S.selectionAfter=null,[S,p]}function l(p,S){var $="insert"==p.action,A="insert"==S.action;if($&&A)a(p.start,S.start)<0?u(S,p,1):u(p,S,1);else if($&&!A)a(p.start,S.end)>=0?u(p,S,-1):(a(p.start,S.start)<=0||u(p,v.fromPoints(S.start,p.start),-1),u(S,p,1));else if(!$&&A)a(S.start,p.end)>=0?u(S,p,-1):(a(S.start,p.start)<=0||u(S,v.fromPoints(p.start,S.start),-1),u(p,S,1));else if(!$&&!A)if(a(S.start,p.end)>=0)u(S,p,-1);else{var E,x;if(!(a(S.end,p.start)<=0))return a(p.start,S.start)<0&&(E=p,p=f(p,S.start)),a(p.end,S.end)>0&&(x=f(p,S.end)),h(S.end,p.start,p.end,-1),x&&!E&&(p.lines=x.lines,p.start=x.start,p.end=x.end,x=p),[S,E,x].filter(Boolean);u(p,S,-1)}return[S,p]}function u(p,S,$){h(p.start,S.start,S.end,$),h(p.end,S.start,S.end,$)}function h(p,S,$,A){p.row==(1==A?S:$).row&&(p.column+=A*($.column-S.column)),p.row+=A*($.row-S.row)}function f(p,S){var $=p.lines,A=p.end;p.end=r(S);var E=p.end.row-p.start.row,x=$.splice(E,$.length),b=E?S.column:S.column-p.start.column;return $.push(x[0].substring(0,b)),x[0]=x[0].substr(b),{start:r(S),end:A,lines:x,action:p.action}}function m(p,S){S=function i(p){return{start:r(p.start),end:r(p.end),action:p.action,lines:p.lines.slice()}}(S);for(var $=p.length;$--;){for(var A=p[$],E=0;E<A.length;E++){var b=l(A[E],S);S=b[0],2!=b.length&&(b[2]?(A.splice(E+1,1,b[1],b[2]),E++):b[1]||(A.splice(E,1),E--))}A.length||p.splice($,1)}return p}M.UndoManager=_}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(w,M,F){"use strict";var _=w("../range").Range,C=function(){function v(a,c){this.foldData=a,Array.isArray(c)?this.folds=c:c=this.folds=[c];var s=c[c.length-1];this.range=new _(c[0].start.row,c[0].start.column,s.end.row,s.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(r){r.setFoldLine(this)},this)}return v.prototype.shiftRow=function(a){this.start.row+=a,this.end.row+=a,this.folds.forEach(function(c){c.start.row+=a,c.end.row+=a})},v.prototype.addFold=function(a){if(a.sameRow){if(a.start.row<this.startRow||a.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(a),this.folds.sort(function(c,s){return-c.range.compareEnd(s.start.row,s.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else{if(a.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column}a.foldLine=this},v.prototype.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},v.prototype.walk=function(a,c,s){var t,e,r=0,i=this.folds,o=!0;null==c&&(c=this.end.row,s=this.end.column);for(var l=0;l<i.length;l++){if(-1==(e=(t=i[l]).range.compareStart(c,s)))return void a(null,c,s,r,o);if(!a(null,t.start.row,t.start.column,r,o)&&a(t.placeholder,t.start.row,t.start.column,r)||0===e)return;o=!t.sameRow,r=t.end.column}a(null,c,s,r,o)},v.prototype.getNextFoldTo=function(a,c){for(var s,r,i=0;i<this.folds.length;i++){if(-1==(r=(s=this.folds[i]).range.compareEnd(a,c)))return{fold:s,kind:"after"};if(0===r)return{fold:s,kind:"inside"}}return null},v.prototype.addRemoveChars=function(a,c,s){var i,t,r=this.getNextFoldTo(a,c);if(r)if(i=r.fold,"inside"==r.kind&&i.start.column!=c&&i.start.row!=a)window.console&&window.console.log(a,c,i);else if(i.start.row==a){var e=(t=this.folds).indexOf(i);for(0===e&&(this.start.column+=s);e<t.length;e++){if((i=t[e]).start.column+=s,!i.sameRow)return;i.end.column+=s}this.end.column+=s}},v.prototype.split=function(a,c){var s=this.getNextFoldTo(a,c);if(!s||"inside"==s.kind)return null;var i=this.folds,t=this.foldData,e=i.indexOf(s.fold),n=i[e-1];this.end.row=n.end.row,this.end.column=n.end.column;var o=new v(t,i=i.splice(e,i.length-e));return t.splice(t.indexOf(this)+1,0,o),o},v.prototype.merge=function(a){for(var c=a.folds,s=0;s<c.length;s++)this.addFold(c[s]);var r=this.foldData;r.splice(r.indexOf(a),1)},v.prototype.toString=function(){var a=[this.range.toString()+": ["];return this.folds.forEach(function(c){a.push("  "+c.toString())}),a.push("]"),a.join("\n")},v.prototype.idxToPosition=function(a){for(var c=0,s=0;s<this.folds.length;s++){var r=this.folds[s];if((a-=r.start.column-c)<0)return{row:r.start.row,column:r.start.column+a};if((a-=r.placeholder.length)<0)return r.start;c=r.end.column}return{row:this.end.row,column:this.end.column+a}},v}();M.FoldLine=C}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(w,M,F){"use strict";var C=w("./range").Range.comparePoints,v=function(){function a(){this.ranges=[],this.$bias=1}return a.prototype.pointIndex=function(c,s,r){for(var i=this.ranges,t=r||0;t<i.length;t++){var e=i[t],n=C(c,e.end);if(!(n>0)){var o=C(c,e.start);return 0===n?s&&0!==o?-t-2:t:o>0||0===o&&!s?t:-t-1}}return-t-1},a.prototype.add=function(c){var s=!c.isEmpty(),r=this.pointIndex(c.start,s);r<0&&(r=-r-1);var i=this.pointIndex(c.end,s,r);return i<0?i=-i-1:i++,this.ranges.splice(r,i-r,c)},a.prototype.addList=function(c){for(var s=[],r=c.length;r--;)s.push.apply(s,this.add(c[r]));return s},a.prototype.substractPoint=function(c){var s=this.pointIndex(c);if(s>=0)return this.ranges.splice(s,1)},a.prototype.merge=function(){for(var i,c=[],s=this.ranges,r=(s=s.sort(function(n,o){return C(n.start,o.start)}))[0],t=1;t<s.length;t++){var e=C((i=r).end,(r=s[t]).start);e<0||0==e&&!i.isEmpty()&&!r.isEmpty()||(C(i.end,r.end)<0&&(i.end.row=r.end.row,i.end.column=r.end.column),s.splice(t,1),c.push(r),r=i,t--)}return this.ranges=s,c},a.prototype.contains=function(c,s){return this.pointIndex({row:c,column:s})>=0},a.prototype.containsPoint=function(c){return this.pointIndex(c)>=0},a.prototype.rangeAtPoint=function(c){var s=this.pointIndex(c);if(s>=0)return this.ranges[s]},a.prototype.clipRows=function(c,s){var r=this.ranges;if(r[0].start.row>s||r[r.length-1].start.row<c)return[];var i=this.pointIndex({row:c,column:0});i<0&&(i=-i-1);var t=this.pointIndex({row:s,column:0},i);t<0&&(t=-t-1);for(var e=[],n=i;n<t;n++)e.push(r[n]);return e},a.prototype.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},a.prototype.attach=function(c){this.session&&this.detach(),this.session=c,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},a.prototype.detach=function(){this.session&&(this.session.removeListener("change",this.onChange),this.session=null)},a.prototype.$onChange=function(c){for(var s=c.start,r=c.end,i=s.row,t=r.row,e=this.ranges,n=0,o=e.length;n<o&&!((l=e[n]).end.row>=i);n++);if("insert"==c.action){for(var u=t-i,h=-s.column+r.column;n<o&&!((l=e[n]).start.row>i);n++)if(l.start.row==i&&l.start.column>=s.column&&(l.start.column==s.column&&this.$bias<=0||(l.start.column+=h,l.start.row+=u)),l.end.row==i&&l.end.column>=s.column){if(l.end.column==s.column&&this.$bias<0)continue;l.end.column==s.column&&h>0&&n<o-1&&l.end.column>l.start.column&&l.end.column==e[n+1].start.column&&(l.end.column-=h),l.end.column+=h,l.end.row+=u}}else for(u=i-t,h=s.column-r.column;n<o&&!((l=e[n]).start.row>t);n++)l.end.row<t&&(i<l.end.row||i==l.end.row&&s.column<l.end.column)?(l.end.row=i,l.end.column=s.column):l.end.row==t?l.end.column<=r.column?(u||l.end.column>s.column)&&(l.end.column=s.column,l.end.row=s.row):(l.end.column+=h,l.end.row+=u):l.end.row>t&&(l.end.row+=u),l.start.row<t&&(i<l.start.row||i==l.start.row&&s.column<l.start.column)?(l.start.row=i,l.start.column=s.column):l.start.row==t?l.start.column<=r.column?(u||l.start.column>s.column)&&(l.start.column=s.column,l.start.row=s.row):(l.start.column+=h,l.start.row+=u):l.start.row>t&&(l.start.row+=u);if(0!=u&&n<o)for(;n<o;n++){var l;(l=e[n]).start.row+=u,l.end.row+=u}},a}();v.prototype.comparePoints=C,M.RangeList=v}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range_list"],function(w,M,F){"use strict";var _=this&&this.__extends||function(){var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var l in o)Object.prototype.hasOwnProperty.call(o,l)&&(n[l]=o[l])})(t,e)};return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),v=function(i){function t(e,n){var o=i.call(this)||this;return o.foldLine=null,o.placeholder=n,o.range=e,o.start=e.start,o.end=e.end,o.sameRow=e.start.row==e.end.row,o.subFolds=o.ranges=[],o}return _(t,i),t.prototype.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},t.prototype.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(n){n.setFoldLine(e)})},t.prototype.clone=function(){var n=new t(this.range.clone(),this.placeholder);return this.subFolds.forEach(function(o){n.subFolds.push(o.clone())}),n.collapseChildren=this.collapseChildren,n},t.prototype.addSubFold=function(e){if(!this.range.isEqual(e)){!function c(i,t){a(i.start,t),a(i.end,t)}(e,this.start);for(var h=e.start.row,f=e.start.column,n=0,o=-1;n<this.subFolds.length&&1==(o=this.subFolds[n].range.compare(h,f));n++);var l=this.subFolds[n],u=0;if(0==o){if(l.range.containsRange(e))return l.addSubFold(e);u=1}h=e.range.end.row,f=e.range.end.column;var m=n;for(o=-1;m<this.subFolds.length&&1==(o=this.subFolds[m].range.compare(h,f));m++);0==o&&m++;for(var y=this.subFolds.splice(n,m-n,e),p=0==o?y.length-1:y.length,S=u;S<p;S++)e.addSubFold(y[S]);return e.setFoldLine(this.foldLine),e}},t.prototype.restoreRange=function(e){return function r(i,t){s(i.start,t),s(i.end,t)}(e,this.start)},t}(w("../range_list").RangeList);function a(i,t){i.row-=t.row,0==i.row&&(i.column-=t.column)}function s(i,t){0==i.row&&(i.column+=t.column),i.row+=t.row}M.Fold=v}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator","ace/mouse/mouse_event"],function(w,M,F){"use strict";var _=w("../range").Range,C=w("./fold_line").FoldLine,v=w("./fold").Fold,a=w("../token_iterator").TokenIterator,c=w("../mouse/mouse_event").MouseEvent;M.Folding=function s(){this.getFoldAt=function(r,i,t){var e=this.getFoldLine(r);if(!e)return null;for(var n=e.folds,o=0;o<n.length;o++){var l=n[o].range;if(l.contains(r,i)){if(1==t&&l.isEnd(r,i)&&!l.isEmpty())continue;if(-1==t&&l.isStart(r,i)&&!l.isEmpty())continue;return n[o]}}},this.getFoldsInRange=function(r){var i=r.start,t=r.end,e=this.$foldData,n=[];i.column+=1,t.column-=1;for(var o=0;o<e.length;o++){var l=e[o].range.compareRange(r);if(2!=l){if(-2==l)break;for(var u=e[o].folds,h=0;h<u.length;h++){var f=u[h];if(-2==(l=f.range.compareRange(r)))break;if(2!=l){if(42==l)break;n.push(f)}}}}return i.column-=1,t.column+=1,n},this.getFoldsInRangeList=function(r){if(Array.isArray(r)){var i=[];r.forEach(function(t){i=i.concat(this.getFoldsInRange(t))},this)}else i=this.getFoldsInRange(r);return i},this.getAllFolds=function(){for(var r=[],i=this.$foldData,t=0;t<i.length;t++)for(var e=0;e<i[t].folds.length;e++)r.push(i[t].folds[e]);return r},this.getFoldStringAt=function(r,i,t,e){if(!(e=e||this.getFoldLine(r)))return null;for(var o,l,n={end:{column:0}},u=0;u<e.folds.length;u++){var h=(l=e.folds[u]).range.compareEnd(r,i);if(-1==h){o=this.getLine(l.start.row).substring(n.end.column,l.start.column);break}if(0===h)return null;n=l}return o||(o=this.getLine(l.start.row).substring(n.end.column)),-1==t?o.substring(0,i-n.end.column):1==t?o.substring(i-n.end.column):o},this.getFoldLine=function(r,i){var t=this.$foldData,e=0;for(i&&(e=t.indexOf(i)),-1==e&&(e=0);e<t.length;e++){var n=t[e];if(n.start.row<=r&&n.end.row>=r)return n;if(n.end.row>r)return null}return null},this.getNextFoldLine=function(r,i){var t=this.$foldData,e=0;for(i&&(e=t.indexOf(i)),-1==e&&(e=0);e<t.length;e++){var n=t[e];if(n.end.row>=r)return n}return null},this.getFoldedRowCount=function(r,i){for(var t=this.$foldData,e=i-r+1,n=0;n<t.length;n++){var o=t[n],l=o.end.row,u=o.start.row;if(l>=i){u<i&&(u>=r?e-=i-u:e=0);break}l>=r&&(e-=u>=r?l-u:l-r+1)}return e},this.$addFoldLine=function(r){return this.$foldData.push(r),this.$foldData.sort(function(i,t){return i.start.row-t.start.row}),r},this.addFold=function(r,i){var n,t=this.$foldData,e=!1;r instanceof v?n=r:(n=new v(i,r)).collapseChildren=i.collapseChildren,this.$clipRangeToDocument(n.range);var o=n.start.row,l=n.start.column,u=n.end.row,h=n.end.column,f=this.getFoldAt(o,l,1),m=this.getFoldAt(u,h,-1);if(f&&m==f)return f.addSubFold(n);f&&!f.range.isStart(o,l)&&this.removeFold(f),m&&!m.range.isEnd(u,h)&&this.removeFold(m);var y=this.getFoldsInRange(n.range);y.length>0&&(this.removeFolds(y),n.collapseChildren||y.forEach(function(A){n.addSubFold(A)}));for(var p=0;p<t.length;p++){var S=t[p];if(u==S.start.row){S.addFold(n),e=!0;break}if(o==S.end.row){if(S.addFold(n),e=!0,!n.sameRow){var $=t[p+1];if($&&$.start.row==u){S.merge($);break}}break}if(u<=S.start.row)break}return e||(S=this.$addFoldLine(new C(this.$foldData,n))),this.$useWrapMode?this.$updateWrapData(S.start.row,S.start.row):this.$updateRowLengthCache(S.start.row,S.start.row),this.$modified=!0,this._signal("changeFold",{data:n,action:"add"}),n},this.addFolds=function(r){r.forEach(function(i){this.addFold(i)},this)},this.removeFold=function(r){var i=r.foldLine,t=i.start.row,e=i.end.row,n=this.$foldData,o=i.folds;if(1==o.length)n.splice(n.indexOf(i),1);else if(i.range.isEnd(r.end.row,r.end.column))o.pop(),i.end.row=o[o.length-1].end.row,i.end.column=o[o.length-1].end.column;else if(i.range.isStart(r.start.row,r.start.column))o.shift(),i.start.row=o[0].start.row,i.start.column=o[0].start.column;else if(r.sameRow)o.splice(o.indexOf(r),1);else{var l=i.split(r.start.row,r.start.column);(o=l.folds).shift(),l.start.row=o[0].start.row,l.start.column=o[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(t,e):this.$updateRowLengthCache(t,e)),this.$modified=!0,this._signal("changeFold",{data:r,action:"remove"})},this.removeFolds=function(r){for(var i=[],t=0;t<r.length;t++)i.push(r[t]);i.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(r){this.removeFold(r),r.subFolds.forEach(function(i){r.restoreRange(i),this.addFold(i)},this),r.collapseChildren>0&&this.foldAll(r.start.row+1,r.end.row,r.collapseChildren-1),r.subFolds=[]},this.expandFolds=function(r){r.forEach(function(i){this.expandFold(i)},this)},this.unfold=function(r,i){var t,e;if(null==r)t=new _(0,0,this.getLength(),0),null==i&&(i=!0);else if("number"==typeof r)t=new _(r,0,r,this.getLine(r).length);else if("row"in r)t=_.fromPoints(r,r);else{if(Array.isArray(r))return e=[],r.forEach(function(o){e=e.concat(this.unfold(o))},this),e;t=r}for(var n=e=this.getFoldsInRangeList(t);1==e.length&&_.comparePoints(e[0].start,t.start)<0&&_.comparePoints(e[0].end,t.end)>0;)this.expandFolds(e),e=this.getFoldsInRangeList(t);if(0!=i?this.removeFolds(e):this.expandFolds(e),n.length)return n},this.isRowFolded=function(r,i){return!!this.getFoldLine(r,i)},this.getRowFoldEnd=function(r,i){var t=this.getFoldLine(r,i);return t?t.end.row:r},this.getRowFoldStart=function(r,i){var t=this.getFoldLine(r,i);return t?t.start.row:r},this.getFoldDisplayLine=function(r,i,t,e,n){null==e&&(e=r.start.row),null==n&&(n=0),null==i&&(i=r.end.row),null==t&&(t=this.getLine(i).length);var o=this.doc,l="";return r.walk(function(u,h,f,m){if(!(h<e)){if(h==e){if(f<n)return;m=Math.max(n,m)}l+=null!=u?u:o.getLine(h).substring(m,f)}},i,t),l},this.getDisplayLine=function(r,i,t,e){var o,n=this.getFoldLine(r);return n?this.getFoldDisplayLine(n,r,i,t,e):(o=this.doc.getLine(r)).substring(e||0,i||o.length)},this.$cloneFoldData=function(){var r=[];return r=this.$foldData.map(function(i){var t=i.folds.map(function(e){return e.clone()});return new C(r,t)})},this.toggleFold=function(r){var e,n,t=this.selection.getRange();if(t.isEmpty()){var o=t.start;if(e=this.getFoldAt(o.row,o.column))return void this.expandFold(e);if(r){var l=this.getFoldLine(o.row);return void(l&&this.expandFolds(l.folds))}(n=this.findMatchingBracket(o))?1==t.comparePoint(n)?t.end=n:(t.start=n,t.start.column++,t.end.column--):(n=this.findMatchingBracket({row:o.row,column:o.column+1}))?(1==t.comparePoint(n)?t.end=n:t.start=n,t.start.column++):t=this.getCommentFoldRange(o.row,o.column)||t}else{var u=this.getFoldsInRange(t);if(r&&u.length)return void this.expandFolds(u);1==u.length&&(e=u[0])}if(e||(e=this.getFoldAt(t.start.row,t.start.column)),e&&e.range.toString()==t.toString())this.expandFold(e);else{var h="...";if(!t.isMultiLine()){if((h=this.getTextRange(t)).length<4)return;h=h.trim().substring(0,2)+".."}this.addFold(h,t)}},this.getCommentFoldRange=function(r,i,t){var e=new a(this,r,i),n=e.getCurrentToken(),o=n&&n.type;if(n&&/^comment|string/.test(o)){"comment"==(o=o.match(/comment|string/)[0])&&(o+="|doc-start|\\.doc");var l=new RegExp(o),u=new _;if(1!=t){do{n=e.stepBackward()}while(n&&l.test(n.type));n=e.stepForward()}u.start.row=e.getCurrentTokenRow(),u.start.column=e.getCurrentTokenColumn()+n.value.length,e=new a(this,r,i);var h=this.getState(e.$row);if(-1!=t){var f=-1;do{if(n=e.stepForward(),-1==f){var m=this.getState(e.$row);h.toString()!==m.toString()&&(f=e.$row)}else if(e.$row>f)break}while(n&&l.test(n.type));n=e.stepBackward()}else n=e.getCurrentToken();return u.end.row=e.getCurrentTokenRow(),u.end.column=e.getCurrentTokenColumn(),u.start.row==u.end.row&&u.start.column>u.end.column?void 0:u}},this.foldAll=function(r,i,t,e){null==t&&(t=1e5);var n=this.foldWidgets;if(n){i=i||this.getLength();for(var o=r=r||0;o<i;o++)if(null==n[o]&&(n[o]=this.getFoldWidget(o)),"start"==n[o]&&(!e||e(o))){var l=this.getFoldWidgetRange(o);l&&l.isMultiLine()&&l.end.row<=i&&l.start.row>=r&&(o=l.end.row,l.collapseChildren=t,this.addFold("...",l))}}},this.foldToLevel=function(r){for(this.foldAll();r-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var r=this;this.foldAll(null,null,null,function(i){for(var t=r.getTokens(i),e=0;e<t.length;e++){var n=t[e];if("text"!=n.type||!/^\s+$/.test(n.value))return!!/comment/.test(n.type)}})},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(r){if(!this.$foldStyles[r])throw new Error("invalid fold style: "+r+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=r){this.$foldStyle=r,"manual"==r&&this.unfold();var i=this.$foldMode;this.$setFolding(null),this.$setFolding(i)}},this.$setFolding=function(r){if(this.$foldMode!=r){if(this.$foldMode=r,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!r||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=r.getFoldWidget.bind(r,this,this.$foldStyle),this.getFoldWidgetRange=r.getFoldWidgetRange.bind(r,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(r,i){var t=this.foldWidgets;if(!t||i&&t[r])return{};for(var n,e=r-1;e>=0;){var o=t[e];if(null==o&&(o=t[e]=this.getFoldWidget(e)),"start"==o){var l=this.getFoldWidgetRange(e);if(n||(n=l),l&&l.end.row>=r)break}e--}return{range:-1!==e&&l,firstRange:n}},this.onFoldWidgetClick=function(r,i){if(i instanceof c&&(i=i.domEvent),!this.$toggleFoldWidget(r,{children:i.shiftKey,all:i.ctrlKey||i.metaKey,siblings:i.altKey})){var n=i.target||i.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(r,i){if(this.getFoldWidget){var t=this.getFoldWidget(r),e=this.getLine(r),n="end"===t?-1:1,o=this.getFoldAt(r,-1===n?0:e.length,n);if(o)return i.children||i.all?this.removeFold(o):this.expandFold(o),o;var l=this.getFoldWidgetRange(r,!0);if(l&&!l.isMultiLine()&&(o=this.getFoldAt(l.start.row,l.start.column,1))&&l.isEqual(o.range))return this.removeFold(o),o;if(i.siblings){var u=this.getParentFoldRangeData(r);if(u.range)var h=u.range.start.row+1,f=u.range.end.row;this.foldAll(h,f,i.all?1e4:0)}else i.children?(f=l?l.end.row:this.getLength(),this.foldAll(r+1,f,i.all?1e4:0)):l&&(i.all&&(l.collapseChildren=1e4),this.addFold("...",l));return l}},this.toggleFoldWidget=function(r){var i=this.selection.getCursor().row;i=this.getRowFoldStart(i);var t=this.$toggleFoldWidget(i,{});if(!t){var e=this.getParentFoldRangeData(i,!0);if(t=e.range||e.firstRange){var n=this.getFoldAt(i=t.start.row,this.getLine(i).length,1);n?this.removeFold(n):this.addFold("...",t)}}},this.updateFoldWidgets=function(r){var i=r.start.row,t=r.end.row-i;if(0===t)this.foldWidgets[i]=null;else if("remove"==r.action)this.foldWidgets.splice(i,t+1,null);else{var e=Array(t+1);e.unshift(i,1),this.foldWidgets.splice.apply(this.foldWidgets,e)}},this.tokenizerUpdateFoldWidgets=function(r){var i=r.data;i.first!=i.last&&this.foldWidgets.length>i.first&&this.foldWidgets.splice(i.first,this.foldWidgets.length)}}}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(w,M,F){"use strict";var _=w("../token_iterator").TokenIterator,C=w("../range").Range;M.BracketMatch=function v(){this.findMatchingBracket=function(a,c){if(0==a.column)return null;var s=c||this.getLine(a.row).charAt(a.column-1);if(""==s)return null;var r=s.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],a):this.$findOpeningBracket(r[2],a):null},this.getBracketRange=function(a){var r,c=this.getLine(a.row),s=!0,i=c.charAt(a.column-1),t=i&&i.match(/([\(\[\{])|([\)\]\}])/);if(t||(i=c.charAt(a.column),a={row:a.row,column:a.column+1},t=i&&i.match(/([\(\[\{])|([\)\]\}])/),s=!1),!t)return null;if(t[1]){if(!(e=this.$findClosingBracket(t[1],a)))return null;r=C.fromPoints(a,e),s||(r.end.column++,r.start.column--),r.cursor=r.end}else{var e;if(!(e=this.$findOpeningBracket(t[2],a)))return null;r=C.fromPoints(e,a),s||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.getMatchingBracketRanges=function(a,c){var s=this.getLine(a.row),r=/([\(\[\{])|([\)\]\}])/,i=!c&&s.charAt(a.column-1),t=i&&i.match(r);if(t||(i=(void 0===c||c)&&s.charAt(a.column),a={row:a.row,column:a.column+1},t=i&&i.match(r)),!t)return null;var e=new C(a.row,a.column-1,a.row,a.column),n=t[1]?this.$findClosingBracket(t[1],a):this.$findOpeningBracket(t[2],a);return n?[e,new C(n.row,n.column,n.row,n.column+1)]:[e]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,c,s){var r=this.$brackets[a],i=1,t=new _(this,c.row,c.column),e=t.getCurrentToken();if(e||(e=t.stepForward()),e){s||(s=new RegExp("(\\.?"+e.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var n=c.column-t.getCurrentTokenColumn()-2,o=e.value;;){for(;n>=0;){var l=o.charAt(n);if(l==r){if(0==(i-=1))return{row:t.getCurrentTokenRow(),column:n+t.getCurrentTokenColumn()}}else l==a&&(i+=1);n-=1}do{e=t.stepBackward()}while(e&&!s.test(e.type));if(null==e)break;n=(o=e.value).length-1}return null}},this.$findClosingBracket=function(a,c,s){var r=this.$brackets[a],i=1,t=new _(this,c.row,c.column),e=t.getCurrentToken();if(e||(e=t.stepForward()),e){s||(s=new RegExp("(\\.?"+e.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var n=c.column-t.getCurrentTokenColumn();;){for(var o=e.value,l=o.length;n<l;){var u=o.charAt(n);if(u==r){if(0==(i-=1))return{row:t.getCurrentTokenRow(),column:n+t.getCurrentTokenColumn()}}else u==a&&(i+=1);n+=1}do{e=t.stepForward()}while(e&&!s.test(e.type));if(null==e)break;n=0}return null}},this.getMatchingTags=function(a){var c=new _(this,a.row,a.column),s=this.$findTagName(c);if(s)return"<"===c.stepBackward().value?this.$findClosingTag(c,s):this.$findOpeningTag(c,s)},this.$findTagName=function(a){var c=a.getCurrentToken(),s=!1,r=!1;if(c&&-1===c.type.indexOf("tag-name"))do{(c=r?a.stepBackward():a.stepForward())&&("/>"===c.value?r=!0:-1!==c.type.indexOf("tag-name")&&(s=!0))}while(c&&!s);return c},this.$findClosingTag=function(a,c){var s,r=c.value,i=c.value,t=0,e=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);c=a.stepForward();var n=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+c.value.length),o=!1;do{if(-1!==(s=c).type.indexOf("tag-close")&&!o){var l=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);o=!0}if(c=a.stepForward())if(">"!==c.value||o||(l=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1),o=!0),-1!==c.type.indexOf("tag-name")){if(i===(r=c.value))if("<"===s.value)t++;else if("</"===s.value&&--t<0){a.stepBackward();var u=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2);c=a.stepForward();var h=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+c.value.length);if(-1===c.type.indexOf("tag-close")&&(c=a.stepForward()),!c||">"!==c.value)return;var f=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else i===r&&"/>"===c.value&&--t<0&&(f=h=u=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),l=new C(n.end.row,n.end.column,n.end.row,n.end.column+1))}while(c&&t>=0);if(e&&l&&u&&f&&n&&h)return{openTag:new C(e.start.row,e.start.column,l.end.row,l.end.column),closeTag:new C(u.start.row,u.start.column,f.end.row,f.end.column),openTagName:n,closeTagName:h}},this.$findOpeningTag=function(a,c){var s=a.getCurrentToken(),r=c.value,i=0,t=a.getCurrentTokenRow(),e=a.getCurrentTokenColumn(),n=e+2,o=new C(t,e,t,n);a.stepForward();var l=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+c.value.length);if(-1===c.type.indexOf("tag-close")&&(c=a.stepForward()),c&&">"===c.value){var u=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do{if(c=s,t=a.getCurrentTokenRow(),n=(e=a.getCurrentTokenColumn())+c.value.length,s=a.stepBackward(),c)if(-1!==c.type.indexOf("tag-name")){if(r===c.value)if("<"===s.value){if(++i>0){var h=new C(t,e,t,n),f=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do{c=a.stepForward()}while(c&&">"!==c.value);var m=new C(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else"</"===s.value&&i--}else if("/>"===c.value){for(var y=0,p=s;p;){if(-1!==p.type.indexOf("tag-name")&&p.value===r){i--;break}if("<"===p.value)break;p=a.stepBackward(),y++}for(var S=0;S<y;S++)a.stepForward()}}while(s&&i<=0);if(f&&m&&o&&u&&h&&l)return{openTag:new C(f.start.row,f.start.column,m.end.row,m.end.column),closeTag:new C(o.start.row,o.start.column,u.end.row,u.end.column),openTagName:h,closeTagName:l}}}}}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/line_widgets","ace/document","ace/background_tokenizer","ace/search_highlight","ace/undomanager","ace/edit_session/folding","ace/edit_session/bracket_match"],function(w,M,F){"use strict";var _=w("./lib/oop"),C=w("./lib/lang"),v=w("./bidihandler").BidiHandler,a=w("./config"),c=w("./lib/event_emitter").EventEmitter,s=w("./selection").Selection,r=w("./mode/text").Mode,i=w("./range").Range,t=w("./line_widgets").LineWidgets,e=w("./document").Document,n=w("./background_tokenizer").BackgroundTokenizer,o=w("./search_highlight").SearchHighlight,l=w("./undomanager").UndoManager,u=function(){function x(b,g){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$editor=null,this.prevOp={},this.$foldData=[],this.id="session"+ ++x.$uid,this.$foldData.toString=function(){return this.join("\n")},this.$gutterCustomWidgets={},this.bgTokenizer=new n((new r).getTokenizer(),this);var d=this;this.bgTokenizer.on("update",function(k){d._signal("tokenizerUpdate",k)}),this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),("object"!=typeof b||!b.getLine)&&(b=new e(b)),this.setDocument(b),this.selection=new s(this),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.selection.on("changeCursor",this.$onSelectionChange),this.$bidiHandler=new v(this),a.resetOptions(this),this.setMode(g),a._signal("session",this),this.destroyed=!1,this.$initOperationListeners()}return x.prototype.$initOperationListeners=function(){var b=this;this.curOp=null,this.on("change",function(){b.curOp||(b.startOperation(),b.curOp.selectionBefore=b.$lastSel),b.curOp.docChanged=!0},!0),this.on("changeSelection",function(){b.curOp||(b.startOperation(),b.curOp.selectionBefore=b.$lastSel),b.curOp.selectionChanged=!0},!0),this.$operationResetTimer=C.delayedCall(this.endOperation.bind(this,!0))},x.prototype.startOperation=function(b){if(this.curOp){if(!b||this.curOp.command)return;this.prevOp=this.curOp}b||(b={}),this.$operationResetTimer.schedule(),this.curOp={command:b.command||{},args:b.args},this.curOp.selectionBefore=this.selection.toJSON(),this._signal("startOperation",b)},x.prototype.endOperation=function(b){if(this.curOp){if(b&&!1===b.returnValue)return this.curOp=null,void this._signal("endOperation",b);if(1==b&&this.curOp.command&&"mouse"==this.curOp.command.name)return;var g=this.selection.toJSON();this.curOp.selectionAfter=g,this.$lastSel=this.selection.toJSON(),this.getUndoManager().addSelection(g),this._signal("beforeEndOperation"),this.prevOp=this.curOp,this.curOp=null,this._signal("endOperation",b)}},x.prototype.setDocument=function(b){this.doc&&this.doc.off("change",this.$onChange),this.doc=b,b.on("change",this.$onChange,!0),this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},x.prototype.getDocument=function(){return this.doc},Object.defineProperty(x.prototype,"widgetManager",{get:function(){var b=new t(this);return this.widgetManager=b,this.$editor&&b.attach(this.$editor),b},set:function(b){Object.defineProperty(this,"widgetManager",{writable:!0,enumerable:!0,configurable:!0,value:b})},enumerable:!1,configurable:!0}),x.prototype.$resetRowCache=function(b){if(!b)return this.$docRowCache=[],void(this.$screenRowCache=[]);var g=this.$docRowCache.length,d=this.$getRowCacheIndex(this.$docRowCache,b)+1;g>d&&(this.$docRowCache.splice(d,g),this.$screenRowCache.splice(d,g))},x.prototype.$getRowCacheIndex=function(b,g){for(var d=0,k=b.length-1;d<=k;){var T=d+k>>1,L=b[T];if(g>L)d=T+1;else{if(!(g<L))return T;k=T-1}}return d-1},x.prototype.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.destroyed||this.bgTokenizer.start(0)},x.prototype.onChangeFold=function(b){this.$resetRowCache(b.data.start.row)},x.prototype.onChange=function(b){this.$modified=!0,this.$bidiHandler.onChange(b),this.$resetRowCache(b.start.row);var g=this.$updateInternalDataOnChange(b);!this.$fromUndo&&this.$undoManager&&(g&&g.length&&(this.$undoManager.add({action:"removeFolds",folds:g},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(b,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer.$updateOnChange(b),this._signal("change",b)},x.prototype.onSelectionChange=function(){this._signal("changeSelection")},x.prototype.setValue=function(b){this.doc.setValue(b),this.selection.moveTo(0,0),this.$resetRowCache(0),this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},x.fromJSON=function(b){"string"==typeof b&&(b=JSON.parse(b));var g=new l;g.$undoStack=b.history.undo,g.$redoStack=b.history.redo,g.mark=b.history.mark,g.$rev=b.history.rev;var d=new x(b.value);return b.folds.forEach(function(k){d.addFold("...",i.fromPoints(k.start,k.end))}),d.setAnnotations(b.annotations),d.setBreakpoints(b.breakpoints),d.setMode(b.mode),d.setScrollLeft(b.scrollLeft),d.setScrollTop(b.scrollTop),d.setUndoManager(g),d.selection.fromJSON(b.selection),d},x.prototype.toJSON=function(){return{annotations:this.$annotations,breakpoints:this.$breakpoints,folds:this.getAllFolds().map(function(b){return b.range}),history:this.getUndoManager(),mode:this.$mode.$id,scrollLeft:this.$scrollLeft,scrollTop:this.$scrollTop,selection:this.selection.toJSON(),value:this.doc.getValue()}},x.prototype.toString=function(){return this.doc.getValue()},x.prototype.getSelection=function(){return this.selection},x.prototype.getState=function(b){return this.bgTokenizer.getState(b)},x.prototype.getTokens=function(b){return this.bgTokenizer.getTokens(b)},x.prototype.getTokenAt=function(b,g){var k,d=this.bgTokenizer.getTokens(b),T=0;if(null==g){var L=d.length-1;T=this.getLine(b).length}else for(L=0;L<d.length&&!((T+=d[L].value.length)>=g);L++);return(k=d[L])?(k.index=L,k.start=T-k.value.length,k):null},x.prototype.setUndoManager=function(b){if(this.$undoManager=b,this.$informUndoManager&&this.$informUndoManager.cancel(),b){var g=this;b.addSession(this),this.$syncInformUndoManager=function(){g.$informUndoManager.cancel(),g.mergeUndoDeltas=!1},this.$informUndoManager=C.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},x.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},x.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},x.prototype.getTabString=function(){return this.getUseSoftTabs()?C.stringRepeat(" ",this.getTabSize()):"\t"},x.prototype.setUseSoftTabs=function(b){this.setOption("useSoftTabs",b)},x.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},x.prototype.setTabSize=function(b){this.setOption("tabSize",b)},x.prototype.getTabSize=function(){return this.$tabSize},x.prototype.isTabStop=function(b){return this.$useSoftTabs&&b.column%this.$tabSize===0},x.prototype.setNavigateWithinSoftTabs=function(b){this.setOption("navigateWithinSoftTabs",b)},x.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},x.prototype.setOverwrite=function(b){this.setOption("overwrite",b)},x.prototype.getOverwrite=function(){return this.$overwrite},x.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},x.prototype.addGutterDecoration=function(b,g){this.$decorations[b]||(this.$decorations[b]=""),this.$decorations[b]+=" "+g,this._signal("changeBreakpoint",{})},x.prototype.removeGutterCustomWidget=function(b){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget(b)},x.prototype.addGutterCustomWidget=function(b,g){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget(b,g)},x.prototype.removeGutterDecoration=function(b,g){this.$decorations[b]=(this.$decorations[b]||"").replace(" "+g,""),this._signal("changeBreakpoint",{})},x.prototype.getBreakpoints=function(){return this.$breakpoints},x.prototype.setBreakpoints=function(b){this.$breakpoints=[];for(var g=0;g<b.length;g++)this.$breakpoints[b[g]]="ace_breakpoint";this._signal("changeBreakpoint",{})},x.prototype.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},x.prototype.setBreakpoint=function(b,g){void 0===g&&(g="ace_breakpoint"),g?this.$breakpoints[b]=g:delete this.$breakpoints[b],this._signal("changeBreakpoint",{})},x.prototype.clearBreakpoint=function(b){delete this.$breakpoints[b],this._signal("changeBreakpoint",{})},x.prototype.addMarker=function(b,g,d,k){var T=this.$markerId++,L={range:b,type:d||"line",renderer:"function"==typeof d?d:null,clazz:g,inFront:!!k,id:T};return k?(this.$frontMarkers[T]=L,this._signal("changeFrontMarker")):(this.$backMarkers[T]=L,this._signal("changeBackMarker")),T},x.prototype.addDynamicMarker=function(b,g){if(b.update){var d=this.$markerId++;return b.id=d,b.inFront=!!g,g?(this.$frontMarkers[d]=b,this._signal("changeFrontMarker")):(this.$backMarkers[d]=b,this._signal("changeBackMarker")),b}},x.prototype.removeMarker=function(b){var g=this.$frontMarkers[b]||this.$backMarkers[b];g&&(delete(g.inFront?this.$frontMarkers:this.$backMarkers)[b],this._signal(g.inFront?"changeFrontMarker":"changeBackMarker"))},x.prototype.getMarkers=function(b){return b?this.$frontMarkers:this.$backMarkers},x.prototype.highlight=function(b){if(!this.$searchHighlight){var g=new o(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(g)}this.$searchHighlight.setRegexp(b)},x.prototype.highlightLines=function(b,g,d,k){"number"!=typeof g&&(d=g,g=b),d||(d="ace_step");var T=new i(b,0,g,1/0);return T.id=this.addMarker(T,d,"fullLine",k),T},x.prototype.setAnnotations=function(b){this.$annotations=b,this._signal("changeAnnotation",{})},x.prototype.getAnnotations=function(){return this.$annotations||[]},x.prototype.clearAnnotations=function(){this.setAnnotations([])},x.prototype.$detectNewLine=function(b){var g=b.match(/^.*?(\r?\n)/m);this.$autoNewLine=g?g[1]:"\n"},x.prototype.getWordRange=function(b,g){var d=this.getLine(b),k=!1;if(g>0&&(k=!!d.charAt(g-1).match(this.tokenRe)),k||(k=!!d.charAt(g).match(this.tokenRe)),k)var T=this.tokenRe;else T=/^\s+$/.test(d.slice(g-1,g+1))?/\s/:this.nonTokenRe;var L=g;if(L>0){do{L--}while(L>=0&&d.charAt(L).match(T));L++}for(var R=g;R<d.length&&d.charAt(R).match(T);)R++;return new i(b,L,b,R)},x.prototype.getAWordRange=function(b,g){for(var d=this.getWordRange(b,g),k=this.getLine(d.end.row);k.charAt(d.end.column).match(/[ \t]/);)d.end.column+=1;return d},x.prototype.setNewLineMode=function(b){this.doc.setNewLineMode(b)},x.prototype.getNewLineMode=function(){return this.doc.getNewLineMode()},x.prototype.setUseWorker=function(b){this.setOption("useWorker",b)},x.prototype.getUseWorker=function(){return this.$useWorker},x.prototype.onReloadTokenizer=function(b){this.bgTokenizer.start(b.data.first),this._signal("tokenizerUpdate",b)},x.prototype.setMode=function(b,g){if(b&&"object"==typeof b){if(b.getTokenizer)return this.$onChangeMode(b);var d=b,k=b.path}else k=b||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new r),this.$modes[k]&&!d)return this.$onChangeMode(this.$modes[k]),void(g&&g());this.$modeId=k,a.loadModule(["mode",k],function(T){if(!this.destroyed){if(this.$modeId!==k)return g&&g();this.$modes[k]&&!d?this.$onChangeMode(this.$modes[k]):T&&T.Mode&&(T=new T.Mode(d),d||(this.$modes[k]=T,T.$id=k),this.$onChangeMode(T)),g&&g()}}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},x.prototype.$onChangeMode=function(b,g){if(g||(this.$modeId=b.$id),this.$mode!==b){var d=this.$mode;this.$mode=b,this.$stopWorker(),this.$useWorker&&this.$startWorker();var k=b.getTokenizer();if(void 0!==k.on){var T=this.onReloadTokenizer.bind(this);k.on("update",T)}this.bgTokenizer.setTokenizer(k),this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=b.tokenRe,this.nonTokenRe=b.nonTokenRe,g||(b.attachToSession&&b.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(b.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode",{oldMode:d,mode:b}))}},x.prototype.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},x.prototype.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(b){a.warn("Could not load worker",b),this.$worker=null}},x.prototype.getMode=function(){return this.$mode},x.prototype.setScrollTop=function(b){this.$scrollTop===b||isNaN(b)||(this.$scrollTop=b,this._signal("changeScrollTop",b))},x.prototype.getScrollTop=function(){return this.$scrollTop},x.prototype.setScrollLeft=function(b){this.$scrollLeft===b||isNaN(b)||(this.$scrollLeft=b,this._signal("changeScrollLeft",b))},x.prototype.getScrollLeft=function(){return this.$scrollLeft},x.prototype.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},x.prototype.getLineWidgetMaxWidth=function(){if(null!=this.lineWidgetsWidth)return this.lineWidgetsWidth;var b=0;return this.lineWidgets.forEach(function(g){g&&g.screenWidth>b&&(b=g.screenWidth)}),this.lineWidgetWidth=b},x.prototype.$computeWidth=function(b){if(this.$modified||b){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var g=this.doc.getAllLines(),d=this.$rowLengthCache,k=0,T=0,L=this.$foldData[T],R=L?L.start.row:1/0,I=g.length,O=0;O<I;O++){if(O>R){if((O=L.end.row+1)>=I)break;R=(L=this.$foldData[T++])?L.start.row:1/0}null==d[O]&&(d[O]=this.$getStringScreenWidth(g[O])[0]),d[O]>k&&(k=d[O])}this.screenWidth=k}},x.prototype.getLine=function(b){return this.doc.getLine(b)},x.prototype.getLines=function(b,g){return this.doc.getLines(b,g)},x.prototype.getLength=function(){return this.doc.getLength()},x.prototype.getTextRange=function(b){return this.doc.getTextRange(b||this.selection.getRange())},x.prototype.insert=function(b,g){return this.doc.insert(b,g)},x.prototype.remove=function(b){return this.doc.remove(b)},x.prototype.removeFullLines=function(b,g){return this.doc.removeFullLines(b,g)},x.prototype.undoChanges=function(b,g){if(b.length){this.$fromUndo=!0;for(var d=b.length-1;-1!=d;d--){var k=b[d];"insert"==k.action||"remove"==k.action?this.doc.revertDelta(k):k.folds&&this.addFolds(k.folds)}!g&&this.$undoSelect&&(b.selectionBefore?this.selection.fromJSON(b.selectionBefore):this.selection.setRange(this.$getUndoSelection(b,!0))),this.$fromUndo=!1}},x.prototype.redoChanges=function(b,g){if(b.length){this.$fromUndo=!0;for(var d=0;d<b.length;d++){var k=b[d];("insert"==k.action||"remove"==k.action)&&this.doc.$safeApplyDelta(k)}!g&&this.$undoSelect&&(b.selectionAfter?this.selection.fromJSON(b.selectionAfter):this.selection.setRange(this.$getUndoSelection(b,!1))),this.$fromUndo=!1}},x.prototype.setUndoSelect=function(b){this.$undoSelect=b},x.prototype.$getUndoSelection=function(b,g){function d(I){return g?"insert"!==I.action:"insert"===I.action}for(var k,T,L=0;L<b.length;L++){var R=b[L];if(R.start){if(!k){k=d(R)?i.fromPoints(R.start,R.end):i.fromPoints(R.start,R.start);continue}d(R)?(-1==k.compare((T=R.start).row,T.column)&&k.setStart(T),1==k.compare((T=R.end).row,T.column)&&k.setEnd(T)):-1==k.compare((T=R.start).row,T.column)&&(k=i.fromPoints(R.start,R.start))}}return k},x.prototype.replace=function(b,g){return this.doc.replace(b,g)},x.prototype.moveText=function(b,g,d){var k=this.getTextRange(b),T=this.getFoldsInRange(b),L=i.fromPoints(g,g);if(d||(this.remove(b),(I=(R=b.start.row-b.end.row)?-b.end.column:b.start.column-b.end.column)&&(L.start.row==b.end.row&&L.start.column>b.end.column&&(L.start.column+=I),L.end.row==b.end.row&&L.end.column>b.end.column&&(L.end.column+=I)),R&&L.start.row>=b.end.row&&(L.start.row+=R,L.end.row+=R)),L.end=this.insert(L.start,k),T.length){var O=b.start,N=L.start,R=N.row-O.row,I=N.column-O.column;this.addFolds(T.map(function(W){return(W=W.clone()).start.row==O.row&&(W.start.column+=I),W.end.row==O.row&&(W.end.column+=I),W.start.row+=R,W.end.row+=R,W}))}return L},x.prototype.indentRows=function(b,g,d){d=d.replace(/\t/g,this.getTabString());for(var k=b;k<=g;k++)this.doc.insertInLine({row:k,column:0},d)},x.prototype.outdentRows=function(b){for(var g=b.collapseRows(),d=new i(0,0,0,0),k=this.getTabSize(),T=g.start.row;T<=g.end.row;++T){var L=this.getLine(T);d.start.row=T,d.end.row=T;for(var R=0;R<k&&" "==L.charAt(R);++R);R<k&&"\t"==L.charAt(R)?(d.start.column=R,d.end.column=R+1):(d.start.column=0,d.end.column=R),this.remove(d)}},x.prototype.$moveLines=function(b,g,d){if(b=this.getRowFoldStart(b),g=this.getRowFoldEnd(g),d<0){if((k=this.getRowFoldStart(b+d))<0)return 0;var T=k-b}else if(d>0){var k;if((k=this.getRowFoldEnd(g+d))>this.doc.getLength()-1)return 0;T=k-g}else b=this.$clipRowToDocument(b),T=(g=this.$clipRowToDocument(g))-b+1;var L=new i(b,0,g,Number.MAX_VALUE),R=this.getFoldsInRange(L).map(function(O){return(O=O.clone()).start.row+=T,O.end.row+=T,O}),I=0==d?this.doc.getLines(b,g):this.doc.removeFullLines(b,g);return this.doc.insertFullLines(b+T,I),R.length&&this.addFolds(R),T},x.prototype.moveLinesUp=function(b,g){return this.$moveLines(b,g,-1)},x.prototype.moveLinesDown=function(b,g){return this.$moveLines(b,g,1)},x.prototype.duplicateLines=function(b,g){return this.$moveLines(b,g,0)},x.prototype.$clipRowToDocument=function(b){return Math.max(0,Math.min(b,this.doc.getLength()-1))},x.prototype.$clipColumnToRow=function(b,g){return g<0?0:Math.min(this.doc.getLine(b).length,g)},x.prototype.$clipPositionToDocument=function(b,g){if(g=Math.max(0,g),b<0)b=0,g=0;else{var d=this.doc.getLength();b>=d?(b=d-1,g=this.doc.getLine(d-1).length):g=Math.min(this.doc.getLine(b).length,g)}return{row:b,column:g}},x.prototype.$clipRangeToDocument=function(b){b.start.row<0?(b.start.row=0,b.start.column=0):b.start.column=this.$clipColumnToRow(b.start.row,b.start.column);var g=this.doc.getLength()-1;return b.end.row>g?(b.end.row=g,b.end.column=this.doc.getLine(g).length):b.end.column=this.$clipColumnToRow(b.end.row,b.end.column),b},x.prototype.setUseWrapMode=function(b){if(b!=this.$useWrapMode){if(this.$useWrapMode=b,this.$modified=!0,this.$resetRowCache(0),b){var g=this.getLength();this.$wrapData=Array(g),this.$updateWrapData(0,g-1)}this._signal("changeWrapMode")}},x.prototype.getUseWrapMode=function(){return this.$useWrapMode},x.prototype.setWrapLimitRange=function(b,g){(this.$wrapLimitRange.min!==b||this.$wrapLimitRange.max!==g)&&(this.$wrapLimitRange={min:b,max:g},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},x.prototype.adjustWrapLimit=function(b,g){var d=this.$wrapLimitRange;d.max<0&&(d={min:g,max:g});var k=this.$constrainWrapLimit(b,d.min,d.max);return k!=this.$wrapLimit&&k>1&&(this.$wrapLimit=k,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},x.prototype.$constrainWrapLimit=function(b,g,d){return g&&(b=Math.max(g,b)),d&&(b=Math.min(d,b)),b},x.prototype.getWrapLimit=function(){return this.$wrapLimit},x.prototype.setWrapLimit=function(b){this.setWrapLimitRange(b,b)},x.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},x.prototype.$updateInternalDataOnChange=function(b){var g=this.$useWrapMode,d=b.action,k=b.start,T=b.end,L=k.row,R=T.row,I=R-L,O=null;if(this.$updating=!0,0!=I)if("remove"===d){this[g?"$wrapData":"$rowLengthCache"].splice(L,I);var N=this.$foldData;O=this.getFoldsInRange(b),this.removeFolds(O);var B=0;if(D=this.getFoldLine(T.row)){D.addRemoveChars(T.row,T.column,k.column-T.column),D.shiftRow(-I);var W=this.getFoldLine(L);W&&W!==D&&(W.merge(D),D=W),B=N.indexOf(D)+1}for(;B<N.length;B++)(D=N[B]).start.row>=T.row&&D.shiftRow(-I);R=L}else{var z=Array(I);z.unshift(L,0);var H=g?this.$wrapData:this.$rowLengthCache;if(H.splice.apply(H,z),N=this.$foldData,B=0,D=this.getFoldLine(L)){var U=D.range.compareInside(k.row,k.column);0==U?(D=D.split(k.row,k.column))&&(D.shiftRow(I),D.addRemoveChars(R,0,T.column-k.column)):-1==U&&(D.addRemoveChars(L,0,T.column-k.column),D.shiftRow(I)),B=N.indexOf(D)+1}for(;B<N.length;B++){var D;(D=N[B]).start.row>=L&&D.shiftRow(I)}}else I=Math.abs(b.start.column-b.end.column),"remove"===d&&(O=this.getFoldsInRange(b),this.removeFolds(O),I=-I),(D=this.getFoldLine(L))&&D.addRemoveChars(L,k.column,I);return g&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,g?this.$updateWrapData(L,R):this.$updateRowLengthCache(L,R),O},x.prototype.$updateRowLengthCache=function(b,g){this.$rowLengthCache[b]=null,this.$rowLengthCache[g]=null},x.prototype.$updateWrapData=function(b,g){var R,I,d=this.doc.getAllLines(),k=this.getTabSize(),T=this.$wrapData,L=this.$wrapLimit,O=b;for(g=Math.min(g,d.length-1);O<=g;)(I=this.getFoldLine(O,I))?(R=[],I.walk(function(N,D,B,W){var z;if(null!=N){(z=this.$getDisplayTokens(N,R.length))[0]=m;for(var H=1;H<z.length;H++)z[H]=y}else z=this.$getDisplayTokens(d[D].substring(W,B),R.length);R=R.concat(z)}.bind(this),I.end.row,d[I.end.row].length+1),T[I.start.row]=this.$computeWrapSplits(R,L,k),O=I.end.row+1):(R=this.$getDisplayTokens(d[O]),T[O]=this.$computeWrapSplits(R,L,k),O++)},x.prototype.$computeWrapSplits=function(b,g,d){if(0==b.length)return[];var k=[],T=b.length,L=0,R=0,I=this.$wrapAsCode,O=this.$indentedSoftWrap,N=g<=Math.max(2*d,8)||!1===O?0:Math.floor(g/2);function B(U){for(var j=U-L,P=L;P<U;P++){var K=b[P];(12===K||2===K)&&(j-=1)}k.length||(W=function D(){var U=0;if(0===N)return U;if(O)for(var j=0;j<b.length;j++){var P=b[j];if(P==S)U+=1;else{if(P!=$){if(P==A)continue;break}U+=d}}return I&&!1!==O&&(U+=d),Math.min(U,N)}(),k.indent=W),k.push(R+=j),L=U}for(var W=0;T-L>g-W;){var z=L+g-W;if(b[z-1]>=S&&b[z]>=S)B(z);else if(b[z]!=m&&b[z]!=y){for(var H=Math.max(z-(g-(g>>2)),L-1);z>H&&b[z]<m;)z--;if(I){for(;z>H&&b[z]<m;)z--;for(;z>H&&b[z]==p;)z--}else for(;z>H&&b[z]<S;)z--;z>H?B(++z):(b[z=L+g]==f&&z--,B(z-W))}else{for(;z!=L-1&&b[z]!=m;z--);if(z>L){B(z);continue}for(z=L+g;z<b.length&&b[z]==y;z++);if(z==b.length)break;B(z)}}return k},x.prototype.$getDisplayTokens=function(b,g){var k,d=[];g=g||0;for(var T=0;T<b.length;T++){var L=b.charCodeAt(T);if(9==L){k=this.getScreenTabSize(d.length+g),d.push($);for(var R=1;R<k;R++)d.push(A)}else 32==L?d.push(S):L>39&&L<48||L>57&&L<64?d.push(p):L>=4352&&E(L)?d.push(h,f):d.push(h)}return d},x.prototype.$getStringScreenWidth=function(b,g,d){if(0==g)return[0,0];var k,T;for(null==g&&(g=1/0),d=d||0,T=0;T<b.length&&(9==(k=b.charCodeAt(T))?d+=this.getScreenTabSize(d):k>=4352&&E(k)?d+=2:d+=1,!(d>g));T++);return[d,T]},x.prototype.getRowLength=function(b){var g=1;return this.lineWidgets&&(g+=this.lineWidgets[b]&&this.lineWidgets[b].rowCount||0),this.$useWrapMode&&this.$wrapData[b]?this.$wrapData[b].length+g:g},x.prototype.getRowLineCount=function(b){return this.$useWrapMode&&this.$wrapData[b]?this.$wrapData[b].length+1:1},x.prototype.getRowWrapIndent=function(b){if(this.$useWrapMode){var g=this.screenToDocumentPosition(b,Number.MAX_VALUE),d=this.$wrapData[g.row];return d.length&&d[0]<g.column?d.indent:0}return 0},x.prototype.getScreenLastRowColumn=function(b){var g=this.screenToDocumentPosition(b,Number.MAX_VALUE);return this.documentToScreenColumn(g.row,g.column)},x.prototype.getDocumentLastRowColumn=function(b,g){var d=this.documentToScreenRow(b,g);return this.getScreenLastRowColumn(d)},x.prototype.getDocumentLastRowColumnPosition=function(b,g){var d=this.documentToScreenRow(b,g);return this.screenToDocumentPosition(d,Number.MAX_VALUE/10)},x.prototype.getRowSplitData=function(b){if(this.$useWrapMode)return this.$wrapData[b]},x.prototype.getScreenTabSize=function(b){return this.$tabSize-(b%this.$tabSize|0)},x.prototype.screenToDocumentRow=function(b,g){return this.screenToDocumentPosition(b,g).row},x.prototype.screenToDocumentColumn=function(b,g){return this.screenToDocumentPosition(b,g).column},x.prototype.screenToDocumentPosition=function(b,g,d){if(b<0)return{row:0,column:0};var k,R,T=0,L=0,I=0,O=0,N=this.$screenRowCache,D=this.$getRowCacheIndex(N,b),B=N.length;if(B&&D>=0){I=N[D],T=this.$docRowCache[D];var W=b>N[B-1]}else W=!B;for(var z=this.getLength()-1,H=this.getNextFoldLine(T),U=H?H.start.row:1/0;I<=b&&!(I+(O=this.getRowLength(T))>b||T>=z);)I+=O,++T>U&&(U=(H=this.getNextFoldLine(T=H.end.row+1,H))?H.start.row:1/0),W&&(this.$docRowCache.push(T),this.$screenRowCache.push(I));if(H&&H.start.row<=T)k=this.getFoldDisplayLine(H),T=H.start.row;else{if(I+O<=b||T>z)return{row:z,column:this.getLine(z).length};k=this.getLine(T),H=null}var j=0,P=Math.floor(b-I);if(this.$useWrapMode){var K=this.$wrapData[T];K&&(R=K[P],P>0&&K.length&&(j=K.indent,k=k.substring(L=K[P-1]||K[K.length-1])))}return void 0!==d&&this.$bidiHandler.isBidiRow(I+P,T,P)&&(g=this.$bidiHandler.offsetToCol(d)),L+=this.$getStringScreenWidth(k,g-j)[1],this.$useWrapMode&&L>=R&&(L=R-1),H?H.idxToPosition(L):{row:T,column:L}},x.prototype.documentToScreenPosition=function(b,g){if(typeof g>"u")var d=this.$clipPositionToDocument(b.row,b.column);else d=this.$clipPositionToDocument(b,g);var L,k=0,T=null;(L=this.getFoldAt(b=d.row,g=d.column,1))&&(b=L.start.row,g=L.start.column);var R,I=0,O=this.$docRowCache,N=this.$getRowCacheIndex(O,b),D=O.length;if(D&&N>=0){I=O[N],k=this.$screenRowCache[N];var B=b>O[D-1]}else B=!D;for(var W=this.getNextFoldLine(I),z=W?W.start.row:1/0;I<b;){if(I>=z){if((R=W.end.row+1)>b)break;z=(W=this.getNextFoldLine(R,W))?W.start.row:1/0}else R=I+1;k+=this.getRowLength(I),I=R,B&&(this.$docRowCache.push(I),this.$screenRowCache.push(k))}var H="";W&&I>=z?(H=this.getFoldDisplayLine(W,b,g),T=W.start.row):(H=this.getLine(b).substring(0,g),T=b);var U=0;if(this.$useWrapMode){var j=this.$wrapData[T];if(j){for(var P=0;H.length>=j[P];)k++,P++;H=H.substring(j[P-1]||0,H.length),U=P>0?j.indent:0}}return this.lineWidgets&&this.lineWidgets[I]&&this.lineWidgets[I].rowsAbove&&(k+=this.lineWidgets[I].rowsAbove),{row:k,column:U+this.$getStringScreenWidth(H)[0]}},x.prototype.documentToScreenColumn=function(b,g){return this.documentToScreenPosition(b,g).column},x.prototype.documentToScreenRow=function(b,g){return this.documentToScreenPosition(b,g).row},x.prototype.getScreenLength=function(){var b=0,g=null;if(this.$useWrapMode)for(var T=this.$wrapData.length,L=0,k=0,R=(g=this.$foldData[k++])?g.start.row:1/0;L<T;){var I=this.$wrapData[L];b+=I?I.length+1:1,++L>R&&(L=g.end.row+1,R=(g=this.$foldData[k++])?g.start.row:1/0)}else{b=this.getLength();var d=this.$foldData;for(k=0;k<d.length;k++)b-=(g=d[k]).end.row-g.start.row}return this.lineWidgets&&(b+=this.$getWidgetScreenLength()),b},x.prototype.$setFontMetrics=function(b){this.$enableVarChar&&(this.$getStringScreenWidth=function(g,d,k){if(0===d)return[0,0];var T,L;for(d||(d=1/0),k=k||0,L=0;L<g.length&&!((k+="\t"===(T=g.charAt(L))?this.getScreenTabSize(k):b.getCharacterWidth(T))>d);L++);return[k,L]})},x.prototype.getPrecedingCharacter=function(){var b=this.selection.getCursor();return 0===b.column?0===b.row?"":this.doc.getNewLineCharacter():this.getLine(b.row)[b.column-1]},x.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},x}();u.$uid=0,u.prototype.$modes=a.$modes,u.prototype.getValue=u.prototype.toString,u.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},u.prototype.$overwrite=!1,u.prototype.$mode=null,u.prototype.$modeId=null,u.prototype.$scrollTop=0,u.prototype.$scrollLeft=0,u.prototype.$wrapLimit=80,u.prototype.$useWrapMode=!1,u.prototype.$wrapLimitRange={min:null,max:null},u.prototype.lineWidgets=null,u.prototype.isFullWidth=E,_.implement(u.prototype,c);var h=1,f=2,m=3,y=4,p=9,S=10,$=11,A=12;function E(x){return!(x<4352)&&(x>=4352&&x<=4447||x>=4515&&x<=4519||x>=4602&&x<=4607||x>=9001&&x<=9002||x>=11904&&x<=11929||x>=11931&&x<=12019||x>=12032&&x<=12245||x>=12272&&x<=12283||x>=12288&&x<=12350||x>=12353&&x<=12438||x>=12441&&x<=12543||x>=12549&&x<=12589||x>=12593&&x<=12686||x>=12688&&x<=12730||x>=12736&&x<=12771||x>=12784&&x<=12830||x>=12832&&x<=12871||x>=12880&&x<=13054||x>=13056&&x<=19903||x>=19968&&x<=42124||x>=42128&&x<=42182||x>=43360&&x<=43388||x>=44032&&x<=55203||x>=55216&&x<=55238||x>=55243&&x<=55291||x>=63744&&x<=64255||x>=65040&&x<=65049||x>=65072&&x<=65106||x>=65108&&x<=65126||x>=65128&&x<=65131||x>=65281&&x<=65376||x>=65504&&x<=65510)}w("./edit_session/folding").Folding.call(u.prototype),w("./edit_session/bracket_match").BracketMatch.call(u.prototype),a.defineOptions(u.prototype,"session",{wrap:{set:function(x){if(x&&"off"!=x?"free"==x?x=!0:"printMargin"==x?x=-1:"string"==typeof x&&(x=parseInt(x,10)||!1):x=!1,this.$wrap!=x)if(this.$wrap=x,x){var b="number"==typeof x?x:null;this.setWrapLimitRange(b,b),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(x){(x="auto"==x?"text"!=this.$mode.type:"text"!=x)!=this.$wrapAsCode&&(this.$wrapAsCode=x,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(x){this.$useWorker=x,this.$stopWorker(),x&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(x){(x=parseInt(x))>0&&this.$tabSize!==x&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=x,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(x){this.setFoldStyle(x)},handlesSet:!0},overwrite:{set:function(x){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(x){this.doc.setNewLineMode(x)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(x){this.setMode(x)},get:function(){return this.$modeId},handlesSet:!0}}),M.EditSession=u}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(w,M,F){"use strict";var _=w("./lib/lang"),C=w("./lib/oop"),v=w("./range").Range,a=function(){function i(){this.$options={}}return i.prototype.set=function(t){return C.mixin(this.$options,t),this},i.prototype.getOptions=function(){return _.copyObject(this.$options)},i.prototype.setOptions=function(t){this.$options=t},i.prototype.find=function(t){var e=this.$options,n=this.$matchIterator(t,e);if(!n)return!1;var o=null;return n.forEach(function(l,u,h,f){return o=new v(l,u,h,f),!(u==f&&e.start&&e.start.start&&0!=e.skipCurrent&&o.isEqual(e.start)&&(o=null,1))}),o},i.prototype.findAll=function(t){var e=this.$options;if(!e.needle)return[];this.$assembleRegExp(e);var n=e.range,o=n?t.getLines(n.start.row,n.end.row):t.doc.getAllLines(),l=[],u=e.re;if(e.$isMultiLine){var m,h=u.length,f=o.length-h;e:for(var y=u.offset||0;y<=f;y++){for(var p=0;p<h;p++)if(-1==o[y+p].search(u[p]))continue e;var S=o[y],$=o[y+h-1],A=S.length-S.match(u[0])[0].length,E=$.match(u[h-1])[0].length;m&&m.end.row===y&&m.end.column>A||(l.push(m=new v(y,A,y+h-1,E)),h>2&&(y=y+h-2))}}else for(var x,b=0;b<o.length;b++)if(this.$isMultilineSearch(e)){var g=o.length-1;if(x=this.$multiLineForward(t,u,b,g)){var d=x.endRow<=g?x.endRow-1:g;d>b&&(b=d),l.push(new v(x.startRow,x.startCol,x.endRow,x.endCol))}}else for(x=_.getMatchOffsets(o[b],u),p=0;p<x.length;p++){var k=x[p];l.push(new v(b,k.offset,b,k.offset+k.length))}if(n){var T=n.start.column,L=n.end.column;for(b=0,p=l.length-1;b<p&&l[b].start.column<T&&0==l[b].start.row;)b++;for(var R=n.end.row-n.start.row;b<p&&l[p].end.column>L&&l[p].end.row==R;)p--;for(l=l.slice(b,p+1),b=0,p=l.length;b<p;b++)l[b].start.row+=n.start.row,l[b].end.row+=n.start.row}return l},i.prototype.parseReplaceString=function(t){for(var e={DollarSign:36,Ampersand:38,Digit0:48,Digit1:49,Digit9:57,Backslash:92,n:110,t:116},n="",o=0,l=t.length;o<l;o++){var u=t.charCodeAt(o);if(u!==e.Backslash){if(u===e.DollarSign){if(++o>=l){n+="$";break}var f=t.charCodeAt(o);if(f===e.DollarSign){n+="$$";continue}if(f===e.Digit0||f===e.Ampersand){n+="$&";continue}if(e.Digit1<=f&&f<=e.Digit9){n+="$"+t[o];continue}}n+=t[o]}else{if(++o>=l){n+="\\";break}switch(t.charCodeAt(o)){case e.Backslash:n+="\\";break;case e.n:n+="\n";break;case e.t:n+="\t"}}}return n||t},i.prototype.replace=function(t,e){var n=this.$options,o=this.$assembleRegExp(n);if(n.$isMultiLine)return e;if(o){var l=this.$isMultilineSearch(n);l&&(t=t.replace(/\r\n|\r|\n/g,"\n"));var u=o.exec(t);if(!u||!l&&u[0].length!=t.length)return null;if(e=n.regExp?this.parseReplaceString(e):e.replace(/\$/g,"$$$$"),e=t.replace(o,e),n.preserveCase){e=e.split("");for(var h=Math.min(t.length,t.length);h--;){var f=t[h];e[h]=f&&f.toLowerCase()!=f?e[h].toUpperCase():e[h].toLowerCase()}e=e.join("")}return e}},i.prototype.$assembleRegExp=function(t,e){if(t.needle instanceof RegExp)return t.re=t.needle;var n=t.needle;if(!t.needle)return t.re=!1;t.regExp||(n=_.escapeRegExp(n));var o=t.caseSensitive?"gm":"gmi";try{new RegExp(n,"u"),t.$supportsUnicodeFlag=!0,o+="u"}catch{t.$supportsUnicodeFlag=!1}if(t.wholeWord&&(n=function c(i,t){var e=_.supportsLookbehind();function n(h,f){return void 0===f&&(f=!0),(e&&t.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w")).test(h)||t.regExp?e&&t.$supportsUnicodeFlag?f?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var o=Array.from(i),u=o[o.length-1];return n(o[0])+i+n(u,!1)}(n,t)),t.$isMultiLine=!e&&/[\n\r]/.test(n),t.$isMultiLine)return t.re=this.$assembleMultilineRegExp(n,o);try{var l=new RegExp(n,o)}catch{l=!1}return t.re=l},i.prototype.$assembleMultilineRegExp=function(t,e){for(var n=t.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),o=[],l=0;l<n.length;l++)try{o.push(new RegExp(n[l],e))}catch{return!1}return o},i.prototype.$isMultilineSearch=function(t){return t.re&&/\\r\\n|\\r|\\n/.test(t.re.source)&&t.regExp&&!t.$isMultiLine},i.prototype.$multiLineForward=function(t,e,n,o){for(var l,u=r(t,n),h=n;h<=o;){for(var f=0;f<u&&!(h>o);f++){var m=t.getLine(h++);l=null==l?m:l+"\n"+m}var y=e.exec(l);if(e.lastIndex=0,y){var p=l.slice(0,y.index).split("\n"),S=y[0].split("\n"),$=n+p.length-1,A=p[p.length-1].length;return{startRow:$,startCol:A,endRow:$+S.length-1,endCol:1==S.length?A+S[0].length:S[S.length-1].length}}}return null},i.prototype.$multiLineBackward=function(t,e,n,o,l){for(var u,h=r(t,o),f=t.getLine(o).length-n,m=o;m>=l;){for(var y=0;y<h&&m>=l;y++){var p=t.getLine(m--);u=null==u?p:p+"\n"+u}var S=s(u,e,f);if(S){var $=u.slice(0,S.index).split("\n"),A=S[0].split("\n"),E=m+$.length,x=$[$.length-1].length;return{startRow:E,startCol:x,endRow:E+A.length-1,endCol:1==A.length?x+A[0].length:A[A.length-1].length}}}return null},i.prototype.$matchIterator=function(t,e){var n=this.$assembleRegExp(e);if(!n)return!1;var o=this.$isMultilineSearch(e),l=this.$multiLineForward,u=this.$multiLineBackward,h=1==e.backwards,f=0!=e.skipCurrent,m=n.unicode,y=e.range,p=e.start;p||(p=y?y[h?"end":"start"]:t.selection.getRange()),p.start&&(p=p[f!=h?"end":"start"]);var S=y?y.start.row:0,$=y?y.end.row:t.getLength()-1;if(h)var A=function(b){var g=p.row;if(!x(g,p.column,b)){for(g--;g>=S;g--)if(x(g,Number.MAX_VALUE,b))return;if(0!=e.wrap)for(g=$,S=p.row;g>=S;g--)if(x(g,Number.MAX_VALUE,b))return}};else A=function(g){var d=p.row;if(!x(d,p.column,g)){for(d+=1;d<=$;d++)if(x(d,0,g))return;if(0!=e.wrap)for(d=S,$=p.row;d<=$;d++)if(x(d,0,g))return}};if(e.$isMultiLine)var E=n.length,x=function(b,g,d){var k=h?b-E+1:b;if(!(k<0||k+E>t.getLength())){var T=t.getLine(k),L=T.search(n[0]);if(!(!h&&L<g||-1===L)){for(var R=1;R<E;R++)if(-1==(T=t.getLine(k+R)).search(n[R]))return;var I=T.match(n[E-1])[0].length;if(!(h&&I>g)&&d(k,L,k+E-1,I))return!0}}};else x=h?function(g,d,k){if(o){var T=u(t,n,d,g,S);if(!T)return!1;if(k(T.startRow,T.startCol,T.endRow,T.endCol))return!0}else{var I,L=t.getLine(g),R=[],O=0;for(n.lastIndex=0;I=n.exec(L);){if(O=I.index,!(N=I[0].length)){if(O>=L.length)break;n.lastIndex=O+=_.skipEmptyMatch(L,O,m)}if(I.index+N>d)break;R.push(I.index,N)}for(var D=R.length-1;D>=0;D-=2){var N,B=R[D-1];if(k(g,B,g,B+(N=R[D])))return!0}}}:function(g,d,k){if(n.lastIndex=d,o){var T=l(t,n,g,$);if(T){var L=T.endRow<=$?T.endRow-1:$;L>g&&(g=L)}if(!T)return!1;if(k(T.startRow,T.startCol,T.endRow,T.endCol))return!0}else for(var I,O,R=t.getLine(g);O=n.exec(R);){var N=O[0].length;if(k(g,I=O.index,g,I+N))return!0;if(!N&&(n.lastIndex=I+=_.skipEmptyMatch(R,I,m),I>=R.length))return!1}};return{forEach:A}},i}();function s(i,t,e){for(var n=null,o=0;o<=i.length;){t.lastIndex=o;var l=t.exec(i);if(!l)break;var u=l.index+l[0].length;if(u>i.length-e)break;(!n||u>n.index+n[0].length)&&(n=l),o=l.index+1}return n}function r(i,t){var o=i.doc.positionToIndex({row:t,column:0});return i.doc.indexToPosition(o+5e3).row+1}M.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(w,M,F){"use strict";var _=this&&this.__extends||function(){var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var l in o)Object.prototype.hasOwnProperty.call(o,l)&&(n[l]=o[l])})(t,e)};return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),C=w("../lib/keys"),v=w("../lib/useragent"),a=C.KEY_MODS,c=function(){function i(t,e){this.$init(t,e,!1)}return i.prototype.$init=function(t,e,n){this.platform=e||(v.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(t),this.$singleCommand=n},i.prototype.addCommand=function(t){this.commands[t.name]&&this.removeCommand(t),this.commands[t.name]=t,t.bindKey&&this._buildKeyHash(t)},i.prototype.removeCommand=function(t,e){var n=t&&("string"==typeof t?t:t.name);t=this.commands[n],e||delete this.commands[n];var o=this.commandKeyBinding;for(var l in o){var u=o[l];if(u==t)delete o[l];else if(Array.isArray(u)){var h=u.indexOf(t);-1!=h&&(u.splice(h,1),1==u.length&&(o[l]=u[0]))}}},i.prototype.bindKey=function(t,e,n){if("object"==typeof t&&t&&(null==n&&(n=t.position),t=t[this.platform]),t){if("function"==typeof e)return this.addCommand({exec:e,bindKey:t,name:e.name||t});t.split("|").forEach(function(o){var l="";if(-1!=o.indexOf(" ")){var u=o.split(/\s+/);o=u.pop(),u.forEach(function(m){var y=this.parseKeys(m);this._addCommandToBinding(l+=(l?" ":"")+(a[y.hashId]+y.key),"chainKeys")},this),l+=" "}var h=this.parseKeys(o);this._addCommandToBinding(l+(a[h.hashId]+h.key),e,n)},this)}},i.prototype._addCommandToBinding=function(t,e,n){var l,o=this.commandKeyBinding;if(e)if(!o[t]||this.$singleCommand)o[t]=e;else{Array.isArray(o[t])?-1!=(l=o[t].indexOf(e))&&o[t].splice(l,1):o[t]=[o[t]],"number"!=typeof n&&(n=s(e));var u=o[t];for(l=0;l<u.length&&!(s(u[l])>n);l++);u.splice(l,0,e)}else delete o[t]},i.prototype.addCommands=function(t){t&&Object.keys(t).forEach(function(e){var n=t[e];if(n){if("string"==typeof n)return this.bindKey(n,e);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=e),this.addCommand(n))}},this)},i.prototype.removeCommands=function(t){Object.keys(t).forEach(function(e){this.removeCommand(t[e])},this)},i.prototype.bindKeys=function(t){Object.keys(t).forEach(function(e){this.bindKey(e,t[e])},this)},i.prototype._buildKeyHash=function(t){this.bindKey(t.bindKey,t)},i.prototype.parseKeys=function(t){var e=t.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(f){return f}),n=e.pop(),o=C[n];if(C.FUNCTION_KEYS[o])n=C.FUNCTION_KEYS[o].toLowerCase();else{if(!e.length)return{key:n,hashId:-1};if(1==e.length&&"shift"==e[0])return{key:n.toUpperCase(),hashId:-1}}for(var l=0,u=e.length;u--;){var h=C.KEY_MODS[e[u]];if(null==h)return typeof console<"u"&&console.error("invalid modifier "+e[u]+" in "+t),!1;l|=h}return{key:n,hashId:l}},i.prototype.findKeyCommand=function(t,e){return this.commandKeyBinding[a[t]+e]},i.prototype.handleKeyboard=function(t,e,n,o){if(!(o<0)){var l=a[e]+n,u=this.commandKeyBinding[l];return t.$keyChain&&(t.$keyChain+=" "+l,u=this.commandKeyBinding[t.$keyChain]||u),!u||"chainKeys"!=u&&"chainKeys"!=u[u.length-1]?(t.$keyChain&&(e&&4!=e||1!=n.length?(-1==e||o>0)&&(t.$keyChain=""):t.$keyChain=t.$keyChain.slice(0,-l.length-1)),{command:u}):(t.$keyChain=t.$keyChain||l,{command:"null"})}},i.prototype.getStatusText=function(t,e){return e.$keyChain||""},i}();function s(i){return"object"==typeof i&&i.bindKey&&i.bindKey.position||(i.isDefault?-100:0)}var r=function(i){function t(e,n){var o=i.call(this,e,n)||this;return o.$singleCommand=!0,o}return _(t,i),t}(c);r.call=function(i,t,e){c.prototype.$init.call(i,t,e,!0)},c.call=function(i,t,e){c.prototype.$init.call(i,t,e,!1)},M.HashHandler=r,M.MultiHashHandler=c}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(w,M,F){"use strict";var _=this&&this.__extends||function(){var s=function(r,i){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(r,i)};return function(r,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function t(){this.constructor=r}s(r,i),r.prototype=null===i?Object.create(i):(t.prototype=i.prototype,new t)}}(),C=w("../lib/oop"),v=w("../keyboard/hash_handler").MultiHashHandler,a=w("../lib/event_emitter").EventEmitter,c=function(s){function r(i,t){var e=s.call(this,t,i)||this;return e.byName=e.commands,e.setDefaultHandler("exec",function(n){return n.args?n.command.exec(n.editor,n.args,n.event,!1):n.command.exec(n.editor,{},n.event,!0)}),e}return _(r,s),r.prototype.exec=function(i,t,e){if(Array.isArray(i)){for(var n=i.length;n--;)if(this.exec(i[n],t,e))return!0;return!1}"string"==typeof i&&(i=this.commands[i]);var o={editor:t,command:i,args:e};return this.canExecute(i,t)?(o.returnValue=this._emit("exec",o),this._signal("after
1Exec",o),!1!==o.returnValue):(this._signal("commandUnavailable",o),!1)},r.prototype.canExecute=function(i,t){return"string"==typeof i&&(i=this.commands[i]),!(!i||t&&t.$readOnly&&!i.readOnly||0!=this.$checkCommandState&&i.isAvailable&&!i.isAvailable(t))},r.prototype.toggleRecording=function(i){if(!this.$inReplay)return i&&i._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("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)},r.prototype.replay=function(i){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(i);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,i):this.exec(t[0],i,t[1])},this)}finally{this.$inReplay=!1}}},r.prototype.trimMacro=function(i){return i.map(function(t){return"string"!=typeof t[0]&&(t[0]=t[0].name),t[1]||(t=t[0]),t})},r}(v);C.implement(c.prototype,a),M.CommandManager=c}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(w,M,F){"use strict";var _=w("../lib/lang"),C=w("../config"),v=w("../range").Range;function a(s,r){return{win:s,mac:r}}M.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(s){C.loadModule("ace/ext/settings_menu",function(r){r.init(s),s.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(s){C.loadModule("ace/ext/error_marker",function(r){r.showErrorMarker(s,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(s){C.loadModule("ace/ext/error_marker",function(r){r.showErrorMarker(s,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(s){s.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(s){s.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(s,r){"number"==typeof r&&!isNaN(r)&&s.gotoLine(r),s.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(s){s.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(s){s.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(s){s.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(s){s.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(s){s.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(s){s.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(s){s.session.foldAll(),s.session.unfold(s.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(s){s.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(s){s.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(s){s.findPrevious()}
vendor: 12,505 bytes, line 1
1,multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(s){s.selection.isEmpty()?s.selection.selectWord():s.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(s){s.selection.isEmpty()?s.selection.selectWord():s.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(s){C.loadModule("ace/ext/searchbox",function(r){r.Search(s)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(s){s.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(s){s.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(s){s.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(s){s.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(s,r){s.navigateUp(r.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(s){s.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(s){s.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(s){s.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(s,r){s.navigateDown(r.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(s){s.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(s){s.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(s){s.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(s){s.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(s){s.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(s,r){s.navigateLeft(r.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(s){s.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(s){s.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(s){s.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(s){s.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(s){s.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(s,r){s.navigateRight(r.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(s){s.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(s){s.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(s){s.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(s){s.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(s){s.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(s){s.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(s){s.renderer.scrollBy(0,-2*s.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(s){s.renderer.scrollBy(0,2*s.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(s){s.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(s){s.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(s){s.commands.toggleRecording(s)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(s){s.commands.replay(s)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(s){s.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(s){s.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(s){s.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(s){},readOnly:!0},{name:"cut",description:"Cut",exec:function(s){var i=s.$copyWithEmptySelection&&s.selection.isEmpty()?s.selection.getLineRange():s.selection.getRange();s._emit("cut",i),i.isEmpty()||s.session.remove(i),s.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(s,r){s.$handlePaste(r)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(s){s.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(s){s.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(s){s.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(s){s.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(s){s.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(s){s.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(s){s.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(s){C.loadModule("ace/ext/searchbox",function(r){r.Search(s,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(s){s.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(s){s.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(s){s.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(s){s.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(s){s.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(s){s.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(s){s.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(s){s.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(s){if(!s.selection.isEmpty())return!1;s.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(s){s.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(s){s.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(s){var r=s.selection.getRange();r.start.column=0,s.session.remove(r)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(s){var r=s.selection.getRange();r.end.column=Number.MAX_VALUE,s.session.remove(r)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(s){s.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(s){s.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(s){s.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(s){s.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(s){s.blockOutdent()}
vendor: 18,908 bytes, line 1
1,multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(s){s.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(s,r){s.insert(r)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(s,r){s.insert(_.stringRepeat(r.text||"",r.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(s){s.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(s){s.transposeLetters()},multiSelectAction:function(s){s.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(s){s.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(s){s.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(s){s.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(s){var r=s.selection.getRange();r.start.column=r.end.column=0,r.end.row++,s.selection.setRange(r,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(s){s.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(s){for(var r=s.selection.isBackwards(),i=r?s.selection.getSelectionLead():s.selection.getSelectionAnchor(),t=r?s.selection.getSelectionAnchor():s.selection.getSelectionLead(),e=s.session.doc.getLine(i.row).length,o=s.session.doc.getTextRange(s.selection.getRange()).replace(/\n\s*/," ").length,l=s.session.doc.getLine(i.row),u=i.row+1;u<=t.row+1;u++){var h=_.stringTrimLeft(_.stringTrimRight(s.session.doc.getLine(u)));0!==h.length&&(h=" "+h),l+=h}t.row+1<s.session.doc.getLength()-1&&(l+=s.session.doc.getNewLineCharacter()),s.clearSelection(),s.session.doc.replace(new v(i.row,0,t.row+2,0),l),o>0?(s.selection.moveCursorTo(i.row,i.column),s.selection.selectTo(i.row,i.column+o)):(e=s.session.doc.getLine(i.row).length>e?e+1:e,s.selection.moveCursorTo(i.row,e))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(s){var r=s.session.doc.getLength()-1,i=s.session.doc.getLine(r).length,t=s.selection.rangeList.ranges,e=[];t.length<1&&(t=[s.selection.getRange()]);for(var n=0;n<t.length;n++)n==t.length-1&&(t[n].end.row===r&&t[n].end.column===i||e.push(new v(t[n].end.row,t[n].end.column,r,i))),0===n?0===t[n].start.row&&0===t[n].start.column||e.push(new v(0,0,t[n].start.row,t[n].start.column)):e.push(new v(t[n-1].end.row,t[n-1].end.column,t[n].start.row,t[n].start.column));for(s.exitMultiSelectMode(),s.clearSelection(),n=0;n<e.length;n++)s.selection.addRange(e[n],!1)},readOnly:!0,scrollIntoView:"none"},{name:"addLineAfter",description:"Add new line after the current line",exec:function(s){s.selection.clearSelection(),s.navigateLineEnd(),s.insert("\n")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"addLineBefore",description:"Add new line before the current line",exec:function(s){s.selection.clearSelection();var r=s.getCursorPosition();s.selection.moveTo(r.row-1,Number.MAX_VALUE),s.insert("\n"),0===r.row&&s.navigateUp()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"openCommandPallete",exec:function(s){console.warn("This is an obsolete command. Please use `openCommandPalette` instead."),s.prompt({$type:"commands"})},readOnly:!0},{name:"openCommandPalette",description:"Open command palette",bindKey:a("F1","F1"),exec:function(s){s.prompt({$type:"commands"})},readOnly:!0},{name:"modeSelect",description:"Change language mode...",bindKey:a(null,null),exec:function(s){s.prompt({$type:"modes"})},readOnly:!0}];for(var c=1;c<9;c++)M.commands.push({name:"foldToLevel"+c,description:"Fold To Level "+c,level:c,exec:function(s){s.session.foldToLevel(this.level)},scrollIntoView:"center",readOnly:!0})}),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys"],function(w,M,F){"use strict";var _=w("../lib/keys"),C=function(){function a(c){this.editor=c,this.gutterLayer=c.renderer.$gutterLayer,this.element=c.renderer.$gutter,this.lines=c.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=this.editor.$mouseHandler.$tooltip}return a.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},a.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},a.prototype.$onGutterKeyDown=function(c){if(this.annotationTooltip.isOpen)return c.preventDefault(),void(c.keyCode===_.escape&&this.annotationTooltip.hide());if(c.target===this.element){if(c.keyCode!=_.enter)return;c.preventDefault();var s=this.editor.getCursorPosition().row;return this.editor.isRowVisible(s)||this.editor.scrollToLine(s,!0,!0),void setTimeout(function(){var r=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),i=this.$findNearestFoldLaneWidget(r),t=this.$findNearestAnnotation(r);if(null!==i||null!==t)return this.$findClosestNumber(i,t,r)===i?(this.activeLane="fold",this.activeRowIndex=i,this.$isCustomWidgetVisible(i)?void this.$focusCustomWidget(this.activeRowIndex):void this.$focusFoldWidget(this.activeRowIndex)):(this.activeRowIndex=t,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex))}.bind(this),10)}this.$handleGutterKeyboardInteraction(c),setTimeout(function(){this.editor._signal("gutterkeydown",new v(c,this))}.bind(this),10)},a.prototype.$handleGutterKeyboardInteraction=function(c){if(c.keyCode!==_.tab){if(c.keyCode===_.escape)return c.preventDefault(),this.$blurGutter(),this.element.focus(),void(this.lane=null);if(c.keyCode!==_.up)if(c.keyCode!==_.down){if(c.keyCode===_.left)return c.preventDefault(),void this.$switchLane("annotation");if(c.keyCode===_.right)return c.preventDefault(),void this.$switchLane("fold");if(c.keyCode!==_.enter&&c.keyCode!==_.space);else switch(c.preventDefault(),this.activeLane){case"fold":var s=this.$rowIndexToRow(this.activeRowIndex),r=this.editor.session.$gutterCustomWidgets[s];if(r)r.callbacks&&r.callbacks.onClick&&r.callbacks.onClick(c,s);else{if("start"===this.gutterLayer.session.foldWidgets[s]){this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex),c),setTimeout(function(){this.$rowIndexToRow(this.activeRowIndex)!==s&&(this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=this.$rowToRowIndex(s),this.$focusFoldWidget(this.activeRowIndex))}.bind(this),10);break}if("end"===this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)])break}return;case"annotation":this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex)),this.annotationTooltip.$fromKeyboard=!0}}else switch(c.preventDefault(),this.activeLane){case"fold":this.$moveFoldWidgetDown();break;case"annotation":this.$moveAnnotationDown()}else switch(c.preventDefault(),this.activeLane){case"fold":this.$moveFoldWidgetUp();break;case"annotation":this.$moveAnnotationUp()}}else c.preventDefault()},a.prototype.$blurGutter=function(){if(null!==this.activeRowIndex)switch(this.activeLane){case"fold":this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex);break;case"annotation":this.$blurAnnotation(this.activeRowIndex)}this.annotationTooltip.isOpen&&this.annotationTooltip.hide()},a.prototype.$isFoldWidgetVisible=function(c){var s=this.editor.isRowFullyVisible(this.$rowIndexToRow(c)),r="none"!==this.$getFoldWidget(c).style.display;return s&&r},a.prototype.$isCustomWidgetVisible=function(c){var s=this.editor.isRowFullyVisible(this.$rowIndexToRow(c)),r=!!this.$getCustomWidget(c);return s&&r},a.prototype.$isAnnotationVisible=function(c){var s=this.editor.isRowFullyVisible(this.$rowIndexToRow(c)),r="none"!==this.$getAnnotation(c).style.display;return s&&r},a.prototype.$getFoldWidget=function(c){return this.lines.get(c).element.childNodes[1]},a.prototype.$getCustomWidget=function(c){return this.lines.get(c).element.childNodes[3]},a.prototype.$getAnnotation=function(c){return this.lines.get(c).element.childNodes[2]},a.prototype.$findNearestFoldLaneWidget=function(c){if(this.$isCustomWidgetVisible(c)||this.$isFoldWidgetVisible(c))return c;for(var s=0;c-s>0||c+s<this.lines.getLength()-1;){if(c-++s>=0&&this.$isCustomWidgetVisible(c-s))return c-s;if(c+s<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(c+s))return c+s;if(c-s>=0&&this.$isFoldWidgetVisible(c-s))return c-s;if(c+s<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(c+s))return c+s}return null},a.prototype.$findNearestAnnotation=function(c){if(this.$isAnnotationVisible(c))return c;for(var s=0;c-s>0||c+s<this.lines.getLength()-1;){if(c-++s>=0&&this.$isAnnotationVisible(c-s))return c-s;if(c+s<=this.lines.getLength()-1&&this.$isAnnotationVisible(c+s))return c+s}return null},a.prototype.$focusFoldWidget=function(c){if(null!=c){var s=this.$getFoldWidget(c);s.classList.add(this.editor.renderer.keyboardFocusClassName),s.focus()}},a.prototype.$focusCustomWidget=function(c){if(null!=c){var s=this.$getCustomWidget(c);s&&(s.classList.add(this.editor.renderer.keyboardFocusClassName),s.focus())}},a.prototype.$focusAnnotation=function(c){if(null!=c){var s=this.$getAnnotation(c);s.classList.add(this.editor.renderer.keyboardFocusClassName),s.focus()}},a.prototype.$blurFoldWidget=function(c){var s=this.$getFoldWidget(c);s.classList.remove(this.editor.renderer.keyboardFocusClassName),s.blur()},a.prototype.$blurCustomWidget=function(c){var s=this.$getCustomWidget(c);s&&(s.classList.remove(this.editor.renderer.keyboardFocusClassName),s.blur())},a.prototype.$blurAnnotation=function(c){var s=this.$getAnnotation(c);s.classList.remove(this.editor.renderer.keyboardFocusClassName),s.blur()},a.prototype.$moveFoldWidgetUp=function(){for(var c=this.activeRowIndex;c>0;)if(c--,this.$isFoldWidgetVisible(c)||this.$isCustomWidgetVisible(c))return this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=c,void(this.$isFoldWidgetVisible(c)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex))},a.prototype.$moveFoldWidgetDown=function(){for(var c=this.activeRowIndex;c<this.lines.getLength()-1;)if(c++,this.$isFoldWidgetVisible(c)||this.$isCustomWidgetVisible(c))return this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=c,void(this.$isFoldWidgetVisible(c)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex))},a.prototype.$moveAnnotationUp=function(){for(var c=this.activeRowIndex;c>0;)if(c--,this.$isAnnotationVisible(c))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=c,void this.$focusAnnotation(this.activeRowIndex)},a.prototype.$moveAnnotationDown=function(){for(var c=this.activeRowIndex;c<this.lines.getLength()-1;)if(c++,this.$isAnnotationVisible(c))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=c,void this.$focusAnnotation(this.activeRowIndex)},a.prototype.$findClosestNumber=function(c,s,r){return null===c?s:null===s||Math.abs(r-c)<=Math.abs(r-s)?c:s},a.prototype.$switchLane=function(c){switch(c){case"annotation":if("annotation"===this.activeLane)break;var s=this.$findNearestAnnotation(this.activeRowIndex);if(null==s)break;this.activeLane="annotation",this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=s,this.$focusAnnotation(this.activeRowIndex);break;case"fold":if("fold"===this.activeLane)break;var r=this.$findNearestFoldLaneWidget(this.activeRowIndex);if(null===r)break;this.activeLane="fold",this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=r,this.$isCustomWidgetVisible(r)?this.$focusCustomWidget(this.activeRowIndex):this.$focusFoldWidget(this.activeRowIndex)}},a.prototype.$rowIndexToRow=function(c){var s=this.lines.get(c);return s?s.row:null},a.prototype.$rowToRowIndex=function(c){for(var s=0;s<this.lines.getLength();s++)if(this.lines.get(s).row==c)return s;return null},a}();M.GutterKeyboardHandler=C;var v=function(){function a(c,s){this.gutterKeyboardHandler=s,this.domEvent=c}return a.prototype.getKey=function(){return _.keyCodeToString(this.domEvent.keyCode)},a.prototype.getRow=function(){return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex)},a.prototype.isInAnnotationLane=function(){return"annotation"===this.gutterKeyboardHandler.activeLane},a.prototype.isInFoldLane=function(){return"fold"===this.gutterKeyboardHandler.activeLane},a}();M.GutterKeyboardEvent=v}),ace.define("ace/editor",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/keyboard/gutter_handler","ace/config","ace/clipboard","ace/lib/keys","ace/lib/event","ace/tooltip"],function(w,M,F){"use strict";var _=this&&this.__values||function(g){var d="function"==typeof Symbol&&Symbol.iterator,k=d&&g[d],T=0;if(k)return k.call(g);if(g&&"number"==typeof g.length)return{next:function(){return g&&T>=g.length&&(g=void 0),{value:g&&g[T++],done:!g}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")},C=w("./lib/oop"),v=w("./lib/dom"),a=w("./lib/lang"),c=w("./lib/useragent"),s=w("./keyboard/textinput").TextInput,r=w("./mouse/mouse_handler").MouseHandler,i=w("./mouse/fold_handler").FoldHandler,t=w("./keyboard/keybinding").KeyBinding,e=w("./edit_session").EditSession,n=w("./search").Search,o=w("./range").Range,l=w("./lib/event_emitter").EventEmitter,u=w("./commands/command_manager").CommandManager,h=w("./commands/default_commands").commands,f=w("./config"),m=w("./token_iterator").TokenIterator,y=w("./keyboard/gutter_handler").GutterKeyboardHandler,p=w("./config").nls,S=w("./clipboard"),$=w("./lib/keys"),A=w("./lib/event"),E=w("./tooltip").HoverTooltip,x=function(){function g(d,k,T){this.id="editor"+ ++g.$uid,this.$toDestroy=[];var L=d.getContainerElement();this.container=L,this.renderer=d,this.commands=new u(c.isMac?"mac":"win",h),"object"==typeof document&&(this.textInput=new s(d.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new r(this),new i(this)),this.keyBinding=new t(this),this.$search=(new n).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(R,I){I._$emitInputEvent.schedule(31)}),this.setSession(k||T&&T.session||new e("")),f.resetOptions(this),T&&this.setOptions(T),f._signal("editor",this)}return g.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},g.prototype.startOperation=function(d){this.session.startOperation(d)},g.prototype.endOperation=function(d){this.session.endOperation(d)},g.prototype.onStartOperation=function(d){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,d||(this.previousCommand=null)},g.prototype.onEndOperation=function(d){if(this.curOp&&this.session){if(d&&!1===d.returnValue)return void(this.curOp=null);if(this._signal("beforeEndOperation"),!this.curOp)return;var k=this.curOp.command,T=k&&k.scrollIntoView;if(T){switch(T){case"center-animate":T="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var L=this.selection.getRange(),R=this.renderer.layerConfig;(L.start.row>=R.lastRow||L.end.row<=R.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==T&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},g.prototype.$historyTracker=function(d){if(this.$mergeUndoDeltas){var k=this.prevOp,T=this.$mergeableCommands,L=k.command&&d.command.name==k.command.name;if("insertstring"==d.command.name){var R=d.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),L=L&&this.mergeNextCommand&&(!/\s/.test(R)||/\s/.test(k.args)),this.mergeNextCommand=!0}else L=L&&-1!==T.indexOf(d.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(L=!1),L?this.session.mergeUndoDeltas=!0:-1!==T.indexOf(d.command.name)&&(this.sequenceStartTime=Date.now())}},g.prototype.setKeyboardHandler=function(d,k){if(d&&"string"==typeof d&&"ace"!=d){this.$keybindingId=d;var T=this;f.loadModule(["keybinding",d],function(L){T.$keybindingId==d&&T.keyBinding.setKeyboardHandler(L&&L.handler),k&&k()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(d),k&&k()},g.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},g.prototype.setSession=function(d){if(this.session!=d){this.curOp&&this.endOperation(),this.curOp={};var k=this.session;if(k){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("
1changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var T=this.session.getSelection();T.off("changeCursor",this.$onCursorChange),T.off("changeSelection",this.$onSelectionChange)}this.session=d,d?(this.$onDocumentChange=this.onDocumentChange.bind(this),d.on("change",this.$onDocumentChange),this.renderer.setSession(d),this.$onChangeMode=this.onChangeMode.bind(this),d.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),d.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),d.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),d.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),d.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),d.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=d.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),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(d)),this._signal("changeSession",{session:d,oldSession:k}),this.curOp=null,k&&k._signal("changeEditor",{oldEditor:this}),k&&(k.$editor=null),d&&d._signal("changeEditor",{editor:this}
vendor: 32,621 bytes, line 1
1),d&&(d.$editor=this),d&&!d.destroyed&&d.bgTokenizer.scheduleStart()}},g.prototype.getSession=function(){return this.session},g.prototype.setValue=function(d,k){return this.session.doc.setValue(d),k?1==k?this.navigateFileEnd():-1==k&&this.navigateFileStart():this.selectAll(),d},g.prototype.getValue=function(){return this.session.getValue()},g.prototype.getSelection=function(){return this.selection},g.prototype.resize=function(d){this.renderer.onResize(d)},g.prototype.setTheme=function(d,k){this.renderer.setTheme(d,k)},g.prototype.getTheme=function(){return this.renderer.getTheme()},g.prototype.setStyle=function(d,k){this.renderer.setStyle(d,k)},g.prototype.unsetStyle=function(d){this.renderer.unsetStyle(d)},g.prototype.getFontSize=function(){return this.getOption("fontSize")||v.computedStyle(this.container).fontSize},g.prototype.setFontSize=function(d){this.setOption("fontSize",d)},g.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var d=this;this.$highlightPending=!0,setTimeout(function(){d.$highlightPending=!1;var k=d.session;if(k&&!k.destroyed){k.$bracketHighlight&&(k.$bracketHighlight.markerIds.forEach(function(W){k.removeMarker(W)}),k.$bracketHighlight=null);var T=d.getCursorPosition(),L=d.getKeyboardHandler(),R=L&&L.$getDirectionForHighlight&&L.$getDirectionForHighlight(d),I=k.getMatchingBracketRanges(T,R);if(!I){var N=new m(k,T.row,T.column).getCurrentToken();if(N&&/\b(?:tag-open|tag-name)/.test(N.type)){var D=k.getMatchingTags(T);D&&(I=[D.openTagName.isEmpty()?D.openTag:D.openTagName,D.closeTagName.isEmpty()?D.closeTag:D.closeTagName])}}if(!I&&k.$mode.getMatching&&(I=k.$mode.getMatching(d.session)),!I)return void(d.getHighlightIndentGuides()&&d.renderer.$textLayer.$highlightIndentGuide());var B="ace_bracket";Array.isArray(I)?1==I.length&&(B="ace_error_bracket"):I=[I],2==I.length&&(0==o.comparePoints(I[0].end,I[1].start)?I=[o.fromPoints(I[0].start,I[1].end)]:0==o.comparePoints(I[0].start,I[1].end)&&(I=[o.fromPoints(I[1].start,I[0].end)])),k.$bracketHighlight={ranges:I,markerIds:I.map(function(W){return k.addMarker(W,B,"text")})},d.getHighlightIndentGuides()&&d.renderer.$textLayer.$highlightIndentGuide()}},50)}},g.prototype.focus=function(){this.textInput.focus()},g.prototype.isFocused=function(){return this.textInput.isFocused()},g.prototype.blur=function(){this.textInput.blur()},g.prototype.onFocus=function(d){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",d))},g.prototype.onBlur=function(d){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",d))},g.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},g.prototype.onDocumentChange=function(d){this.renderer.updateLines(d.start.row,d.start.row==d.end.row?d.end.row:1/0,this.session.$useWrapMode),this._signal("change",d),this.$cursorChange()},g.prototype.onTokenizerUpdate=function(d){var k=d.data;this.renderer.updateLines(k.first,k.last)},g.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},g.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},g.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},g.prototype.$updateHighlightActiveLine=function(){var k,d=this.getSession();if(this.$highlightActiveLine&&(("line"!=this.$selectionStyle||!this.selection.isMultiLine())&&(k=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(k=!1),this.renderer.$maxLines&&1===this.session.getLength()&&!(this.renderer.$minLines>1)&&(k=!1)),d.$highlightLineMarker&&!k)d.removeMarker(d.$highlightLineMarker.id),d.$highlightLineMarker=null;else if(!d.$highlightLineMarker&&k){var T=new o(k.row,k.column,k.row,1/0);T.id=d.addMarker(T,"ace_active-line","screenLine"),d.$highlightLineMarker=T}else k&&(d.$highlightLineMarker.start.row=k.row,d.$highlightLineMarker.end.row=k.row,d.$highlightLineMarker.start.column=k.column,d._signal("changeBackMarker"))},g.prototype.onSelectionChange=function(d){var k=this.session;if(k.$selectionMarker&&k.removeMarker(k.$selectionMarker),k.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var T=this.selection.getRange(),L=this.getSelectionStyle();k.$selectionMarker=k.addMarker(T,"ace_selection",L)}var R=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(R),this._signal("changeSelection")},g.prototype.$getSelectionHighLightRegexp=function(){var d=this.session,k=this.getSelectionRange();if(!k.isEmpty()&&!k.isMultiLine()){var T=k.start.column,L=k.end.column,R=d.getLine(k.start.row),I=R.substring(T,L);if(!(I.length>5e3)&&/[\w\d]/.test(I)){var O=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:I}),N=R.substring(T-1,L+1);if(O.test(N))return O}}},g.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},g.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},g.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},g.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},g.prototype.onChangeMode=function(d){this.renderer.updateText(),this._emit("changeMode",d)},g.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},g.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},g.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},g.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},g.prototype.getCopyText=function(){var d=this.getSelectedText(),k=this.session.doc.getNewLineCharacter(),T=!1;if(!d&&this.$copyWithEmptySelection){T=!0;for(var L=this.selection.getAllRanges(),R=0;R<L.length;R++){var I=L[R];R&&L[R-1].start.row==I.start.row||(d+=this.session.getLine(I.start.row)+k)}}var O={text:d};return this._signal("copy",O),S.lineMode=!!T&&O.text,O.text},g.prototype.onCopy=function(){this.commands.exec("copy",this)},g.prototype.onCut=function(){this.commands.exec("cut",this)},g.prototype.onPaste=function(d,k){this.commands.exec("paste",this,{text:d,event:k})},g.prototype.$handlePaste=function(d){"string"==typeof d&&(d={text:d}),this._signal("paste",d);var k=d.text,T=k===S.lineMode,L=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)T?L.insert({row:this.selection.lead.row,column:0},k):this.insert(k);else if(T)this.selection.rangeList.ranges.forEach(function(B){L.insert({row:B.start.row,column:0},k)});else{var R=k.split(/\r\n|\r|\n/),I=this.selection.rangeList.ranges;if(R.length!=I.length||!(2!=R.length||R[0]&&R[1]))return this.commands.exec("insertstring",this,k);for(var N=I.length;N--;){var D=I[N];D.isEmpty()||L.remove(D),L.insert(D.start,R[N])}}},g.prototype.execCommand=function(d,k){return this.commands.exec(d,this,k)},g.prototype.insert=function(d,k){var T=this.session,L=T.getMode(),R=this.getCursorPosition();if(this.getBehavioursEnabled()&&!k){var I=L.transformAction(T.getState(R.row),"insertion",this,T,d);I&&(d!==I.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),d=I.text)}if("\t"==d&&(d=this.session.getTabString()),this.selection.isEmpty())this.session.getOverwrite()&&-1==d.indexOf("\n")&&((O=o.fromPoints(R,R)).end.column+=d.length,this.session.remove(O));else{var O=this.getSelectionRange();R=this.session.remove(O),this.clearSelection()}if("\n"==d||"\r\n"==d){var W=T.getLine(R.row);if(R.column>W.search(/\S|$/)){var N=W.substr(R.column).search(/\S|$/);T.doc.removeInLine(R.row,R.column,R.column+N)}}this.clearSelection();var D=R.column,B=T.getState(R.row),z=(W=T.getLine(R.row),L.checkOutdent(B,W,d));if(T.insert(R,d),I&&I.selection&&this.selection.setSelectionRange(2==I.selection.length?new o(R.row,D+I.selection[0],R.row,D+I.selection[1]):new o(R.row+I.selection[0],I.selection[1],R.row+I.selection[2],I.selection[3])),this.$enableAutoIndent){if(T.getDocument().isNewLine(d)){var H=L.getNextLineIndent(B,W.slice(0,R.column),T.getTabString());T.insert({row:R.row+1,column:0},H)}z&&L.autoOutdent(B,T,R.row)}},g.prototype.autoIndent=function(){for(var d=this.session,k=d.getMode(),T=this.selection.isEmpty()?[new o(0,0,d.doc.getLength()-1,0)]:this.selection.getAllRanges(),L="",R="",I="",O=d.getTabString(),N=0;N<T.length;N++)for(var B=T[N].end.row,W=T[N].start.row;W<=B;W++){W>0&&(L=d.getState(W-1),R=d.getLine(W-1),I=k.getNextLineIndent(L,R,O));var z=d.getLine(W),H=k.$getIndent(z);if(I!==H){if(H.length>0){var U=new o(W,0,W,H.length);d.remove(U)}I.length>0&&d.insert({row:W,column:0},I)}k.autoOutdent(L,d,W)}},g.prototype.onTextInput=function(d,k){if(!k)return this.keyBinding.onTextInput(d);this.startOperation({command:{name:"insertstring"}});var T=this.applyComposition.bind(this,d,k);this.selection.rangeCount?this.forEachSelection(T):T(),this.endOperation()},g.prototype.applyComposition=function(d,k){var T;(k.extendLeft||k.extendRight)&&((T=this.selection.getRange()).start.column-=k.extendLeft,T.end.column+=k.extendRight,T.start.column<0&&(T.start.row--,T.start.column+=this.session.getLine(T.start.row).length+1),this.selection.setRange(T),!d&&!T.isEmpty()&&this.remove()),(d||!this.selection.isEmpty())&&this.insert(d,!0),(k.restoreStart||k.restoreEnd)&&((T=this.selection.getRange()).start.column-=k.restoreStart,T.end.column-=k.restoreEnd,this.selection.setRange(T))},g.prototype.onCommandKey=function(d,k,T){return this.keyBinding.onCommandKey(d,k,T)},g.prototype.setOverwrite=function(d){this.session.setOverwrite(d)},g.prototype.getOverwrite=function(){return this.session.getOverwrite()},g.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},g.prototype.setScrollSpeed=function(d){this.setOption("scrollSpeed",d)},g.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},g.prototype.setDragDelay=function(d){this.setOption("dragDelay",d)},g.prototype.getDragDelay=function(){return this.getOption("dragDelay")},g.prototype.setSelectionStyle=function(d){this.setOption("selectionStyle",d)},g.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},g.prototype.setHighlightActiveLine=function(d){this.setOption("highlightActiveLine",d)},g.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},g.prototype.setHighlightGutterLine=function(d){this.setOption("highlightGutterLine",d)},g.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},g.prototype.setHighlightSelectedWord=function(d){this.setOption("highlightSelectedWord",d)},g.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},g.prototype.setAnimatedScroll=function(d){this.renderer.setAnimatedScroll(d)},g.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},g.prototype.setShowInvisibles=function(d){this.renderer.setShowInvisibles(d)},g.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},g.prototype.setDisplayIndentGuides=function(d){this.renderer.setDisplayIndentGuides(d)},g.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},g.prototype.setHighlightIndentGuides=function(d){this.renderer.setHighlightIndentGuides(d)},g.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},g.prototype.setShowPrintMargin=function(d){this.renderer.setShowPrintMargin(d)},g.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},g.prototype.setPrintMarginColumn=function(d){this.renderer.setPrintMarginColumn(d)},g.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},g.prototype.setReadOnly=function(d){this.setOption("readOnly",d)},g.prototype.getReadOnly=function(){return this.getOption("readOnly")},g.prototype.setBehavioursEnabled=function(d){this.setOption("behavioursEnabled",d)},g.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},g.prototype.setWrapBehavioursEnabled=function(d){this.setOption("wrapBehavioursEnabled",d)},g.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},g.prototype.setShowFoldWidgets=function(d){this.setOption("showFoldWidgets",d)},g.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},g.prototype.setFadeFoldWidgets=function(d){this.setOption("fadeFoldWidgets",d)},g.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},g.prototype.remove=function(d){this.selection.isEmpty()&&("left"==d?this.selection.selectLeft():this.selection.selectRight());var k=this.getSelectionRange();if(this.getBehavioursEnabled()){var T=this.session,L=T.getState(k.start.row),R=T.getMode().transformAction(L,"deletion",this,T,k);if(0===k.end.column){var I=T.getTextRange(k);if("\n"==I[I.length-1]){var O=T.getLine(k.end.row);/^\s+$/.test(O)&&(k.end.column=O.length)}}R&&(k=R)}this.session.remove(k),this.clearSelection()},g.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},g.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},g.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},g.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var d=this.getSelectionRange();d.start.column==d.end.column&&d.start.row==d.end.row&&(d.end.column=0,d.end.row++),this.session.remove(d),this.clearSelection()},g.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var d=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(d)},g.prototype.setGhostText=function(d,k){this.renderer.setGhostText(d,k)},g.prototype.removeGhostText=function(){this.renderer.removeGhostText()},g.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var d=this.getCursorPosition(),k=d.column;if(0!==k){var L,R,T=this.session.getLine(d.row);k<T.length?(L=T.charAt(k)+T.charAt(k-1),R=new o(d.row,k-1,d.row,k+1)):(L=T.charAt(k-1)+T.charAt(k-2),R=new o(d.row,k-2,d.row,k)),this.session.replace(R,L),this.session.selection.moveToPosition(R.end)}}},g.prototype.toLowerCase=function(){var d=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var k=this.getSelectionRange(),T=this.session.getTextRange(k);this.session.replace(k,T.toLowerCase()),this.selection.setSelectionRange(d)},g.prototype.toUpperCase=function(){var d=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var k=this.getSelectionRange(),T=this.session.getTextRange(k);this.session.replace(k,T.toUpperCase()),this.selection.setSelectionRange(d)},g.prototype.indent=function(){var d=this.session,k=this.getSelectionRange();if(!(k.start.row<k.end.row)){if(k.start.column<k.end.column){var L=d.getTextRange(k);if(!/^\s+$/.test(L))return T=this.$getSelectedRows(),void d.indentRows(T.first,T.last,"\t")}var R=d.getLine(k.start.row),I=k.start,O=d.getTabSize(),N=d.documentToScreenColumn(I.row,I.column);if(this.session.getUseSoftTabs())var B=a.stringRepeat(" ",D=O-N%O);else{for(var D=N%O;" "==R[k.start.column-1]&&D;)k.start.column--,D--;this.selection.setSelectionRange(k),B="\t"}return this.insert(B)}var T=this.$getSelectedRows();d.indentRows(T.first,T.last,"\t")},g.prototype.blockIndent=function(){var d=this.$getSelectedRows();this.session.indentRows(d.first,d.last,"\t")},g.prototype.blockOutdent=function(){var d=this.session.getSelection();this.session.outdentRows(d.getRange())},g.prototype.sortLines=function(){for(var d=this.$getSelectedRows(),k=this.session,T=[],L=d.first;L<=d.last;L++)T.push(k.getLine(L));T.sort(function(O,N){return O.toLowerCase()<N.toLowerCase()?-1:O.toLowerCase()>N.toLowerCase()?1:0});var R=new o(0,0,0,0);for(L=d.first;L<=d.last;L++){var I=k.getLine(L);R.start.row=L,R.end.row=L,R.end.column=I.length,k.replace(R,T[L-d.first])}},g.prototype.toggleCommentLines=function(){var d=this.session.getState(this.getCursorPosition().row),k=this.$getSelectedRows();this.session.getMode().toggleCommentLines(d,this.session,k.first,k.last)},g.prototype.toggleBlockComment=function(){var d=this.getCursorPosition(),k=this.session.getState(d.row),T=this.getSelectionRange();this.session.getMode().toggleBlockComment(k,this.session,T,d)},g.prototype.getNumberAt=function(d,k){var T=/[\-]?[0-9]+(?:\.[0-9]+)?/g;T.lastIndex=0;for(var L=this.session.getLine(d);T.lastIndex<k;){var R=T.exec(L);if(R.index<=k&&R.index+R[0].length>=k)return{value:R[0],start:R.index,end:R.index+R[0].length}}return null},g.prototype.modifyNumber=function(d){var k=this.selection.getCursor().row,T=this.selection.getCursor().column,L=new o(k,T-1,k,T),R=this.session.getTextRange(L);if(!isNaN(parseFloat(R))&&isFinite(R)){var I=this.getNumberAt(k,T);if(I){var O=I.value.indexOf(".")>=0?I.start+I.value.indexOf(".")+1:I.end,N=I.start+I.value.length-O,D=parseFloat(I.value);D*=Math.pow(10,N),D+=d*=O!==I.end&&T<O?Math.pow(10,I.end-T-1):Math.pow(10,I.end-T);var B=(D/=Math.pow(10,N)).toFixed(N),W=new o(k,I.start,k,I.end);this.session.replace(W,B),this.moveCursorTo(k,Math.max(I.start+1,T+B.length-I.value.length))}}else this.toggleWord()},g.prototype.toggleWord=function(){var d=this.selection.getCursor().row,k=this.selection.getCursor().column;this.selection.selectWord();var T=this.getSelectedText(),L=this.selection.getWordRange().start.column,R=T.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g,"$1 ").split(/\s/),I=k-L-1;I<0&&(I=0);var O=0,N=0,D=this;T.match(/[A-Za-z0-9_]+/)&&R.forEach(function(V,Q){N=O+V.length,I>=O&&I<=N&&(T=V,D.selection.clearSelection(),D.moveCursorTo(d,O+L),D.selection.selectTo(d,N+L)),O=N});for(var W,B=this.$toggleWordPairs,z=0;z<B.length;z++)for(var H=B[z],U=0;U<=1;U++){var j=+!U,P=T.match(new RegExp("^\\s?_?("+a.escapeRegExp(H[U])+")\\s?$","i"));P&&T.match(new RegExp("([_]|^|\\s)("+a.escapeRegExp(P[1])+")($|\\s)","g"))&&(W=T.replace(new RegExp(a.escapeRegExp(H[U]),"i"),function(V){var Q=H[j];return V.toUpperCase()==V?Q=Q.toUpperCase():V.charAt(0).toUpperCase()==V.charAt(0)&&(Q=Q.substr(0,0)+H[j].charAt(0).toUpperCase()+Q.substr(1)),Q}),this.insert(W),W="")}},g.prototype.findLinkAt=function(d,k){var T,L,I=this.session.getLine(d).split(/((?:https?|ftp):\/\/[\S]+)/),O=k;O<0&&(O=0);var B,N=0,D=0;try{for(var W=_(I),z=W.next();!z.done;z=W.next()){var H=z.value;if(D=N+H.length,O>=N&&O<=D&&H.match(/((?:https?|ftp):\/\/[\S]+)/)){B=H.replace(/[\s:.,'";}\]]+$/,"");break}N=D}}catch(U){T={error:U}}finally{try{z&&!z.done&&(L=W.return)&&L.call(W)}finally{if(T)throw T.error}}return B},g.prototype.openLink=function(){var d=this.selection.getCursor(),k=this.findLinkAt(d.row,d.column);return k&&window.open(k,"_blank"),null!=k},g.prototype.removeLines=function(){var d=this.$getSelectedRows();this.session.removeFullLines(d.first,d.last),this.clearSelection()},g.prototype.duplicateSelection=function(){var d=this.selection,k=this.session,T=d.getRange(),L=d.isBackwards();if(T.isEmpty()){var R=T.start.row;k.duplicateLines(R,R)}else{var I=L?T.start:T.end,O=k.insert(I,k.getTextRange(T));T.start=I,T.end=O,d.setSelectionRange(T,L)}},g.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},g.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},g.prototype.moveText=function(d,k,T){return this.session.moveText(d,k,T)},g.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},g.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},g.prototype.$moveLines=function(d,k){var T,L,R=this.selection;if(!R.inMultiSelectMode||this.inVirtualSelectionMode){var I=R.toOrientedRange();T=this.$getSelectedRows(I),L=this.session.$moveLines(T.first,T.last,k?0:d),k&&-1==d&&(L=0),I.moveBy(L,0),R.fromOrientedRange(I)}else{var O=R.rangeList.ranges;R.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var N=0,D=0,B=O.length,W=0;W<B;W++){var z=W;O[W].moveBy(N,0);for(var H=(T=this.$getSelectedRows(O[W])).first,U=T.last;++W<B;){D&&O[W].moveBy(D,0);var j=this.$getSelectedRows(O[W]);if(k&&j.first!=U)break;if(!k&&j.first>U+1)break;U=j.last}for(W--,N=this.session.$moveLines(H,U,k?0:d),k&&-1==d&&(z=W+1);z<=W;)O[z].moveBy(N,0),z++;k||(N=0),D+=N}R.fromOrientedRange(R.ranges[0]),R.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},g.prototype.$getSelectedRows=function(d){return d=(d||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(d.start.row),last:this.session.getRowFoldEnd(d.end.row)}},g.prototype.onCompositionStart=function(d){this.renderer.showComposition(d)},g.prototype.onCompositionUpdate=function(d){this.renderer.setCompositionText(d)},g.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},g.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},g.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},g.prototype.isRowVisible=function(d){return d>=this.getFirstVisibleRow()&&d<=this.getLastVisibleRow()},g.prototype.isRowFullyVisible=function(d){return d>=this.renderer.getFirstFullyVisibleRow()&&d<=this.renderer.getLastFullyVisibleRow()},g.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},g.prototype.$moveByPage=function(d,k){var T=this.renderer,L=this.renderer.layerConfig,R=d*Math.floor(L.height/L.lineHeight);!0===k?this.selection.$moveSelection(function(){this.moveCursorBy(R,0)}):!1===k&&(this.selection.moveCursorBy(R,0),this.selection.clearSelection());var I=T.scrollTop;T.scrollBy(0,R*L.lineHeight),null!=k&&T.scrollCursorIntoView(null,.5),T.animateScrolling(I)},g.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},g.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},g.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},g.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},g.prototype.scrollPageDown=function(){this.$moveByPage(1)},g.prototype.scrollPageUp=function(){this.$moveByPage(-1)},g.prototype.scrollToRow=function(d){this.renderer.scrollToRow(d)},g.prototype.scrollToLine=function(d,k,T,L){this.renderer.scrollToLine(d,k,T,L)},g.prototype.centerSelection=function(){var d=this.getSelectionRange(),k={row:Math.floor(d.start.row+(d.end.row-d.start.row)/2),column:Math.floor(d.start.column+(d.end.column-d.start.column)/2)};this.renderer.alignCursor(k,.5)},g.prototype.getCursorPosition=function(){return this.selection.getCursor()},g.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},g.prototype.getSelectionRange=function(){return this.selection.getRange()},g.prototype.selectAll=function(){this.selection.selectAll()},g.prototype.clearSelection=function(){this.selection.clearSelection()},g.prototype.moveCursorTo=function(d,k){this.selection.moveCursorTo(d,k)},g.prototype.moveCursorToPosition=function(d){this.selection.moveCursorToPosition(d)},g.prototype.jumpToMatching=function(d,k){var T=this.getCursorPosition(),L=new m(this.session,T.row,T.column),R=L.getCurrentToken(),I=0;R&&-1!==R.type.indexOf("tag-name")&&(R=L.stepBackward());var O=R||L.stepForward();if(O){var N,z,D=!1,B={},W=T.column-O.start,H={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(O.value.match(/[{}()\[\]]/g)){for(;W<O.value.length&&!D;W++)if(H[O.value[W]])switch(z=H[O.value[W]]+"."+O.type.replace("rparen","lparen"),isNaN(B[z])&&(B[z]=0),O.value[W]){case"(":case"[":case"{":B[z]++;break;case")":case"]":case"}":B[z]--,-1===B[z]&&(N="bracket",D=!0)}}else-1!==O.type.indexOf("tag-name")&&(isNaN(B[O.value])&&(B[O.value]=0),"<"===R.value&&I>1?B[O.value]++:"</"===R.value&&B[O.value]--,-1===B[O.value]&&(N="tag",D=!0));D||(R=O,I++,O=L.stepForward(),W=0)}while(O&&!D);if(N){var U,j;if("bracket"===N)(U=this.session.getBracketRange(T))||(j=(U=new o(L.getCurrentTokenRow(),L.getCurrentTokenColumn()+W-1,L.getCurrentTokenRow(),L.getCurrentTokenColumn()+W-1)).start,(k||j.row===T.row&&Math.abs(j.column-T.column)<2)&&(U=this.session.getBracketRange(j)));else if("tag"===N){if(!O||-1===O.type.indexOf("tag-name"))return;if(0===(U=new o(L.getCurrentTokenRow(),L.getCurrentTokenColumn()-2,L.getCurrentTokenRow(),L.getCurrentTokenColumn()-2)).compare(T.row,T.column)){var P=this.session.getMatchingTags(T);P&&(P.openTag.contains(T.row,T.column)?j=(U=P.closeTag).start:(U=P.openTag,j=P.closeTag.start.row===T.row&&P.closeTag.start.column===T.column?U.end:U.start))}j=j||U.start}(j=U&&U.cursor||j)&&(d?U&&k?this.selection.setRange(U):U&&U.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(j.row,j.column):this.selection.moveTo(j.row,j.column))}}},g.prototype.gotoLine=function(d,k,T){this.selection.clearSelection(),this.session.unfold({row:d-1,column:k||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(d-1,k||0),this.isRowFullyVisible(d-1)||this.scrollToLine(d-1,!0,T)},g.prototype.navigateTo=function(d,k){this.selection.moveTo(d,k)},g.prototype.navigateUp=function(d){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var k=this.selection.anchor.getPosition();return this.moveCursorToPosition(k)}this.selection.clearSelection(),this.selection.moveCursorBy(-d||-1,0)},g.prototype.navigateDown=function(d){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var k=this.selection.anchor.getPosition();return this.moveCursorToPosition(k)}this.selection.clearSelection(),this.selection.moveCursorBy(d||1,0)},g.prototype.navigateLeft=function(d){if(this.selection.isEmpty())for(d=d||1;d--;)this.selection.moveCursorLeft();else{var k=this.getSelectionRange().start;this.moveCursorToPosition(k)}this.clearSelection()},g.prototype.navigateRight=function(d){if(this.selection.isEmpty())for(d=d||1;d--;)this.selection.moveCursorRight();else{var k=this.getSelectionRange().end;this.moveCursorToPosition(k)}this.clearSelection()},g.prototype.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},g.prototype.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},g.prototype.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},g.prototype.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},g.prototype.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},g.prototype.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},g.prototype.replace=function(d,k){k&&this.$search.set(k);var T=this.$search.find(this.session),L=0;return T&&(this.$tryReplace(T,d)&&(L=1),this.selection.setSelectionRange(T),this.renderer.scrollSelectionIntoView(T.start,T.end)),L},g.prototype.replaceAll=function(d,k){k&&this.$search.set(k);var T=this.$search.findAll(this.session),L=0;if(!T.length)return L;var R=this.getSelectionRange();this.selection.moveTo(0,0);for(var I=T.length-1;I>=0;--I)this.$tryReplace(T[I],d)&&L++;return this.selection.setSelectionRange(R),L},g.prototype.$tryReplace=function(d,k){var T=this.session.getTextRange(d);return null!==(k=this.$search.replace(T,k))?(d.end=this.session.replace(d,k),d):null},g.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},g.prototype.find=function(d,k,T){k||(k={}),"string"==typeof d||d instanceof RegExp?k.needle=d:"object"==typeof d&&C.mixin(k,d);var L=this.selection.getRange();null==k.needle&&((d=this.session.getTextRange(L)||this.$search.$options.needle)||(L=this.session.getWordRange(L.start.row,L.start.column),d=this.session.getTextRange(L)),this.$search.set({needle:d})),this.$search.set(k),k.start||this.$search.set({start:L});var R=this.$search.find(this.session);return k.preventScroll?R:R?(this.revealRange(R,T),R):(k.backwards?L.start=L.end:L.end=L.start,void this.selection.setRange(L))},g.prototype.findNext=function(d,k){this.find({skipCurrent:!0,backwards:!1},d,k)},g.prototype.findPrevious=function(d,k){this.find(d,{skipCurrent:!0,backwards:!0},k)},g.prototype.revealRange=function(d,k){this.session.unfold(d),this.selection.setSelectionRange(d);var T=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(d.start,d.end,.5),!1!==k&&this.renderer.animateScrolling(T)},g.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},g.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},g.prototype.destroy=function(){this.destroyed=!0,this.$toDestroy&&(this.$toDestroy.forEach(function(d){d.destroy()}),this.$toDestroy=[]),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},g.prototype.setAutoScrollEditorIntoView=function(d){if(d){var k,T=this,L=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var R=this.$scrollAnchor;R.style.cssText="position:absolute",this.container.insertBefore(R,this.container.firstChild);var I=this.on("changeSelection",function(){L=!0}),O=this.renderer.on("beforeRender",function(){L&&(k=T.renderer.container.getBoundingClientRect())}),N=this.renderer.on("afterRender",function(){if(L&&k&&(T.isFocused()||T.searchBox&&T.searchBox.isFocused())){var D=T.renderer,B=D.$cursorLayer.$pixelPos,W=D.layerConfig,z=B.top-W.offset;null!=(L=B.top>=0&&z+k.top<0||!(B.top<W.height&&B.top+k.top+W.lineHeight>window.innerHeight)&&null)&&(R.style.top=z+"px",R.style.left=B.left+"px",R.style.height=W.lineHeight+"px",R.scrollIntoView(L)),L=k=null}});this.setAutoScrollEditorIntoView=function(D){D||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",I),this.renderer.off("afterRender",N),this.renderer.off("beforeRender",O))}}},g.prototype.$resetCursorStyle=function(){var d=this.$cursorStyle||"ace",k=this.renderer.$cursorLayer;k&&(k.setSmoothBlinking(/smooth/.test(d)),k.isBlinking=!this.$readOnly&&"wide"!=d,v.setCssClass(k.element,"ace_slim-cursors",/slim/.test(d)))},g.prototype.prompt=function(d,k,T){var L=this;f.loadModule("ace/ext/prompt",function(R){R.prompt(L,d,k,T)})},Object.defineProperty(g.prototype,"hoverTooltip",{get:function(){return this.$hoverTooltip||(this.$hoverTooltip=new E(this.container))},set:function(d){this.$hoverTooltip&&this.$hoverTooltip.destroy(),this.$hoverTooltip=d},enumerable:!1,configurable:!0}),g}();x.$uid=0,x.prototype.curOp=null,x.prototype.prevOp={},x.prototype.$mergeableCommands=["backspace","del","insertstring"],x.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],C.implement(x.prototype,l),f.defineOptions(x.prototype,"editor",{selectionStyle:{set:function(g){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:g})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(g){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(g){var d=this;if(this.textInput.setReadOnly(g),!this.destroyed){this.$resetCursorStyle(),this.$readOnlyCallback||(this.$readOnlyCallback=function(T){var L=!1;if(T&&"keydown"==T.type){if(T&&T.key&&!T.ctrlKey&&!T.metaKey&&(" "==T.key&&T.preventDefault(),L=1==T.key.length),!L)return}else T&&"exec"!==T.type&&(L=!0);if(L){var R=v.createElement("div");R.textContent=p("editor.tooltip.disable-editing","Editing is disabled"),d.hoverTooltip.isOpen||d.hoverTooltip.showForRange(d,d.getSelectionRange(),R)}else d.hoverTooltip&&d.hoverTooltip.isOpen&&d.hoverTooltip.hide()});var k=this.textInput.getElement();g?(A.addListener(k,"keydown",this.$readOnlyCallback,this),this.commands.on("exec",this.$readOnlyCallback),this.commands.on("commandUnavailable",this.$readOnlyCallback)):(A.removeListener(k,"keydown",this.$readOnlyCallback),this.commands.off("exec",this.$readOnlyCallback),this.commands.off("
1commandUnavailable",this.$readOnlyCallback))}},initialValue:!1},copyWithEmptySelection:{set:function(g){this.textInput.setCopyWithEmptySelection(g)},initialValue:!1},cursorStyle:{set:function(g){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(g){this.setAutoScrollEditorIntoView(g)}},keyboardHandler:{set:function(g){this.setKeyboardHandler(g)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(g){this.session.setValue(g)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(g){this.setSession(g)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(g){this.renderer.$gutterLayer.setShowLineNumbers(g),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),g&&this.$relativeLineNumbers?b.attach(this):b.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(g){this.$showLineNumbers&&g?b.attach(this):b.detach(this)}},placeholder:{set:function(g){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var d=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(d&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),v.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(d||this.renderer.placeholderNode)!d&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),v.addCssClass(this.container,"ace_hasPlaceholder");var k=v.createElement("div");k.className="ace_placeholder",k.textContent=this.$placeholder||"",this.renderer.placeholderNode=k,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(g){var T,d={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(L){L.blur(),L.renderer.scroller.focus()},readOnly:!0},k=function(L){if(L.target==this.renderer.scroller&&L.keyCode===$.enter){L.preventDefault();var R=this.getCursorPosition().row;this.isRowVisible(R)||this.scrollToLine(R,!0,!0),this.focus()}};g?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(c.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",p("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",p("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",k.bind(this)),this.commands.addCommand(d),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",p("editor.gutter.aria-roledescription","editor gutter")),this.renderer.$gutter.setAttribute("aria-label",p("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),T||(T=new y(this)),T.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",k.bind(this)),this.commands.removeCommand(d),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),T&&T.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(g){this.$textInputAriaLabel=g},initialValue:""},enableMobileMenu:{set:function(g){this.$enableMobileMenu=g},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focu
vendor: 53,044 bytes, line 1
1sTimeout:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var b={getText:function(g,d){return(Math.abs(g.selection.lead.row-d)||d+1+(d<9?"\xb7":""))+""},getWidth:function(g,d,k){return Math.max(d.toString().length,(k.lastRow+1).toString().length,2)*k.characterWidth},update:function(g,d){d.renderer.$loop.schedule(d.renderer.CHANGE_GUTTER)},attach:function(g){g.renderer.$gutterLayer.$renderer=this,g.on("changeSelection",this.update),this.update(null,g)},detach:function(g){g.renderer.$gutterLayer.$renderer==this&&(g.renderer.$gutterLayer.$renderer=null),g.off("changeSelection",this.update),this.update(null,g)}};M.Editor=x}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(w,M,F){"use strict";var _=w("../lib/dom"),C=function(){function v(a,c){this.element=a,this.canvasHeight=c||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return v.prototype.moveContainer=function(a){_.translate(this.element,0,-a.firstRowScreen*a.lineHeight%this.canvasHeight-a.offset*this.$offsetCoefficient)},v.prototype.pageChanged=function(a,c){return Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)!==Math.floor(c.firstRowScreen*c.lineHeight/this.canvasHeight)},v.prototype.computeLineTop=function(a,c,s){var i=Math.floor(c.firstRowScreen*c.lineHeight/this.canvasHeight);return s.documentToScreenRow(a,0)*c.lineHeight-i*this.canvasHeight},v.prototype.computeLineHeight=function(a,c,s){return c.lineHeight*s.getRowLineCount(a)},v.prototype.getLength=function(){return this.cells.length},v.prototype.get=function(a){return this.cells[a]},v.prototype.shift=function(){this.$cacheCell(this.cells.shift())},v.prototype.pop=function(){this.$cacheCell(this.cells.pop())},v.prototype.push=function(a){if(Array.isArray(a)){this.cells.push.apply(this.cells,a);for(var c=_.createFragment(this.element),s=0;s<a.length;s++)c.appendChild(a[s].element);this.element.appendChild(c)}else this.cells.push(a),this.element.appendChild(a.element)},v.prototype.unshift=function(a){if(Array.isArray(a)){this.cells.unshift.apply(this.cells,a);for(var c=_.createFragment(this.element),s=0;s<a.length;s++)c.appendChild(a[s].element);this.element.firstChild?this.element.insertBefore(c,this.element.firstChild):this.element.appendChild(c)}else this.cells.unshift(a),this.element.insertAdjacentElement("afterbegin",a.element)},v.prototype.last=function(){return this.cells.length?this.cells[this.cells.length-1]:null},v.prototype.$cacheCell=function(a){a&&(a.element.remove(),this.cellCache.push(a))},v.prototype.createCell=function(a,c,s,r){var i=this.cellCache.pop();if(!i){var t=_.createElement("div");r&&r(t),this.element.appendChild(t),i={element:t,text:"",row:a}}return i.row=a,i},v}();M.Lines=C}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/layer/lines","ace/config"],function(w,M,F){"use strict";var _=w("../lib/dom"),C=w("../lib/oop"),v=w("../lib/lang"),a=w("../lib/event_emitter").EventEmitter,c=w("./lines").Lines,s=w("../config").nls,r=function(){function t(e){this.$showCursorMarker=null,this.element=_.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$lines=new c(this.element),this.$lines.$offsetCoefficient=1}return t.prototype.setSession=function(e){this.session&&this.session.off("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},t.prototype.addGutterDecoration=function(e,n){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,n)},t.prototype.removeGutterDecoration=function(e,n){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,n)},t.prototype.setAnnotations=function(e){this.$annotations=[];for(var n=0;n<e.length;n++){var o=e[n],l=o.row,u=this.$annotations[l];u||(u=this.$annotations[l]={text:[],type:[],displayText:[]});var h=o.text,f=o.text,m=o.type;h=h?v.escapeHTML(h):o.html||"",f=f||o.html||"",-1===u.text.indexOf(h)&&(u.text.push(h),u.type.push(m),u.displayText.push(f));var y=o.className;y?u.className=y:"error"===m?u.className=" ace_error":"security"!==m||/\bace_error\b/.test(u.className)?"warning"!==m||/\bace_(error|security)\b/.test(u.className)?"info"!==m||u.className?"hint"===m&&!u.className&&(u.className=" ace_hint"):u.className=" ace_info":u.className=" ace_warning":u.className=" ace_security"}},t.prototype.$updateAnnotations=function(e){if(this.$annotations.length){var n=e.start.row,o=e.end.row-n;if(0!==o)if("remove"==e.action)this.$annotations.splice(n,o+1,null);else{var l=new Array(o+1);l.unshift(n,1),this.$annotations.splice.apply(this.$annotations,l)}}},t.prototype.update=function(e){this.config=e;var n=this.session,o=e.firstRow,l=Math.min(e.lastRow+e.gutterOffset,n.getLength()-1);this.oldLastRow=l,this.config=e,this.$lines.moveContainer(e),this.$updateCursorRow();for(var u=n.getNextFoldLine(o),h=u?u.start.row:1/0,f=null,m=-1,y=o;;){if(y>h&&(h=(u=n.getNextFoldLine(y=u.end.row+1,u))?u.start.row:1/0),y>l){for(;this.$lines.getLength()>m+1;)this.$lines.pop();break}(f=this.$lines.get(++m))?f.row=y:(f=this.$lines.createCell(y,e,this.session,i),this.$lines.push(f)),this.$renderCell(f,e,u,y),y++}this._signal("afterRender"),this.$updateGutterWidth(e),this.$showCursorMarker&&this.$highlightGutterLine&&this.$updateCursorMarker()},t.prototype.$updateGutterWidth=function(e){var n=this.session,o=n.gutterRenderer||this.$renderer,l=n.$firstLineNumber,u=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||n.$useWrapMode)&&(u=n.getLength()+l-1);var h=o?o.getWidth(n,u,e):u.toString().length*e.characterWidth,f=this.$padding||this.$computePadding();(h+=f.left+f.right)!==this.gutterWidth&&!isNaN(h)&&(this.gutterWidth=h,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",h))},t.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},t.prototype.updateLineHighlight=function(){if(this.$showCursorMarker&&this.$updateCursorMarker(),this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var n=this.$lines.cells;this.$cursorCell=null;for(var o=0;o<n.length;o++){var l=n[o];if(l.row>=this.$cursorRow){if(l.row>this.$cursorRow){var u=this.session.getFoldLine(this.$cursorRow);if(!(o>0&&u&&u.start.row==n[o-1].row))break;l=n[o-1]}l.element.className="ace_gutter-active-line "+l.element.className,this.$cursorCell=l;break}}}}},t.prototype.$updateCursorMarker=function(){if(this.session){var e=this.session;this.$highlightElement||(this.$highlightElement=_.createElement("div"),this.$highlightElement.className="ace_gutter-cursor",this.$highlightElement.style.pointerEvents="none",this.element.appendChild(this.$highlightElement));var n=e.selection.cursor,o=this.config,l=this.$lines,h=Math.floor(o.firstRowScreen*o.lineHeight/l.canvasHeight),m=e.documentToScreenRow(n)*o.lineHeight-h*l.canvasHeight;_.setStyle(this.$highlightElement.style,"height",o.lineHeight+"px"),_.setStyle(this.$highlightElement.style,"top",m+"px")}},t.prototype.scrollLines=function(e){var n=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(n,e))return this.update(e);this.$lines.moveContainer(e);var o=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),l=this.oldLastRow;if(this.oldLastRow=o,!n||l<e.firstRow)return this.update(e);if(o<n.firstRow)return this.update(e);if(n.firstRow<e.firstRow)for(var u=this.session.getFoldedRowCount(n.firstRow,e.firstRow-1);u>0;u--)this.$lines.shift();if(l>o)for(u=this.session.getFoldedRowCount(o+1,l);u>0;u--)this.$lines.pop();e.firstRow<n.firstRow&&this.$lines.unshift(this.$renderLines(e,e.firstRow,n.firstRow-1)),o>l&&this.$lines.push(this.$renderLines(e,l+1,o)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},t.prototype.$renderLines=function(e,n,o){for(var l=[],u=n,h=this.session.getNextFoldLine(u),f=h?h.start.row:1/0;u>f&&(f=(h=this.session.getNextFoldLine(u=h.end.row+1,h))?h.start.row:1/0),!(u>o);){var m=this.$lines.createCell(u,e,this.session,i);this.$renderCell(m,e,h,u),l.push(m),u++}return l},t.prototype.$renderCell=function(e,n,o,l){var u=e.element,h=this.session,f=u.childNodes[0],m=u.childNodes[1],y=u.childNodes[2],p=u.childNodes[3],S=y.firstChild,$=h.$firstLineNumber,A=h.$breakpoints,E=h.$decorations,x=h.gutterRenderer||this.$renderer,b=this.$showFoldWidgets&&h.foldWidgets,g=o?o.start.row:Number.MAX_VALUE,d=n.lineHeight+"px",k=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",T=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",L=(x?x.getText(h,l):l+$).toString();if(this.$highlightGutterLine&&(l==this.$cursorRow||o&&l<this.$cursorRow&&l>=g&&this.$cursorRow<=o.end.row)&&(k+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),A[l]&&(k+=A[l]),E[l]&&(k+=E[l]),this.$annotations[l]&&l!==g&&(k+=this.$annotations[l].className),b){var R=b[l];null==R&&(R=b[l]=h.getFoldWidget(l))}if(R){var I="ace_fold-widget ace_"+R,O="start"==R&&l==g&&l<o.end.row;if(O){I+=" ace_closed";for(var N="",D=!1,B=l+1;B<=o.end.row;B++)if(this.$annotations[B]){if(" ace_error"===this.$annotations[B].className){D=!0,N=" ace_error_fold";break}" ace_security"===this.$annotations[B].className?(D=!0,N=" ace_security_fold"):" ace_warning"===this.$annotations[B].className&&" ace_security_fold"!==N&&(D=!0,N=" ace_warning_fold")}k+=N}else I+=" ace_open";m.className!=I&&(m.className=I),_.setStyle(m.style,"height",d),_.setStyle(m.style,"display","inline-block"),m.setAttribute("role","button"),m.setAttribute("tabindex","-1");var W=h.getFoldWidgetRange(l);m.setAttribute("aria-label",W?s("gutter.code-folding.range.aria-label","Toggle code folding, rows $0 through $1",[W.start.row+1,W.end.row+1]):o?s("gutter.code-folding.closed.aria-label","Toggle code folding, rows $0 through $1",[o.start.row+1,o.end.row+1]):s("gutter.code-folding.open.aria-label","Toggle code folding, row $0",[l+1])),O?(m.setAttribute("aria-expanded","false"),m.setAttribute("title",s("gutter.code-folding.closed.title","Unfold code"))):(m.setAttribute("aria-expanded","true"),m.setAttribute("title",s("gutter.code-folding.open.title","Fold code")))}else m&&(_.setStyle(m.style,"display","none"),m.setAttribute("tabindex","0"),m.removeAttribute("role"),m.removeAttribute("aria-label"));var z=this.session.$gutterCustomWidgets[l];if(z?this.$addCustomWidget(l,z,e):p&&this.$removeCustomWidget(l,e),D&&this.$showFoldedAnnotations){switch(y.className="ace_gutter_annotation",S.className=T,S.className+=N,_.setStyle(S.style,"height",d),_.setStyle(y.style,"display","block"),_.setStyle(y.style,"height",d),N){case" ace_error_fold":H=s("gutter.annotation.aria-label.error","Error, read annotations row $0",[L]);break;case" ace_security_fold":H=s("gutter.annotation.aria-label.security","Security finding, read annotations row $0",[L]);break;case" ace_warning_fold":H=s("gutter.annotation.aria-label.warning","Warning, read annotations row $0",[L])}y.setAttribute("aria-label",H),y.setAttribute("tabindex","-1"),y.setAttribute("role","button")}else if(this.$annotations[l]){var H;switch(y.className="ace_gutter_annotation",S.className=T,this.$useSvgGutterIcons?S.className+=this.$annotations[l].className:u.classList.add(this.$annotations[l].className.replace(" ","")),_.setStyle(S.style,"height",d),_.setStyle(y.style,"display","block"),_.setStyle(y.style,"height",d),this.$annotations[l].className){case" ace_error":H=s("gutter.annotation.aria-label.error","Error, read annotations row $0",[L]);break;case" ace_security":H=s("gutter.annotation.aria-label.security","Security finding, read annotations row $0",[L]);break;case" ace_warning":H=s("gutter.annotation.aria-label.warning","Warning, read annotations row $0",[L]);break;case" ace_info":H=s("gutter.annotation.aria-label.info","Info, read annotations row $0",[L]);break;case" ace_hint":H=s("gutter.annotation.aria-label.hint","Suggestion, read annotations row $0",[L])}y.setAttribute("aria-label",H),y.setAttribute("tabindex","-1"),y.setAttribute("role","button")}else _.setStyle(y.style,"display","none"),y.removeAttribute("aria-label"),y.removeAttribute("role"),y.setAttribute("tabindex","0");return L!==f.data&&(f.data=L),u.className!=k&&(u.className=k),_.setStyle(e.element.style,"height",this.$lines.computeLineHeight(l,n,h)+"px"),_.setStyle(e.element.style,"top",this.$lines.computeLineTop(l,n,h)+"px"),e.text=L,e.element.setAttribute("aria-hidden","none"===y.style.display&&"none"===m.style.display&&!z),e},t.prototype.setHighlightGutterLine=function(e){this.$highlightGutterLine=e,!e&&this.$highlightElement&&(this.$highlightElement.remove(),this.$highlightElement=null)},t.prototype.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return 0},getText:function(){return""}}},t.prototype.getShowLineNumbers=function(){return this.$showLineNumbers},t.prototype.setShowFoldWidgets=function(e){e?_.addCssClass(this.element,"ace_folding-enabled"):_.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},t.prototype.getShowFoldWidgets=function(){return this.$showFoldWidgets},t.prototype.$hideFoldWidget=function(e,n){var o=n||this.$getGutterCell(e);if(o&&o.element){var l=o.element.childNodes[1];l&&_.setStyle(l.style,"display","none")}},t.prototype.$showFoldWidget=function(e,n){var o=n||this.$getGutterCell(e);if(o&&o.element){var l=o.element.childNodes[1];l&&this.session.foldWidgets&&this.session.foldWidgets[o.row]&&_.setStyle(l.style,"display","inline-block")}},t.prototype.$getGutterCell=function(e){var n=this.$lines.cells,o=0,l=n.length-1;if(!(e<n[0].row||e>n[l].row)){for(;o<=l;){var u=Math.floor((o+l)/2),h=n[u];if(h.row>e)l=u-1;else{if(!(h.row<e))return h;o=u+1}}return h}},t.prototype.$addCustomWidget=function(e,n,o){var l=n.className,u=n.label,h=n.title,f=n.callbacks;this.session.$gutterCustomWidgets[e]={className:l,label:u,title:h,callbacks:f},this.$hideFoldWidget(e,o);var m=o||this.$getGutterCell(e);if(m&&m.element){var y=m.element.querySelector(".ace_custom-widget");y&&y.remove(),(y=_.createElement("span")).className="ace_custom-widget ".concat(l),y.setAttribute("tabindex","-1"),y.setAttribute("role","button"),y.setAttribute("aria-label",u),y.setAttribute("title",h),_.setStyle(y.style,"display","inline-block"),_.setStyle(y.style,"height","inherit"),f&&f.onClick&&y.addEventListener("click",function(p){f.onClick(p,e),p.stopPropagation()}),m.element.appendChild(y)}},t.prototype.$removeCustomWidget=function(e,n){delete this.session.$gutterCustomWidgets[e],this.$showFoldWidget(e,n);var o=n||this.$getGutterCell(e);if(o&&o.element){var l=o.element.querySelector(".ace_custom-widget");l&&o.element.removeChild(l)}},t.prototype.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=_.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=(parseInt(e.borderLeftWidth)||0)+(parseInt(e.paddingLeft)||0)+1,this.$padding.right=(parseInt(e.borderRightWidth)||0)+(parseInt(e.paddingRight)||0),this.$padding},t.prototype.getRegion=function(e){var n=this.$padding||this.$computePadding(),o=this.element.getBoundingClientRect();return e.x<n.left+o.left?"markers":this.$showFoldWidgets&&e.x>o.right-n.right?"foldWidgets":void 0},t}();function i(t){var e=document.createTextNode("");t.appendChild(e);var n=_.createElement("span");t.appendChild(n);var o=_.createElement("span");t.appendChild(o);var l=_.createElement("span");return o.appendChild(l),t}r.prototype.$fixedWidth=!1,r.prototype.$highlightGutterLine=!0,r.prototype.$renderer=void 0,r.prototype.$showLineNumbers=!0,r.prototype.$showFoldWidgets=!0,C.implement(r.prototype,a),M.Gutter=r}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(w,M,F){"use strict";var _=w("../range").Range,C=w("../lib/dom"),v=function(){function c(s){this.element=C.createElement("div"),this.element.className="ace_layer ace_marker-layer",s.appendChild(this.element)}return c.prototype.setPadding=function(s){this.$padding=s},c.prototype.setSession=function(s){this.session=s},c.prototype.setMarkers=function(s){this.markers=s},c.prototype.elt=function(s,r){var i=-1!=this.i&&this.element.childNodes[this.i];i?this.i++:(i=document.createElement("div"),this.element.appendChild(i),this.i=-1),i.style.cssText=r,i.className=s},c.prototype.update=function(s){if(s){var r;for(var i in this.config=s,this.i=0,this.markers){var t=this.markers[i];if(t.range){var e=t.range.clipRows(s.firstRow,s.lastRow);if(!e.isEmpty())if(e=e.toScreenRange(this.session),t.renderer){var n=this.$getTop(e.start.row,s);t.renderer(r,e,this.$padding+e.start.column*s.characterWidth,n,s)}else"fullLine"==t.type?this.drawFullLineMarker(r,e,t.clazz,s):"screenLine"==t.type?this.drawScreenLineMarker(r,e,t.clazz,s):e.isMultiLine()?"text"==t.type?this.drawTextMarker(r,e,t.clazz,s):this.drawMultiLineMarker(r,e,t.clazz,s):this.drawSingleLineMarker(r,e,t.clazz+" ace_start ace_br15",s)}else t.update(r,this,this.session,s)}if(-1!=this.i)for(;this.i<this.element.childElementCount;)this.element.removeChild(this.element.lastChild)}},c.prototype.$getTop=function(s,r){return(s-r.firstRowScreen)*r.lineHeight},c.prototype.drawTextMarker=function(s,r,i,t,e){for(var n=this.session,o=r.start.row,l=r.end.row,u=o,h=0,f=0,m=n.getScreenLastRowColumn(u),y=new _(u,r.start.column,u,f);u<=l;u++)y.start.row=y.end.row=u,y.start.column=u==o?r.start.column:n.getRowWrapIndent(u),y.end.column=m,h=f,f=m,m=u+1<l?n.getScreenLastRowColumn(u+1):u==l?0:r.end.column,this.drawSingleLineMarker(s,y,i+(u==o?" ace_start":"")+" ace_br"+a(u==o||u==o+1&&r.start.column,h<f,f>m,u==l),t,u==l?0:1,e)},c.prototype.drawMultiLineMarker=function(s,r,i,t,e){var h,n=this.$padding,o=t.lineHeight,l=this.$getTop(r.start.row,t),u=n+r.start.column*t.characterWidth;if(e=e||"",this.session.$bidiHandler.isBidiRow(r.start.row)?((h=r.clone()).end.row=h.start.row,h.end.column=this.session.getLine(h.start.row).length,this.drawBidiSingleLineMarker(s,h,i+" ace_br1 ace_start",t,null,e)):this.elt(i+" ace_br1 ace_start","height:"+o+"px;right:"+n+"px;top:"+l+"px;left:"+u+"px;"+(e||"")),this.session.$bidiHandler.isBidiRow(r.end.row)?((h=r.clone()).start.row=h.end.row,h.start.column=0,this.drawBidiSingleLineMarker(s,h,i+" ace_br12",t,null,e)):(l=this.$getTop(r.end.row,t),this.elt(i+" ace_br12","height:"+o+"px;width:"+r.end.column*t.characterWidth+"px;top:"+l+"px;left:"+n+"px;"+(e||""))),!((o=(r.end.row-r.start.row-1)*t.lineHeight)<=0)){l=this.$getTop(r.start.row+1,t);var m=(r.start.column?1:0)|(r.end.column?0:8);this.elt(i+(m?" ace_br"+m:""),"height:"+o+"px;right:"+n+"px;top:"+l+"px;left:"+n+"px;"+(e||""))}},c.prototype.drawSingleLineMarker=function(s,r,i,t,e,n){if(this.session.$bidiHandler.isBidiRow(r.start.row))return this.drawBidiSingleLineMarker(s,r,i,t,e,n);var o=t.lineHeight,l=(r.end.column+(e||0)-r.start.column)*t.characterWidth,u=this.$getTop(r.start.row,t);this.elt(i,"height:"+o+"px;width:"+l+"px;top:"+u+"px;left:"+(this.$padding+r.start.column*t.characterWidth)+"px;"+(n||""))},c.prototype.drawBidiSingleLineMarker=function(s,r,i,t,e,n){var o=t.lineHeight,l=this.$getTop(r.start.row,t),u=this.$padding;this.session.$bidiHandler.getSelections(r.start.column,r.end.column).forEach(function(f){this.elt(i,"height:"+o+"px;width:"+(f.width+(e||0))+"px;top:"+l+"px;left:"+(u+f.left)+"px;"+(n||""))},this)},c.prototype.drawFullLineMarker=function(s,r,i,t,e){var n=this.$getTop(r.start.row,t),o=t.lineHeight;r.start.row!=r.end.row&&(o+=this.$getTop(r.end.row,t)-n),this.elt(i,"height:"+o+"px;top:"+n+"px;left:0;right:0;"+(e||""))},c.prototype.drawScreenLineMarker=function(s,r,i,t,e){var n=this.$getTop(r.start.row,t);this.elt(i,"height:"+t.lineHeight+"px;top:"+n+"px;left:0;right:0;"+(e||""))},c}();function a(c,s,r,i){return(c?1:0)|(s?2:0)|(r?4:0)|(i?8:0)}v.prototype.$padding=0,M.Marker=v}),ace.define("ace/layer/text_util",["require","exports","module"],function(w,M,F){var _=new Set(["text","rparen","lparen"]);M.isTextToken=function(C){return _.has(C)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("../lib/dom"),v=w("../lib/lang"),a=w("./lines").Lines,c=w("../lib/event_emitter").EventEmitter,s=w("../config").nls,r=w("./text_util").isTextToken,i=function(){function t(e){this.dom=C,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)}return t.prototype.$updateEolChar=function(){var e=this.session.doc,o="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=o)return this.EOL_CHAR=o,!0},t.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},t.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},t.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},t.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(n){this._signal("changeCharacterSize",n)}.bind(this)),this.$pollSizeChanges()},t.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},t.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},t.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},t.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},t.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},t.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},t.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var n=this.$tabStrings=[0],o=1;o<e+1;o++)this.showTabs?((l=this.dom.createElement("span")).className="ace_invisible ace_invisible_tab",l.textContent=v.stringRepeat(this.TAB_CHAR,o),n.push(l)):n.push(this.dom.createTextNode(v.stringRepeat(" ",o),this.element));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var l,u="ace_indent-guide",h=this.showSpaces?" ace_invisible ace_invisible_space":"",f=v.stringRepeat(this.showSpaces?this.SPACE_CHAR:" ",this.tabSize),m=this.showTabs?" ace_invisible ace_invisible_tab":"",y=this.showTabs?v.stringRepeat(this.TAB_CHAR,this.tabSize):f;(l=this.dom.createElement("span")).className=u+h,l.textContent=f,this.$tabStrings[" "]=l,(l=this.dom.createElement("span")).className=u+m,l.textContent=y,this.$tabStrings["\t"]=l}},t.prototype.updateLines=function(e,n,o){if(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)return this.update(e);this.config=e;for(var l=Math.max(n,e.firstRow),u=Math.min(o,e.lastRow),h=this.element.childNodes,f=0,y=e.firstRow;y<l;y++){if(p=this.session.getFoldLine(y)){if(p.containsRow(l)){l=p.start.row;break}y=p.end.row}f++}for(var p,m=!1,S=(p=this.session.getNextFoldLine(y=l))?p.start.row:1/0;y>S&&(S=(p=this.session.getNextFoldLine(y=p.end.row+1,p))?p.start.row:1/0),!(y>u);){var $=h[f++];if($){this.dom.removeChildren($),this.$renderLine($,y,y==S&&p),m&&($.style.top=this.$lines.computeLineTop(y,e,this.session)+"px");var A=e.lineHeight*this.session.getRowLength(y)+"px";$.style.height!=A&&(m=!0,$.style.height=A)}y++}if(m)for(;f<this.$lines.cells.length;){var E=this.$lines.cells[f++];E.element.style.top=this.$lines.computeLineTop(E.row,e,this.session)+"px"}},t.prototype.scrollLines=function(e){var n=this.config;if(this.config=e,this.$lines.pageChanged(n,e))return this.update(e);this.$lines.moveContainer(e);var o=e.lastRow;if(!n||(n?n.lastRow:-1)<e.firstRow)return this.update(e);if(o<n.firstRow)return this.update(e);if(!n||n.lastRow<e.firstRow)return this.update(e);if(e.lastRow<n.firstRow)return this.update(e);if(n.firstRow<e.firstRow)for(var u=this.session.getFoldedRowCount(n.firstRow,e.firstRow-1);u>0;u--)this.$lines.shift();if(n.lastRow>e.lastRow)for(u=this.session.getFoldedRowCount(e.lastRow+1,n.lastRow);u>0;u--)this.$lines.pop();e.firstRow<n.firstRow&&this.$lines.unshift(this.$renderLinesFragment(e,e.firstRow,n.firstRow-1)),e.lastRow>n.lastRow&&this.$lines.push(this.$renderLinesFragment(e,n.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},t.prototype.$renderLinesFragment=function(e,n,o){for(var l=[],u=n,h=this.session.getNextFoldLine(u),f=h?h.start.row:1/0;u>f&&(f=(h=this.session.getNextFoldLine(u=h.end.row+1,h))?h.start.row:1/0),!(u>o);){var m=this.$lines.createCell(u,e,this.session),y=m.element;this.dom.removeChildren(y),C.setStyle(y.style,"height",this.$lines.computeLineHeight(u,e,this.session)+"px"),C.setStyle(y.style,"top",this.$lines.computeLineTop(u,e,this.session)+"px"),this.$renderLine(y,u,u==f&&h),y.className=this.$useLineGroups()?"ace_line_group":"ace_line",l.push(m),u++}return l},t.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var n=e.firstRow,o=e.lastRow,l=this.$lines;l.getLength();)l.pop();l.push(this.$renderLinesFragment(e,n,o))},t.prototype.$renderToken=function(e,n,o,l){for(var m,u=this,h=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\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=this.dom.createFragment(this.element),y=0;m=h.exec(l);){var p=m[1],S=m[2],$=m[3],A=m[4],E=m[5];if(u.showSpaces||!S){var x=y!=m.index?l.slice(y,m.index):"";if(y=m.index+m[0].length,x&&f.appendChild(this.dom.createTextNode(x,this.element)),p){var b=u.session.getScreenTabSize(n+m.index),g=u.$tabStrings[b].cloneNode(!0);g.charCount=1,f.appendChild(g),n+=b-1}else S?u.showSpaces?((d=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",d.textContent=v.stringRepeat(u.SPACE_CHAR,S.length),f.appendChild(d)):f.appendChild(this.dom.createTextNode(S,this.element)):$?((d=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",d.textContent=v.stringRepeat(u.SPACE_CHAR,$.length),f.appendChild(d)):A?(n+=1,(d=this.dom.createElement("span")).style.width=2*u.config.characterWidth+"px",d.className=u.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",d.textContent=u.showSpaces?u.SPACE_CHAR:A,f.appendChild(d)):E&&(n+=1,(d=this.dom.createElement("span")).style.width=2*u.config.characterWidth+"px",d.className="ace_cjk",d.textContent=E,f.appendChild(d))}}if(f.appendChild(this.dom.createTextNode(y?l.slice(y):l,this.element)),r(o.type))e.appendChild(f);else{var k="ace_"+o.type.replace(/\./g," ace_"),d=this.dom.createElement("span");"fold"==o.type&&(d.style.width=o.value.length*this.config.characterWidth+"px",d.setAttribute("title",s("inline-fold.closed.title","Unfold code"))),d.className=k,d.appendChild(f),e.appendChild(d)}return n+l.length},t.prototype.renderIndentGuide=function(e,n,o){var l=n.search(this.$indentGuideRe);if(l<=0||l>=o)return n;if(" "==n[0]){for(var u=(l-=l%this.tabSize)/this.tabSize,h=0;h<u;h++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return this.$highlightIndentGuide(),n.substr(l)}if("\t"==n[0]){for(h=0;h<l;h++)e.appendChild(this.$tabStrings["\t"].cloneNode(!0));return this.$highlightIndentGuide(),n.substr(l)}return this.$highlightIndentGuide(),n},t.prototype.$highlightIndentGuide=function(){if(this.$highlightIndentGuides&&this.displayIndentGuides){this.$highlightIndentGuideMarker={indentLevel:void 0,start:void 0,end:void 0,dir:void 0};var e=this.session.doc.$lines;if(e){var n=this.session.selection.getCursor(),o=/^\s*/.exec(this.session.doc.getLine(n.row))[0].length,l=Math.floor(o/this.tabSize);if(this.$highlightIndentGuideMarker={indentLevel:l,start:n.row},this.session.$bracketHighlight)for(var h=this.session.$bracketHighlight.ranges,f=0;f<h.length;f++)if(n.row!==h[f].start.row){this.$highlightIndentGuideMarker.end=h[f].start.row+1,this.$highlightIndentGuideMarker.dir=n.row>h[f].start.row?-1:1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[n.row]&&n.column===e[n.row].length)for(this.$highlightIndentGuideMarker.dir=1,f=n.row+1;f<e.length;f++){var m=e[f],y=/^\s*/.exec(m)[0].length;if(""!==m&&(this.$highlightIndentGuideMarker.end=f,y<=o))break}this.$renderHighlightIndentGuide()}}},t.prototype.$clearActiveIndentGuide=function(){for(var e=this.element.querySelectorAll(".ace_indent-guide-active"),n=0;n<e.length;n++)e[n].classList.remove("ace_indent-guide-active")},t.prototype.$setIndentGuideActive=function(e,n){if(""!==this.session.doc.getLine(e.row)){var l=e.element;if(e.element.classList&&e.element.classList.contains("ace_line_group")){if(!(e.element.childNodes.length>0))return;l=e.element.childNodes[0]}var u=l.childNodes;if(u){var h=u[n-1];h&&h.classList&&h.classList.contains("ace_indent-guide")&&h.classList.add("ace_indent-guide-active")}}},t.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var e=this.$lines.cells;this.$clearActiveIndentGuide();var n=this.$highlightIndentGuideMarker.indentLevel;if(0!==n)if(1===this.$highlightIndentGuideMarker.dir)for(var o=0;o<e.length;o++){var l=e[o];if(this.$highlightIndentGuideMarker.end&&l.row>=this.$highlightIndentGuideMarker.start+1){if(l.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(l,n)}}else for(o=e.length-1;o>=0;o--)if(l=e[o],this.$highlightIndentGuideMarker.end&&l.row<this.$highlightIndentGuideMarker.start){if(l.row<this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(l,n)}}},t.prototype.$createLineElement=function(e){var n=this.dom.createElement("div");return n.className="ace_line",n.style.height=this.config.lineHeight+"px",n},t.prototype.$renderWrappedLine=function(e,n,o){var l=0,u=0,h=o[0],f=0,m=this.$createLineElement();e.appendChild(m);for(var y=0;y<n.length;y++){var p=n[y],S=p.value;if(0==y&&this.displayIndentGuides){if(l=S.length,!(S=this.renderIndentGuide(m,S,h)))continue;l-=S.length}if(l+S.length<h)f=this.$renderToken(m,f,p,S),l+=S.length;else{for(;l+S.length>=h;){f=this.$renderToken(m,f,p,S.substring(0,h-l)),S=S.substring(h-l),l=h,m=this.$createLineElement(),e.appendChild(m);var $=this.dom.createTextNode(v.stringRepeat("\xa0",o.indent),this.element);$.charCount=0,m.appendChild($),f=0,h=o[++u]||Number.MAX_VALUE}0!=S.length&&(l+=S.length,f=this.$renderToken(m,f,p,S))}}o[o.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(m,f,null,"",!0)},t.prototype.$renderSimpleLine=function(e,n){for(var o=0,l=0;l<n.length;l++){var u=n[l],h=u.value;if(0!=l||!this.displayIndentGuides||(h=this.renderIndentGuide(e,h))){if(o+h.length>this.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,o,u,h);o=this.$renderToken(e,o,u,h)}}},t.prototype.$renderOverflowMessage=function(e,n,o,l,u){o&&this.$renderToken(e,n,o,l.slice(0,this.MAX_LINE_LENGTH-n));var h=this.dom.createElement("span");h.className="ace_inline_button ace_keyword ace_toggle_wrap",h.textContent=u?"<hide>":"<click to see more...>",e.appendChild(h)},t.prototype.$renderLine=function(e,n,o){if(!o&&0!=o&&(o=this.session.getFoldLine(n)),o)var l=this.$getFoldLineTokens(n,o);else l=this.session.getTokens(n);var u=e;if(l.length){var h=this.session.getRowSplitData(n);h&&h.length?(this.$renderWrappedLine(e,l,h),u=e.lastChild):(u=e,this.$useLineGroups()&&(u=this.$createLineElement(),e.appendChild(u)),this.$renderSimpleLine(u,l))}else this.$useLineGroups()&&(u=this.$createLineElement(),e.appendChild(u));if(this.showEOL&&u){o&&(n=o.end.row);var f=this.dom.createElement("span");f.className="ace_invisible ace_invisible_eol",f.textContent=n==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,u.appendChild(f)}},t.prototype.$getFoldLineTokens=function(e,n){var o=this.session,l=[],h=o.getTokens(e);return n.walk(function(f,m,y,p,S){null!=f?l.push({type:"fold",value:f}):(S&&(h=o.getTokens(m)),h.length&&function u(f,m,y){for(var p=0,S=0;S+f[p].value.length<m;)if(S+=f[p].value.length,++p==f.length)return;for(S!=m&&(($=f[p].value.substring(m-S)).length>y-m&&($=$.substring(0,y-m)),l.push({type:f[p].type,value:$}),S=m+$.length,p+=1);S<y&&p<f.length;){var $;l.push(($=f[p].value).length+S>y?{type:f[p].type,value:$.substring(0,y-S)}:f[p]),S+=$.length,p+=1}}(h,p,y))},n.end.row,this.session.getLine(n.end.row).length),l},t.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},t}();i.prototype.EOF_CHAR="\xb6",i.prototype.EOL_CHAR_LF="\xac",i.prototype.EOL_CHAR_CRLF="\xa4",i.prototype.EOL_CHAR=i.prototype.EOL_CHAR_LF,i.prototype.TAB_CHAR="\u2014",i.prototype.SPACE_CHAR="\xb7",i.prototype.$padding=0,i.prototype.MAX_LINE_LENGTH=1e4,i.prototype.showInvisibles=!1,i.prototype.showSpaces=!1,i.prototype.showTabs=!1,i.prototype.showEOL=!1,i.prototype.displayIndentGuides=!0,i.prototype.$highlightIndentGuides=!0,i.prototype.$tabStrings=[],i.prototype.destroy={},i.prototype.onChangeTabSize=i.prototype.$computeTabString,_.implement(i.prototype,c),M.Text=i}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(w,M,F){"use strict";var _=w("../lib/dom"),C=function(){function v(a){this.element=_.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),_.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return v.prototype.$updateOpacity=function(a){for(var c=this.cursors,s=c.length;s--;)_.setStyle(c[s].style,"opacity",a?"":"0")},v.prototype.$startCssAnimation=function(){for(var a=this.cursors,c=a.length;c--;)a[c].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&_.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},v.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,_.removeCssClass(this.element,"ace_animate-blinking")},v.prototype.setPadding=function(a){this.$padding=a},v.prototype.setSession=function(a){this.session=a},v.prototype.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},v.prototype.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},v.prototype.setSmoothBlinking=function(a){a!=this.smoothBlinking&&(this.smoothBlinking=a,_.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.restartTimer())},v.prototype.addCursor=function(){var a=_.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},v.prototype.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},v.prototype.hideCursor=function(){this.isVisible=!1,_.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},v.prototype.showCursor=function(){this.isVisible=!0,_.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},v.prototype.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,_.removeCssClass(this.element,"ace_smooth-blinking")),a(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&_.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),_.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var c=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),c()},this.blinkInterval),c()}else this.$stopCssAnimation()},v.prototype.getPixelPosition=function(a,c){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var s=this.session.documentToScreenPosition(a);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(s.row,a.row)?this.session.$bidiHandler.getPosLeft(s.column):s.column*this.config.characterWidth),top:(s.row-(c?this.config.firstRowScreen:0))*this.config.lineHeight}},v.prototype.isCursorInView=function(a,c){return a.top>=0&&a.top<c.maxHeight},v.prototype.update=function(a){this.config=a;var c=this.session.$selectionMarkers,s=0,r=0;(void 0===c||0===c.length)&&(c=[{cursor:null}]),s=0;for(var i=c.length;s<i;s++){var t=this.getPixelPosition(c[s].cursor,!0);if(!((t.top>a.height+a.offset||t.top<0)&&s>1)){var e=this.cursors[r++]||this.addCursor(),n=e.style;this.drawCursor?this.drawCursor(e,t,a,c[s],this.session):this.isCursorInView(t,a)?(_.setStyle(n,"display","block"),_.translate(e,t.left,t.top),_.setStyle(n,"width",Math.round(a.characterWidth)+"px"),_.setStyle(n,"height",a.lineHeight+"px")):_.setStyle(n,"display","none")}}for(;this.cursors.length>r;)this.removeCursor();var o=this.session.getOverwrite();this.$setOverwrite(o),this.$pixelPos=t,this.restartTimer()},v.prototype.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?_.addCssClass(this.element,"ace_overwrite-cursors"):_.removeCssClass(this.element,"ace_overwrite-cursors"))},v.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},v}();C.prototype.$padding=0,C.prototype.drawCursor=null,M.Cursor=C}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(w,M,F){"use strict";var _=this&&this.__extends||function(){var e=function(n,o){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,u){l.__proto__=u}||function(l,u){for(var h in u)Object.prototype.hasOwnProperty.call(u,h)&&(l[h]=u[h])})(n,o)};return function(n,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function l(){this.constructor=n}e(n,o),n.prototype=null===o?Object.create(o):(l.prototype=o.prototype,new l)}}(),C=w("./lib/oop"),v=w("./lib/dom"),a=w("./lib/event"),c=w("./lib/event_emitter").EventEmitter,s=32768,r=function(){function e(n,o){this.element=v.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+o,this.inner=v.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\xa0",this.element.appendChild(this.inner),n.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(n){this.element.style.display=n?"":"none",this.isVisible=n,this.coeff=1},e}();C.implement(r.prototype,c);var i=function(e){function n(o,l){var u=e.call(this,o,"-v")||this;return u.scrollTop=0,u.scrollHeight=0,l.$scrollbarWidth=u.width=v.scrollbarWidth(o.ownerDocument),u.inner.style.width=u.element.style.width=(u.width||15)+5+"px",u.$minWidth=0,u}return _(n,e),n.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var o=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-o)/(this.coeff-o)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},n.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},n.prototype.setHeight=function(o){this.element.style.height=o+"px"},n.prototype.setScrollHeight=function(o){this.scrollHeight=o,o>s?(this.coeff=s/o,o=s):1!=this.coeff&&(this.coeff=1),this.inner.style.height=o+"px"},n.prototype.setScrollTop=function(o){this.scrollTop!=o&&(this.skipEvent=!0,this.scrollTop=o,this.element.scrollTop=o*this.coeff)},n}(r);i.prototype.setInnerHeight=i.prototype.setScrollHeight;var t=function(e){function n(o,l){var u=e.call(this,o,"-h")||this;return u.scrollLeft=0,u.height=l.$scrollbarWidth,u.inner.style.height=u.element.style.height=(u.height||15)+5+"px",u}return _(n,e),n.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},n.prototype.getHeight=function(){return this.isVisible?this.height:0},n.prototype.setWidth=function(o){this.element.style.width=o+"px"},n.prototype.setInnerWidth=function(o){this.inner.style.width=o+"px"},n.prototype.setScrollWidth=function(o){this.inner.style.width=o+"px"},n.prototype.setScrollLeft=function(o){this.scrollLeft!=o&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=o)},n}(r);M.ScrollBar=i,M.ScrollBarV=i,M.ScrollBarH=t,M.VScrollBar=i,M.HScrollBar=t}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(w,M,F){"use strict";var _=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,l){o.__proto__=l}||function(o,l){for(var u in l)Object.prototype.hasOwnProperty.call(l,u)&&(o[u]=l[u])})(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),C=w("./lib/oop"),v=w("./lib/dom"),a=w("./lib/event"),c=w("./lib/event_emitter").EventEmitter;v.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n  position: absolute;\n  background: rgba(128, 128, 128, 0.6);\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  border: 1px solid #bbb;\n  border-radius: 2px;\n  z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n  position: absolute;\n  z-index: 6;\n  background: none;\n  overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n  z-index: 6;\n  right: 0;\n  top: 0;\n  width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n  z-index: 8;\n  right: 0;\n  width: 100%;\n}\n.ace_editor>.ace_sb-h {\n  bottom: 0;\n  left: 0;\n  height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n  bottom: 0;\n  height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n  z-index: 8;\n  background: #000;\n}","ace_scrollbar.css",!1);var s=function(){function t(e,n){this.element=v.createElement("div"),this.element.className="ace_sb"+n,this.inner=v.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return t.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},t}();C.implement(s.prototype,c);var r=function(t){function e(n,o){var l=t.call(this,n,"-v")||this;return l.scrollTop=0,l.scrollHeight=0,l.parent=n,l.width=l.VScrollWidth,l.renderer=o,l.inner.style.width=l.element.style.width=(l.width||15)+"px",l.$minWidth=0,l}return _(e,t),e.prototype.onMouseDown=function(n,o){if("mousedown"===n&&0===a.getButton(o)&&2!==o.detail){if(o.target===this.inner){var l=this,u=o.clientY,m=o.clientY,y=this.thumbTop;a.capture(this.inner,function(A){u=A.clientY},function(){clearInterval(S)});var S=setInterval(function(){if(void 0!==u){var A=l.scrollTopFromThumbTop(y+u-m);A!==l.scrollTop&&l._emit("scroll",{data:A})}},20);return a.preventDefault(o)}var $=o.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop($)}),a.preventDefault(o)}},e.prototype.getHeight=function(){return this.height},e.prototype.scrollTopFromThumbTop=function(n){var o=n*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(o|=0)<0?o=0:o>this.pageHeight-this.viewHeight&&(o=this.pageHeight-this.viewHeight),o},e.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},e.prototype.setHeight=function(n){this.height=Math.max(0,n),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},e.prototype.setScrollHeight=function(n,o){this.pageHeight===n&&!o||(this.pageHeight=n,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},e.prototype.setScrollTop=function(n){this.scrollTop=n,n<0&&(n=0),this.thumbTop=n*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},e}(s);r.prototype.setInnerHeight=r.prototype.setScrollHeight;var i=function(t){function e(n,o){var l=t.call(this,n,"-h")||this;return l.scrollLeft=0,l.scrollWidth=0,l.height=l.HScrollHeight,l.inner.style.height=l.element.style.height=(l.height||12)+"px",l.renderer=o,l}return _(e,t),e.prototype.onMouseDown=function(n,o){if("mousedown"===n&&0===a.getButton(o)&&2!==o.detail){if(o.target===this.inner){var l=this,u=o.clientX,m=o.clientX,y=this.thumbLeft;a.capture(this.inner,function(A){u=A.clientX},function(){clearInterval(S)});var S=setInterval(function(){if(void 0!==u){var A=l.scrollLeftFromThumbLeft(y+u-m);A!==l.scrollLeft&&l._emit("scroll",{data:A})}},20);return a.preventDefault(o)}var $=o.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft($)}),a.preventDefault(o)}},e.prototype.getHeight=function(){return this.isVisible?this.height:0},e.prototype.scrollLeftFromThumbLeft=function(n){var o=n*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(o|=0)<0?o=0:o>this.pageWidth-this.viewWidth&&(o=this.pageWidth-this.viewWidth),o},e.prototype.setWidth=function(n){this.width=Math.max(0,n),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},e.prototype.setScrollWidth=function(n,o){this.pageWidth===n&&!o||(this.pageWidth=n,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},e.prototype.setScrollLeft=function(n){this.scrollLeft=n,n<0&&(n=0),this.thumbLeft=n*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},e}(s);i.prototype.setInnerWidth=i.prototype.setScrollWidth,M.ScrollBar=r,M.ScrollBarV=r,M.ScrollBarH=i,M.VScrollBar=r,M.HScrollBar=i}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(w,M,F){"use strict";var _=w("./lib/event"),C=function(){function v(a,c){this.onRender=a,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=c||window;var s=this;this._flush=function(r){s.pending=!1;var i=s.changes;if(i&&(_.blockIdle(100),s.changes=0,s.onRender(i)),s.changes){if(s.$recursionLimit--<0)return;s.schedule()}else s.$recursionLimit=2}}return v.prototype.schedule=function(a){this.changes=this.changes|a,this.changes&&!this.pending&&(_.nextFrame(this._flush),this.pending=!0)},v.prototype.clear=function(a){var c=this.changes;return this.changes=0,c},v}();M.RenderLoop=C}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(w,M,F){var _=w("../lib/oop"),C=w("../lib/dom"),v=w("../lib/lang"),a=w("../lib/event"),c=w("../lib/useragent"),s=w("../lib/event_emitter").EventEmitter,r=512,i="function"==typeof ResizeObserver,t=200,e=function(){function n(o){this.el=C.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=C.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=C.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),o.appendChild(this.el),this.$measureNode.textContent=v.stringRepeat("X",r),this.$characterSize={width:0,height:0},i?this.$addObserver():this.checkForSizeChanges()}return n.prototype.$setMeasureNodeStyles=function(o,l){o.width=o.height="auto",o.left=o.top="0px",o.visibility="hidden",o.position="absolute",o.whiteSpace="pre",c.isIE<8?o["font-family"]="inherit":o.font="inherit",o.overflow=l?"hidden":"visible"},n.prototype.checkForSizeChanges=function(o){if(void 0===o&&(o=this.$measureSizes()),o&&(this.$characterSize.width!==o.width||this.$characterSize.height!==o.height)){this.$measureNode.style.fontWeight="bold";var l=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=o,this.charSizes=Object.create(null),this.allowBoldFonts=l&&l.width===o.width&&l.height===o.height,this._emit("changeCharacterSize",{data:o})}},n.prototype.$addObserver=function(){var o=this;this.$observer=new window.ResizeObserver(function(l){o.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},n.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var o=this;return this.$pollSizeChangesTimer=a.onIdle(function l(){o.checkForSizeChanges(),a.onIdle(l,500)},500)},n.prototype.setPolling=function(o){o?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},n.prototype.$measureSizes=function(o){var l={height:(o||this.$measureNode).clientHeight,width:(o||this.$measureNode).clientWidth/r};return 0===l.width||0===l.height?null:l},n.prototype.$measureCharWidth=function(o){return this.$main.textContent=v.stringRepeat(o,r),this.$main.getBoundingClientRect().width/r},n.prototype.getCharacterWidth=function(o){var l=this.charSizes[o];return void 0===l&&(l=this.charSizes[o]=this.$measureCharWidth(o)/this.$characterSize.width),l},n.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},n.prototype.$getZoom=function(o){return o&&o.parentElement?(Number(window.getComputedStyle(o).zoom)||1)*this.$getZoom(o.parentElement):1},n.prototype.$initTransformMeasureNodes=function(){var o=function(l,u){return["div",{style:"position: absolute;top:"+l+"px;left:"+u+"px;"}]};this.els=C.buildDom([o(0,0),o(t,0),o(0,t),o(t,t)],this.el)},n.prototype.transformCoordinates=function(o,l){function h(I,O,N){var D=I[1]*O[0]-I[0]*O[1];return[(-O[1]*N[0]+O[0]*N[1])/D,(+I[1]*N[0]-I[0]*N[1])/D]}function f(I,O){return[I[0]-O[0],I[1]-O[1]]}function m(I,O){return[I[0]+O[0],I[1]+O[1]]}function y(I,O){return[I*O[0],I*O[1]]}function p(I){var O=I.getBoundingClientRect();return[O.left,O.top]}o&&(o=y(1/this.$getZoom(this.el),o)),this.els||this.$initTransformMeasureNodes();var S=p(this.els[0]),$=p(this.els[1]),A=p(this.els[2]),E=p(this.els[3]),x=h(f(E,$),f(E,A),f(m($,A),m(E,S))),b=y(1+x[0],f($,S)),g=y(1+x[1],f(A,S));if(l){var d=l,k=x[0]*d[0]/t+x[1]*d[1]/t+1,T=m(y(d[0],b),y(d[1],g));return m(y(1/k/t,T),S)}var L=f(o,S),R=h(f(b,y(x[0],L)),f(g,y(x[1],L)),L);return y(t,R)},n}();e.prototype.$characterSize={width:0,height:0},_.implement(e.prototype,s),M.FontMetrics=e}),ace.define("ace/css/editor-css",["require","exports","module"],function(w,M,F){F
vendor: 8,881 bytes, line 1
1.exports='\n.ace_br1 {border-top-left-radius    : 3px;}\n.ace_br2 {border-top-right-radius   : 3px;}\n.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}\n.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}\n.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}\n.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}\n.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}\n.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n    position: relative;\n    overflow: hidden;\n    padding: 0;\n    font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n    direction: ltr;\n    text-align: left;\n    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n    forced-color-adjust: none;\n}\n\n.ace_scroller {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    background-color: inherit;\n    -ms-user-select: none;\n    -moz-user-select: none;\n    -webkit-user-select: none;\n    user-select: none;\n    cursor: text;\n}\n\n.ace_content {\n    position: absolute;\n    box-sizing: border-box;\n    min-width: 100%;\n    contain: style size layout;\n    font-variant-ligatures: no-common-ligatures;\n}\n.ace_invisible {\n    font-variant-ligatures: none;\n}\n\n.ace_keyboard-focus:focus {\n    box-shadow: inset 0 0 0 2px #5E9ED6;\n    outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    content: \'\';\n    background: rgba(250, 250, 250, 0.01);\n    z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n    background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n    position: absolute;\n    overflow : hidden;\n    width: auto;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    cursor: default;\n    z-index: 4;\n    -ms-user-select: none;\n    -moz-user-select: none;\n    -webkit-user-select: none;\n    user-select: none;\n    contain: style size layout;\n}\n\n.ace_gutter-active-line {\n    position: absolute;\n    left: 0;\n    right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n    content: "";\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n    pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    padding-left: 19px;\n    padding-right: 6px;\n    background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n    margin-left: -14px;\n    float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n    margin-left: -19px;\n    float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold, .ace_gutter-cell.ace_security, .ace_icon.ace_security, .ace_icon.ace_security_fold {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n    background-repeat: no-repeat;\n    background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n    background-repeat: no-repeat;\n    background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info, .ace_gutter-cell.ace_hint, .ace_icon.ace_hint {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n    background-repeat: no-repeat;\n    background-position: 2px center;\n}\n\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info, .ace_dark .ace_gutter-cell.ace_hint, .ace_dark .ace_icon.ace_hint {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n    background-color: crimson;\n}\n.ace_icon_svg.ace_security {\n    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iZGFya29yYW5nZSIgZmlsbD0ibm9uZSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogICAgICAgIDxwYXRoIGNsYXNzPSJzdHJva2UtbGluZWpvaW4tcm91bmQiIGQ9Ik04IDE0LjgzMDdDOCAxNC44MzA3IDIgMTIuOTA0NyAyIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOEM3Ljk4OTk5IDEuMzQ5MTggMTAuNjkgMy4yNjU0OCAxNCAzLjI2NTQ4VjguMDg5OTJDMTQgMTIuOTA0NyA4IDE0LjgzMDcgOCAxNC44MzA3WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMy45OSA4LjA4OTkyVjMuMjY1NDhDMTAuNjggMy4yNjU0OCA4IDEuMzQ5MTggOCAxLjM0OTE4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggNFY5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggMTBWMTIiLz4KICAgIDwvZz4KPC9zdmc+");\n    background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n    background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGx
vendor: 20,212 bytes, line 1
1pbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n    background-color: royalblue;\n}\n.ace_icon_svg.ace_hint {\n    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0ic2lsdmVyIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTYgMTRIMTAiLz4KICAgICAgICA8cGF0aCBkPSJNOCAxMUg5QzkgOS40NzAwMiAxMiA4LjU0MDAyIDEyIDUuNzYwMDJDMTIuMDIgNC40MDAwMiAxMS4zOSAzLjM2MDAyIDEwLjQzIDIuNjcwMDJDOSAxLjY0MDAyIDcuMDAwMDEgMS42NDAwMiA1LjU3MDAxIDIuNjcwMDJDNC42MTAwMSAzLjM2MDAyIDMuOTggNC40MDAwMiA0IDUuNzYwMDJDNCA4LjU0MDAyIDcuMDAwMDEgOS40NzAwMiA3LjAwMDAxIDExSDhaIi8+CiAgICA8L2c+Cjwvc3ZnPg==");\n    background-color: silver;\n}\n\n.ace_icon_svg.ace_error_fold {\n    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n    background-color: crimson;\n}\n.ace_icon_svg.ace_security_fold {\n    -webkit-mask-image: url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTQiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTEwLjAwMDEgMTMuNjk5MkMxMC4wMDAxIDEzLjY5OTIgMTEuOTI0MSAxMy40NzYzIDEzIDEyLjY5OTJDMTQuNDEzOSAxMS42NzgxIDE2IDEwLjUgMTYuMTI1MSA2LjgxMTI2VjIuNTg5ODdDMTYuMTI1MSAyLjU0NzY4IDE2LjEyMjEgMi41MDYxOSAxNi4xMTY0IDIuNDY1NTlWMS43MTQ4NUgxNS4yNDE0TDE1LjIzMDcgMS43MTQ4NEwxNC42MjUxIDEuNjk5MjJWNi44MTEyM0MxNC42MjUxIDguNTEwNjEgMTQuNjI1MSA5LjQ2NDYxIDEyLjc4MjQgMTEuNzIxQzEyLjE1ODYgMTIuNDg0OCAxMC4wMDAxIDEzLjY5OTIgMTAuMDAwMSAxMy42OTkyWiIgZmlsbD0iY3JpbXNvbiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMzM2MDkgMC4zNjc0NzVDNy4wMzIxNCAwLjE1MjY1MiA2LjYyNTQ4IDAuMTUzNjE0IDYuMzIyNTMgMC4zNjk5OTdMNi4zMDg2OSAwLjM3OTU1NEM2LjI5NTUzIDAuMzg4NTg4IDYuMjczODggMC40MDMyNjYgNi4yNDQxNyAwLjQyMjc4OUM2LjE4NDcxIDAuNDYxODYgNi4wOTMyMSAwLjUyMDE3MSA1Ljk3MzEzIDAuNTkxMzczQzUuNzMyNTEgMC43MzQwNTkgNS4zNzk5IDAuOTI2ODY0IDQuOTQyNzkgMS4xMjAwOUM0LjA2MTQ0IDEuNTA5NyAyLjg3NTQxIDEuODgzNzcgMS41ODk4NCAxLjg4Mzc3SDAuNzE0ODQ0VjIuNzU4NzdWNi45ODAxNUMwLjcxNDg0NCA5LjQ5Mzc0IDIuMjg4NjYgMTEuMTk3MyAzLjcwMjU0IDEyLjIxODVDNC40MTg0NSAxMi43MzU1IDUuMTI4NzQgMTMuMTA1MyA1LjY1NzMzIDEzLjM0NTdDNS45MjI4NCAxMy40NjY0IDYuMTQ1NjYgMTMuNTU1OSA2LjMwNDY1IDEzLjYxNjFDNi4zODQyMyAxMy42NDYyIDYuNDQ4MDUgMTMuNjY5IDYuNDkzNDkgMTMuNjg0OEM2LjUxNjIyIDEzLjY5MjcgNi41MzQzOCAxMy42OTg5IDYuNTQ3NjQgMTMuNzAzM0w2LjU2MzgyIDEzLjcwODdMNi41NjkwOCAxMy43MTA0TDYuNTcwOTkgMTMuNzExTDYuODM5ODQgMTMuNzUzM0w2LjU3MjQyIDEzLjcxMTVDNi43NDYzMyAxMy43NjczIDYuOTMzMzUgMTMuNzY3MyA3LjEwNzI3IDEzLjcxMTVMNy4xMDg3IDEzLjcxMUw3LjExMDYxIDEzLjcxMDRMNy4xMTU4NyAxMy43MDg3TDcuMTMyMDUgMTMuNzAzM0M3LjE0NTMxIDEzLjY5ODkgNy4xNjM0NiAxMy42OTI3IDcuMTg2MTkgMTMuNjg0OEM3LjIzMTY0IDEzLjY2OSA3LjI5NTQ2IDEzLjY0NjIgNy4zNzUwMyAxMy42MTYxQzcuNTM0MDMgMTMuNTU1OSA3Ljc1Njg1IDEzLjQ2NjQgOC4wMjIzNiAxMy4zNDU3QzguNTUwOTUgMTMuMTA1MyA5LjI2MTIzIDEyLjczNTUgOS45NzcxNSAxMi4yMTg1QzExLjM5MSAxMS4xOTczIDEyLjk2NDggOS40OTM3NyAxMi45NjQ4IDYuOTgwMThWMi43NTg4QzEyLjk2NDggMi43MTY2IDEyLjk2MTkgMi42NzUxMSAxMi45NTYxIDIuNjM0NTFWMS44ODM3N0gxMi4wODExQzEyLjA3NzUgMS44ODM3NyAxMi4wNzQgMS44ODM3NyAxMi4wNzA0IDEuODgzNzdDMTAuNzk3OSAxLjg4MDA0IDkuNjE5NjIgMS41MTEwMiA4LjczODk0IDEuMTI0ODZDOC43MzUzNCAxLjEyMzI3IDguNzMxNzQgMS4xMjE2OCA4LjcyODE0IDEuMTIwMDlDOC4yOTEwMyAwLjkyNjg2NCA3LjkzODQyIDAuNzM0MDU5IDcuNjk3NzkgMC41OTEzNzNDNy41Nzc3MiAwLjUyMDE3MSA3LjQ4NjIyIDAuNDYxODYgNy40MjY3NiAwLjQyMjc4OUM3LjM5NzA1IDAuNDAzMjY2IDcuMzc1MzkgMC4zODg1ODggNy4zNjIyNCAwLjM3OTU1NEw3LjM0ODk2IDAuMzcwMzVDNy4zNDg5NiAwLjM3MDM1IDcuMzQ4NDcgMC4zNzAwMiA3LjM0NTYzIDAuMzc0MDU0TDcuMzM3NzkgMC4zNjg2NTlMNy4zMzYwOSAwLjM2NzQ3NVpNOC4wMzQ3MSAyLjcyNjkxQzguODYwNCAzLjA5MDYzIDkuOTYwNjYgMy40NjMwOSAxMS4yMDYxIDMuNTg5MDdWNi45ODAxNUgxMS4yMTQ4QzExLjIxNDggOC42Nzk1MyAxMC4xNjM3IDkuOTI1MDcgOC45NTI1NCAxMC43OTk4QzguMzU1OTUgMTEuMjMwNiA3Ljc1Mzc0IDExLjU0NTQgNy4yOTc5NiAxMS43NTI3QzcuMTE2NzEgMTEuODM1MSA2Ljk2MDYyIDExLjg5OTYgNi44Mzk4NCAxMS45NDY5QzYuNzE5MDYgMTEuODk5NiA2LjU2Mjk3IDExLjgzNTEgNi4zODE3MyAxMS43NTI3QzUuOTI1OTUgMTEuNTQ1NCA1LjMyMzczIDExLjIzMDYgNC43MjcxNSAxMC43OTk4QzMuNTE2MDMgOS45MjUwNyAyLjQ2NDg0IDguNjc5NTUgMi40NjQ4NCA2Ljk4MDE4VjMuNTg5MDlDMy43MTczOCAzLjQ2MjM5IDQuODIzMDggMy4wODYzOSA1LjY1MDMzIDIuNzIwNzFDNi4xNDIyOCAyLjUwMzI0IDYuNTQ0ODUgMi4yODUzNyA2LjgzMjU0IDIuMTE2MjRDNy4xMjE4MSAyLjI4NTM1IDcuNTI3IDIuNTAzNTIgOC4wMjE5NiAyLjcyMTMxQzguMDI2MiAyLjcyMzE3IDguMDMwNDUgMi43MjUwNCA4LjAzNDcxIDIuNzI2OTFaTTUuOTY0ODQgMy40MDE0N1Y3Ljc3NjQ3SDcuNzE0ODRWMy40MDE0N0g1Ljk2NDg0Wk01Ljk2NDg0IDEwLjQwMTVWOC42NTE0N0g3LjcxNDg0VjEwLjQwMTVINS45NjQ4NFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n    background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n    background-color: darkorange;\n}\n\n.ace_scrollbar {\n    contain: strict;\n    position: absolute;\n    right: 0;\n    bottom: 0;\n    z-index: 6;\n}\n\n.ace_scrollbar-inner {\n    position: absolute;\n    cursor: text;\n    left: 0;\n    top: 0;\n}\n\n.ace_scrollbar-v{\n    overflow-x: hidden;\n    overflow-y: scroll;\n    top: 0;\n}\n\n.ace_scrollbar-h {\n    overflow-x: scroll;\n    overflow-y: hidden;\n    left: 0;\n}\n\n.ace_print-margin {\n    position: absolute;\n    height: 100%;\n}\n\n.ace_text-input {\n    position: absolute;\n    z-index: 0;\n    width: 0.5em;\n    height: 1em;\n    opacity: 0;\n    background: transparent;\n    -moz-appearance: none;\n    appearance: none;\n    border: none;\n    resize: none;\n    outline: none;\n    overflow: hidden;\n    font: inherit;\n    padding: 0 1px;\n    margin: 0 -1px;\n    contain: strict;\n    -ms-user-select: text;\n    -moz-user-select: text;\n    -webkit-user-select: text;\n    user-select: text;\n    /*with `pre-line` chrome inserts &nbsp; instead of space*/\n    white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n    background: transparent;\n    color: inherit;\n    z-index: 1000;\n    opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n    border-bottom: 1px solid;\n    position: absolute;\n    border-radius: 0;\n    margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n    transform: none!important;\n    filter: none!important;\n    clip-path: none!important;\n    mask : none!important;\n    contain: none!important;\n    perspective: none!important;\n    mix-blend-mode: initial!important;\n    z-index: auto;\n}\n\n.ace_layer {\n    z-index: 1;\n    position: absolute;\n    overflow: hidden;\n    /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n    word-wrap: normal;\n    white-space: pre;\n    height: 100%;\n    width: 100%;\n    box-sizing: border-box;\n    /* setting pointer-events: auto; on node under the mouse, which changes\n        during scroll, will break mouse wheel scrolling in Safari */\n    pointer-events: none;\n}\n\n.ace_gutter-layer {\n    position: relative;\n    width: auto;\n    text-align: right;\n    pointer-events: auto;\n    height: 1000000px;\n    contain: style size layout;\n}\n\n.ace_text-layer {\n    font: inherit !important;\n    position: absolute;\n    height: 1000000px;\n    width: 1000000px;\n    contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n    contain: style size layout;\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n    contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n    contain: strict;\n}\n\n.ace_cjk {\n    display: inline-block;\n    text-align: center;\n}\n\n.ace_cursor-layer {\n    z-index: 4;\n}\n\n.ace_cursor {\n    z-index: 4;\n    position: absolute;\n    box-sizing: border-box;\n    border-left: 2px solid;\n    /* workaround for smooth cursor repaintng whole screen in chrome */\n    transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n    border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n    border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n    border-left-width: 0;\n    border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n    opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n    opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n    transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n    animation-duration: 1000ms;\n    animation-timing-function: step-end;\n    animation-name: blink-ace-animate;\n    animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n    animation-duration: 1000ms;\n    animation-timing-function: ease-in-out;\n    animation-name: blink-ace-animate-smooth;\n}\n    \n@keyframes blink-ace-animate {\n    from, to { opacity: 1; }\n    60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n    from, to { opacity: 1; }\n    45% { opacity: 1; }\n    60% { opacity: 0; }\n    85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n    position: absolute;\n    z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n    position: absolute;\n    z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n    position: absolute;\n    z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n    position: absolute;\n    border-bottom: 1px solid #DE5555;\n    border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n    position: absolute;\n    z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n    position: absolute;\n    z-index: 4;\n    box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n    box-sizing: border-box;\n\n    display: inline-block;\n    height: 11px;\n    margin-top: -2px;\n    vertical-align: middle;\n\n    background-image:\n        url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n        url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n    background-repeat: no-repeat, repeat-x;\n    background-position: center center, top left;\n    color: transparent;\n\n    border: 1px solid black;\n    border-radius: 2px;\n\n    cursor: pointer;\n    pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n    background-image:\n        url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n        url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n    background-color: #f5f5f5;\n    border: 1px solid gray;\n    border-radius: 1px;\n    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n    color: black;\n    padding: 3px 4px;\n    position: fixed;\n    z-index: 999999;\n    box-sizing: border-box;\n    cursor: default;\n    white-space: pre-wrap;\n    word-wrap: break-word;\n    line-height: normal;\n    font-style: normal;\n    font-weight: normal;\n    letter-spacing: normal;\n    pointer-events: none;\n    overflow: auto;\n    max-width: min(33em, 66vw);\n    overscroll-behavior: contain;\n}\n.ace_tooltip pre {\n    white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n    background-color: #636363;\n    color: #fff;\n}\n\n.ace_tooltip:focus {\n    outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n    display: inline-block;\n    width: 18px;\n    vertical-align: top;\n}\n\n.ace_icon_svg {\n    display: inline-block;\n    width: 12px;\n    vertical-align: top;\n    -webkit-mask-repeat: no-repeat;\n    -webkit-mask-size: 12px;\n    -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n    padding-right: 13px;\n}\n\n.ace_fold-widget, .ace_custom-widget {\n    box-sizing: border-box;\n\n    margin: 0 -12px 0 1px;\n    display: none;\n    width: 11px;\n    vertical-align: top;\n\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n    background-repeat: no-repeat;\n    background-position: center;\n\n    border-radius: 3px;\n    \n    border: 1px solid transparent;\n    cursor: pointer;\n    pointer-events: auto;\n}\n\n.ace_custom-widget {\n    background: none;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n    display: inline-block;   \n}\n\n.ace_fold-widget.ace_end {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n    border: 1px solid rgba(0, 0, 0, 0.3);\n    background-color: rgba(255, 255, 255, 0.2);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n    border: 1px solid rgba(0, 0, 0, 0.4);\n    background-color: rgba(0, 0, 0, 0.05);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n    border: 1px solid lightgray;\n    display: inline-block;\n    margin: -1px 8px;\n    padding: 0 5px;\n    pointer-events: auto;\n    cursor: pointer;\n}\n.ace_inline_button:hover {\n    border-color: gray;\n    background: rgba(200,200,200,0.2);\n    display: inline-block;\n    pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n    background-color: #FFB4B4;\n    border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n    transition: opacity 0.4s ease 0.05s;\n    opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n    transition: opacity 0.05s ease 0.05s;\n    opacity:1;\n}\n\n.ace_underline {\n    text-decoration: underline;\n}\n\n.ace_bold {\n    font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n    font-weight: normal;\n}\n\n.ace_italic {\n    font-style: italic;\n}\n\n\n.ace_error-marker {\n    background-color: rgba(255, 0, 0,0.2);\n    position: absolute;\n    z-index: 9;\n}\n\n.ace_highlight-marker {\n    background-color: rgba(255, 255, 0,0.2);\n    position: absolute;\n    z-index: 8;\n}\n\n.ace_mobile-menu {\n    position: absolute;\n    line-height: 1.5;\n    border-radius: 4px;\n    -ms-user-select: none;\n    -moz-user-select: none;\n    -webkit-user-select: none;\n    user-select: none;\n    background: white;\n    box-shadow: 1px 3px 2px grey;\n    border: 1px solid #dcdcdc;\n    color: black;\n}\n.ace_dark > .ace_mobile-menu {\n    background: #333;\n    color: #ccc;\n    box-shadow: 1px 3px 2px grey;\n    border: 1px solid #444;\n\n}\n.ace_mobile-button {\n    padding: 2px;\n    cursor: pointer;\n    overflow: hidden;\n}\n.ace_mobile-button:hover {\n    background-color: #eee;\n    opacity:1;\n}\n.ace_mobile-button:active {\n    background-color: #ddd;\n}\n\n.ace_placeholder {\n    position: relative;\n    font-family: arial;\n    transform: scale(0.9);\n    transform-origin: left;\n    white-space: pre;\n    opacity: 0.7;\n    margin: 0 10px;\n    z-index: 1;\n}\n\n.ace_ghost_text {\n    opacity: 0.5;\n    font-style: italic;\n}\n\n.ace_ghost_text_container > div {\n    white-space: pre;\n}\n\n.ghost_text_line_wrapped::after {\n    content: "\u21a9";\n    position: absolute;\n}\n\n.ace_lineWidgetContainer.ace_ghost_text {\n    margin: 0px 4px\n}\n\n.ace_screenreader-only {\n    position:absolute;\n    left:-10000px;\n    top:auto;\n    width:1px;\n    height:1px;\n    overflow:hidden;\n}\n\n.ace_hidden_token {\n    display: none;\n}'}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(
vendor: 72,082 bytes, line 1
1w,M,F){"use strict";var _=w("../lib/dom"),C=w("../lib/oop"),v=w("../lib/event_emitter").EventEmitter,a=function(){function c(s,r){this.renderer=r,this.pixelRatio=1,this.maxHeight=r.layerConfig.maxHeight,this.lineHeight=r.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},this.setScrollBarV(s)}return c.prototype.$createCanvas=function(){this.canvas=_.createElement("canvas"),this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7",this.canvas.style.position="absolute"},c.prototype.setScrollBarV=function(s){this.$createCanvas(),this.scrollbarV=s,s.element.appendChild(this.canvas),this.setDimensions()},c.prototype.$updateDecorators=function(s){if("function"==typeof this.canvas.getContext){var r=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;this.setDimensions(s);var i=this.canvas.getContext("2d"),e=this.renderer.session.$annotations;if(i.clearRect(0,0,this.canvas.width,this.canvas.height),e){var n={info:1,warning:2,error:3};e.forEach(function(b){b.priority=n[b.type]||null}),e=e.sort(function t(b,g){return b.priority<g.priority?-1:b.priority>g.priority?1:0});for(var o=0;o<e.length;o++){var u=this.getVerticalOffsetForRow(e[o].row),h=u+this.lineHeight,f=Math.round(this.heightRatio*u),m=Math.round(this.heightRatio*h),y=Math.round((f+m)/2),p=m-y;p<this.halfMinDecorationHeight&&(p=this.halfMinDecorationHeight),y-p<0&&(y=p),y+p>this.canvasHeight&&(y=this.canvasHeight-p);var S=y-p,A=y+p-S;i.fillStyle=r[e[o].type]||null,i.fillRect(0,S,Math.round(this.oneZoneWidth-1),A)}}var E=this.renderer.session.selection.getCursor();if(E){var x=Math.round(this.getVerticalOffsetForRow(E.row)*this.heightRatio);i.fillStyle="rgba(0, 0, 0, 0.5)",i.fillRect(0,x,this.canvasWidth,2)}}},c.prototype.getVerticalOffsetForRow=function(s){return this.renderer.session.documentToScreenRow(s|=0,0)*this.lineHeight},c.prototype.setDimensions=function(s){this.maxHeight=(s=s||this.renderer.layerConfig).maxHeight,this.lineHeight=s.lineHeight,this.canvasHeight=s.height,this.canvasWidth=this.scrollbarV.width||this.canvasWidth,this.setZoneWidth(),this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.heightRatio=this.maxHeight<this.canvasHeight?1:this.canvasHeight/this.maxHeight},c.prototype.setZoneWidth=function(){this.oneZoneWidth=this.canvasWidth},c.prototype.destroy=function(){this.canvas.parentNode.removeChild(this.canvas)},c}();C.implement(a.prototype,v),M.Decorator=a}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent","ace/layer/text_util"],function(w,M,F){"use strict";var _=w("./lib/oop"),C=w("./lib/dom"),v=w("./lib/lang"),a=w("./config"),c=w("./layer/gutter").Gutter,s=w("./layer/marker").Marker,r=w("./layer/text").Text,i=w("./layer/cursor").Cursor,t=w("./scrollbar").HScrollBar,e=w("./scrollbar").VScrollBar,n=w("./scrollbar_custom").HScrollBar,o=w("./scrollbar_custom").VScrollBar,l=w("./renderloop").RenderLoop,u=w("./layer/font_metrics").FontMetrics,h=w("./lib/event_emitter").EventEmitter,f=w("./css/editor-css"),m=w("./layer/decorators").Decorator,y=w("./lib/useragent"),p=w("./layer/text_util").isTextToken;C.importCssString(f,"ace_editor.css",!1);var S=function(){function $(A,E){var x=this;this.container=A||C.createElement("div"),C.addCssClass(this.container,"ace_editor"),C.HI_DPI&&C.addCssClass(this.container,"ace_hidpi"),this.setTheme(E),null==a.get("useStrictCSP")&&a.set("useStrictCSP",!1),this.$gutter=C.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden","true"),this.scroller=C.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=C.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new c(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new s(this.content);var b=this.$textLayer=new r(this.content);this.canvas=b.element,this.$markerFront=new s(this.content),this.$cursorLayer=new i(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new e(this.container,this),this.scrollBarH=new t(this.container,this),this.scrollBarV.on("scroll",function(g){x.$scrollAnimation||x.session.setScrollTop(g.data-x.scrollMargin.top)}),this.scrollBarH.on("scroll",function(g){x.$scrollAnimation||x.session.setScrollLeft(g.data-x.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new u(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(g){x.updateCharacterSize(),x.onResize(!0,x.gutterWidth,x.$size.width,x.$size.height),x._signal("changeCharacterSize",g)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!y.isIOS,this.$loop=new l(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),a.resetOptions(this),a._signal("renderer",this)}return $.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),C.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},$.prototype.setSession=function(A){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=A,A&&this.scrollMargin.top&&A.getScrollTop()<=0&&A.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(A),this.$markerBack.setSession(A),this.$markerFront.setSession(A),this.$gutterLayer.setSession(A),this.$textLayer.setSession(A),A&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},$.prototype.updateLines=function(A,E,x){if(void 0===E&&(E=1/0),this.$changedLines?(this.$changedLines.firstRow>A&&(this.$changedLines.firstRow=A),this.$changedLines.lastRow<E&&(this.$changedLines.lastRow=E)):this.$changedLines={firstRow:A,lastRow:E},this.$changedLines.lastRow<this.layerConfig.firstRow){if(!x)return;this.$changedLines.lastRow=this.layerConfig.lastRow}this.$changedLines.firstRow>this.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},$.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},$.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},$.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},$.prototype.updateFull=function(A){A?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},$.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},$.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},$.prototype.onResize=function(A,E,x,b){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=A?1:0;var g=this.container;b||(b=g.clientHeight||g.scrollHeight),!b&&this.$maxLines&&this.lineHeight>1&&(!g.style.height||"0px"==g.style.height)&&(g.style.height="1px",b=g.clientHeight||g.scrollHeight),x||(x=g.clientWidth||g.scrollWidth);var d=this.$updateCachedSize(A,E,x,b);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!x&&!b)return this.resizing=0;A&&(this.$gutterLayer.$padding=null),A?this.$renderChanges(d|this.$changes,!0):this.$loop.schedule(d|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},$.prototype.$updateCachedSize=function(A,E,x,b){var g=0,d=this.$size,k={width:d.width,height:d.height,scrollerHeight:d.scrollerHeight,scrollerWidth:d.scrollerWidth};if((b-=this.$extraHeight||0)&&(A||d.height!=b)&&(d.height=b,g|=this.CHANGE_SIZE,d.scrollerHeight=d.height,this.$horizScroll&&(d.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(d.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",g|=this.CHANGE_SCROLL),x&&(A||d.width!=x)){g|=this.CHANGE_SIZE,d.width=x,null==E&&(E=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=E,C.setStyle(this.scrollBarH.element.style,"left",E+"px"),C.setStyle(this.scroller.style,"left",E+this.margin.left+"px"),d.scrollerWidth=Math.max(0,x-E-this.scrollBarV.getWidth()-this.margin.h),C.setStyle(this.$gutter.style,"left",this.margin.left+"px");var T=this.scrollBarV.getWidth()+"px";C.setStyle(this.scrollBarH.element.style,"right",T),C.setStyle(this.scroller.style,"right",T),C.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(d.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||A)&&(g|=this.CHANGE_FULL)}return d.$dirty=!x||!b,g&&this._signal("resize",k),g},$.prototype.onGutterResize=function(A){var E=this.$showGutter?A:0;E!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,E,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},$.prototype.adjustWrapLimit=function(){var E=Math.floor((this.$size.scrollerWidth-2*this.$padding)/this.characterWidth);return this.session.adjustWrapLimit(E,this.$showPrintMargin&&this.$printMarginColumn)},$.prototype.setAnimatedScroll=function(A){this.setOption("animatedScroll",A)},$.prototype.getAnimatedScroll=function(){return this.$animatedScroll},$.prototype.setShowInvisibles=function(A){this.setOption("showInvisibles",A),this.session.$bidiHandler.setShowInvisibles(A)},$.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},$.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},$.prototype.setDisplayIndentGuides=function(A){this.setOption("displayIndentGuides",A)},$.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},$.prototype.setHighlightIndentGuides=function(A){this.setOption("highlightIndentGuides",A)},$.prototype.setShowPrintMargin=function(A){this.setOption("showPrintMargin",A)},$.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},$.prototype.setPrintMarginColumn=function(A){this.setOption("printMarginColumn",A)},$.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},$.prototype.getShowGutter=function(){return this.getOption("showGutter")},$.prototype.setShowGutter=function(A){return this.setOption("showGutter",A)},$.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},$.prototype.setFadeFoldWidgets=function(A){this.setOption("fadeFoldWidgets",A)},$.prototype.setHighlightGutterLine=function(A){this.setOption("highlightGutterLine",A)},$.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},$.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var A=C.createElement("div");A.className="ace_layer ace_print-margin-layer",this.$printMarginEl=C.createElement("div"),this.$printMarginEl.className="ace_print-margin",A.appendChild(this.$printMarginEl),this.content.insertBefore(A,this.content.firstChild)}var E=this.$printMarginEl.style;E.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",E.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},$.prototype.getContainerElement=function(){return this.container},$.prototype.getMouseEventTarget=function(){return this.scroller},$.prototype.getTextAreaContainer=function(){return this.container},$.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var A=this.textarea.style,E=this.$composition;if(!this.$keepTextAreaAtCursor&&!E)return void C.translate(this.textarea,-100,0);var x=this.$cursorLayer.$pixelPos;if(x){E&&E.markerRange&&(x=this.$cursorLayer.getPixelPosition(E.markerRange.start,!0));var b=this.layerConfig,g=x.top,d=x.left,k=E&&E.useTextareaForIME||y.isMobile?this.lineHeight:1;if((g-=b.offset)<0||g>b.height-k)return void C.translate(this.textarea,0,0);var T=1,L=this.$size.height-k;E?E.useTextareaForIME?T=this.characterWidth*this.session.$getStringScreenWidth(this.textarea.value)[0]:g+=this.lineHeight+2:g+=this.lineHeight,(d-=this.scrollLeft)>this.$size.scrollerWidth-T&&(d=this.$size.scrollerWidth-T),d+=this.gutterWidth+this.margin.left,C.setStyle(A,"height",k+"px"),C.setStyle(A,"width",T+"px"),C.translate(this.textarea,Math.min(d,this.$size.scrollerWidth-T),Math.min(g,L))}}},$.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},$.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},$.prototype.getLastFullyVisibleRow=function(){var A=this.layerConfig,E=A.lastRow;return this.session.documentToScreenRow(E,0)*A.lineHeight-this.session.getScrollTop()>A.height-A.lineHeight?E-1:E},$.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},$.prototype.setPadding=function(A){this.$padding=A,this.$textLayer.setPadding(A),this.$cursorLayer.setPadding(A),this.$markerFront.setPadding(A),this.$markerBack.setPadding(A),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},$.prototype.setScrollMargin=function(A,E,x,b){var g=this.scrollMargin;g.top=0|A,g.bottom=0|E,g.right=0|b,g.left=0|x,g.v=g.top+g.bottom,g.h=g.left+g.right,g.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-g.top),this.updateFull()},$.prototype.setMargin=function(A,E,x,b){var g=this.margin;g.top=0|A,g.bottom=0|E,g.right=0|b,g.left=0|x,g.v=g.top+g.bottom,g.h=g.left+g.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},$.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},$.prototype.setHScrollBarAlwaysVisible=function(A){this.setOption("hScrollBarAlwaysVisible",A)},$.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},$.prototype.setVScrollBarAlwaysVisible=function(A){this.setOption("vScrollBarAlwaysVisible",A)},$.prototype.$updateScrollBarV=function(){var A=this.layerConfig.maxHeight,E=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&this.scrollTop>(A-=(E-this.lineHeight)*this.$scrollPastEnd)-E&&(A=this.scrollTop+E,this.scrollBarV.scrollTop=null),this.scrollBarV.setScrollHeight(A+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},$.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},$.prototype.freeze=function(){this.$frozen=!0},$.prototype.unfreeze=function(){this.$frozen=!1},$.prototype.$renderChanges=function(A,E){if(this.$changes&&(A|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(A||E)){if(this.$size.$dirty)return this.$changes|=A,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",A),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var x=this.layerConfig;if(A&this.CHANGE_FULL||A&this.CHANGE_SIZE||A&this.CHANGE_TEXT||A&this.CHANGE_LINES||A&this.CHANGE_SCROLL||A&this.CHANGE_H_SCROLL){if(A|=this.$computeLayerConfig()|this.$loop.clear(),x.firstRow!=this.layerConfig.firstRow&&x.firstRowScreen==this.layerConfig.firstRowScreen){var b=this.scrollTop+(x.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;b>0&&(this.scrollTop=b,A|=this.CHANGE_SCROLL,A|=this.$computeLayerConfig()|this.$loop.clear())}x=this.layerConfig,this.$updateScrollBarV(),A&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),C.translate(this.content,-this.scrollLeft,-x.offset);var d=x.minHeight+"px";C.setStyle(this.content.style,"width",x.width+2*this.$padding+"px"),C.setStyle(this.content.style,"height",d)}return A&this.CHANGE_H_SCROLL&&(C.translate(this.content,-this.scrollLeft,-x.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),A&this.CHANGE_FULL?(this.$changedLines=null,this.$textLayer.update(x),this.$showGutter&&this.$gutterLayer.update(x),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(x),this.$markerBack.update(x),this.$markerFront.update(x),this.$cursorLayer.update(x),this.$moveTextAreaToCursor(),void this._signal("afterRender",A)):A&this.CHANGE_SCROLL?(this.$changedLines=null,A&this.CHANGE_TEXT||A&this.CHANGE_LINES?this.$textLayer.update(x):this.$textLayer.scrollLines(x),this.$showGutter&&(A&this.CHANGE_GUTTER||A&this.CHANGE_LINES?this.$gutterLayer.update(x):this.$gutterLayer.scrollLines(x)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(x),this.$markerBack.update(x),this.$markerFront.update(x),this.$cursorLayer.update(x),this.$moveTextAreaToCursor(),void this._signal("afterRender",A)):(A&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(x),this.$showGutter&&this.$gutterLayer.update(x),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(x)):A&this.CHANGE_LINES?((this.$updateLines()||A&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(x),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(x)):A&this.CHANGE_TEXT||A&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(x),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(x)):A&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(x),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(x)),A&this.CHANGE_CURSOR&&(this.$cursorLayer.update(x),this.$moveTextAreaToCursor()),A&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(x),A&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(x),void this._signal("afterRender",A))}this.$changes|=A},$.prototype.$autosize=function(){var A=this.session.getScreenLength()*this.lineHeight,E=this.$maxLines*this.lineHeight,x=Math.min(E,Math.max((this.$minLines||1)*this.lineHeight,A))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(x+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&x>this.$maxPixelHeight&&(x=this.$maxPixelHeight);var g=!(x<=2*this.lineHeight)&&A>E;if(x!=this.desiredHeight||this.$size.height!=this.desiredHeight||g!=this.$vScroll){g!=this.$vScroll&&(this.$vScroll=g,this.scrollBarV.setVisible(g));var d=this.container.clientWidth;this.container.style.height=x+"px",this.$updateCachedSize(!0,this.$gutterWidth,d,x),this.desiredHeight=x,this._signal("autosize")}},$.prototype.$computeLayerConfig=function(){var A=this.session,E=this.$size,x=E.height<=2*this.lineHeight,g=this.session.getScreenLength()*this.lineHeight,d=this.$getLongestLine(),k=!x&&(this.$hScrollBarAlwaysVisible||E.scrollerWidth-d-2*this.$padding<0),T=this.$horizScroll!==k;T&&(this.$horizScroll=k,this.scrollBarH.setVisible(k));var L=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),x=E.height<=2*this.lineHeight);var R=E.scrollerHeight+this.lineHeight,I=!this.$maxLines&&this.$scrollPastEnd?(E.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;g+=I;var O=this.scrollMargin;this.session.setScrollTop(Math.max(-O.top,Math.min(this.scrollTop,g-E.scrollerHeight+O.bottom))),this.session.setScrollLeft(Math.max(-O.left,Math.min(this.scrollLeft,d+2*this.$padding-E.scrollerWidth+O.right)));var N=!x&&(this.$vScrollBarAlwaysVisible||E.scrollerHeight-g+I<0||this.scrollTop>O.top),D=L!==N;D&&(this.$vScroll=N,this.scrollBarV.setVisible(N));var U,j,B=this.scrollTop%this.lineHeight,W=Math.ceil(R/this.lineHeight)-1,z=Math.max(0,Math.round((this.scrollTop-B)/this.lineHeight)),H=z+W,P=this.lineHeight;z=A.screenToDocumentRow(z,0);var K=A.getFoldLine(z);K&&(z=K.start.row),U=A.documentToScreenRow(z,0),j=A.getRowLength(z)*P,H=Math.min(A.screenToDocumentRow(H,0),A.getLength()-1),R=E.scrollerHeight+A.getRowLength(H)*P+j,(B=this.scrollTop-U*P)<0&&U>0&&(U=Math.max(0,U+Math.floor(B/P)),B=this.scrollTop-U*P);var V=0;return(this.layerConfig.width!=d||T)&&(V=this.CHANGE_H_SCROLL),(T||D)&&(V|=this.$updateCachedSize(!0,this.gutterWidth,E.width,E.height),this._signal("scrollbarVisibilityChanged"),D&&(d=this.$getLongestLine())),this.layerConfig={width:d,padding:this.$padding,firstRow:z,firstRowScreen:U,lastRow:H,lineHeight:P,characterWidth:this.characterWidth,minHeight:R,maxHeight:g,offset:B,gutterOffset:P?Math.max(0,Math.ceil((B+E.height-E.scrollerHeight)/P)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(d-this.$padding),V},$.prototype.$updateLines=function(){if(this.$changedLines){var A=this.$changedLines.firstRow,E=this.$changedLines.lastRow;this.$changedLines=null;var x=this.layerConfig;if(!(A>x.lastRow+1||E<x.firstRow))return E===1/0?(this.$showGutter&&this.$gutterLayer.update(x),void this.$textLayer.update(x)):(this.$textLayer.updateLines(x,A,E),!0)}},$.prototype.$getLongestLine=function(){var A=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(A+=1),this.$textLayer&&A>this.$textLayer.MAX_LINE_LENGTH&&(A=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(A*this.characterWidth))},$.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},$.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},$.prototype.addGutterDecoration=function(A,E){this.$gutterLayer.addGutterDecoration(A,E)},$.prototype.removeGutterDecoration=function(A,E){this.$gutterLayer.removeGutterDecoration(A,E)},$.prototype.updateBreakpoints=function(A){this._rows=A,this.$loop.schedule(this.CHANGE_GUTTER)},$.prototype.setAnnotations=function(A){this.$gutterLayer.setAnnotations(A),this.$loop.schedule(this.CHANGE_GUTTER)},$.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},$.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},$.prototype.showCursor=function(){this.$cursorLayer.showCursor()},$.prototype.scrollSelectionIntoView=function(A,E,x){this.scrollCursorIntoView(A,x),this.scrollCursorIntoView(E,x)},$.prototype.scrollCursorIntoView=function(A,E,x){if(0!==this.$size.scrollerHeight){var b=this.$cursorLayer.getPixelPosition(A),g=b.left,d=b.top,k=x&&x.top||0,T=x&&x.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var L=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;L+k>d?(E&&L+k>d+this.lineHeight&&(d-=E*this.$size.scrollerHeight),0===d&&(d=-this.scrollMargin.top),this.session.setScrollTop(d)):L+this.$size.scrollerHeight-T<d+this.lineHeight&&(E&&L+this.$size.scrollerHeight-T<d-this.lineHeight&&(d+=E*this.$size.scrollerHeight),this.session.setScrollTop(d+this.lineHeight+T-this.$size.scrollerHeight));var R=this.scrollLeft,I=2*this.layerConfig.characterWidth;g-I<R?((g-=I)<this.$padding+I&&(g=-this.scrollMargin.left),this.session.setScrollLeft(g)):R+this.$size.scrollerWidth<(g+=I)+this.characterWidth?this.session.setScrollLeft(Math.round(g+this.characterWidth-this.$size.scrollerWidth)):R<=this.$padding&&g-R<this.characterWidth&&this.session.setScrollLeft(0)}},$.prototype.getScrollTop=function(){return this.session.getScrollTop()},$.prototype.getScrollLeft=function(){return this.session.getScrollLeft()},$.prototype.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},$.prototype.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},$.prototype.scrollToRow=function(A){this.session.setScrollTop(A*this.lineHeight)},$.prototype.alignCursor=function(A,E){"number"==typeof A&&(A={row:A,column:0});var g=this.$cursorLayer.getPixelPosition(A).top-(this.$size.scrollerHeight-this.lineHeight)*(E||0);return this.session.setScrollTop(g),g},$.prototype.$calcSteps=function(A,E){var x=0,b=this.STEPS,g=[],d=function(k,T,L){return L*(Math.pow(k-1,3)+1)+T};for(x=0;x<b;++x)g.push(d(x/this.STEPS,A,E-A));return g},$.prototype.scrollToLine=function(A,E,x,b){var d=this.$cursorLayer.getPixelPosition({row:A,column:0}).top;E&&(d-=this.$size.scrollerHeight/2);var k=this.scrollTop;this.session.setScrollTop(d),!1!==x&&this.animateScrolling(k,b)},$.prototype.animateScrolling=function(A,E){var x=this.scrollTop;if(this.$animatedScroll){var b=this;if(A!=x){if(this.$scrollAnimation){var g=this.$scrollAnimation.steps;if(g.length&&(A=g[0])==x)return}var d=b.$calcSteps(A,x);this.$scrollAnimation={from:A,to:x,steps:d},clearInterval(this.$timer),b.session.setScrollTop(d.shift()),b.session.$scrollTop=x,this.$timer=setInterval(function(){if(!b.$stopAnimation)return b.session?void(d.length?(b.session.setScrollTop(d.shift()),b.session.$scrollTop=x):null!=x?(b.session.$scrollTop=-1,b.session.setScrollTop(x),x=null):k()):clearInterval(b.$timer);k()},10)}}function k(){b.$timer=clearInterval(b.$timer),b.$scrollAnimation=null,b.$stopAnimation=!1,E&&E()}},$.prototype.scrollToY=function(A){this.scrollTop!==A&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=A)},$.prototype.scrollToX=function(A){this.scrollLeft!==A&&(this.scrollLeft=A),this.$loop.schedule(this.CHANGE_H_SCROLL)},$.prototype.scrollTo=function(A,E){this.session.setScrollTop(E),this.session.setScrollLeft(A)},$.prototype.scrollBy=function(A,E){E&&this.session.setScrollTop(this.session.getScrollTop()+E),A&&this.session.setScrollLeft(this.session.getScrollLeft()+A)},$.prototype.isScrollableBy=function(A,E){if(E<0&&this.session.getScrollTop()>=1-this.scrollMargin.top||E>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||A<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||A>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},$.prototype.pixelToScreenCoordinates=function(A,E){var x;if(this.$hasCssTransforms){x={top:0,left:0};var b=this.$fontMetrics.transformCoordinates([A,E]);A=b[1]-this.gutterWidth-this.margin.left,E=b[0]}else x=this.scroller.getBoundingClientRect();var g=A+this.scrollLeft-x.left-this.$padding,d=g/this.characterWidth,k=Math.floor((E+this.scrollTop-x.top)/this.lineHeight),T=this.$blockCursor?Math.floor(d):Math.round(d);return{row:k,column:T,side:d-T>0?1:-1,offsetX:g}},$.prototype.screenToTextCoordinates=function(A,E){var x;if(this.$hasCssTransforms){x={top:0,left:0};var b=this.$fontMetrics.transformCoordinates([A,E]);A=b[1]-this.gutterWidth-this.margin.left,E=b[0]}else x=this.scroller.getBoundingClientRect();var g=A+this.scrollLeft-x.left-this.$padding,d=g/this.characterWidth,k=this.$blockCursor?Math.floor(d):Math.round(d),T=Math.floor((E+this.scrollTop-x.top)/this.lineHeight);return this.session.screenToDocumentPosition(T,Math.max(k,0),g)},$.prototype.textToScreenCoordinates=function(A,E){var x=this.scroller.getBoundingClientRect(),b=this.session.documentToScreenPosition(A,E),g=this.$padding+(this.session.$bidiHandler.isBidiRow(b.row,A)?this.session.$bidiHandler.getPosLeft(b.column):Math.round(b.column*this.characterWidth));return{pageX:x.left+g-this.scrollLeft,pageY:x.top+b.row*this.lineHeight-this.scrollTop}},$.prototype.visualizeFocus=function(){C.addCssClass(this.container,"ace_focus")},$.prototype.visualizeBlur=function(){C.removeCssClass(this.container,"ace_focus")},$.prototype.showComposition=function(A){this.$composition=A,A.cssText||(A.cssText=this.textarea.style.cssText),null==A.useTextareaForIME&&(A.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(C.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):A.markerId=this.session.addMarker(A.markerRange,"ace_composition_marker","text")},$.prototype.setCompositionText=function(A){var E=this.session.selection.cursor;this.addToken(A,"composition_placeholder",E.row,E.column),this.$moveTextAreaToCursor()},$.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),C.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var A=this.session.selection.cursor;this.removeExtraToken(A.row,A.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},$.prototype.setGhostText=function(A,E){var x=this.session.selection.cursor,b=E||{row:x.row,column:x.column};this.removeGhostText();var g=this.$calculateWrappedTextChunks(A,b);this.addToken(g[0].text,"ghost_text",b.row,b.column),this.$ghostText={text:A,position:{row:b.row,column:b.column}};var d=C.createElement("div");if(g.length>1){var T,k=this.hideTokensAfterPosition(b.row,b.column);g.slice(1).forEach(function(D){var B=C.createElement("div"),W=C.createElement("span");W.className="ace_ghost_text",D.wrapped&&(B.className="ghost_text_line_wrapped"),0===D.text.length&&(D.text=" "),W.appendChild(C.createTextNode(D.text)),B.appendChild(W),d.appendChild(B),T=B}),k.forEach(function(D){var B=C.createElement("span");p(D.type)||(B.className="ace_"+D.type.replace(/\./g," ace_")),B.appendChild(C.createTextNode(D.value)),T.appendChild(B)}),this.$ghostTextWidget={el:d,row:b.row,column:b.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var L=this.$cursorLayer.getPixelPosition(b,!0),I=this.container.getBoundingClientRect().height,O=g.length*this.lineHeight;if(O<I-L.top)return;O<I?this.scrollBy(0,(g.length-1)*this.lineHeight):this.scrollToRow(b.row)}},$.prototype.$calculateWrappedTextChunks=function(A,E){var b=Math.floor((this.$size.scrollerWidth-2*this.$padding)/this.characterWidth)-2;b=b<=0?60:b;for(var g=A.split(/\r?\n/),d=[],k=0;k<g.length;k++){var T=this.session.$getDisplayTokens(g[k],E.column),L=this.session.$computeWrapSplits(T,b,this.session.$tabSize);if(L.length>0){var R=0;L.push(g[k].length);for(var I=0;I<L.length;I++){var O=g[k].slice(R,L[I]);d.push({text:O,wrapped:!0}),R=L[I]}}else d.push({text:g[k],wrapped:!1})}return d},$.prototype.removeGhostText=function(){if(this.$ghostText){var A=this.$ghostText.position;this.removeExtraToken(A.row,A.column),this.$ghostTextWidget&&(this.session.widgetManager.removeLineWidget(this.$ghostTextWidget),this.$ghostTextWidget=null),this.$ghostText=null}},$.prototype.addToken=function(A,E,x,b){var g=this.session;g.bgTokenizer.lines[x]=null;var d={type:E,value:A},k=g.getTokens(x);if(null!=b&&k.length)for(var T=0,L=0;L<k.length;L++){var R=k[L];if(b<=(T+=R.value.length)){var I=R.value.length-(T-b),O=R.value.slice(0,I),N=R.value.slice(I);k.splice(L,1,{type:R.type,value:O},d,{type:R.type,value:N});break}}else k.push(d);this.updateLines(x,x)},$.prototype.hideTokensAfterPosition=function(A,E){for(var x=this.session.getTokens(A),b=0,g=!1,d=[],k=0;k<x.length;k++){var T=x[k];if(b+=T.value.length,"ghost_text"!==T.type){if(g){d.push({type:T.type,value:T.value}),T.type="hidden_token";continue}b===E&&(g=!0)}}return this.updateLines(A,A),d},$.prototype.removeExtraToken=function(A,E){this.session.bgTokenizer.lines[A]=null,this.updateLines(A,A)},$.prototype.setTheme=function(A,E){var x=this;function g(d){if(x.$themeId!=A)return E&&E();if(!d||!d.cssClass)throw new Error("couldn't load module "+A+" or it didn't call define");d.$id&&(x.$themeId=d.$id),C.importCssString(d.cssText,d.cssClass,x.container),x.theme&&C.removeCssClass(x.container,x.theme.cssClass);var k="padding"in d?d.padding:"padding"in(x.theme||{})?4:x.$padding;if(x.$padding&&k!=x.$padding&&x.setPadding(k),x.$gutterLayer){var T=d.$showGutterCursorMarker;T&&!x.$gutterLayer.$showCursorMarker?x.$gutterLayer.$showCursorMarker="theme":!T&&"theme"==x.$gutterLayer.$showCursorMarker&&(x.$gutterLayer.$showCursorMarker=null)}x.$theme=d.cssClass,x.theme=d,C.addCssClass(x.container,d.cssClass),C.setCssClass(x.container,"ace_dark",d.isDark),x.$size&&(x.$size.width=0,x.$updateSizeAsync()),x._dispatchEvent("themeLoaded",{theme:d}),E&&E(),y.isSafari&&x.scroller&&(x.scroller.style.background="red",x.scroller.style.background="")}this.$themeId=A,x._dispatchEvent("themeChange",{theme:A}),A&&"string"!=typeof A?g(A):a.loadModule(["theme",A||this.$options.theme.initialValue],g)},$.prototype.getTheme=function(){return this.$themeId},$.prototype.setStyle=function(A,E){C.setCssClass(this.container,A,!1!==E)},$.prototype.unsetStyle=function(A){C.removeCssClass(this.container,A)},$.prototype.setCursorStyle=function(A){C.setStyle(this.scroller.style,"cursor",A)},$.prototype.setMouseCursor=function(A){C.setStyle(this.scroller.style,"cursor",A)},$.prototype.attachToShadowRoot=function(){C.importCssString(f,"ace_editor.css",this.container)},$.prototype.destroy=function(){this.freeze(),this.$fontMetrics.destroy(),this.$cursorLayer.destroy(),this.removeAllListeners(),this.container.textContent="",this.setOption("useResizeObserver",!1)},$.prototype.$updateCustomScrollbar=function(A){var E=this;this.$horizScroll=this.$vScroll=null,this.scrollBarV.element.remove(),this.scrollBarH.element.remove(),!0===A?(this.scrollBarV=new o(this.container,this),this.scrollBarH=new n(this.container,this),this.scrollBarV.setHeight(this.$size.scrollerHeight),this.scrollBarH.setWidth(this.$size.scrollerWidth),this.scrollBarV.addEventListener("scroll",function(x){E.$scrollAnimation||E.session.setScrollTop(x.data-E.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(x){E.$scrollAnimation||E.session.setScrollLeft(x.data-E.scrollMargin.left)}),this.$scrollDecorator?(this.$scrollDecorator.setScrollBarV(this.scrollBarV),this.$scrollDecorator.$updateDecorators()):(this.$scrollDecorator=new m(this.scrollBarV,this),this.$scrollDecorator.$updateDecorators())):(this.scrollBarV=new e(this.container,this),this.scrollBarH=new t(this.container,this),this.scrollBarV.addEventListener("scroll",function(x){E.$scrollAnimation||E.session.setScrollTop(x.data-E.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(x){E.$scrollAnimation||E.session.setScrollLeft(x.data-E.scrollMargin.left)}))},$.prototype.$addResizeObserver=function(){if(window.ResizeObserver&&!this.$resizeObserver){var A=this;this.$resizeTimer=v.delayedCall(function(){A.destroyed||A.onResize()},50),this.$resizeObserver=new window.ResizeObserver(function(E){var b=E[0].contentRect.height;Math.abs(A.$size.width-E[0].contentRect.width)>1||Math.abs(A.$size.height-b)>1?A.$resizeTimer.delay():A.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},$}();S.prototype.CHANGE_CURSOR=1,S.prototype.CHANGE_MARKER=2,S.prototype.CHANGE_GUTTER=4,S.prototype.CHANGE_SCROLL=8,S.prototype.CHANGE_LINES=16,S.prototype.CHANGE_TEXT=32,S.prototype.CHANGE_SIZE=64,S.prototype.CHANGE_MARKER_BACK=128,S.prototype.CHANGE_MARKER_FRONT=256,S.prototype.CHANGE_FULL=512,S.prototype.CHANGE_H_SCROLL=1024,S.prototype.$changes=0,S.prototype.$padding=null,S.prototype.$frozen=!1,S.prototype.STEPS=8,_.implement(S.prototype,h),a.defineOptions(S.prototype,"renderer",{useResizeObserver:{set:function($){!$&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):$&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function($){this.$textLayer.setShowInvisibles($)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function($){"number"==typeof $&&(this.$printMarginColumn=$),this.$showPrintMargin=!!$,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function($){this.$gutter.style.display=$?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function($){this.$gutterLayer.$useSvgGutterIcons=$},initialValue:!1},showFoldedAnnotations:{set:function($){this.$gutterLayer.$showFoldedAnnotations=$},initialValue:!1},fadeFoldWidgets:{set:function($){C.setCssClass(this.$gutter,"ace_fade-fold-widgets",$)},initialValue:!1},showFoldWidgets:{set:function($){this.$gutterLayer.setShowFoldWidgets($),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function($){this.$textLayer.setDisplayIndentGuides($)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function($){1==this.$textLayer.setHighlightIndentGuides($)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function($){this.$gutterLayer.setHighlightGutterLine($),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function($){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function($){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function($){"number"==typeof $&&($+="px"),this.container.style.fontSize=$,this.updateFontSize()},initialValue:12},fontFamily:{set:function($){this.container.style.fontFamily=$,this.updateFontSize()}},maxLines:{set:function($){this.updateFull()}},minLines:{set:function($){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function($){this.updateFull()},initialValue:0},scrollPastEnd:{set:function($){this.$scrollPastEnd!=($=+$||0)&&(this.$scrollPastEnd=$,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function($){this.$gutterLayer.$fixedWidth=!!$,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function($){this.$updateCustomScrollbar($)},initialValue:!1},theme:{set:function($){this.setTheme($)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!y.isMobile&&!y.isIE}}),M.VirtualRenderer=S}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("../lib/net"),v=w("../lib/event_emitter").EventEmitter,a=w("../config");function s(t){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var e=function c(t){var e="importScripts('"+C.qualifyURL(t)+"');";try{return new Blob([e],{type:"application/javascript"})}catch{var o=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return o.append(e),o.getBlob("application/javascript")}}(t),o=(window.URL||window.webkitURL).createObjectURL(e);return new Worker(o)}return new Worker(t)}var r=function(t){t.postMessage||(t=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=t,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){_.implement(this,v),this.$createWorkerFromOldConfig=function(t,e,n,o,l){if(w.nameToUrl&&!w.toUrl&&(w.toUrl=w.nameToUrl),a.get("packaged")||!w.toUrl)o=o||a.moduleUrl(e,"worker");else{var u=this.$normalizePath;o=o||u(w.toUrl("ace/worker/worker.js",null,"_"));var h={};t.forEach(function(f){h[f]=u(w.toUrl(f,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=s(o),l&&this.send("importScripts",l),this.$worker.postMessage({init:!0,tlns:h,module:e,classname:n}),this.$worker},this.onMessage=function(t){var e=t.data;switch(e.type){case"event":this._signal(e.name,{data:e.data});break;case"call":var n=this.callbacks[e.id];n&&(n(e.data),delete this.callbacks[e.id]);break;case"error":this.reportError(e.data);break;case"log":window.console&&console.log&&console.log.apply(console,e.data)}},this.reportError=function(t){window.console&&console.error&&console.error(t)},this.$normalizePath=function(t){return C.qualifyURL(t)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(t){t.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(t,e){this.$worker.postMessage({command:t,args:e})},this.call=function(t,e,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,e.push(o)}this.send(t,e)},this.emit=function(t,e){try{e.data&&e.data.err&&(e.data.err={message:e.data.err.message,stack:e.data.err.stack,code:e.data.err.code}),this.$worker&&this.$worker.postMessage({event:t,data:{data:e.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(t){this.$doc&&this.terminate(),this.$doc=t,this.call("setValue",[t.getValue()]),t.on("change",this.changeListener,!0)},this.changeListener=function(t){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),this.deltaQueue.push(t.start,"insert"==t.action?t.lines:t.end)},this.$sendDeltaQueue=function(){var t=this.deltaQueue;t&&(this.deltaQueue=null,t.length>50&&t.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:t}))}}).call(r.prototype),M.UIWorkerClient=function(t,e,n){var o=null,l=!1,u=Object.create(v),h=[],f=new r({messageBuffer:h,terminate:function(){},postMessage:function(y){h.push(y),o&&(l?setTimeout(m):m())}});f.setEmitSync=function(y){l=y};var m=function(){var y=h.shift();y.command?o[y.command].apply(o,y.args):y.event&&u._signal(y.event,y.data)};return u.postMessage=function(y){f.onMessage({data:y})},u.callback=function(y,p){this.postMessage({type:"call",id:p,data:y})},u.emit=function(y,p){this.postMessage({type:"event",name:y,data:p})},a.loadModule(["worker",e],function(y){for(o=new y[n](u);h.length;)m()}),f},M.WorkerClient=r,M.createWorker=s}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(w,M,F){"use strict";var _=w("./range").Range,C=w("./lib/event_emitter").EventEmitter,v=w("./lib/oop"),a=function(){function c(s,r,i,t,e,n){var o=this;this.length=r,this.session=s,this.doc=s.getDocument(),this.mainClass=e,this.othersClass=n,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=t,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=i;var l=s.getUndoManager().$undoStack||s.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=l.length,this.setup(),s.selection.on("changeCursor",this.$onCursorChange)}return c.prototype.setup=function(){var s=this,r=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=r.createAnchor(this.$pos.row,this.$pos.column);var t=this.pos;t.$insertRight=!0,t.detach(),t.markerId=i.addMarker(new _(t.row,t.column,t.row,t.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(e){var n=r.createAnchor(e.row,e.column);n.$insertRight=!0,n.detach(),s.others.push(n)}),i.setUndoSelect(!1)},c.prototype.showOtherMarkers=function(){if(!this.othersActive){var s=this.session,r=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=s.addMarker(new _(i.row,i.column,i.row,i.column+r.length),r.othersClass,null,!1)})}},c.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var s=0;s<this.others.length;s++)this.session.removeMarker(this.others[s].markerId)}},c.prototype.onUpdate=function(s){if(this.$updating)return this.updateAnchors(s);var r=s;if(r.start.row===r.end.row&&r.start.row===this.pos.row){this.$updating=!0;var i="insert"===s.action?r.end.column-r.start.column:r.start.column-r.end.column,t=r.start.column>=this.pos.column&&r.start.column<=this.pos.column+this.length+1,e=r.start.column-this.pos.column;if(this.updateAnchors(s),t&&(this.length+=i),t&&!this.session.$fromUndo)if("insert"===s.action)for(var n=this.others.length-1;n>=0;n--)this.doc.insertMergedLines(l={row:(o=this.others[n]).row,column:o.column+e},s.lines);else if("remove"===s.action)for(n=this.others.length-1;n>=0;n--){var o,l;this.doc.remove(new _((l={row:(o=this.others[n]).row,column:o.column+e}).row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},c.prototype.updateAnchors=function(s){this.pos.onChange(s);for(var r=this.others.length;r--;)this.others[r].onChange(s);this.updateMarkers()},c.prototype.updateMarkers=function(){if(!this.$updating){var s=this,r=this.session,i=function(e,n){r.removeMarker(e.markerId),e.markerId=r.addMarker(new _(e.row,e.column,e.row,e.column+s.length),n,null,!1)};i(this.pos,this.mainClass);for(var t=this.others.length;t--;)i(this.others[t],this.othersClass)}},c.prototype.onCursorChange=function(s){if(!this.$updating&&this.session){var r=this.session.selection.getCursor();r.row===this.pos.row&&r.column>=this.pos.column&&r.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",s)):(this.hideOtherMarkers(),this._emit("cursorLeave",s))}},c.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},c.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var s=this.session.getUndoManager(),r=(s.$undoStack||s.$undostack).length-this.$undoStackDepth,i=0;i<r;i++)s.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}},c}();v.implement(a.prototype,C),M.PlaceHolder=a}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(w,M,F){var _=w("../lib/event"),C=w("../lib/useragent");function v(c,s){return c.row==s.row&&c.column==s.column}M.onMouseDown=function a(c){var s=c.domEvent,r=s.altKey,i=s.shiftKey,t=s.ctrlKey,e=c.getAccelKey(),n=c.getButton();if(t&&C.isMac&&(n=s.button),c.editor.inMultiSelectMode&&2==n)c.editor.textInput.onContextMenu(c.domEvent);else if(t||r||e){if(0===n){var x,o=c.editor,l=o.selection,u=o.inMultiSelectMode,h=c.getDocumentPosition(),f=l.getCursor(),m=c.inSelection()||l.isEmpty()&&v(h,f),y=c.x,p=c.y,$=o.session,A=o.renderer.pixelToScreenCoordinates(y,p),E=A;if(o.$mouseHandler.$enableJumpToDef)t&&r||e&&r?x=i?"block":"add":r&&o.$blockSelectEnabled&&(x="block");else if(e&&!r){if(x="add",!u&&i)return}else r&&o.$blockSelectEnabled&&(x="block");if(x&&C.isMac&&s.ctrlKey&&o.$mouseHandler.cancelContextMenu(),"add"==x){if(!u&&m)return;if(!u){var b=l.toOrientedRange();o.addSelectionMarker(b)}var g=l.rangeList.rangeAtPoint(h);o.inVirtualSelectionMode=!0,i&&(g=null,o.removeSelectionMarker(b=l.ranges[0]||b)),o.once("mouseup",function(){var O=l.toOrientedRange();g&&O.isEmpty()&&v(g.cursor,O.cursor)?l.substractPoint(O.cursor):(i?l.substractPoint(b.cursor):b&&(o.removeSelectionMarker(b),l.addRange(b)),l.addRange(O)),o.inVirtualSelectionMode=!1})}else if("block"==x){c.stop(),o.inVirtualSelectionMode=!0;var d,k=[],T=function(){var O=o.renderer.pixelToScreenCoordinates(y,p),N=$.screenToDocumentPosition(O.row,O.column,O.offsetX);v(E,O)&&v(N,l.lead)||(E=O,o.selection.moveToPosition(N),o.renderer.scrollCursorIntoView(),o.removeSelectionMarkers(k),k=l.rectangularRangeBlock(E,A),o.$mouseHandler.$clickSelection&&1==k.length&&k[0].isEmpty()&&(k[0]=o.$mouseHandler.$clickSelection.clone()),k.forEach(o.addSelectionMarker,o),o.updateSelectionMarkers())};u&&!e?l.toSingleRange():!u&&e&&(d=l.toOrientedRange(),o.addSelectionMarker(d)),i?A=$.documentToScreenPosition(l.lead):l.moveToPosition(h),E={row:-1,column:-1};var R=T;_.capture(o.container,function(O){y=O.clientX,p=O.clientY},function(O){T(),clearInterval(I),o.removeSelectionMarkers(k),k.length||(k=[l.toOrientedRange()]),d&&(o.removeSelectionMarker(d),l.toSingleRange(d));for(var N=0;N<k.length;N++)l.addRange(k[N]);o.inVirtualSelectionMode=!1,o.$mouseHandler.$clickSelection=null});var I=setInterval(function(){R()},20);return c.preventDefault()}}}else 0===n&&c.editor.inMultiSelectMode&&c.editor.exitMultiSelectMode()}}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(w,M,F){M.defaultCommands=[{name:"addCursorAbove",description:"Add cursor above",exec:function(C){C.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",description:"Add cursor below",exec:function(C){C.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",description:"Add cursor above (skip current)",exec:function(C){C.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",description:"Add cursor below (skip current)",exec:function(C){C.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",description:"Select more before",exec:function(C){C.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",description:"Select more after",exec:function(C){C.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",description:"Select next before",exec:function(C){C.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",description:"Select next after",exec:function(C){C.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"toggleSplitSelectionIntoLines",description:"Split selection into lines",exec:function(C){C.multiSelect.rangeCount>1?C.multiSelect.joinSelections():C.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(C){C.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(C){C.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(C){C.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],M.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(C){C.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(C){return C&&C.inMultiSelectMode}}];var _=w("../keyboard/hash_handler").HashHandler;M.keyboardHandler=new _(M.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(w,M,F){var _=w("./range_list").RangeList,C=w("./range").Range,v=w("./selection").Selection,a=w("./mouse/multi_select_handler").onMouseDown,c=w("./lib/event"),s=w("./lib/lang"),r=w("./commands/multi_select_commands");M.commands=r.defaultCommands.concat(r.multiSelectCommands);var t=new(0,w("./search").Search),n=w("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(n.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(f,m){if(f){if(!this.inMultiSelectMode&&0===this.rangeCount){var y=this.toOrientedRange();if(this.rangeList.add(y),this.rangeList.add(f),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),m||this.fromOrientedRange(f);this.rangeList.removeAll(),this.rangeList.add(y),this.$onAddRange(y)}f.cursor||(f.cursor=f.end);var p=this.rangeList.add(f);return this.$onAddRange(f),p.length&&this.$onRemoveRange(p),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),m||this.fromOrientedRange(f)}},this.toSingleRange=function(f){f=f||this.ranges[0];var m=this.rangeList.removeAll();m.length&&this.$onRemoveRange(m),f&&this.fromOrientedRange(f)},this.substractPoint=function(f){var m=this.rangeList.substractPoint(f);if(m)return this.$onRemoveRange(m),m[0]},this.mergeOverlappingRanges=function(){var f=this.rangeList.merge();f.length&&this.$onRemoveRange(f)},this.$onAddRange=function(f){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(f),this._signal("addRange",{range:f})},this.$onRemoveRange=function(f){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var m=this.rangeList.ranges.pop();f.push(m),this.rangeCount=0}for(var y=f.length;y--;){var p=this.ranges.indexOf(f[y]);this.ranges.splice(p,1)}this._signal("removeRange",{ranges:f}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(m=m||this.ranges[0])&&!m.isEqual(this.getRange())&&this.fromOrientedRange(m)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new _,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var f=this.ranges.length?this.ranges:[this.getRange()],m=[],y=0;y<f.length;y++){var p=f[y],S=p.start.row,$=p.end.row;if(S===$)m.push(p.clone());else{for(m.push(new C(S,p.start.column,S,this.session.getLine(S).length));++S<$;)m.push(this.getLineRange(S,!0));m.push(new C($,0,$,p.end.column))}0==y&&!this.isBackwards()&&(m=m.reverse())}for(this.toSingleRange(),y=m.length;y--;)this.addRange(m[y])},this.joinSelections=function(){var f=this.rangeList.ranges,m=f[f.length-1],y=C.fromPoints(f[0].start,m.end);this.toSingleRange(),this.setSelectionRange(y,m.cursor==m.start)},this.toggleBlockSelection=function(){if(this.rangeCount>1){var f=this.rangeList.ranges,m=f[f.length-1],y=C.fromPoints(f[0].start,m.end);this.toSingleRange(),this.setSelectionRange(y,m.cursor==m.start)}else{var p=this.session.documentToScreenPosition(this.cursor),S=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(p,S).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(f,m,y){var p=[],S=f.column<m.column;if(S)var $=f.column,A=m.column,E=f.offsetX,x=m.offsetX;else $=m.column,A=f.column,E=m.offsetX,x=f.offsetX;var b=f.row<m.row;if(b)var g=f.row,d=m.row;else g=m.row,d=f.row;$<0&&($=0),g<0&&(g=0),g==d&&(y=!0);for(var k,T=g;T<=d;T++){var L=C.fromPoints(this.session.screenToDocumentPosition(T,$,E),this.session.screenToDocumentPosition(T,A,x));if(L.isEmpty()){if(k&&l(L.end,k))break;k=L.end}L.cursor=S?L.start:L.end,p.push(L)}if(b&&p.reverse(),!y){for(var R=p.length-1;p[R].isEmpty()&&R>0;)R--;if(R>0)for(var I=0;p[I].isEmpty();)I++;for(var O=R;O>=I;O--)p[O].isEmpty()&&p.splice(O,1)}return p}}.call(v.prototype);var o=w("./editor").Editor;function l(f,m){return f.row==m.row&&f.column==m.column}function u(f){f.$multiselectOnSessionChange||(f.$onAddRange=f.$onAddRange.bind(f),f.$onRemoveRange=f.$onRemoveRange.bind(f),f.$onMultiSelect=f.$onMultiSelect.bind(f),f.$onSingleSelect=f.$onSingleSelect.bind(f),f.$multiselectOnSessionChange=M.onSessionChange.bind(f),f.$checkMultiselectChange=f.$checkMultiselectChange.bind(f),f.$multiselectOnSessionChange(f),f.on("changeSession",f.$multiselectOnSessionChange),f.on("mousedown",a),f.commands.addCommands(r.defaultCommands),function h(f){if(f.textInput){var m=f.textInput.getElement(),y=!1;c.addListener(m,"keydown",function(S){f.$blockSelectEnabled&&18==S.keyCode&&!(S.ctrlKey||S.shiftKey||S.metaKey)?y||(f.renderer.setMouseCursor("crosshair"),y=!0):y&&p()},f),c.addListener(m,"keyup",p,f),c.addListener(m,"blur",p,f)}function p(S){y&&(f.renderer.setMouseCursor(""),y=!1)}}(f))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(f){f.cursor||(f.cursor=f.end);var m=this.getSelectionStyle();return f.marker=this.session.addMarker(f,"ace_selection",m),this.session.$selectionMarkers.push(f),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,f},this.removeSelectionMarker=function(f){if(f.marker){this.session.removeMarker(f.marker);var m=this.session.$selectionMarkers.indexOf(f);-1!=m&&this.session.$selectionMarkers.splice(m,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(f){for(var m=this.session.$selectionMarkers,y=f.length;y--;){var p=f[y];if(p.marker){this.session.removeMarker(p.marker);var S=m.indexOf(p);-1!=S&&m.splice(S,1)}}this.session.selectionMarkerCount=m.length},this.$onAddRange=function(f){this.addSelectionMarker(f.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(f){this.removeSelectionMarkers(f.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(f){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(r.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(f){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(r.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(f){var m=f.command,y=f.editor;if(y.multiSelect){if(m.multiSelectAction)"forEach"==m.multiSelectAction?p=y.forEachSelection(m,f.args):"forEachLine"==m.multiSelectAction?p=y.forEachSelection(m,f.args,!0):"single"==m.multiSelectAction?(y.exitMultiSelectMode(),p=m.exec(y,f.args||{})):p=m.multiSelectAction(y,f.args||{});else{var p=m.exec(y,f.args||{});y.multiSelect.addRange(y.multiSelect.toOrientedRange()),y.multiSelect.mergeOverlappingRanges()}return p}},this.forEachSelection=function(f,m,y){if(!this.inVirtualSelectionMode){var b,S=1==y||y&&y.$byLines,$=this.session,A=this.selection,x=(y&&y.keepOrder?A:A.rangeList).ranges;if(!x.length)return f.exec?f.exec(this,m||{}):f(this,m||{});var g=A._eventRegistry;A._eventRegistry={};var d=new v($);this.inVirtualSelectionMode=!0;for(var k=x.length;k--;){if(S)for(;k>0&&x[k].start.row==x[k-1].end.row;)k--;d.fromOrientedRange(x[k]),d.index=k,this.selection=$.selection=d;var T=f.exec?f.exec(this,m||{}):f(this,m||{});!b&&void 0!==T&&(b=T),d.toOrientedRange(x[k])}d.detach(),this.selection=$.selection=A,this.inVirtualSelectionMode=!1,A._eventRegistry=g,A.mergeOverlappingRanges(),A.ranges[0]&&A.fromOrientedRange(A.ranges[0]);var L=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),L&&L.from==L.to&&this.renderer.animateScrolling(L.from),b}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var f="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var m=this.multiSelect.rangeList.ranges,y=[],p=0;p<m.length;p++)y.push(this.session.getTextRange(m[p]));var S=this.session.getDocument().getNewLineCharacter();(f=y.join(S)).length==(y.length-1)*S.length&&(f="")}else this.selection.isEmpty()||(f=this.session.getTextRange(this.getSelectionRange()));return f},this.$checkMultiselectChange=function(f,m){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var y=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&m==this.multiSelect.anchor)return;var p=m==this.multiSelect.anchor?y.cursor==y.start?y.end:y.start:y.cursor;p.row!=m.row||this.session.$clipPositionToDocument(p.row,p.column).column!=m.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(f,m,y){if((m=m||{}).needle=f||m.needle,null==m.needle){var p=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();m.needle=this.session.getTextRange(p)}this.$search.set(m);var S=this.$search.findAll(this.session);if(!S.length)return 0;var $=this.multiSelect;y||$.toSingleRange(S[0]);for(var A=S.length;A--;)$.addRange(S[A],!0);return p&&$.rangeList.rangeAtPoint(p.start)&&$.addRange(p,!0),S.length},this.selectMoreLines=function(f,m){var y=this.selection.toOrientedRange(),p=y.cursor==y.end,S=this.session.documentToScreenPosition(y.cursor);this.selection.$desiredColumn&&(S.column=this.selection.$desiredColumn);var x,$=this.session.screenToDocumentPosition(S.row+f,S.column);if(y.isEmpty())var E=$;else{var A=this.session.documentToScreenPosition(p?y.end:y.start);E=this.session.screenToDocumentPosition(A.row+f,A.column)}if(p?(x=C.fromPoints($,E)).cursor=x.start:(x=C.fromPoints(E,$)).cursor=x.end,x.desiredColumn=S.column,this.selection.inMultiSelectMode){if(m)var b=y.cursor}else this.selection.addRange(y);this.selection.addRange(x),b&&this.selection.substractPoint(b)},this.transposeSelections=function(f){for(var m=this.session,y=m.multiSelect,p=y.ranges,S=p.length;S--;)if(($=p[S]).isEmpty()){var A=m.getWordRange($.start.row,$.start.column);$.start.row=A.start.row,$.start.column=A.start.column,$.end.row=A.end.row,$.end.column=A.end.column}y.mergeOverlappingRanges();var E=[];for(S=p.length;S--;)E.unshift(m.getTextRange($=p[S]));for(f<0?E.unshift(E.pop()):E.push(E.shift()),S=p.length;S--;){var $,x=($=p[S]).clone();m.replace($,E[S]),$.start.row=x.start.row,$.start.column=x.start.column}y.fromOrientedRange(y.ranges[0])},this.selectMore=function(f,m,y){var p=this.session,$=p.multiSelect.toOrientedRange();if(!$.isEmpty()||(($=p.getWordRange($.start.row,$.start.column)).cursor=-1==f?$.start:$.end,this.multiSelect.addRange($),!y)){var A=p.getTextRange($),E=function e(f,m,y){return t.$options.wrap=!0,t.$options.needle=m,t.$options.backwards=-1==y,t.find(f)}(p,A,f);E&&(E.cursor=-1==f?E.start:E.end,this.session.unfold(E),this.multiSelect.addRange(E),this.renderer.scrollCursorIntoView(null,.5)),m&&this.multiSelect.substractPoint($.cursor)}},this.alignCursors=function(){var f=this.session,m=f.multiSelect,y=m.ranges,p=-1,S=y.filter(function(R){if(R.cursor.row==p)return!0;p=R.cursor.row});if(y.length&&S.length!=y.length-1){S.forEach(function(R){m.substractPoint(R.cursor)});var k=0,T=1/0,L=y.map(function(R){var I=R.cursor,N=f.getLine(I.row).substr(I.column).search(/\S/g);return-1==N&&(N=0),I.column>k&&(k=I.column),N<T&&(T=N),N});y.forEach(function(R,I){var O=R.cursor,N=k-O.column,D=L[I]-T;N>D?f.insert(O,s.stringRepeat(" ",N-D)):f.remove(new C(O.row,O.column,O.row,O.column-N+D)),R.start.column=R.end.column=k,R.start.row=R.end.row=O.row,R.cursor=R.end}),m.fromOrientedRange(y[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var $=this.selection.getRange(),A=$.start.row,E=$.end.row,x=A==E;if(x){var g,b=this.session.getLength();do{g=this.session.getLine(E)}while(/[=:]/.test(g)&&++E<b);do{g=this.session.getLine(A)}while(/[=:]/.test(g)&&--A>0);A<0&&(A=0),E>=b&&(E=b-1)}var d=this.session.removeFullLines(A,E);d=this.$reAlignText(d,x),this.session.insert({row:A,column:0},d.join("\n")+"\n"),x||($.start.column=0,$.end.column=d[d.length-1].length),this.selection.setRange($)}},this.$reAlignText=function(f,m){var S,$,A,y=!0,p=!0;return f.map(function(d){var k=d.match(/(\s*)(.*?)(\s*)([=:].*)/);return k?null==S?(S=k[1].length,$=k[2].length,A=k[3].length,k):(S+$+A!=k[1].length+k[2].length+k[3].length&&(p=!1),S!=k[1].length&&(y=!1),S>k[1].length&&(S=k[1].length),$<k[2].length&&($=k[2].length),A>k[3].length&&(A=k[3].length),k):[d]}).map(m?x:y?p?function b(d){return d[2]?E(S+$-d[2].length)+d[2]+E(A)+d[4].replace(/^([=:])\s+/,"$1 "):d[0]}:x:function g(d){return d[2]?E(S)+d[2]+E(A)+d[4].replace(/^([=:])\s+/,"$1 "):d[0]});function E(d){return s.stringRepeat(" ",d)}function x(d){return d[2]?E(S)+d[2]+E($-d[2].length+A)+d[4].replace(/^([=:])\s+/,"$1 "):d[0]}}}).call(o.prototype),M.onSessionChange=function(f){var m=f.session;m&&!m.multiSelect&&(m.$selectionMarkers=[],m.selection.$initRangeList(),m.multiSelect=m.selection),this.multiSelect=m&&m.multiSelect;var y=f.oldSession;y&&(y.multiSelect.off("addRange",this.$onAddRange),y.multiSelect.off("removeRange",this.$onRemoveRange),y.multiSelect.off("multiSelect",this.$onMultiSelect),y.multiSelect.off("singleSelect",this.$onSingleSelect),y.multiSelect.lead.off("change",this.$checkMultiselectChange),y.multiSelect.anchor.off("change",this.$checkMultiselectChange)),m&&(m.multiSelect.on("addRange",this.$onAddRange),m.multiSelect.on("removeRange",this.$onRemoveRange),m.multiSelect.on("multiSelect",this.$onMultiSelect),m.multiSelect.on("singleSelect",this.$onSingleSelect),m.multiSelect.lead.on("change",this.$checkMultiselectChange),m.multiSelect.anchor.on("change",this.$checkMultiselectChange)),m&&this.inMultiSelectMode!=m.selection.inMultiSelectMode&&(m.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},M.MultiSelect=u,w("./config").defineOptions(o.prototype,"editor",{enableMultiselect:{set:function(f){u(this),f?this.on("mousedown",a):this.off("mousedown",a)},value:!0},enableBlockSelect:{set:function(f){this.$blockSelectEnabled=f},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(w,M,F){"use strict";var _=w("../../range").Range,C=M.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(v,a,c){var s=v.getLine(c);return this.foldingStartMarker.test(s)?"start":"markbeginend"==a&&this.foldingStopMarker&&this.foldingStopMarker.test(s)?"end":""},this.getFoldWidgetRange=function(v,a,c){return null},this.indentationBlock=function(v,a,c){var s=/\S/,r=v.getLine(a),i=r.search(s);if(-1!=i){for(var t=c||r.length,e=v.getLength(),n=a,o=a;++a<e;){var l=v.getLine(a).search(s);if(-1!=l){if(l<=i){var u=v.getTokenAt(a,0);if(!u||"string"!==u.type)break}o=a}}if(o>n){var h=v.getLine(o).length;return new _(n,t,o,h)}}},this.openingBracketBlock=function(v,a,c,s,r){var i={row:c,column:s+1},t=v.$findClosingBracket(a,i,r);if(t){var e=v.foldWidgets[t.row];return null==e&&(e=v.getFoldWidget(t.row)),"start"==e&&t.row>i.row&&(t.row--,t.column=v.getLine(t.row).length),_.fromPoints(i,t)}},this.closingBracketBlock=function(v,a,c,s,r){var i={row:c,column:s},t=v.$findOpeningBracket(a,i);if(t)return t.column++,i.column--,_.fromPoints(t,i)}}).call(C.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(w,M,F){"use strict";var _=w("../lib/dom"),C=w("../range").Range,v=w("../config").nls;M.showErrorMarker=function(s,r){var i=s.session,t=s.getCursorPosition(),e=t.row,n=i.widgetManager.getWidgetsAtRow(e).filter(function(S){return"errorMarker"==S.type})[0];n?n.destroy():e-=r;var l,o=function c(s,r,i){var t=s.getAnnotations().sort(C.comparePoints);if(t.length){var e=function a(s,r,i){for(var t=0,e=s.length-1;t<=e;){var n=t+e>>1,o=i(r,s[n]);if(o>0)t=n+1;else{if(!(o<0))return n;e=n-1}}return-(t+1)}(t,{row:r,column:-1},C.comparePoints);e<0&&(e=-e-1),e>=t.length?e=i>0?0:t.length-1:0===e&&i<0&&(e=t.length-1);var n=t[e];if(n&&i){if(n.row===r){do{n=t[e+=i]}while(n&&n.row===r);if(!n)return t.slice()}var o=[];r=n.row;do{o[i<0?"unshift":"push"](n),n=t[e+=i]}while(n&&n.row==r);return o.length&&o}}}(i,e,r);if(o){var u=o[0];t.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,t.row=u.row,l=s.renderer.$gutterLayer.$annotations[t.row]}else{if(n)return;l={displayText:[v("error-marker.good-state","Looks good!")],className:"ace_ok"}}s.session.unfold(t.row),s.selection.moveToPosition(t);var h={row:t.row,fixedWidth:!0,coverGutter:!0,el:_.createElement("div"),type:"errorMarker"},f=h.el.appendChild(_.createElement("div")),m=h.el.appendChild(_.createElement("div"));m.className="error_widget_arrow "+l.className;var y=s.renderer.$cursorLayer.getPixelPosition(t).left;m.style.left=y+s.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",f.className="error_widget "+l.className,l.displayText.forEach(function(S,$){f.appendChild(_.createTextNode(S)),$<l.displayText.length-1&&f.appendChild(_.createElement("br"))}),f.appendChild(_.createElement("div"));var p=function(S,$,A){if(0===$&&("esc"===A||"return"===A))return h.destroy(),{command:"null"}};h.destroy=function(){s.$mouseHandler.isMousePressed||(s.keyBinding.removeKeyboardHandler(p),i.widgetManager.removeLineWidget(h),s.off("changeSelection",h.destroy),s.off("changeSession",h.destroy),s.off("mouseup",h.destroy),s.off("change",h.destroy))},s.keyBinding.addKeyboardHandler(p),s.on("changeSelection",h.destroy),s.on("changeSession",h.destroy),s.on("mouseup",h.destroy),s.on("change",h.destroy),s.session.widgetManager.addLineWidget(h),h.el.onmousedown=s.focus.bind(s),s.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},_.importCssString("\n    .error_widget_wrapper {\n        background: inherit;\n        color: inherit;\n        border:none\n    }\n    .error_widget {\n        border-top: solid 2px;\n        border-bottom: solid 2px;\n        margin: 5px 0;\n        padding: 10px 40px;\n        white-space: pre-wrap;\n    }\n    .error_widget.ace_error, .error_widget_arrow.ace_error{\n        border-color: #ff5a5a\n    }\n    .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n        border-color: #F1D817\n    }\n    .error_widget.ace_info, .error_widget_arrow.ace_info{\n        border-color: #5a5a5a\n    }\n    .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n        border-color: #5aaa5a\n    }\n    .error_widget_arrow {\n        position: absolute;\n        border: solid 5px;\n        border-top-color: transparent!important;\n        border-right-color: transparent!important;\n        border-left-color: transparent!important;\n        top: -5px;\n    }\n","error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/wor
1ker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(w,M,F){"use strict";w("./loader_build")(M);var _=w("./lib/dom"),C=w("./range").Range,v=w("./editor").Editor,a=w("./edit_session").EditSession,c=w("./undomanager").UndoManager,s=w("./virtual_renderer").VirtualRenderer;w("./worker/worker_client"),w("./keyboard/hash_handler"),w("./placeholder"),w("./multi_select"),w("./mode/folding/fold_mode"),w("./theme/textmate"),w("./ext/error_marker"),M.config=w("./config"),M.edit=function(i,t){if("string"==typeof i){var e=i;if(!(i=document.getElementById(e)))throw new Error("ace.edit can't find div #"+e)}if(i&&i.env&&i.env.editor instanceof v)return i.env.editor;var n="";if(i&&/input|textarea/i.test(i.tagName)){var o=i;n=o.value,i=_.createElement("pre"),o.parentNode.replaceChild(i,o)}else i&&(n=i.textContent,i.innerHTML="");var l=M.createEditSession(n),u=new v(new s(i),l,t),h={document:l,editor:u,onResize:u.resize.bind(u,null)};return o&&(h.textarea=o),u.on("destroy",function(){h.editor.container.env=null}),u.container.env=u.env=h,u},M.createEditSession=function(i,t){var e=new a(i,t);return e.setUndoManager(new c),e},M.Range=C,M.Editor=v,M.EditSession=a,M.UndoManager=c,M.VirtualRenderer=s,M.version=M.config.version}),ace.require(["ace/ace"],function(w){w&&(w.config.init(!0),w.define=ace.define);var M=function(){return this}();for(var F in!M&&typeof window<"u"&&(M=window),!M&&typeof self<"u"&&(M=self),M.ace||(M.ace=w),w)w.hasOwnProperty(F)&&(M.ace[F]=w[F]);M.ace.default=M.ace,Y&&(Y.exports=M.ace)})},12591(Y,te,G){Y=G.nmd(Y),ace.define("ace/ext/searchbox-css",["require","exports","module"],function(w,M,F){F.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n    background-color: #ddd;\n    color: #666;\n    border: 1px solid #cbcbcb;\n    border-top: 0 none;\n    overflow: hidden;\n    margin: 0;\n    padding: 4px 6px 0 4px;\n    position: absolute;\n    top: 0;\n    z-index: 99;\n    white-space: normal;\n}\n.ace_search.left {\n    border-left: 0 none;\n    border-radius: 0px 0px 5px 0px;\n    left: 0;\n}\n.ace_search.right {\n    border-radius: 0px 0px 0px 5px;\n    border-right: 0 none;\n    right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n    margin: 0 20px 4px 0;\n    overflow: hidden;\n    line-height: 1.9;\n}\n.ace_replace_form {\n    margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n    outline: 1px solid red;\n}\n\n.ace_search_field {\n    border-radius: 3px 0 0 3px;\n    background-color: white;\n    color: black;\n    border: 1px solid #cbcbcb;\n    border-right: 0 none;\n    outline: 0;\n    padding: 0;\n    font-size: inherit;\n    margin: 0;\n    line-height: inherit;\n    padding: 0 6px;\n    min-width: 17em;\n    vertical-align: top;\n    min-height: 1.8em;\n    box-sizing: content-box;\n}\n.ace_searchbtn {\n    border: 1px solid #cbcbcb;\n    line-height: inherit;\n    display: inline-block;\n    padding: 0 6px;\n    background: #fff;\n    border-right: 0 none;\n    border-left: 1px solid #dcdcdc;\n    cursor: pointer;\n    margin: 0;\n    position: relative;\n    color: #666;\n}\n.ace_searchbtn:last-child {\n    border-radius: 0 3px 3px 0;\n    border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n    background: none;\n    cursor: default;\n}\n.ace_searchbtn:hover {\n    background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n     padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n     content: "";\n     border: solid 2px #888;\n     width: 0.5em;\n     height: 0.5em;\n     border-width:  2px 0 0 2px;\n     display:inline-block;\n     transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n     border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n    border-radius: 50%;\n    border: 0 none;\n    color: #656565;\n    cursor: pointer;\n    font: 16px/16px Arial;\n    padding: 0;\n    height: 14px;\n    width: 14px;\n    top: 9px;\n    right: 7px;\n    position: absolute;\n}\n.ace_searchbtn_close:hover {\n    background-color: #656565;\n    background-position: 50% 100%;\n    color: white;\n}\n\n.ace_button {\n    margin-left: 2px;\n    cursor: pointer;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -o-user-select: none;
1\n    -ms-user-select: none;\n    user-select: none;\n    overflow: hidden;\n    opacity: 0.7;\n    border: 1px solid rgba(100,100,100,0.23);\n    padding: 1px;\n    box-sizing:    border-box!important;\n    color: black;\n}\n\n.ace_button:hover {\n    background-color: #eee;\n    opacity:1;\n}\n.ace_button:active {\n    background-color: #ddd;\n}\n\n.ace_button.checked {\n    border-color: #3399ff;\n    opacity:1;\n}\n\n.ace_search_options{\n    margin-bottom: 3px;\n    text-align: right;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -o-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n    clear: both;\n}\n\n.ace_search_counter {\n    float: left;\n    font-family: arial;\n    padding: 0 8px;\n}'}),ace.define("ace/ext/searchbox",["require","exports","module","ace/ext/searchbox","ace/ext/searchbox","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],function(w,M,F){"use strict";var _=w("../lib/dom"),C=w("../lib/lang"),v=w("../lib/event"),a=w("./searchbox-css"),c=w("../keyboard/hash_handler").HashHandler,s=w("../lib/keys"),r=w("../config").nls;_.importCssString(a,"ace_searchbox",!1);var t=function(){function o(l,u,h){this.element=_.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:r("search-box.find.placeholder","Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"\u200b"],["span",{action:"findNext",class:"ace_searchbtn next"},"\u200b"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},r("search-box.find-all.text","All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:r("search-box.replace.placeholder","Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},r("search-box.replace-next.text","Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},r("search-box.replace-all.text","All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:r("search-box.toggle-replace.title","Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:r("search-box.toggle-regexp.title","RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:r("search-box.toggle-case.title","CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:r("search-box.toggle-whole-word.title","Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:r("search-box.toggle-in-selection.title","Search In Selection")},"S"]]]),this.setSession=this.setSession.bind(this),this.$onEditorInput=this.onEditorInput.bind(this),this.$init(),this.setEditor(l),_.importCssString(a,"ace_searchbox",l.container),v.addListener(this.element,"touchstart",function(f){f.stopPropagation()},l)}return o.prototype.setEditor=function(l){l.searchBox=this,l.renderer.scroller.appendChild(this.element),this.editor=l},o.prototype.setSession=function(l){this.searchRange=null,this.$syncOptions(!0)},o.prototype.onEditorInput=function(){this.find(!1,!1,!0)},o.prototype.$initElements=function(l){this.searchBox=l.querySelector(".ace_search_form"),this.replaceBox=l.querySelector(".ace_replace_form"),this.searchOption=l.querySelector("[action=searchInSelection]"),this.replaceOption=l.querySelector("[action=toggleReplace]"),this.regExpOption=l.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=l.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=l.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=l.querySelector(".ace_search_counter")},o.prototype.$init=function(){var l=this.element;this.$initElements(l);var u=this;v.addListener(l,"mousedown",function(h){setTimeout(function(){u.activeInput.focus()},0),v.stopPropagation(h)}),v.addListener(l,"click",function(h){var m=(h.target||h.srcElement).getAttribute("action");m&&u[m]?u[m]():u.$searchBarKb.commands[m]&&u.$searchBarKb.commands[m].exec(u),v.stopPropagation(h)}),v.addCommandKeyListener(l,function(h,f,m){var y=s.keyCodeToString(m),p=u.$searchBarKb.findKeyCommand(f,y);p&&p.exec&&(p.exec(u),v.stopEvent(h))}),this.$onChange=C.delayedCall(function(){u.find(!1,!1)}),v.addListener(this.searchInput,"input",function(){u.$onChange.schedule(20)}),v.addListener(this.searchInput,"focus",function(){u.activeInput=u.searchInput,u.searchInput.value&&u.highlight()}),v.addListener(this.replaceInput,"focus",function(){u.activeInput=u.replaceInput,u.searchInput.value&&u.highlight()})}
1,o.prototype.setSearchRange=function(l){this.searchRange=l,l?this.searchRangeMarker=this.editor.session.addMarker(l,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},o.prototype.$syncOptions=function(l){_.setCssClass(this.replaceOption,"checked",this.searchRange),_.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",_.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),_.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),_.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var u=this.editor.getReadOnly();this.replaceOption.style.display=u?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!u?"":"none",this.find(!1,!1,l)},o.prototype.highlight=function(l){this.editor.session.highlight(l||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},o.prototype.find=function(l,u,h){if(this.editor.session){var m=!this.editor.find(this.searchInput.value,{skipCurrent:l,backwards:u,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:h,range:this.searchRange})&&this.searchInput.value;_.setCssClass(this.searchBox,"ace_nomatch",m),this.editor._emit("findSearchBox",{match:!m}),this.highlight(),this.updateCounter()}},o.prototype.updateCounter=function(){var l=this.editor,u=l.$search.$options.re,h=u.unicode,f=0,m=0;if(u){var y=this.searchRange?l.session.getTextRange(this.searchRange):l.getValue();l.$search.$isMultilineSearch(l.getLastSearchOptions())&&(y=y.replace(/\r\n|\r|\n/g,"\n"),l.session.doc.$autoNewLine="\n");var p=l.session.doc.positionToIndex(l.selection.anchor);this.searchRange&&(p-=l.session.doc.positionToIndex(this.searchRange.start));for(var $,S=u.lastIndex=0;($=u.exec(y))&&(f++,(S=$.index)<=p&&m++,!(f>999||!$[0]&&(u.lastIndex=S+=C.skipEmptyMatch(y,S,h),S>=y.length))););}this.searchCounter.textContent=r("search-box.search-counter","$0 of $1",[m,f>999?"999+":f])},o.prototype.findNext=function(){this.find(!0,!1)},o.prototype.findPrev=function(){this.find(!0,!0)},o.prototype.findAll=function(){var u=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;_.setCssClass(this.searchBox,"ace_nomatch",u),this.editor._emit("findSearchBox",{match:!u}),this.highlight(),this.hide()},o.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},o.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},o.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},o.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.editor.off("input",this.$onEditorInput),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},o.prototype.show=function(l,u){this.active=!0,this.editor.on("changeSession",this.setSession),this.editor.on("input",this.$onEditorInput),this.element.style.display="",this.replaceOption.checked=u,this.editor.$search.$options.regExp&&(l=C.escapeRegExp(l)),null!=l&&(this.searchInput.value=l),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},o.prototype.isFocused=function(){var l=document.activeElement;return l==this.searchInput||l==this.replaceInput},o}(),e=new c;e.bindKeys({"Ctrl-f|Command-f":function(o){var l=o.isReplace=!o.isReplace;o.replaceBox.style.display=l?"":"none",o.replaceOption.checked=!1,o.$syncOptions(),o.searchInput.focus()},"Ctrl-H|Command-Option-F":function(o){o.editor.getReadOnly()||(o.replaceOption.checked=!0,o.$syncOptions(),o.replaceInput.focus())}
1,"Ctrl-G|Command-G":function(o){o.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(o){o.findPrev()},esc:function(o){setTimeout(function(){o.hide()})},Return:function(o){o.activeInput==o.replaceInput&&o.replace(),o.findNext()},"Shift-Return":function(o){o.activeInput==o.replaceInput&&o.replace(),o.findPrev()},"Alt-Return":function(o){o.activeInput==o.replaceInput&&o.replaceAll(),o.findAll()},Tab:function(o){(o.activeInput==o.replaceInput?o.searchInput:o.replaceInput).focus()}}),e.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(o){o.regExpOption.checked=!o.regExpOption.checked,o.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(o){o.caseSensitiveOption.checked=!o.caseSensitiveOption.checked,o.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(o){o.wholeWordOption.checked=!o.wholeWordOption.checked,o.$syncOptions()}},{name:"toggleReplace",exec:function(o){o.replaceOption.checked=!o.replaceOption.checked,o.$syncOptions()}},{name:"searchInSelection",exec:function(o){o.searchOption.checked=!o.searchRange,o.setSearchRange(o.searchOption.checked&&o.editor.getSelectionRange()),o.$syncOptions()}}]);var n=new c([{bindKey:"Esc",name:"closeSearchBar",exec:function(o){o.searchBox.hide()}}]);t.prototype.$searchBarKb=e,t.prototype.$closeSearchBarKb=n,M.SearchBox=t,M.Search=function(o,l){var u=o.searchBox||new t(o),h=o.session.selection.getRange(),f=h.isMultiLine()?"":o.session.getTextRange(h);u.show(f,l)}}),ace.require(["ace/ext/searchbox"],function(w){Y&&(Y.exports=w)})},94177(Y,te,G){Y=G.nmd(Y),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text_highlight_rules").TextHighlightRules,v=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},v.getTagRule(),{defaultToken:"comment.doc.body",caseInsensitive:!0}]}};_.inherits(v,C),v.getTagRule=function(a){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},v.getStartRule=function(a){return{token:"comment.doc",regex:/\/\*\*(?!\/)/,next:a}},v.getEndRule=function(a){return{token:"comment.doc",regex:"\\*\\/",next:a}},M.DocCommentHighlightRules=v}),ace.define("ace/mode/csharp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./doc_comment_highlight_rules").DocCommentHighlightRules,v=w("./text_highlight_rules").TextHighlightRules,a=function(){var c=this.createKeywordMapper({"variable.language":"this",keyword:"abstract|async|await|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|partial|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic","constant.language":"null|true|false"},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},C.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:/'(?:.|\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n]))?'/},{token:"string",start:'"',end:'"|$',next:[{token:"constant.language.escape",regex:/\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/},{token:"invalid",regex:/\\./}]},{token:"string",start:'@"',end:'"',next:[{token:"constant.language.escape",regex:'""'}]},{token:"string",start:/\$"/,end:'"|$',next:[{token:"constant.language.escape",regex:/\\(:?$)|{{/},{token:"constant.language.escape",regex:/\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/},{token:"invalid",regex:/\\./}]},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"}
vendor: 3,045 bytes, line 1
1,{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:c,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"keyword",regex:"^\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(C,"doc-",[C.getEndRule("start")]),this.normalizeRules()};_.inherits(a,v),M.CSharpHighlightRules=a}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(w,M,F){"use strict";var _=w("../range").Range,C=function(){};(function(){this.checkOutdent=function(v,a){return!!/^\s+$/.test(v)&&/^\s*\}/.test(a)},this.autoOutdent=function(v,a){var s=v.getLine(a).match(/^(\s*\})/);if(!s)return 0;var r=s[1].length,i=v.findMatchingBracket({row:a,column:r});if(!i||i.row==a)return 0;var t=this.$getIndent(v.getLine(i.row));v.replace(new _(a,0,a,r-1),t)},this.$getIndent=function(v){return v.match(/^\s*/)[0]}}).call(C.prototype),M.MatchingBraceOutdent=C}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../range").Range,v=w("./fold_mode").FoldMode,a=M.FoldMode=function(c){c&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+c.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+c.end)))};_.inherits(a,v),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(c,s,r){var i=c.getLine(r);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var t=this._getFoldWidgetBase(c,s,r);return!t&&this.startRegionRe.test(i)?"start":t},this.getFoldWidgetRange=function(c,s,r,i){var o,t=c.getLine(r);if(this.startRegionRe.test(t))return this.getCommentRegionBlock(c,t,r);if(o=t.match(this.foldingStartMarker)){var e=o.index;if(o[1])return this.openingBracketBlock(c,o[1],r,e);var n=c.getCommentFoldRange(r,e+o[0].length,1);return n&&!n.isMultiLine()&&(i?n=this.getSectionRange(c,r):"all"!=s&&(n=null)),n}return"markbegin"!==s&&(o=t.match(this.foldingStopMarker))?(e=o.index+o[0].length,o[1]?this.closingBracketBlock(c,o[1],r,e):c.getCommentFoldRange(r,e,-1)):void 0}
1,this.getSectionRange=function(c,s){for(var r=c.getLine(s),i=r.search(/\S/),t=s,e=r.length,n=s+=1,o=c.getLength();++s<o;){var l=(r=c.getLine(s)).search(/\S/);if(-1!==l){if(i>l)break;var u=this.getFoldWidgetRange(c,"all",s);if(u){if(u.start.row<=t)break;if(u.isMultiLine())s=u.end.row;else if(i==l)break}n=s}}return new C(t,e,n,c.getLine(n).length)},this.getCommentRegionBlock=function(c,s,r){for(var i=s.search(/\s*$/),t=c.getLength(),e=r,n=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,o=1;++r<t;){s=c.getLine(r);var l=n.exec(s);if(l&&(l[1]?o--:o++,!o))break}if(r>e)return new C(e,i,r,s.length)}}.call(a.prototype)}),ace.define("ace/mode/folding/csharp",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/cstyle"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../range").Range,v=w("./cstyle").FoldMode,a=M.FoldMode=function(c){c&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+c.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+c.end)))};_.inherits(a,v),function(){this.usingRe=/^\s*using \S/,this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(c,s,r){var i=this.getFoldWidgetBase(c,s,r);if(!i){var t=c.getLine(r);if(/^\s*#region\b/.test(t))return"start";var e=this.usingRe;if(e.test(t)){var n=c.getLine(r-1),o=c.getLine(r+1);if(!e.test(n)&&e.test(o))return"start"}}return i},this.getFoldWidgetRange=function(c,s,r){var i=this.getFoldWidgetRangeBase(c,s,r);if(i)return i;var t=c.getLine(r);return this.usingRe.test(t)?this.getUsingStatementBlock(c,t,r):/^\s*#region\b/.test(t)?this.getRegionBlock(c,t,r):void 0},this.getUsingStatementBlock=function(c,s,r){for(var i=s.match(this.usingRe)[0].length-1,t=c.getLength(),e=r,n=r;++r<t;)if(s=c.getLine(r),!/^\s*$/.test(s)){if(!this.usingRe.test(s))break;n=r}if(n>e){var o=c.getLine(n).length;return new C(e,i,n,o)}},this.getRegionBlock=function(c,s,r){for(var i=s.search(/\s*$/),t=c.getLength(),e=r,n=/^\s*#(end)?region\b/,o=1;++r<t;){s=c.getLine(r);var l=n.exec(s);if(l&&(l[1]?o--:o++,!o))break}if(r>e)return new C(e,i,r,s.length)}}.call(a.prototype)}),ace.define("ace/mode/csharp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/csharp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/csharp"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text").Mode,v=w("./csharp_highlight_rules").CSharpHighlightRules,a=w("./matching_brace_outdent").MatchingBraceOutdent,c=w("./folding/csharp").FoldMode,s=function(){this.HighlightRules=v,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new c};_.inherits(s,C),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(r,i,t){var e=this.$getIndent(i),o=this.getTokenizer().getLineTokens(i,r).tokens;return o.length&&"comment"==o[o.length-1].type||"start"==r&&i.match(/^.*[\{\(\[]\s*$/)&&(e+=t),e},this.checkOutdent=function(r,i,t){return this.$outdent.checkOutdent(i,t)},this.autoOutdent=function(r,i,t){this.$outdent.autoOutdent(i,t)},this.createWorker=function(r){return null},this.$id="ace/mode/csharp"}.call(s.prototype),M.Mode=s}),ace.require(["ace/mode/csharp"],function(w){Y&&(Y.exports=w)})},50763(Y,te,G){Y=G.nmd(Y),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text_highlight_rules").TextHighlightRules,v=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.\-\'\" ]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"}
1,{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},v.getTagRule(),{defaultToken:"comment.doc.body",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};_.inherits(v,C),v.getTagRule=function(a){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},v.getStartRule=function(a){return{token:"comment.doc",regex:/\/\*\*(?!\/)/,next:a}},v.getEndRule=function(a){return{token:"comment.doc",regex:"\\*\\/",next:a}},M.JsDocCommentHighlightRules=v}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,v=w("./text_highlight_rules").TextHighlightRules,a="[a-zA-Z\\$_\xa1-\uffff][a-zA-Z\\d\\$_\xa1-\uffff]*",c=function(i){var t={"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},e=this.createKeywordMapper(t,"identifier"),o="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)",l="(function)(\\s*)(\\*?)",u={token:["identifier","text","paren.lparen"],regex:"(\\b(?!"+Object.values(t).join("|")+"\\b)"+a+")(\\s*)(\\()"};this.$rules={no_regex:[C.getStartRule("doc-start"),r("no_regex"),u,{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+a+")(\\s*)(=)(\\s*)"+l+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))("+a+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+a+")(\\s*)(:)(\\s*)"+l+"(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)"+l+"(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|debug|time|trace|timeEnd|assert)\b/},{token:e,regex:a},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/}
1,{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:"keyword.operator",regex:/=/},{token:["storage.type","text","storage.type","text","paren.lparen"],regex:l+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:"prototype"},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:a},{regex:"",token:"empty",next:"no_regex"}],start:[C.getStartRule("doc-start"),r("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/}
1,{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[r("function_arguments"),{token:"variable.parameter",regex:a},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:o},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:o},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!i||!i.noES6)&&(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(h,f,m){if(this.next="{"==h?this.nextState:"","{"==h&&m.length)m.unshift("start",f);else if("}"==h&&m.length&&(m.shift(),this.next=m.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==h?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:o},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+a+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=[^\\(]+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!i||0!=i.jsx)&&s.call(this)),this.embedRules(C,"doc-",[C.getEndRule("no_regex")]),this.normalizeRules()};function s(){var i=a.replace("\\d","\\d\\-"),t={onMatch:function(n,o,l){var u="/"==n.charAt(1)?2:1;return 1==u?(o!=this.nextState?l.unshift(this.next,this.nextState,0):l.unshift(this.next),l[2]++):2==u&&o==this.nextState&&(l[1]--,(!l[1]||l[1]<0)&&(l.shift(),l.shift())),[{type:"meta.tag.punctuation."+(1==u?"":"end-")+"tag-open.xml",value:n.slice(0,u)},{type:"meta.tag.tag-name.xml",value:n.substr(u)}]},regex:"</?(?:"+i+"|(?=>))",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var e={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[e,t,{include:"reference"},{defaultToken:"string.xml"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(n,o,l){return o==l[0]&&l.shift(),2==n.length&&(l[0]==this.nextState&&l[1]--,(!l[1]||l[1]<0)&&l.splice(0,2)),this.next=l[0]||"start",[{type:this.token,value:n}]},nextState:"jsx"},e,r("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:i},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]}
1,t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function r(i){return[{token:"comment",regex:/\/\*/,next:[C.getTagRule(),{token:"comment",regex:"\\*\\/",next:i||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[C.getTagRule(),{token:"comment",regex:"$|^",next:i||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}_.inherits(c,v),M.JavaScriptHighlightRules=c}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(w,M,F){"use strict";var _=w("../range").Range,C=function(){};(function(){this.checkOutdent=function(v,a){return!!/^\s+$/.test(v)&&/^\s*\}/.test(a)},this.autoOutdent=function(v,a){var s=v.getLine(a).match(/^(\s*\})/);if(!s)return 0;var r=s[1].length,i=v.findMatchingBracket({row:a,column:r});if(!i||i.row==a)return 0;var t=this.$getIndent(v.getLine(i.row));v.replace(new _(a,0,a,r-1),t)},this.$getIndent=function(v){return v.match(/^\s*/)[0]}}).call(C.prototype),M.MatchingBraceOutdent=C}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../behaviour").Behaviour,v=w("../../token_iterator").TokenIterator;function a(s,r){return s&&s.type.lastIndexOf(r+".xml")>-1}var c=function(){this.add("string_dquotes","insertion",function(s,r,i,t,e){if('"'==e||"'"==e){var n=e,o=t.doc.getTextRange(i.getSelectionRange());if(""!==o&&"'"!==o&&'"'!=o&&i.getWrapBehavioursEnabled())return{text:n+o+n,selection:!1};var l=i.getCursorPosition(),h=t.doc.getLine(l.row).substring(l.column,l.column+1),f=new v(t,l.row,l.column),m=f.getCurrentToken();if(h==n&&(a(m,"attribute-value")||a(m,"string")))return{text:"",selection:[1,1]};if(m||(m=f.stepBackward()),!m)return;for(;a(m,"tag-whitespace")||a(m,"whitespace");)m=f.stepBackward();var y=!h||h.match(/\s/);if(a(m,"attribute-equals")&&(y||">"==h)||a(m,"decl-attribute-equals")&&(y||"?"==h))return{text:n+n,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(s,r,i,t,e){var n=t.doc.getTextRange(e);if(!e.isMultiLine()&&('"'==n||"'"==n)&&t.doc.getLine(e.start.row).substring(e.start.column+1,e.start.column+2)==n)return e.end.column++,e}),this.add("autoclosing","insertion",function(s,r,i,t,e){if(">"==e){var n=i.getSelectionRange().start,o=new v(t,n.row,n.column),l=o.getCurrentToken()||o.stepBackward();if(!l||!(a(l,"tag-name")||a(l,"tag-whitespace")||a(l,"attribute-name")||a(l,"attribute-equals")||a(l,"attribute-value"))||a(l,"reference.attribute-value"))return;if(a(l,"attribute-value")){var u=o.getCurrentTokenColumn()+l.value.length;if(n.column<u)return;if(n.column==u){var h=o.stepForward();if(h&&a(h,"attribute-value"))return;o.stepBackward()}}if(/^\s*>/.test(t.getLine(n.row).slice(n.column)))return;for(;!a(l,"tag-name");)if("<"==(l=o.stepBackward()).value){l=o.stepForward();break}var f=o.getCurrentTokenRow(),m=o.getCurrentTokenColumn();if(a(o.stepBackward(),"end-tag-open"))return;var y=l.value;return f==n.row&&(y=y.substring(0,n.column-m)),this.voidElements&&this.voidElements.hasOwnProperty(y.toLowerCase())?void 0:{text:"></"+y+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(s,r,i,t,e){if("\n"==e){var n=i.getCursorPosition(),o=t.getLine(n.row),l=new v(t,n.row,n.column),u=l.getCurrentToken();if(a(u,"")&&-1!==u.type.indexOf("tag-close")){if("/>"==u.value)return;for(;u&&-1===u.type.indexOf("tag-name");)u=l.stepBackward();if(!u)return;var h=u.value,f=l.getCurrentTokenRow();if(!(u=l.stepBackward())||-1!==u.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[h]||!this.voidElements){var m=t.getTokenAt(n.row,n.column+1),y=(o=t.getLine(f),this.$getIndent(o)),p=y+t.getTabString();return m&&"</"===m.value?{text:"\n"+p+"\n"+y,selection:[1,p.length,1,p.length]}:{text:"\n"+p}}}}})};_.inherits(c,C),M.XmlBehaviour=c}),ace.define("ace/mode/behaviour/javascript",["require","exports","module","ace/lib/oop","ace/token_iterator","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../token_iterator").TokenIterator,v=w("../behaviour/cstyle").CstyleBehaviour,a=w("../behaviour/xml").XmlBehaviour,c=function(){var s=new a({closeCurlyBraces:!0}).getBehaviours();this.addBehaviours(s),this.inherit(v),this.add("autoclosing-fragment","insertion",function(r,i,t,e,n){if(">"==n){var o=t.getSelectionRange().start,l=new C(e,o.row,o.column),u=l.getCurrentToken()||l.stepBackward();if(!u)return;if("<"==u.value)return{text:"></>",selection:[1,1]}}})};_.inherits(c,v),M.JavaScriptBehaviour=c}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../range").Range,v=w("./fold_mode").FoldMode,a=M.FoldMode=function(r,i){v.call(this),this.voidElements=r||{},this.optionalEndTags=_.mixin({},this.voidElements),i&&_.mixin(this.optionalEndTags,i)};_.inherits(a,v);var c=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};function s(r,i){return r&&r.type&&r.type.lastIndexOf(i+".xml")>-1}(function(){this.getFoldWidget=function(r,i,t){var e=this._getFirstTagInLine(r,t);return e?e.closing||!e.tagName&&e.selfClosing?"markbeginend"===i?"end":"":!e.tagName||e.selfClosing||this.voidElements.hasOwnProperty(e.tagName.toLowerCase())||this._findEndTagInLine(r,t,e.tagName,e.end.column)?"":"start":this.getCommentFoldWidget(r,t)},this.getCommentFoldWidget=function(r,i){return/comment/.test(r.getState(i))&&/<!-/.test(r.getLine(i))?"start":""},this._getFirstTagInLine=function(r,i){for(var t=r.getTokens(i),e=new c,n=0;n<t.length;n++){var o=t[n];if(s(o,"tag-open")){if(e.end.column=e.start.column+o.value.length,e.closing=s(o,"end-tag-open"),!(o=t[++n]))return null;if(e.tagName=o.value,""===o.value){if(!(o=t[++n]))return null;e.tagName=o.value}for(e.end.column+=o.value.length,n++;n<t.length;n++)if(e.end.column+=(o=t[n]).value.length,s(o,"tag-close")){e.selfClosing="/>"==o.value;break}return e}if(s(o,"tag-close"))return e.selfClosing="/>"==o.value,e;e.start.column+=o.value.length}return null},this._findEndTagInLine=function(r,i,t,e){for(var n=r.getTokens(i),o=0,l=0;l<n.length;l++){var u=n[l];if(!((o+=u.value.length)<e-1)&&s(u,"end-tag-open")&&(s(u=n[l+1],"tag-name")&&""===u.value&&(u=n[l+2]),u&&u.value==t))return!0}return!1},this.getFoldWidgetRange=function(r,i,t){if(!this._getFirstTagInLine(r,t))return this.getCommentFoldWidget(r,t)&&r.getCommentFoldRange(t,r.getLine(t).length);var n=r.getMatchingTags({row:t,column:0});return n?new C(n.openTag.end.row,n.openTag.end.column,n.closeTag.start.row,n.closeTag.start.column):void 0}}).call(a.prototype)}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../range").Range,v=w("./fold_mode").FoldMode,a=M.FoldMode=function(c){c&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+c.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+c.end)))};_.inherits(a,v),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(c,s,r){var i=c.getLine(r);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var t=this._getFoldWidgetBase(c,s,r);return!t&&this.startRegionRe.test(i)?"start":t},this.getFoldWidgetRange=function(c,s,r,i){var o,t=c.getLine(r);if(this.startRegionRe.test(t))return this.getCommentRegionBlock(c,t,r);if(o=t.match(this.foldingStartMarker)){var e=o.index;if(o[1])return this.openingBracketBlock(c,o[1],r,e);var n=c.getCommentFoldRange(r,e+o[0].length,1);return n&&!n.isMultiLine()&&(i?n=this.getSectionRange(c,r):"all"!=s&&(n=null)),n}return"markbegin"!==s&&(o=t.match(this.foldingStopMarker))?(e=o.index+o[0].length,o[1]?this.closingBracketBlock(c,o[1],r,e):c.getCommentFoldRange(r,e,-1)):void 0}
1,this.getSectionRange=function(c,s){for(var r=c.getLine(s),i=r.search(/\S/),t=s,e=r.length,n=s+=1,o=c.getLength();++s<o;){var l=(r=c.getLine(s)).search(/\S/);if(-1!==l){if(i>l)break;var u=this.getFoldWidgetRange(c,"all",s);if(u){if(u.start.row<=t)break;if(u.isMultiLine())s=u.end.row;else if(i==l)break}n=s}}return new C(t,e,n,c.getLine(n).length)},this.getCommentRegionBlock=function(c,s,r){for(var i=s.search(/\s*$/),t=c.getLength(),e=r,n=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,o=1;++r<t;){s=c.getLine(r);var l=n.exec(s);if(l&&(l[1]?o--:o++,!o))break}if(r>e)return new C(e,i,r,s.length)}}.call(a.prototype)}),ace.define("ace/mode/folding/javascript",["require","exports","module","ace/lib/oop","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("./xml").FoldMode,v=w("./cstyle").FoldMode,a=M.FoldMode=function(c){c&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+c.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+c.end))),this.xmlFoldMode=new C};_.inherits(a,v),function(){this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(c,s,r){return this.getFoldWidgetBase(c,s,r)||this.xmlFoldMode.getFoldWidget(c,s,r)},this.getFoldWidgetRange=function(c,s,r,i){return this.getFoldWidgetRangeBase(c,s,r,i)||this.xmlFoldMode.getFoldWidgetRange(c,s,r)}}.call(a.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/javascript","ace/mode/folding/javascript"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text").Mode,v=w("./javascript_highlight_rules").JavaScriptHighlightRules,a=w("./matching_brace_outdent").MatchingBraceOutdent,c=w("../worker/worker_client").WorkerClient,s=w("./behaviour/javascript").JavaScriptBehaviour,r=w("./folding/javascript").FoldMode,i=function(){this.HighlightRules=v,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new r};_.inherits(i,C),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(t,e,n){var o=this.$getIndent(e),l=this.getTokenizer().getLineTokens(e,t),u=l.tokens,h=l.state;if(u.length&&"comment"==u[u.length-1].type)return o;if("start"==t||"no_regex"==t)e.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/)&&(o+=n);else if("doc-start"==t&&("start"==h||"no_regex"==h))return"";return o},this.checkOutdent=function(t,e,n){return this.$outdent.checkOutdent(e,n)},this.autoOutdent=function(t,e,n){this.$outdent.autoOutdent(e,n)},this.createWorker=function(t){var e=new c(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return e.attachToDocument(t.getDocument()),e.on("annotate",function(n){t.setAnnotations(n.data)}),e.on("terminate",function(){t.clearAnnotations()}),e},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(i.prototype),M.Mode=i}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),v=(w("../lib/lang"),w("./text_highlight_rules").TextHighlightRules),a=M.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-ju
1stify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",c=M.supportFunction="rgb|rgba|url|attr|counter|counters",s=M.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",r=M.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",i=M.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",t=M.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",e=M.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",n=M.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",o=function(){var l=this.createKeywordMapper({"supp
1ort.function":c,"support.constant":s,"support.type":a,"support.constant.color":r,"support.constant.fonts":i},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:t},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+t+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:t},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:e},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:n},{include:"url"},{token:l,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{token:"paren.lparen",regex:"\\{"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};_.inherits(o,v),M.CssHighlightRules=o}),ace.define("ace/mode/css_completions",["require","exports","module"],function(w,M,F){"use strict";var _={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1}
1,"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},C=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var v=document.createElement("c").style;for(var a in v)if("string"==typeof v[a]){var c=a.replace(/[A-Z]/g,function(s){return"-"+s.toLowerCase()});_.hasOwnProperty(c)||(_[c]=1)}}this.completionsDefined=!0},this.getCompletions=function(v,a,c,s){if(this.completionsDefined||this.defineCompletions(),"ruleset"===v||"ace/mode/scss"==a.$mode.$id){var r=a.getLine(c.row).substr(0,c.column),i=/\([^)]*$/.test(r);return i&&(r=r.substr(r.lastIndexOf("(")+1)),/:[^;]+$/.test(r)?(/([\w\-]+):[^:]*$/.test(r),this.getPropertyValueCompletions(v,a,c,s)):this.getPropertyCompletions(v,a,c,s,i)}return[]},this.getPropertyCompletions=function(v,a,c,s,r){return r=r||!1,Object.keys(_).map(function(t){return{caption:t,snippet:t+": $0"+(r?"":";"),meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(v,a,c,s){var r=a.getLine(c.row).substr(0,c.column),i=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!i)return[];var t=[];return i in _&&"object"==typeof _[i]&&(t=Object.keys(_[i])),t.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(C.prototype),M.CssCompletions=C}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(w,M,F){"use strict";var _=w("../../lib/oop"),v=(w("../behaviour"),w("./cstyle").CstyleBehaviour),a=w("../../token_iterator").TokenIterator,c=function(){this.inherit(v),this.add("colon","insertion",function(s,r,i,t,e){if(":"===e&&i.selection.isEmpty()){var n=i.getCursorPosition(),o=new a(t,n.row,n.column),l=o.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=o.stepBackward()),l&&"support.type"===l.type){var u=t.doc.getLine(n.row);if(":"===u.substring(n.column,n.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(u.substring(n.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(s,r,i,t,e){var n=t.doc.getTextRange(e);if(!e.isMultiLine()&&":"===n){var o=i.getCursorPosition(),l=new a(t,o.row,o.column),u=l.getCurrentToken();if(u&&u.value.match(/\s+/)&&(u=l.stepBackward()),u&&"support.type"===u.type&&";"===t.doc.getLine(e.start.row).substring(e.end.column,e.end.column+1))return e.end.column++,e}}),this.add("semicolon","insertion",function(s,r,i,t,e){if(";"===e&&i.selection.isEmpty()){var n=i.getCursorPosition();if(";"===t.doc.getLine(n.row).substring(n.column,n.column+1))return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(s,r,i,t,e){if("!"===e&&i.selection.isEmpty()){var n=i.getCursorPosition(),o=t.doc.getLine(n.row);if(/^\s*(;|}|$)/.test(o.substring(n.column)))return{text:"!important",selection:[10,10]}}})};_.inherits(c,v),M.CssBehaviour=c}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/wor
1ker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text").Mode,v=w("./css_highlight_rules").CssHighlightRules,a=w("./matching_brace_outdent").MatchingBraceOutdent,c=w("../worker/worker_client").WorkerClient,s=w("./css_completions").CssCompletions,r=w("./behaviour/css").CssBehaviour,i=w("./folding/cstyle").FoldMode,t=function(){this.HighlightRules=v,this.$outdent=new a,this.$behaviour=new r,this.$completer=new s,this.foldingRules=new i};_.inherits(t,C),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,n,o){var l=this.$getIndent(n),u=this.getTokenizer().getLineTokens(n,e).tokens;return u.length&&"comment"==u[u.length-1].type||n.match(/^.*\{\s*$/)&&(l+=o),l},this.checkOutdent=function(e,n,o){return this.$outdent.checkOutdent(n,o)},this.autoOutdent=function(e,n,o){this.$outdent.autoOutdent(n,o)},this.getCompletions=function(e,n,o,l){return this.$completer.getCompletions(e,n,o,l)},this.createWorker=function(e){var n=new c(["ace"],"ace/mode/css_worker","Worker");return n.attachToDocument(e.getDocument()),n.on("annotate",function(o){e.setAnnotations(o.data)}),n.on("terminate",function(){e.clearAnnotations()}),n},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(t.prototype),M.Mode=t}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text_highlight_rules").TextHighlightRules,v=function(a){var c="[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+c+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:c},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+c+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+c+":)?"+c+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:c},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===v&&this.normalizeRules()};(function(){this.embedTagRules=function(a,c,s){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+s+".tag-name.xml"],regex:"(<)("+s+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:c+"start"}]}),this.$rules[s+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(r,i,t){return t.splice(0),this.token}}],this.embedRules(a,c,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+s+".tag-name.xml"],regex:"(</)("+s+"(?=\\s|>|$))",next:s+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(C.prototype),_.inherits(v,C),M.XmlHighlightRules=v}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("../lib/lang"),v=w("./css_highlight_rules").CssHighlightRules,a=w("./javascript_highlight_rules").JavaScriptHighlightRules,c=w("./xml_highlight_rules").XmlHighlightRules,s=C.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),r=function(){c.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(i,t){var e=s[t];
1return["meta.tag.punctuation."+("<"==i?"":"end-")+"tag-open.xml","meta.tag"+(e?"."+e:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:.]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(v,"css-","style"),this.embedTagRules(new a({jsx:!1}).getRules(),"js-","script"),this.constructor===r&&this.normalizeRules()};_.inherits(r,c),M.HtmlHighlightRules=r}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("./fold_mode").FoldMode,v=M.FoldMode=function(a,c){this.defaultMode=a,this.subModes=c};_.inherits(v,C),function(){this.$getMode=function(a){for(var c in"string"!=typeof a&&(a=a[0]),this.subModes)if(0===a.indexOf(c))return this.subModes[c];return null},this.$tryMode=function(a,c,s,r){var i=this.$getMode(a);return i?i.getFoldWidget(c,s,r):""},this.getFoldWidget=function(a,c,s){return this.$tryMode(a.getState(s-1),a,c,s)||this.$tryMode(a.getState(s),a,c,s)||this.defaultMode.getFoldWidget(a,c,s)},this.getFoldWidgetRange=function(a,c,s){var r=this.$getMode(a.getState(s-1));return(!r||!r.getFoldWidget(a,c,s))&&(r=this.$getMode(a.getState(s))),(!r||!r.getFoldWidget(a,c,s))&&(r=this.defaultMode),r.getFoldWidgetRange(a,c,s)}}.call(v.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("./mixed").FoldMode,v=w("./xml").FoldMode,a=w("./cstyle").FoldMode,c=M.FoldMode=function(s,r){C.call(this,new v(s,r),{"js-":new a,"css-":new a})};_.inherits(c,C)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(w,M,F){"use strict";var _=w("../token_iterator").TokenIterator,a=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"].concat(["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"]),c={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1}
1,input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,for:1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{for:1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,default:1},section:{},summary:{},u:{},ul:{},var:{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},s=Object.keys(c);function r(n,o){return n.type.lastIndexOf(o+".xml")>-1}function i(n,o){for(var l=new _(n,o.row,o.column),u=l.getCurrentToken();u&&!r(u,"tag-name");)u=l.stepBackward();if(u)return u.value}var e=function(){};(function(){this.getCompletions=function(n,o,l,u){var h=o.getTokenAt(l.row,l.column);if(!h)return[];if(r(h,"tag-name")||r(h,"tag-open")||r(h,"end-tag-open"))return this.getTagCompletions(n,o,l,u);if(r(h,"tag-whitespace")||r(h,"attribute-name"))return this.getAttributeCompletions(n,o,l,u);if(r(h,"attribute-value"))return this.getAttributeValueCompletions(n,o,l,u);var f=o.getLine(l.row).substr(0,l.column);return/&[a-z]*$/i.test(f)?this.getHTMLEntityCompletions(n,o,l,u):[]},this.getTagCompletions=function(n,o,l,u){return s.map(function(h){return{value:h,meta:"tag",score:1e6}})},this.getAttributeCompletions=function(n,o,l,u){var h=i(o,l);if(!h)return[];var f=a;return h in c&&(f=f.concat(Object.keys(c[h]))),f.map(function(m){return{caption:m,snippet:m+'="$0"',meta:"attribute",score:1e6}})},this.getAttributeValueCompletions=function(n,o,l,u){var h=i(o,l),f=function t(n,o){for(var l=new _(n,o.row,o.column),u=l.getCurrentToken();u&&!r(u,"attribute-name");)u=l.stepBackward();if(u)return u.value}(o,l);if(!h)return[];var m=[];return h in c&&f in c[h]&&"object"==typeof c[h][f]&&(m=Object.keys(c[h][f])),m.map(function(y){return{caption:y,snippet:y,meta:"attribute value",score:1e6}})},this.getHTMLEntityCompletions=function(n,o,l,u){return["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;
1","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"].map(function(f){return{caption:f,snippet:f,meta:"html entity",score:1e6}})}}).call(e.prototype),M.HtmlCompletions=e}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("../lib/lang"),v=w("./text").Mode,a=w("./javascript").Mode,c=w("./css").Mode,s=w("./html_highlight_rules").HtmlHighlightRules,r=w("./behaviour/xml").XmlBehaviour,i=w("./folding/html").FoldMode,t=w("./html_completions").HtmlCompletions,e=w("../worker/worker_client").WorkerClient,n=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],o=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],l=function(u){this.fragmentContext=u&&u.fragmentContext,this.HighlightRules=s,this.$behaviour=new r,this.$completer=new t,this.createModeDelegates({"js-":a,"css-":c}),this.foldingRules=new i(this.voidElements,C.arrayToMap(o))};_.inherits(l,v),function(){this.blockComment={start:"\x3c!--",end:"--\x3e"},this.voidElements=C.arrayToMap(n),this.getNextLineIndent=function(u,h,f){return this.$getIndent(h)},this.checkOutdent=function(u,h,f){return!1},this.getCompletions=function(u,h,f,m){return this.$completer.getCompletions(u,h,f,m)},this.createWorker=function(u){if(this.constructor==l){var h=new e(["ace"],"ace/mode/html_worker","Worker");return h.attachToDocument(u.getDocument()),this.fragmentContext&&h.call("setOptions",[{context:this.fragmentContext}]),h.on("error",function(f){u.setAnnotations(f.data)}),h.on("terminate",function(){u.clearAnnotations()}),h}},this.$id="ace/mode/html",this.snippetFileId="ace/snippets/html"}.call(l.prototype),M.Mode=l}),ace.require(["ace/mode/html"],function(w){Y&&(Y.exports=w)})},25949(Y,te,G){Y=G.nmd(Y),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("./fold_mode").FoldMode,v=M.FoldMode=function(a,c){this.defaultMode=a,this.subModes=c};_.inherits(v,C),function(){this.$getMode=function(a){for(var c in"string"!=typeof a&&(a=a[0]),this.subModes)if(0===a.indexOf(c))return this.subModes[c];return null},this.$tryMode=function(a,c,s,r){var i=this.$getMode(a);return i?i.getFoldWidget(c,s,r):""},this.getFoldWidget=function(a,c,s){return this.$tryMode(a.getState(s-1),a,c,s)||this.$tryMode(a.getState(s),a,c,s)||this.defaultMode.getFoldWidget(a,c,s)},this.getFoldWidgetRange=function(a,c,s){var r=this.$getMode(a.getState(s-1));return(!r||!r.getFoldWidget(a,c,s))&&(r=this.$getMode(a.getState(s))),(!r||!r.getFoldWidget(a,c,s))&&(r=this.defaultMode),r.getFoldWidgetRange(a,c,s)}}.call(v.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../range").Range,v=w("./fold_mode").FoldMode,a=M.FoldMode=function(r,i){v.call(this),this.voidElements=r||{},this.optionalEndTags=_.mixin({},this.voidElements),i&&_.mixin(this.optionalEndTags,i)};_.inherits(a,v);var c=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};function s(r,i){return r&&r.type&&r.type.lastIndexOf(i+".xml")>-1}(function(){this.getFoldWidget=function(r,i,t){var e=this._getFirstTagInLine(r,t);return e?e.closing||!e.tagName&&e.selfClosing?"markbeginend"===i?"end":"":!e.tagName||e.selfClosing||this.voidElements.hasOwnProperty(e.tagName.toLowerCase())||this._findEndTagInLine(r,t,e.tagName,e.end.column)?"":"start":this.getCommentFoldWidget(r,t)},this.getCommentFoldWidget=function(r,i){return/comment/.test(r.getState(i))&&/<!-/.test(r.getLine(i))?"start":""},this._getFirstTagInLine=function(r,i){for(var t=r.getTokens(i),e=new c,n=0;n<t.length;n++){var o=t[n];if(s(o,"tag-open")){if(e.end.column=e.start.column+o.value.length,e.closing=s(o,"end-tag-open"),!(o=t[++n]))return null;if(e.tagName=o.value,""===o.value){if(!(o=t[++n]))return null;e.tagName=o.value}for(e.end.column+=o.value.length,n++;n<t.length;n++)if(e.end.column+=(o=t[n]).value.length,s(o,"tag-close")){e.selfClosing="/>"==o.value;break}return e}if(s(o,"tag-close"))return e.selfClosing="/>"==o.value,e;e.start.column+=o.value.length}return null},this._findEndTagInLine=function(r,i,t,e){for(var n=r.getTokens(i),o=0,l=0;l<n.length;l++){var u=n[l];if(!((o+=u.value.length)<e-1)&&s(u,"end-tag-open")&&(s(u=n[l+1],"tag-name")&&""===u.value&&(u=n[l+2]),u&&u.value==t))return!0}return!1},this.getFoldWidgetRange=function(r,i,t){if(!this._getFirstTagInLine(r,t))return this.getCommentFoldWidget(r,t)&&r.getCommentFoldRange(t,r.getLine(t).length);var n=r.getMatchingTags({row:t,column:0});return n?new C(n.openTag.end.row,n.openTag.end.column,n.closeTag.start.row,n.closeTag.start.column):void 0}}).call(a.prototype)}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../range").Range,v=w("./fold_mode").FoldMode,a=M.FoldMode=function(c){c&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+c.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+c.end)))};_.inherits(a,v),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(c,s,r){var i=c.getLine(r);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var t=this._getFoldWidgetBase(c,s,r);return!t&&this.startRegionRe.test(i)?"start":t},this.getFoldWidgetRange=function(c,s,r,i){var o,t=c.getLine(r);if(this.startRegionRe.test(t))return this.getCommentRegionBlock(c,t,r);if(o=t.match(this.foldingStartMarker)){var e=o.index;if(o[1])return this.openingBracketBlock(c,o[1],r,e);var n=c.getCommentFoldRange(r,e+o[0].length,1);return n&&!n.isMultiLine()&&(i?n=this.getSectionRange(c,r):"all"!=s&&(n=null)),n}return"markbegin"!==s&&(o=t.match(this.foldingStopMarker))?(e=o.index+o[0].length,o[1]?this.closingBracketBlock(c,o[1],r,e):c.getCommentFoldRange(r,e,-1)):void 0}
1,this.getSectionRange=function(c,s){for(var r=c.getLine(s),i=r.search(/\S/),t=s,e=r.length,n=s+=1,o=c.getLength();++s<o;){var l=(r=c.getLine(s)).search(/\S/);if(-1!==l){if(i>l)break;var u=this.getFoldWidgetRange(c,"all",s);if(u){if(u.start.row<=t)break;if(u.isMultiLine())s=u.end.row;else if(i==l)break}n=s}}return new C(t,e,n,c.getLine(n).length)},this.getCommentRegionBlock=function(c,s,r){for(var i=s.search(/\s*$/),t=c.getLength(),e=r,n=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,o=1;++r<t;){s=c.getLine(r);var l=n.exec(s);if(l&&(l[1]?o--:o++,!o))break}if(r>e)return new C(e,i,r,s.length)}}.call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("./mixed").FoldMode,v=w("./xml").FoldMode,a=w("./cstyle").FoldMode,c=M.FoldMode=function(s,r){C.call(this,new v(s,r),{"js-":new a,"css-":new a})};_.inherits(c,C)}),ace.define("ace/mode/folding/nunjucks",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/html","ace/range","ace/token_iterator"],function(w,M,F){"use strict";var _=w("../../lib/oop"),v=(w("./mixed"),w("./html").FoldMode),a=w("../../range").Range,c=w("../../token_iterator").TokenIterator,s=M.FoldMode=function(r,i){v.call(this,r,i)};_.inherits(s,v),function(){function r(t,e){var n=t.exec(e);if(n){var o=n[0].includes("set")?"set":n[1].toLowerCase();if(o){var l=n[0].toLowerCase().indexOf(o);return n.index+l+1}}}function i(t,e){var n,o=t.$tokenIndex,l=e?"punctuation.begin":"punctuation.end";for(t.step=e?t.stepBackward:t.stepForward;(n=t.step())&&n.type!==l;);if(n){var u=t.getCurrentTokenPosition();return e||(u.column=u.column+n.value.length),t.$tokenIndex=o,u}}this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.indentKeywords={block:1,if:1,for:1,asyncEach:1,asyncAll:1,macro:1,filter:1,call:1,else:0,elif:0,set:1,endblock:-1,endif:-1,endfor:-1,endeach:-1,endall:-1,endmacro:-1,endfilter:-1,endcall:-1,endset:-1},this.foldingStartMarkerNunjucks=/(?:\{%-?\s*)(?:(block|if|else|elif|for|asyncEach|asyncAll|macro|filter|call)\b.*)|(?:\bset(?:[^=]*))(?=%})/i,this.foldingStopMarkerNunjucks=/(?:\{%-?\s*)(endblock|endif|endfor|endeach|endall|endmacro|endfilter|endcall|endset)\b.*(?=%})/i,this.getFoldWidgetRange=function(t,e,n){var o=t.doc.getLine(n),l=r(this.foldingStartMarkerNunjucks,o);return l||(l=r(this.foldingStopMarkerNunjucks,o))?this.nunjucksBlock(t,n,l):this.getFoldWidgetRangeBase(t,e,n)},this.getFoldWidget=function(t,e,n){var h,o=t.getLine(n),l=this.foldingStartMarkerNunjucks.test(o),u=this.foldingStopMarkerNunjucks.test(o);return l&&!u&&(h=r(this.foldingStartMarkerNunjucks,o))&&"keyword.control"
1===t.getTokenAt(n,h).type?"start":u&&!l&&"markbeginend"===e&&(h=r(this.foldingStopMarkerNunjucks,o))&&"keyword.control"===t.getTokenAt(n,h).type?"end":this.getFoldWidgetBase(t,e,n)},this.nunjucksBlock=function(t,e,n){var o=new c(t,e,n),l=o.getCurrentToken();if(l&&"keyword.control"==l.type){var u=l.value,h=[u],f=this.indentKeywords[u];if(("else"===u||"elif"===u)&&(f=1),f){var m=i(o,-1===f);if(l){for(o.step=-1===f?o.stepBackward:o.stepForward;l=o.step();)if("keyword.control"===l.type){var y=f*this.indentKeywords[l.value];if("set"===l.value){var p=o.getCurrentTokenPosition(),S=t.getLine(p.row).substring(p.column);if(!/^[^=]*%}/.test(S))continue}if(y>0)h.unshift(l.value);else if(y<=0){if(h.shift(),!h.length)break;0===y&&h.unshift(l.value)}}if(!l)return null;var $=i(o,1===f);return 1===f?a.fromPoints(m,$):a.fromPoints($,m)}}}}}.call(s.prototype)}),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text_highlight_rules").TextHighlightRules,v=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.\-\'\" ]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},v.getTagRule(),{defaultToken:"comment.doc.body",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};_.inherits(v,C),v.getTagRule=function(a){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},v.getStartRule=function(a){return{token:"comment.doc",regex:/\/\*\*(?!\/)/,next:a}},v.getEndRule=function(a){return{token:"comment.doc",regex:"\\*\\/",next:a}},M.JsDocCommentHighlightRules=v}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,v=w("./text_highlight_rules").TextHighlightRules,a="[a-zA-Z\\$_\xa1-\uffff][a-zA-Z\\d\\$_\xa1-\uffff]*",c=function(i){var t={"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},e=this.createKeywordMapper(t,"identifier"),o="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)",l="(function)(\\s*)(\\*?)",u={token:["identifier","text","paren.lparen"],regex:"(\\b(?!"+Object.values(t).join("|")+"\\b)"+a+")(\\s*)(\\()"};this.$rules={no_regex:[C.getStartRule("doc-start"),r("no_regex"),u,{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"}
1,{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+a+")(\\s*)(=)(\\s*)"+l+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))("+a+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+a+")(\\s*)(:)(\\s*)"+l+"(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)"+l+"(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|debug|time|trace|timeEnd|assert)\b/},{token:e,regex:a},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:"keyword.operator",regex:/=/},{token:["storage.type","text","storage.type","text","paren.lparen"],regex:l+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:"prototype"},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|
1Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:a},{regex:"",token:"empty",next:"no_regex"}],start:[C.getStartRule("doc-start"),r("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[r("function_arguments"),{token:"variable.parameter",regex:a},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}
1],qqstring:[{token:"constant.language.escape",regex:o},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:o},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!i||!i.noES6)&&(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(h,f,m){if(this.next="{"==h?this.nextState:"","{"==h&&m.length)m.unshift("start",f);else if("}"==h&&m.length&&(m.shift(),this.next=m.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==h?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:o},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+a+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=[^\\(]+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!i||0!=i.jsx)&&s.call(this)),this.embedRules(C,"doc-",[C.getEndRule("no_regex")]),this.normalizeRules()};function s(){var i=a.replace("\\d","\\d\\-"),t={onMatch:function(n,o,l){var u="/"==n.charAt(1)?2:1;return 1==u?(o!=this.nextState?l.unshift(this.next,this.nextState,0):l.unshift(this.next),l[2]++):2==u&&o==this.nextState&&(l[1]--,(!l[1]||l[1]<0)&&(l.shift(),l.shift())),[{type:"meta.tag.punctuation."+(1==u?"":"end-")+"tag-open.xml",value:n.slice(0,u)},{type:"meta.tag.tag-name.xml",value:n.substr(u)}]},regex:"</?(?:"+i+"|(?=>))",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var e={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[e,t,{include:"reference"},{defaultToken:"string.xml"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(n,o,l){return o==l[0]&&l.shift(),2==n.length&&(l[0]==this.nextState&&l[1]--,(!l[1]||l[1]<0)&&l.splice(0,2)),this.next=l[0]||"start",[{type:this.token,value:n}]},nextState:"jsx"},e,r("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:i},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function r(i){return[{token:"comment",regex:/\/\*/,next:[C.getTagRule(),{token:"comment",regex:"\\*\\/",next:i||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[C.getTagRule(),{token:"comment",regex:"$|^",next:i||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}_.inherits(c,v),M.JavaScriptHighlightRules=c}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(w,M,F){"use strict";var _=w("../range").Range,C=function(){};(function(){this.checkOutdent=function(v,a){return!!/^\s+$/.test(v)&&/^\s*\}/.test(a)},this.autoOutdent=function(v,a){var s=v.getLine(a).match(/^(\s*\})/);if(!s)return 0;var r=s[1].length,i=v.findMatchingBracket({row:a,column:r});if(!i||i.row==a)return 0;var t=this.$getIndent(v.getLine(i.row));v.replace(new _(a,0,a,r-1),t)},this.$getIndent=function(v){return v.match(/^\s*/)[0]}}).call(C.prototype),M.MatchingBraceOutdent=C}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../behaviour").Behaviour,v=w("../../token_iterator").TokenIterator;function a(s,r){return s&&s.type.lastIndexOf(r+".xml")>-1}
1var c=function(){this.add("string_dquotes","insertion",function(s,r,i,t,e){if('"'==e||"'"==e){var n=e,o=t.doc.getTextRange(i.getSelectionRange());if(""!==o&&"'"!==o&&'"'!=o&&i.getWrapBehavioursEnabled())return{text:n+o+n,selection:!1};var l=i.getCursorPosition(),h=t.doc.getLine(l.row).substring(l.column,l.column+1),f=new v(t,l.row,l.column),m=f.getCurrentToken();if(h==n&&(a(m,"attribute-value")||a(m,"string")))return{text:"",selection:[1,1]};if(m||(m=f.stepBackward()),!m)return;for(;a(m,"tag-whitespace")||a(m,"whitespace");)m=f.stepBackward();var y=!h||h.match(/\s/);if(a(m,"attribute-equals")&&(y||">"==h)||a(m,"decl-attribute-equals")&&(y||"?"==h))return{text:n+n,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(s,r,i,t,e){var n=t.doc.getTextRange(e);if(!e.isMultiLine()&&('"'==n||"'"==n)&&t.doc.getLine(e.start.row).substring(e.start.column+1,e.start.column+2)==n)return e.end.column++,e}),this.add("autoclosing","insertion",function(s,r,i,t,e){if(">"==e){var n=i.getSelectionRange().start,o=new v(t,n.row,n.column),l=o.getCurrentToken()||o.stepBackward();if(!l||!(a(l,"tag-name")||a(l,"tag-whitespace")||a(l,"attribute-name")||a(l,"attribute-equals")||a(l,"attribute-value"))||a(l,"reference.attribute-value"))return;if(a(l,"attribute-value")){var u=o.getCurrentTokenColumn()+l.value.length;if(n.column<u)return;if(n.column==u){var h=o.stepForward();if(h&&a(h,"attribute-value"))return;o.stepBackward()}}if(/^\s*>/.test(t.getLine(n.row).slice(n.column)))return;for(;!a(l,"tag-name");)if("<"==(l=o.stepBackward()).value){l=o.stepForward();break}var f=o.getCurrentTokenRow(),m=o.getCurrentTokenColumn();if(a(o.stepBackward(),"end-tag-open"))return;var y=l.value;return f==n.row&&(y=y.substring(0,n.column-m)),this.voidElements&&this.voidElements.hasOwnProperty(y.toLowerCase())?void 0:{text:"></"+y+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(s,r,i,t,e){if("\n"==e){var n=i.getCursorPosition(),o=t.getLine(n.row),l=new v(t,n.row,n.column),u=l.getCurrentToken();if(a(u,"")&&-1!==u.type.indexOf("tag-close")){if("/>"==u.value)return;for(;u&&-1===u.type.indexOf("tag-name");)u=l.stepBackward();if(!u)return;var h=u.value,f=l.getCurrentTokenRow();if(!(u=l.stepBackward())||-1!==u.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[h]||!this.voidElements){var m=t.getTokenAt(n.row,n.column+1),y=(o=t.getLine(f),this.$getIndent(o)),p=y+t.getTabString();return m&&"</"===m.value?{text:"\n"+p+"\n"+y,selection:[1,p.length,1,p.length]}:{text:"\n"+p}}}}})};_.inherits(c,C),M.XmlBehaviour=c}),ace.define("ace/mode/behaviour/javascript",["require","exports","module","ace/lib/oop","ace/token_iterator","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../token_iterator").TokenIterator,v=w("../behaviour/cstyle").CstyleBehaviour,a=w("../behaviour/xml").XmlBehaviour,c=function(){var s=new a({closeCurlyBraces:!0}).getBehaviours();this.addBehaviours(s),this.inherit(v),this.add("autoclosing-fragment","insertion",function(r,i,t,e,n){if(">"==n){var o=t.getSelectionRange().start,l=new C(e,o.row,o.column),u=l.getCurrentToken()||l.stepBackward();if(!u)return;if("<"==u.value)return{text:"></>",selection:[1,1]}}})};_.inherits(c,v),M.JavaScriptBehaviour=c}),ace.define("ace/mode/folding/javascript",["require","exports","module","ace/lib/oop","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("./xml").FoldMode,v=w("./cstyle").FoldMode,a=M.FoldMode=function(c){c&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+c.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+c.end))),this.xmlFoldMode=new C};_.inherits(a,v),function(){this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(c,s,r){return this.getFoldWidgetBase(c,s,r)||this.xmlFoldMode.getFoldWidget(c,s,r)},this.getFoldWidgetRange=function(c,s,r,i){return this.getFoldWidgetRangeBase(c,s,r,i)||this.xmlFoldMode.getFoldWidgetRange(c,s,r)}}.call(a.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/wor
1ker_client","ace/mode/behaviour/javascript","ace/mode/folding/javascript"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text").Mode,v=w("./javascript_highlight_rules").JavaScriptHighlightRules,a=w("./matching_brace_outdent").MatchingBraceOutdent,c=w("../worker/worker_client").WorkerClient,s=w("./behaviour/javascript").JavaScriptBehaviour,r=w("./folding/javascript").FoldMode,i=function(){this.HighlightRules=v,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new r};_.inherits(i,C),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(t,e,n){var o=this.$getIndent(e),l=this.getTokenizer().getLineTokens(e,t),u=l.tokens,h=l.state;if(u.length&&"comment"==u[u.length-1].type)return o;if("start"==t||"no_regex"==t)e.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/)&&(o+=n);else if("doc-start"==t&&("start"==h||"no_regex"==h))return"";return o},this.checkOutdent=function(t,e,n){return this.$outdent.checkOutdent(e,n)},this.autoOutdent=function(t,e,n){this.$outdent.autoOutdent(e,n)},this.createWorker=function(t){var e=new c(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return e.attachToDocument(t.getDocument()),e.on("annotate",function(n){t.setAnnotations(n.data)}),e.on("terminate",function(){t.clearAnnotations()}),e},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(i.prototype),M.Mode=i}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),v=(w("../lib/lang"),w("./text_highlight_rules").TextHighlightRules),a=M.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode
1-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",c=M.supportFunction="rgb|rgba|url|attr|counter|counters",s=M.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",r=M.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",i=M.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",t=M.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",e=M.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",n=M.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",o=function(){var l=this.createKeywordMapper({"supp
1ort.function":c,"support.constant":s,"support.type":a,"support.constant.color":r,"support.constant.fonts":i},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:t},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+t+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:t},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:e},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:n},{include:"url"},{token:l,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{token:"paren.lparen",regex:"\\{"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};_.inherits(o,v),M.CssHighlightRules=o}),ace.define("ace/mode/css_completions",["require","exports","module"],function(w,M,F){"use strict";var _={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1}
1,"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},C=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var v=document.createElement("c").style;for(var a in v)if("string"==typeof v[a]){var c=a.replace(/[A-Z]/g,function(s){return"-"+s.toLowerCase()});_.hasOwnProperty(c)||(_[c]=1)}}this.completionsDefined=!0},this.getCompletions=function(v,a,c,s){if(this.completionsDefined||this.defineCompletions(),"ruleset"===v||"ace/mode/scss"==a.$mode.$id){var r=a.getLine(c.row).substr(0,c.column),i=/\([^)]*$/.test(r);return i&&(r=r.substr(r.lastIndexOf("(")+1)),/:[^;]+$/.test(r)?(/([\w\-]+):[^:]*$/.test(r),this.getPropertyValueCompletions(v,a,c,s)):this.getPropertyCompletions(v,a,c,s,i)}return[]},this.getPropertyCompletions=function(v,a,c,s,r){return r=r||!1,Object.keys(_).map(function(t){return{caption:t,snippet:t+": $0"+(r?"":";"),meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(v,a,c,s){var r=a.getLine(c.row).substr(0,c.column),i=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!i)return[];var t=[];return i in _&&"object"==typeof _[i]&&(t=Object.keys(_[i])),t.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(C.prototype),M.CssCompletions=C}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(w,M,F){"use strict";var _=w("../../lib/oop"),v=(w("../behaviour"),w("./cstyle").CstyleBehaviour),a=w("../../token_iterator").TokenIterator,c=function(){this.inherit(v),this.add("colon","insertion",function(s,r,i,t,e){if(":"===e&&i.selection.isEmpty()){var n=i.getCursorPosition(),o=new a(t,n.row,n.column),l=o.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=o.stepBackward()),l&&"support.type"===l.type){var u=t.doc.getLine(n.row);if(":"===u.substring(n.column,n.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(u.substring(n.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(s,r,i,t,e){var n=t.doc.getTextRange(e);if(!e.isMultiLine()&&":"===n){var o=i.getCursorPosition(),l=new a(t,o.row,o.column),u=l.getCurrentToken();if(u&&u.value.match(/\s+/)&&(u=l.stepBackward()),u&&"support.type"===u.type&&";"===t.doc.getLine(e.start.row).substring(e.end.column,e.end.column+1))return e.end.column++,e}}),this.add("semicolon","insertion",function(s,r,i,t,e){if(";"===e&&i.selection.isEmpty()){var n=i.getCursorPosition();if(";"===t.doc.getLine(n.row).substring(n.column,n.column+1))return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(s,r,i,t,e){if("!"===e&&i.selection.isEmpty()){var n=i.getCursorPosition(),o=t.doc.getLine(n.row);if(/^\s*(;|}|$)/.test(o.substring(n.column)))return{text:"!important",selection:[10,10]}}})};_.inherits(c,v),M.CssBehaviour=c}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/wor
1ker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text").Mode,v=w("./css_highlight_rules").CssHighlightRules,a=w("./matching_brace_outdent").MatchingBraceOutdent,c=w("../worker/worker_client").WorkerClient,s=w("./css_completions").CssCompletions,r=w("./behaviour/css").CssBehaviour,i=w("./folding/cstyle").FoldMode,t=function(){this.HighlightRules=v,this.$outdent=new a,this.$behaviour=new r,this.$completer=new s,this.foldingRules=new i};_.inherits(t,C),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,n,o){var l=this.$getIndent(n),u=this.getTokenizer().getLineTokens(n,e).tokens;return u.length&&"comment"==u[u.length-1].type||n.match(/^.*\{\s*$/)&&(l+=o),l},this.checkOutdent=function(e,n,o){return this.$outdent.checkOutdent(n,o)},this.autoOutdent=function(e,n,o){this.$outdent.autoOutdent(n,o)},this.getCompletions=function(e,n,o,l){return this.$completer.getCompletions(e,n,o,l)},this.createWorker=function(e){var n=new c(["ace"],"ace/mode/css_worker","Worker");return n.attachToDocument(e.getDocument()),n.on("annotate",function(o){e.setAnnotations(o.data)}),n.on("terminate",function(){e.clearAnnotations()}),n},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(t.prototype),M.Mode=t}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text_highlight_rules").TextHighlightRules,v=function(a){var c="[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+c+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:c},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+c+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+c+":)?"+c+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:c},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===v&&this.normalizeRules()};(function(){this.embedTagRules=function(a,c,s){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+s+".tag-name.xml"],regex:"(<)("+s+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:c+"start"}]}),this.$rules[s+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(r,i,t){return t.splice(0),this.token}}],this.embedRules(a,c,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+s+".tag-name.xml"],regex:"(</)("+s+"(?=\\s|>|$))",next:s+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(C.prototype),_.inherits(v,C),M.XmlHighlightRules=v}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("../lib/lang"),v=w("./css_highlight_rules").CssHighlightRules,a=w("./javascript_highlight_rules").JavaScriptHighlightRules,c=w("./xml_highlight_rules").XmlHighlightRules,s=C.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),r=function(){c.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(i,t){var e=s[t];
1return["meta.tag.punctuation."+("<"==i?"":"end-")+"tag-open.xml","meta.tag"+(e?"."+e:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:.]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(v,"css-","style"),this.embedTagRules(new a({jsx:!1}).getRules(),"js-","script"),this.constructor===r&&this.normalizeRules()};_.inherits(r,c),M.HtmlHighlightRules=r}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(w,M,F){"use strict";var _=w("../token_iterator").TokenIterator,a=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"].concat(["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"]),c={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,for:1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{for:1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{}
1,script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,default:1},section:{},summary:{},u:{},ul:{},var:{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},s=Object.keys(c);function r(n,o){return n.type.lastIndexOf(o+".xml")>-1}function i(n,o){for(var l=new _(n,o.row,o.column),u=l.getCurrentToken();u&&!r(u,"tag-name");)u=l.stepBackward();if(u)return u.value}var e=function(){};(function(){this.getCompletions=function(n,o,l,u){var h=o.getTokenAt(l.row,l.column);if(!h)return[];if(r(h,"tag-name")||r(h,"tag-open")||r(h,"end-tag-open"))return this.getTagCompletions(n,o,l,u);if(r(h,"tag-whitespace")||r(h,"attribute-name"))return this.getAttributeCompletions(n,o,l,u);if(r(h,"attribute-value"))return this.getAttributeValueCompletions(n,o,l,u);var f=o.getLine(l.row).substr(0,l.column);return/&[a-z]*$/i.test(f)?this.getHTMLEntityCompletions(n,o,l,u):[]},this.getTagCompletions=function(n,o,l,u){return s.map(function(h){return{value:h,meta:"tag",score:1e6}})},this.getAttributeCompletions=function(n,o,l,u){var h=i(o,l);if(!h)return[];var f=a;return h in c&&(f=f.concat(Object.keys(c[h]))),f.map(function(m){return{caption:m,snippet:m+'="$0"',meta:"attribute",score:1e6}})},this.getAttributeValueCompletions=function(n,o,l,u){var h=i(o,l),f=function t(n,o){for(var l=new _(n,o.row,o.column),u=l.getCurrentToken();u&&!r(u,"attribute-name");)u=l.stepBackward();if(u)return u.value}(o,l);if(!h)return[];var m=[];return h in c&&f in c[h]&&"object"==typeof c[h][f]&&(m=Object.keys(c[h][f])),m.map(function(y){return{caption:y,snippet:y,meta:"attribute value",score:1e6}})},this.getHTMLEntityCompletions=function(n,o,l,u){return["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"].map(function(f){return{caption:f,snippet:f,meta:"html entity",score:1e6}})}}).call(e.prototype),M.HtmlCompletions=e}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/wor
1ker_client"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("../lib/lang"),v=w("./text").Mode,a=w("./javascript").Mode,c=w("./css").Mode,s=w("./html_highlight_rules").HtmlHighlightRules,r=w("./behaviour/xml").XmlBehaviour,i=w("./folding/html").FoldMode,t=w("./html_completions").HtmlCompletions,e=w("../worker/worker_client").WorkerClient,n=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],o=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],l=function(u){this.fragmentContext=u&&u.fragmentContext,this.HighlightRules=s,this.$behaviour=new r,this.$completer=new t,this.createModeDelegates({"js-":a,"css-":c}),this.foldingRules=new i(this.voidElements,C.arrayToMap(o))};_.inherits(l,v),function(){this.blockComment={start:"\x3c!--",end:"--\x3e"},this.voidElements=C.arrayToMap(n),this.getNextLineIndent=function(u,h,f){return this.$getIndent(h)},this.checkOutdent=function(u,h,f){return!1},this.getCompletions=function(u,h,f,m){return this.$completer.getCompletions(u,h,f,m)},this.createWorker=function(u){if(this.constructor==l){var h=new e(["ace"],"ace/mode/html_worker","Worker");return h.attachToDocument(u.getDocument()),this.fragmentContext&&h.call("setOptions",[{context:this.fragmentContext}]),h.on("error",function(f){u.setAnnotations(f.data)}),h.on("terminate",function(){u.clearAnnotations()}),h}},this.$id="ace/mode/html",this.snippetFileId="ace/snippets/html"}.call(l.prototype),M.Mode=l}),ace.define("ace/mode/nunjucks_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text_highlight_rules").TextHighlightRules,v=w("./html_highlight_rules").HtmlHighlightRules,a=function(){v.call(this),this.$rules.start.unshift({token:"punctuation.begin",regex:/{{-?/,push:[{token:"punctuation.end",regex:/-?}}/,next:"pop"},{include:"expression"}]},{token:"punctuation.begin",regex:/{%-?/,push:[{token:"punctuation.end",regex:/-?%}/,next:"pop"},{token:"constant.language.escape",regex:/\b(r\/.*\/[gimy]?)\b/},{include:"statement"}]},{token:"comment.begin",regex:/{#/,push:[{token:"comment.end",regex:/#}/,next:"pop"},{defaultToken:"comment"}]}),this.addRules({attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{token:"punctuation.begin",regex:/{{-?/,push:[{token:"punctuation.end",regex:/-?}}/,next:"pop"},{include:"expression"}]},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{token:"punctuation.begin",regex:/{{-?/,push:[{token:"punctuation.end",regex:/-?}}/,next:"pop"},{include:"expression"}]},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}],statement:[{token:"keyword.control",regex:/\b(block|endblock|extends|endif|elif|for|endfor|asyncEach|endeach|include|asyncAll|endall|macro|endmacro|set|endset|ignore missing|as|from|raw|verbatim|filter|endfilter)\b/},{include:"expression"}],expression:[{token:"constant.language",regex:/\b(true|false|none)\b/},{token:"string",regex:/"/,push:[{token:"string",regex:/"/,next:"pop"},{include:"escapeStrings"},{defaultToken:"string"}]},{token:"string",regex:/'/,push:[{token:"string",regex:/'/,next:"pop"},{include:"escapeStrings"},{defaultToken:"string"}]},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"keyword.operator",regex:/\+|-|\/\/|\/|%|\*\*|\*|===|==|!==|!=|>=|>|<=|</},{token:"keyword.control",regex:/\b(and|else|if|in|import|not|or)\b/},{token:"support.function",regex:/[a-zA-Z_]+(?=\()/},{token:"paren.lpar",regex:/[(\[{]/},{token:"paren.rpar",regex:/[)\]}]/},{token:"punctuation",regex:/[,]/},{token:["punctuation","support.function"],regex:/(\.)([a-zA-Z_][a-zA-Z0-9_]*)(?=\()/},{token:["punctuation","variable.parameter"],regex:/(\.)([a-zA-Z_][a-zA-Z0-9_]*)/},{token:["punctuation","text","support.other"],regex:/(\|)(\s)*([a-zA-Z_][a-zA-Z0-9_]*)/},{token:"variable",regex:/[a-zA-Z_][a-zA-Z0-9_]*/}
1],escapeStrings:[{token:"constant.language.escape",regex:/(\\\\n)|(\\\\)|(\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)/},{token:"constant.language.escape",regex:/\\(?:x[0-9A-F]{2}|(?:U[0-9A-Fa-f]{8})|(?:u[0-9A-Fa-f]{4})|(?:N{[a-zA-Z ]+}))/}]}),this.normalizeRules()};_.inherits(a,C),M.NunjucksHighlightRules=a}),ace.define("ace/mode/nunjucks",["require","exports","module","ace/lib/oop","ace/mode/folding/nunjucks","ace/lib/lang","ace/mode/html","ace/mode/nunjucks_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./folding/nunjucks").FoldMode,v=w("../lib/lang"),a=w("./html").Mode,c=w("./nunjucks_highlight_rules").NunjucksHighlightRules,s=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],r=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],i=function(){this.HighlightRules=c,this.foldingRules=new C(this.voidElements,v.arrayToMap(r))};_.inherits(i,a),function(){this.$id="ace/mode/nunjucks",this.voidElements=v.arrayToMap(s)}.call(i.prototype),M.Mode=i}),ace.require(["ace/mode/nunjucks"],function(w){Y&&(Y.exports=w)})},5621(Y,te,G){Y=G.nmd(Y),ace.require(["ace/mode/text"],function(w){Y&&(Y.exports=w)})},61421(Y,te,G){Y=G.nmd(Y),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("./text_highlight_rules").TextHighlightRules,v=function(a){var c="[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+c+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:c},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+c+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+c+":)?"+c+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:c},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===v&&this.normalizeRules()};(function(){this.embedTagRules=function(a,c,s){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+s+".tag-name.xml"],regex:"(<)("+s+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:c+"start"}]}),this.$rules[s+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(r,i,t){return t.splice(0),this.token}}],this.embedRules(a,c,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+s+".tag-name.xml"],regex:"(</)("+s+"(?=\\s|>|$))",next:s+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(C.prototype),_.inherits(v,C),M.XmlHighlightRules=v}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../behaviour").Behaviour,v=w("../../token_iterator").TokenIterator;function a(s,r){return s&&s.type.lastIndexOf(r+".xml")>-1}
1var c=function(){this.add("string_dquotes","insertion",function(s,r,i,t,e){if('"'==e||"'"==e){var n=e,o=t.doc.getTextRange(i.getSelectionRange());if(""!==o&&"'"!==o&&'"'!=o&&i.getWrapBehavioursEnabled())return{text:n+o+n,selection:!1};var l=i.getCursorPosition(),h=t.doc.getLine(l.row).substring(l.column,l.column+1),f=new v(t,l.row,l.column),m=f.getCurrentToken();if(h==n&&(a(m,"attribute-value")||a(m,"string")))return{text:"",selection:[1,1]};if(m||(m=f.stepBackward()),!m)return;for(;a(m,"tag-whitespace")||a(m,"whitespace");)m=f.stepBackward();var y=!h||h.match(/\s/);if(a(m,"attribute-equals")&&(y||">"==h)||a(m,"decl-attribute-equals")&&(y||"?"==h))return{text:n+n,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(s,r,i,t,e){var n=t.doc.getTextRange(e);if(!e.isMultiLine()&&('"'==n||"'"==n)&&t.doc.getLine(e.start.row).substring(e.start.column+1,e.start.column+2)==n)return e.end.column++,e}),this.add("autoclosing","insertion",function(s,r,i,t,e){if(">"==e){var n=i.getSelectionRange().start,o=new v(t,n.row,n.column),l=o.getCurrentToken()||o.stepBackward();if(!l||!(a(l,"tag-name")||a(l,"tag-whitespace")||a(l,"attribute-name")||a(l,"attribute-equals")||a(l,"attribute-value"))||a(l,"reference.attribute-value"))return;if(a(l,"attribute-value")){var u=o.getCurrentTokenColumn()+l.value.length;if(n.column<u)return;if(n.column==u){var h=o.stepForward();if(h&&a(h,"attribute-value"))return;o.stepBackward()}}if(/^\s*>/.test(t.getLine(n.row).slice(n.column)))return;for(;!a(l,"tag-name");)if("<"==(l=o.stepBackward()).value){l=o.stepForward();break}var f=o.getCurrentTokenRow(),m=o.getCurrentTokenColumn();if(a(o.stepBackward(),"end-tag-open"))return;var y=l.value;return f==n.row&&(y=y.substring(0,n.column-m)),this.voidElements&&this.voidElements.hasOwnProperty(y.toLowerCase())?void 0:{text:"></"+y+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(s,r,i,t,e){if("\n"==e){var n=i.getCursorPosition(),o=t.getLine(n.row),l=new v(t,n.row,n.column),u=l.getCurrentToken();if(a(u,"")&&-1!==u.type.indexOf("tag-close")){if("/>"==u.value)return;for(;u&&-1===u.type.indexOf("tag-name");)u=l.stepBackward();if(!u)return;var h=u.value,f=l.getCurrentTokenRow();if(!(u=l.stepBackward())||-1!==u.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[h]||!this.voidElements){var m=t.getTokenAt(n.row,n.column+1),y=(o=t.getLine(f),this.$getIndent(o)),p=y+t.getTabString();return m&&"</"===m.value?{text:"\n"+p+"\n"+y,selection:[1,p.length,1,p.length]}:{text:"\n"+p}}}}})};_.inherits(c,C),M.XmlBehaviour=c}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,M,F){"use strict";var _=w("../../lib/oop"),C=w("../../range").Range,v=w("./fold_mode").FoldMode,a=M.FoldMode=function(r,i){v.call(this),this.voidElements=r||{},this.optionalEndTags=_.mixin({},this.voidElements),i&&_.mixin(this.optionalEndTags,i)};_.inherits(a,v);var c=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};function s(r,i){return r&&r.type&&r.type.lastIndexOf(i+".xml")>-1}(function(){this.getFoldWidget=function(r,i,t){var e=this._getFirstTagInLine(r,t);return e?e.closing||!e.tagName&&e.selfClosing?"markbeginend"===i?"end":"":!e.tagName||e.selfClosing||this.voidElements.hasOwnProperty(e.tagName.toLowerCase())||this._findEndTagInLine(r,t,e.tagName,e.end.column)?"":"start":this.getCommentFoldWidget(r,t)},this.getCommentFoldWidget=function(r,i){return/comment/.test(r.getState(i))&&/<!-/.test(r.getLine(i))?"start":""},this._getFirstTagInLine=function(r,i){for(var t=r.getTokens(i),e=new c,n=0;n<t.length;n++){var o=t[n];if(s(o,"tag-open")){if(e.end.column=e.start.column+o.value.length,e.closing=s(o,"end-tag-open"),!(o=t[++n]))return null;if(e.tagName=o.value,""===o.value){if(!(o=t[++n]))return null;e.tagName=o.value}for(e.end.column+=o.value.length,n++;n<t.length;n++)if(e.end.column+=(o=t[n]).value.length,s(o,"tag-close")){e.selfClosing="/>"==o.value;break}return e}if(s(o,"tag-close"))return e.selfClosing="/>"==o.value,e;e.start.column+=o.value.length}return null},this._findEndTagInLine=function(r,i,t,e){for(var n=r.getTokens(i),o=0,l=0;l<n.length;l++){var u=n[l];if(!((o+=u.value.length)<e-1)&&s(u,"end-tag-open")&&(s(u=n[l+1],"tag-name")&&""===u.value&&(u=n[l+2]),u&&u.value==t))return!0}return!1},this.getFoldWidgetRange=function(r,i,t){if(!this._getFirstTagInLine(r,t))return this.getCommentFoldWidget(r,t)&&r.getCommentFoldRange(t,r.getLine(t).length);var n=r.getMatchingTags({row:t,column:0});return n?new C(n.openTag.end.row,n.openTag.end.column,n.closeTag.start.row,n.closeTag.start.column):void 0}}).call(a.prototype)}),ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/wor
1ker_client"],function(w,M,F){"use strict";var _=w("../lib/oop"),C=w("../lib/lang"),v=w("./text").Mode,a=w("./xml_highlight_rules").XmlHighlightRules,c=w("./behaviour/xml").XmlBehaviour,s=w("./folding/xml").FoldMode,r=w("../worker/worker_client").WorkerClient,i=function(){this.HighlightRules=a,this.$behaviour=new c,this.foldingRules=new s};_.inherits(i,v),function(){this.voidElements=C.arrayToMap([]),this.blockComment={start:"\x3c!--",end:"--\x3e"},this.createWorker=function(t){var e=new r(["ace"],"ace/mode/xml_worker","Worker");return e.attachToDocument(t.getDocument()),e.on("error",function(n){t.setAnnotations(n.data)}),e.on("terminate",function(){t.clearAnnotations()}),e},this.$id="ace/mode/xml"}.call(i.prototype),M.Mode=i}),ace.require(["ace/mode/xml"],function(w){Y&&(Y.exports=w)})},84397(Y,te,G){Y=G.nmd(Y),ace.define("ace/theme/tomorrow-css",["require","exports","module"],function(w,M,F){F.exports='.ace-tomorrow .ace_gutter {\n  background: #f6f6f6;\n  color: #4D4D4C\n}\n\n.ace-tomorrow .ace_print-margin {\n  width: 1px;\n  background: #f6f6f6\n}\n\n.ace-tomorrow {\n  background-color: #FFFFFF;\n  color: #4D4D4C\n}\n\n.ace-tomorrow .ace_cursor {\n  color: #AEAFAD\n}\n\n.ace-tomorrow .ace_marker-layer .ace_selection {\n  background: #D6D6D6\n}\n\n.ace-tomorrow.ace_multiselect .ace_selection.ace_start {\n  box-shadow: 0 0 3px 0px #FFFFFF;\n}\n\n.ace-tomorrow .ace_marker-layer .ace_step {\n  background: rgb(255, 255, 0)\n}\n\n.ace-tomorrow .ace_marker-layer .ace_bracket {\n  margin: -1px 0 0 -1px;\n  border: 1px solid #D1D1D1\n}\n\n.ace-tomorrow .ace_marker-layer .ace_active-line {\n  background: #EFEFEF\n}\n\n.ace-tomorrow .ace_gutter-active-line {\n  background-color : #dcdcdc\n}\n\n.ace-tomorrow .ace_marker-layer .ace_selected-word {\n  border: 1px solid #D6D6D6\n}\n\n.ace-tomorrow .ace_invisible {\n  color: #D1D1D1\n}\n\n.ace-tomorrow .ace_keyword,\n.ace-tomorrow .ace_meta,\n.ace-tomorrow .ace_storage,\n.ace-tomorrow .ace_storage.ace_type,\n.ace-tomorrow .ace_support.ace_type {\n  color: #8959A8\n}\n\n.ace-tomorrow .ace_keyword.ace_operator {\n  color: #3E999F\n}\n\n.ace-tomorrow .ace_constant.ace_character,\n.ace-tomorrow .ace_constant.ace_language,\n.ace-tomorrow .ace_constant.ace_numeric,\n.ace-tomorrow .ace_keyword.ace_other.ace_unit,\n.ace-tomorrow .ace_support.ace_constant,\n.ace-tomorrow .ace_variable.ace_parameter {\n  
1color: #F5871F\n}\n\n.ace-tomorrow .ace_constant.ace_other {\n  color: #666969\n}\n\n.ace-tomorrow .ace_invalid {\n  color: #FFFFFF;\n  background-color: #C82829\n}\n\n.ace-tomorrow .ace_invalid.ace_deprecated {\n  color: #FFFFFF;\n  background-color: #8959A8\n}\n\n.ace-tomorrow .ace_fold {\n  background-color: #4271AE;\n  border-color: #4D4D4C\n}\n\n.ace-tomorrow .ace_entity.ace_name.ace_function,\n.ace-tomorrow .ace_support.ace_function,\n.ace-tomorrow .ace_variable {\n  color: #4271AE\n}\n\n.ace-tomorrow .ace_support.ace_class,\n.ace-tomorrow .ace_support.ace_type {\n  color: #C99E00\n}\n\n.ace-tomorrow .ace_heading,\n.ace-tomorrow .ace_markup.ace_heading,\n.ace-tomorrow .ace_string {\n  color: #718C00\n}\n\n.ace-tomorrow .ace_entity.ace_name.ace_tag,\n.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,\n.ace-tomorrow .ace_meta.ace_tag,\n.ace-tomorrow .ace_string.ace_regexp,\n.ace-tomorrow .ace_variable {\n  color: #C82829\n}\n\n.ace-tomorrow .ace_comment {\n  color: #8E908C\n}\n\n.ace-tomorrow .ace_indent-guide {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y\n}\n\n.ace-tomorrow .ace_indent-guide-active {\n  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n} \n'}),ace.define("ace/theme/tomorrow",["require","exports","module","ace/theme/tomorrow-css","ace/lib/dom"],function(w,M,F){M.isDark=!1,M.cssClass="ace-tomorrow",M.cssText=w("./tomorrow-css"),w("../lib/dom").importCssString(M.cssText,M.cssClass,!1)}),ace.require(["ace/theme/tomorrow"],function(w){Y&&(Y.exports=w)})},16596(Y,te,G){Y=G.nmd(Y),ace.define("ace/theme/tomorrow_night-css",["require","exports","module"],function(w,M,F){F.exports=".ace-tomorrow-night .ace_gutter {\n  background: #25282c;\n  color: #C5C8C6\n}\n\n.ace-tomorrow-night .ace_print-margin {\n  width: 1px;\n  background: #25282c\n}\n\n.ace-tomorrow-night {\n  background-color: #1D1F21;\n  color: #C5C8C6\n}\n\n.ace-tomorrow-night .ace_cursor {\n  color: #AEAFAD\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_selection {\n  background: #373B41\n}\n\n.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {\n  box-shadow: 0 0 3px 0px #1D1F21;\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_step {\n  background: rgb(102, 82, 0)\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_bracket {\n  margin: -1px 0 0 -1px;\n  border: 1px solid #4B4E55\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_active-line {\n  background: #282A2E\n}\n\n.ace-tomorrow-night .ace_gutter-active-line {\n  background-color: #282A2E\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_selected-word {\n  border: 1px solid #373B41\n}\n\n.ace-tomorrow-night .ace_invisible {\n  color: #4B4E55\n}\n\n.ace-tomorrow-night .ace_keyword,\n.ace-tomorrow-night .ace_meta,\n.ace-tomorrow-night .ace_storage,\n.ace-tomorrow-night .ace_storage.ace_type,\n.ace-tomorrow-night .ace_support.ace_type {\n  color: #B294BB\n}\n\n.ace-tomorrow-night .ace_keyword.ace_operator {\n  color: #8ABEB7\n}\n\n.ace-tomorrow-night .ace_constant.ace_character,\n.ace-tomorrow-night .ace_constant.ace_language,\n.ace-tomorrow-night .ace_constant.ace_numeric,\n.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,\n.ace-tomorrow-night .ace_support.ace_constant,\n.ace-tomorrow-night .ace_variable.ace_parameter {\n  
1color: #DE935F\n}\n\n.ace-tomorrow-night .ace_constant.ace_other {\n  color: #CED1CF\n}\n\n.ace-tomorrow-night .ace_invalid {\n  color: #CED2CF;\n  background-color: #DF5F5F\n}\n\n.ace-tomorrow-night .ace_invalid.ace_deprecated {\n  color: #CED2CF;\n  background-color: #B798BF\n}\n\n.ace-tomorrow-night .ace_fold {\n  background-color: #81A2BE;\n  border-color: #C5C8C6\n}\n\n.ace-tomorrow-night .ace_entity.ace_name.ace_function,\n.ace-tomorrow-night .ace_support.ace_function,\n.ace-tomorrow-night .ace_variable {\n  color: #81A2BE\n}\n\n.ace-tomorrow-night .ace_support.ace_class,\n.ace-tomorrow-night .ace_support.ace_type {\n  color: #F0C674\n}\n\n.ace-tomorrow-night .ace_heading,\n.ace-tomorrow-night .ace_markup.ace_heading,\n.ace-tomorrow-night .ace_string {\n  color: #B5BD68\n}\n\n.ace-tomorrow-night .ace_entity.ace_name.ace_tag,\n.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,\n.ace-tomorrow-night .ace_meta.ace_tag,\n.ace-tomorrow-night .ace_string.ace_regexp,\n.ace-tomorrow-night .ace_variable {\n  color: #CC6666\n}\n\n.ace-tomorrow-night .ace_comment {\n  color: #969896\n}\n\n.ace-tomorrow-night .ace_indent-guide {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\n}\n\n.ace-tomorrow-night .ace_indent-guide-active {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQIW2PQ1dX9zzBz5sz/ABCcBFFentLlAAAAAElFTkSuQmCC) right repeat-y;\n}\n"}),ace.define("ace/theme/tomorrow_night",["require","exports","module","ace/theme/tomorrow_night-css","ace/lib/dom"],function(w,M,F){M.isDark=!0,M.cssClass="ace-tomorrow-night",M.cssText=w("./tomorrow_night-css"),w("../lib/dom").importCssString(M.cssText,M.cssClass,!1)}),ace.require(["ace/theme/tomorrow_night"],function(w){Y&&(Y.exports=w)})}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.