!function(t){if(!(void 0!==t.window&&t.document||t.require&&t.define)){t.console||(t.console=function(){var t=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:t})},t.console.error=t.console.warn=t.console.log=t.console.trace=t.console),t.window=t,t.ace=t,t.onerror=function(t,e,n,s,r){postMessage({type:"error",data:{message:t,data:r&&r.data,file:e,line:n,col:s,stack:r&&r.stack}})},t.normalizeModule=function(e,n){if(-1!==n.indexOf("!")){var s=n.split("!");return t.normalizeModule(e,s[0])+"!"+t.normalizeModule(e,s[1])}if("."==n.charAt(0)){var r=e.split("/").slice(0,-1).join("/");for(n=(r?r+"/":"")+n;-1!==n.indexOf(".")&&o!=n;){var o=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},t.require=function(e,n){if(n||(n=e,e=null),!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=t.normalizeModule(e,n);var s=t.require.modules[n];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!t.require.tlns)return console.log("unable to load "+n);var r=function(t,e){var n=t,s="";for(;n;){var r=e[n];if("string"==typeof r)return r+s;if(r)return r.location.replace(/\/*$/,"/")+(s||r.main||r.name);if(!1===r)return"";var o=n.lastIndexOf("/");if(-1===o)break;s=n.substr(o)+s,n=n.slice(0,o)}return t}(n,t.require.tlns);return".js"!=r.slice(-3)&&(r+=".js"),t.require.id=n,t.require.modules[n]={},importScripts(r),t.require(e,n)},t.require.modules={},t.require.tlns={},t.define=function(e,n,s){if(2==arguments.length?(s=n,"string"!=typeof e&&(n=e,e=t.require.id)):1==arguments.length&&(s=e,n=[],e=t.require.id),"function"==typeof s){n.length||(n=["require","exports","module"]);var r=function(n){return t.require(e,n)};t.require.modules[e]={exports:{},factory:function(){var t=this,e=s.apply(this,n.slice(0,s.length).map((function(e){switch(e){case"require":return r;case"exports":return t.exports;case"module":return t;default:return r(e)}})));return e&&(t.exports=e),t}}}else t.require.modules[e]={exports:s,initialized:!0}},t.define.amd={},t.require.tlns={},t.initBaseUrls=function(t){for(var e in t)this.require.tlns[e]=t[e]},t.initSender=function(){var e=t.require("ace/lib/event_emitter").EventEmitter,n=t.require("ace/lib/oop"),s=function(){};return function(){n.implement(this,e),this.callback=function(t,e){postMessage({type:"call",id:e,data:t})},this.emit=function(t,e){postMessage({type:"event",name:t,data:e})}}.call(s.prototype),new s};var e=t.main=null,n=t.sender=null;t.onmessage=function(s){var r=s.data;if(r.event&&n)n._signal(r.event,r.data);else if(r.command)if(e[r.command])e[r.command].apply(e,r.args);else{if(!t[r.command])throw new Error("Unknown command:"+r.command);t[r.command].apply(t,r.args)}else if(r.init){t.initBaseUrls(r.tlns),n=t.sender=t.initSender();var o=this.require(r.module)[r.classname];e=t.main=new o(n)}}}}(this),ace.define("ace/lib/oop",[],(function(t,e,n){"use strict";e.inherits=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})},e.mixin=function(t,e){for(var n in e)t[n]=e[n];return t},e.implement=function(t,n){e.mixin(t,n)}})),ace.define("ace/apply_delta",[],(function(t,e,n){"use strict";e.applyDelta=function(t,e,n){var s=e.start.row,r=e.start.column,o=t[s]||"";switch(e.action){case"insert":if(1===e.lines.length)t[s]=o.substring(0,r)+e.lines[0]+o.substring(r);else{var a=[s,1].concat(e.lines);t.splice.apply(t,a),t[s]=o.substring(0,r)+t[s],t[s+e.lines.length-1]+=o.substring(r)}break;case"remove":var i=e.end.column,_=e.end.row;s===_?t[s]=o.substring(0,r)+o.substring(i):t.splice(s,_-s+1,o.substring(0,r)+t[_].substring(i))}}})),ace.define("ace/lib/event_emitter",[],(function(t,e,n){"use strict";var s={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};s._emit=s._dispatchEvent=function(t,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[t]||[],s=this._defaultHandlers[t];if(n.length||s){"object"==typeof e&&e||(e={}),e.type||(e.type=t),e.stopPropagation||(e.stopPropagation=r),e.preventDefault||(e.preventDefault=o),n=n.slice();for(var a=0;a ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(t,e){return 0==this.compare(t,e)},this.compareRange=function(t){var e,n=t.end,s=t.start;return 1==(e=this.compare(n.row,n.column))?1==(e=this.compare(s.row,s.column))?2:0==e?1:0:-1==e?-2:-1==(e=this.compare(s.row,s.column))?-1:1==e?42:0},this.comparePoint=function(t){return this.compare(t.row,t.column)},this.containsRange=function(t){return 0==this.comparePoint(t.start)&&0==this.comparePoint(t.end)},this.intersects=function(t){var e=this.compareRange(t);return-1==e||0==e||1==e},this.isEnd=function(t,e){return this.end.row==t&&this.end.column==e},this.isStart=function(t,e){return this.start.row==t&&this.start.column==e},this.setStart=function(t,e){"object"==typeof t?(this.start.column=t.column,this.start.row=t.row):(this.start.row=t,this.start.column=e)},this.setEnd=function(t,e){"object"==typeof t?(this.end.column=t.column,this.end.row=t.row):(this.end.row=t,this.end.column=e)},this.inside=function(t,e){return 0==this.compare(t,e)&&(!this.isEnd(t,e)&&!this.isStart(t,e))},this.insideStart=function(t,e){return 0==this.compare(t,e)&&!this.isEnd(t,e)},this.insideEnd=function(t,e){return 0==this.compare(t,e)&&!this.isStart(t,e)},this.compare=function(t,e){return this.isMultiLine()||t!==this.start.row?tthis.end.row?1:this.start.row===t?e>=this.start.column?0:-1:this.end.row===t?e<=this.end.column?0:1:0:ethis.end.column?1:0},this.compareStart=function(t,e){return this.start.row==t&&this.start.column==e?-1:this.compare(t,e)},this.compareEnd=function(t,e){return this.end.row==t&&this.end.column==e?1:this.compare(t,e)},this.compareInside=function(t,e){return this.end.row==t&&this.end.column==e?1:this.start.row==t&&this.start.column==e?-1:this.compare(t,e)},this.clipRows=function(t,e){if(this.end.row>e)var n={row:e+1,column:0};else if(this.end.rowe)var r={row:e+1,column:0};else if(this.start.rowthis.row)){var n=function(e,n,s){var r="insert"==e.action,o=(r?1:-1)*(e.end.row-e.start.row),a=(r?1:-1)*(e.end.column-e.start.column),i=e.start,_=r?i:e.end;if(t(n,i,s))return{row:n.row,column:n.column};if(t(_,n,!s))return{row:n.row+o,column:n.column+(n.row==_.row?a:0)};return{row:i.row,column:i.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)}},this.setPosition=function(t,e,n){var s;if(s=n?{row:t,column:e}:this.$clipPositionToDocument(t,e),this.row!=s.row||this.column!=s.column){var r={row:this.row,column:this.column};this.row=s.row,this.column=s.column,this._signal("change",{old:r,value:s})}},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(t,e){var n={};return t>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):t<0?(n.row=0,n.column=0):(n.row=t,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,e))),e<0&&(n.column=0),n}}).call(o.prototype)})),ace.define("ace/document",[],(function(t,e,n){"use strict";var s=t("./lib/oop"),r=t("./apply_delta").applyDelta,o=t("./lib/event_emitter").EventEmitter,a=t("./range").Range,i=t("./anchor").Anchor,_=function(t){this.$lines=[""],0===t.length?this.$lines=[""]:Array.isArray(t)?this.insertMergedLines({row:0,column:0},t):this.insert({row:0,column:0},t)};(function(){s.implement(this,o),this.setValue=function(t){var e=this.getLength()-1;this.remove(new a(0,0,e,this.getLine(e).length)),this.insert({row:0,column:0},t)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(t,e){return new i(this,t,e)},0==="aaa".split(/a/).length?this.$split=function(t){return t.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(t){return t.split(/\r\n|\r|\n/)},this.$detectNewLine=function(t){var e=t.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=e?e[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(t){this.$newLineMode!==t&&(this.$newLineMode=t,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(t){return"\r\n"==t||"\r"==t||"\n"==t},this.getLine=function(t){return this.$lines[t]||""},this.getLines=function(t,e){return this.$lines.slice(t,e+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(t){return this.getLinesForRange(t).join(this.getNewLineCharacter())},this.getLinesForRange=function(t){var e;if(t.start.row===t.end.row)e=[this.getLine(t.start.row).substring(t.start.column,t.end.column)];else{(e=this.getLines(t.start.row,t.end.row))[0]=(e[0]||"").substring(t.start.column);var n=e.length-1;t.end.row-t.start.row==n&&(e[n]=e[n].substring(0,t.end.column))}return e},this.insertLines=function(t,e){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(t,e)},this.removeLines=function(t,e){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(t,e)},this.insertNewLine=function(t){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(t,["",""])},this.insert=function(t,e){return this.getLength()<=1&&this.$detectNewLine(e),this.insertMergedLines(t,this.$split(e))},this.insertInLine=function(t,e){var n=this.clippedPos(t.row,t.column),s=this.pos(t.row,t.column+e.length);return this.applyDelta({start:n,end:s,action:"insert",lines:[e]},!0),this.clonePos(s)},this.clippedPos=function(t,e){var n=this.getLength();void 0===t?t=n:t<0?t=0:t>=n&&(t=n-1,e=void 0);var s=this.getLine(t);return null==e&&(e=s.length),{row:t,column:e=Math.min(Math.max(e,0),s.length)}},this.clonePos=function(t){return{row:t.row,column:t.column}},this.pos=function(t,e){return{row:t,column:e}},this.$clipPosition=function(t){var e=this.getLength();return t.row>=e?(t.row=Math.max(0,e-1),t.column=this.getLine(e-1).length):(t.row=Math.max(0,t.row),t.column=Math.min(Math.max(t.column,0),this.getLine(t.row).length)),t},this.insertFullLines=function(t,e){var n=0;(t=Math.min(Math.max(t,0),this.getLength()))0,s=e=0&&this.applyDelta({start:this.pos(t,this.getLine(t).length),end:this.pos(t+1,0),action:"remove",lines:["",""]})},this.replace=function(t,e){return t instanceof a||(t=a.fromPoints(t.start,t.end)),0===e.length&&t.isEmpty()?t.start:e==this.getTextRange(t)?t.end:(this.remove(t),e?this.insert(t.start,e):t.start)},this.applyDeltas=function(t){for(var e=0;e=0;e--)this.revertDelta(t[e])},this.applyDelta=function(t,e){var n="insert"==t.action;(n?t.lines.length<=1&&!t.lines[0]:!a.comparePoints(t.start,t.end))||(n&&t.lines.length>2e4?this.$splitAndapplyLargeDelta(t,2e4):(r(this.$lines,t,e),this._signal("change",t)))},this.$safeApplyDelta=function(t){var e=this.$lines.length;("remove"==t.action&&t.start.row0;)1&e&&(n+=t),(e>>=1)&&(t+=t);return n};var s=/^\s\s*/,r=/\s\s*$/;e.stringTrimLeft=function(t){return t.replace(s,"")},e.stringTrimRight=function(t){return t.replace(r,"")},e.copyObject=function(t){var e={};for(var n in t)e[n]=t[n];return e},e.copyArray=function(t){for(var e=[],n=0,s=t.length;n=e.$lines.length)throw(i=new Error("Invalid delta")).data={path:o.$path,linesLength:e.$lines.length,start:a.start,end:a.end},i;e.applyDelta(a,!0)}if(o.$timeout)return n.schedule(o.$timeout);o.onUpdate()}))};(function(){this.$timeout=500,this.setTimeout=function(t){this.$timeout=t},this.setValue=function(t){this.doc.setValue(t),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(t){this.sender.callback(this.doc.getValue(),t)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)})),ace.define("ace/mode/php/php",[],(function(t,e,n){var s={Constants:{}};s.Constants.T_THROW=317,s.Constants.T_INCLUDE=272,s.Constants.T_INCLUDE_ONCE=273,s.Constants.T_EVAL=274,s.Constants.T_REQUIRE=275,s.Constants.T_REQUIRE_ONCE=276,s.Constants.T_LOGICAL_OR=277,s.Constants.T_LOGICAL_XOR=278,s.Constants.T_LOGICAL_AND=279,s.Constants.T_PRINT=280,s.Constants.T_YIELD=281,s.Constants.T_DOUBLE_ARROW=386,s.Constants.T_YIELD_FROM=282,s.Constants.T_PLUS_EQUAL=352,s.Constants.T_MINUS_EQUAL=353,s.Constants.T_MUL_EQUAL=354,s.Constants.T_DIV_EQUAL=355,s.Constants.T_CONCAT_EQUAL=356,s.Constants.T_MOD_EQUAL=357,s.Constants.T_AND_EQUAL=358,s.Constants.T_OR_EQUAL=359,s.Constants.T_XOR_EQUAL=360,s.Constants.T_SL_EQUAL=361,s.Constants.T_SR_EQUAL=362,s.Constants.T_POW_EQUAL=402,s.Constants.T_COALESCE_EQUAL=363,s.Constants.T_COALESCE=400,s.Constants.T_BOOLEAN_OR=364,s.Constants.T_BOOLEAN_AND=365,s.Constants.T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG=404,s.Constants.T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG=403,s.Constants.T_IS_EQUAL=366,s.Constants.T_IS_NOT_EQUAL=367,s.Constants.T_IS_IDENTICAL=368,s.Constants.T_IS_NOT_IDENTICAL=369,s.Constants.T_SPACESHIP=372,s.Constants.T_IS_SMALLER_OR_EQUAL=370,s.Constants.T_IS_GREATER_OR_EQUAL=371,s.Constants.T_SL=373,s.Constants.T_SR=374,s.Constants.T_INSTANCEOF=283,s.Constants.T_INC=375,s.Constants.T_DEC=376,s.Constants.T_INT_CAST=377,s.Constants.T_DOUBLE_CAST=378,s.Constants.T_STRING_CAST=379,s.Constants.T_ARRAY_CAST=380,s.Constants.T_OBJECT_CAST=381,s.Constants.T_BOOL_CAST=382,s.Constants.T_UNSET_CAST=383,s.Constants.T_POW=401,s.Constants.T_NEW=284,s.Constants.T_CLONE=285,s.Constants.T_EXIT=286,s.Constants.T_IF=287,s.Constants.T_ELSEIF=288,s.Constants.T_ELSE=289,s.Constants.T_ENDIF=290,s.Constants.T_LNUMBER=260,s.Constants.T_DNUMBER=261,s.Constants.T_STRING=262,s.Constants.T_STRING_VARNAME=270,s.Constants.T_VARIABLE=266,s.Constants.T_NUM_STRING=271,s.Constants.T_INLINE_HTML=267,s.Constants.T_ENCAPSED_AND_WHITESPACE=268,s.Constants.T_CONSTANT_ENCAPSED_STRING=269,s.Constants.T_ECHO=291,s.Constants.T_DO=292,s.Constants.T_WHILE=293,s.Constants.T_ENDWHILE=294,s.Constants.T_FOR=295,s.Constants.T_ENDFOR=296,s.Constants.T_FOREACH=297,s.Constants.T_ENDFOREACH=298,s.Constants.T_DECLARE=299,s.Constants.T_ENDDECLARE=300,s.Constants.T_AS=301,s.Constants.T_SWITCH=302,s.Constants.T_MATCH=306,s.Constants.T_ENDSWITCH=303,s.Constants.T_CASE=304,s.Constants.T_DEFAULT=305,s.Constants.T_BREAK=307,s.Constants.T_CONTINUE=308,s.Constants.T_GOTO=309,s.Constants.T_FUNCTION=310,s.Constants.T_FN=311,s.Constants.T_CONST=312,s.Constants.T_RETURN=313,s.Constants.T_TRY=314,s.Constants.T_CATCH=315,s.Constants.T_FINALLY=316,s.Constants.T_THROW=317,s.Constants.T_USE=318,s.Constants.T_INSTEADOF=319,s.Constants.T_GLOBAL=320,s.Constants.T_STATIC=321,s.Constants.T_ABSTRACT=322,s.Constants.T_FINAL=323,s.Constants.T_PRIVATE=324,s.Constants.T_PROTECTED=325,s.Constants.T_PUBLIC=326,s.Constants.T_READONLY=327,s.Constants.T_VAR=328,s.Constants.T_UNSET=329,s.Constants.T_ISSET=330,s.Constants.T_EMPTY=331,s.Constants.T_HALT_COMPILER=332,s.Constants.T_CLASS=333,s.Constants.T_TRAIT=334,s.Constants.T_INTERFACE=335,s.Constants.T_ENUM=336,s.Constants.T_EXTENDS=337,s.Constants.T_IMPLEMENTS=338,s.Constants.T_OBJECT_OPERATOR=384,s.Constants.T_NULLSAFE_OBJECT_OPERATOR=385,s.Constants.T_DOUBLE_ARROW=386,s.Constants.T_LIST=340,s.Constants.T_ARRAY=341,s.Constants.T_CALLABLE=342,s.Constants.T_CLASS_C=346,s.Constants.T_TRAIT_C=347,s.Constants.T_METHOD_C=348,s.Constants.T_FUNC_C=349,s.Constants.T_LINE=343,s.Constants.T_FILE=344,s.Constants.T_START_HEREDOC=393,s.Constants.T_END_HEREDOC=394,s.Constants.T_DOLLAR_OPEN_CURLY_BRACES=395,s.Constants.T_CURLY_OPEN=396,s.Constants.T_PAAMAYIM_NEKUDOTAYIM=397,s.Constants.T_NAMESPACE=339,s.Constants.T_NS_C=350,s.Constants.T_DIR=345,s.Constants.T_NS_SEPARATOR=398,s.Constants.T_ELLIPSIS=399,s.Constants.T_NAME_FULLY_QUALIFIED=263,s.Constants.T_NAME_QUALIFIED=265,s.Constants.T_NAME_RELATIVE=264,s.Constants.T_ATTRIBUTE=351,s.Constants.T_ENUM=336,s.Constants.T_BAD_CHARACTER=405,s.Constants.T_COMMENT=387,s.Constants.T_DOC_COMMENT=388,s.Constants.T_OPEN_TAG=389,s.Constants.T_OPEN_TAG_WITH_ECHO=390,s.Constants.T_CLOSE_TAG=391,s.Constants.T_WHITESPACE=392,s.Lexer=function(t,e){var n,r,o=["INITIAL"],a=0,i=function(t){o[a]=t},_=function(t){o[++a]=t},T=function(){--a},u=void 0===e||/^(on|true|1)$/i.test(e.short_open_tag),E=u?/^(\<\?php(?:\r\n|[ \t\r\n])|<\?|\