diff --git a/mode/zql.js b/mode/zql.js new file mode 100644 index 00000000..fefdd69c --- /dev/null +++ b/mode/zql.js @@ -0,0 +1,160 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { +"use strict"; + +var oop = acequire("../lib/oop"); +var TextHighlightRules = acequire("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +}; + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/mysql_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(acequire, exports, module) { + +var oop = acequire("../lib/oop"); +var lang = acequire("../lib/lang"); +var DocCommentHighlightRules = acequire("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = acequire("./text_highlight_rules").TextHighlightRules; + +var MysqlHighlightRules = function() { + + var mySqlKeywords = /*sql*/ "bytes|length|startswith|endswith|exist|absent|int|long|string|guid|append|key_range|key_prefix|take|skip|alter|and|as|asc|between|count|create|delete|desc|distinct|drop|from|having|in|insert|into|is|join|like|not|on|or|order|select|set|table|union|update|values|where" + "|accessible|action|add|after|algorithm|all|analyze|asensitive|at|authors|auto_increment|autocommit|avg|avg_row_length|before|binary|binlog|both|btree|cache|call|cascade|cascaded|case|catalog_name|chain|change|changed|character|check|checkpoint|checksum|class_origin|client_statistics|close|coalesce|code|collate|collation|collations|column|columns|comment|commit|committed|completion|concurrent|condition|connection|consistent|constraint|contains|continue|contributors|convert|cross|current_date|current_time|current_timestamp|current_user|cursor|data|database|databases|day_hour|day_microsecond|day_minute|day_second|deallocate|dec|declare|default|delay_key_write|delayed|delimiter|des_key_file|describe|deterministic|dev_pop|dev_samp|deviance|directory|disable|discard|distinctrow|div|dual|dumpfile|each|elseif|enable|enclosed|end|ends|engine|engines|enum|errors|escape|escaped|even|event|events|every|execute|exists|exit|explain|extended|fast|fetch|field|fields|first|flush|for|force|foreign|found_rows|full|fulltext|function|general|global|grant|grants|group|groupby_concat|handler|hash|help|high_priority|hosts|hour_microsecond|hour_minute|hour_second|if|ignore|ignore_server_ids|import|index|index_statistics|infile|inner|innodb|inout|insensitive|insert_method|install|interval|invoker|isolation|iterate|key|keys|kill|language|last|leading|leave|left|level|limit|linear|lines|list|load|local|localtime|localtimestamp|lock|logs|low_priority|master|master_heartbeat_period|master_ssl_verify_server_cert|masters|match|max|max_rows|maxvalue|message_text|middleint|migrate|min|min_rows|minute_microsecond|minute_second|mod|mode|modifies|modify|mutex|mysql_errno|natural|next|no|no_write_to_binlog|offline|offset|one|online|open|optimize|option|optionally|out|outer|outfile|pack_keys|parser|partition|partitions|password|phase|plugin|plugins|prepare|preserve|prev|primary|privileges|procedure|processlist|profile|profiles|purge|query|quick|range|read|read_write|reads|real|rebuild|recover|references|regexp|relaylog|release|remove|rename|reorganize|repair|repeatable|replace|acequire|resignal|restrict|resume|return|returns|revoke|right|rlike|rollback|rollup|row|row_format|rtree|savepoint|schedule|schema|schema_name|schemas|second_microsecond|security|sensitive|separator|serializable|server|session|share|show|signal|slave|slow|smallint|snapshot|soname|spatial|specific|sql|sql_big_result|sql_buffer_result|sql_cache|sql_calc_found_rows|sql_no_cache|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|start|starting|starts|status|std|stddev|stddev_pop|stddev_samp|storage|straight_join|subclass_origin|sum|suspend|table_name|table_statistics|tables|tablespace|temporary|terminated|to|trailing|transaction|trigger|triggers|truncate|uncommitted|undo|uninstall|unique|unlock|upgrade|usage|use|use_frm|user|user_resources|user_statistics|using|utc_date|utc_time|utc_timestamp|value|variables|varying|view|views|warnings|when|while|with|work|write|xa|xor|year_month|zerofill|begin|do|then|else|loop|repeat"; + var builtins = "by|bool|boolean|bit|blob|decimal|double|enum|float|longblob|longtext|medium|mediumblob|mediumint|mediumtext|time|timestamp|tinyblob|tinyint|tinytext|text|bigint|int1|int2|int3|int4|int8|integer|float|float4|float8|double|char|varbinary|varchar|varcharacter|precision|date|datetime|year|unsigned|signed|numeric|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl"; + var variable = "charset|clear|connect|edit|ego|exit|go|help|nopager|notee|nowarning|pager|print|prompt|quit|rehash|source|status|system|tee"; + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtins, + "keyword": mySqlKeywords, + "constant": "false|true|null|unknown|date|time|timestamp|ODBCdotTable|zerolessFloat", + "variable.language": variable + }, "identifier", true); + + + function string(rule) { + var start = rule.start; + var escapeSeq = rule.escape; + return { + token: "string.start", + regex: start, + next: [ + {token: "constant.language.escape", regex: escapeSeq}, + {token: "string.end", next: "start", regex: start}, + {defaultToken: "string"} + ] + }; + } + + this.$rules = { + "start" : [ { + token : "comment", regex : "(?:-- |#).*$" + }, + string({start: '"', escape: /\\[0'"bnrtZ\\%_]?/}), + string({start: "'", escape: /\\[0'"bnrtZ\\%_]?/}), + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : /\/\*/, + next : "comment" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+|[xX]'[0-9a-fA-F]+'|0[bB][01]+|[bB]'[01]+'/ + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "constant.class", + regex : "@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "constant.buildin", + regex : "`[^`]*`" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } ], + "comment" : [ + {token : "comment", regex : "\\*\\/", next : "start"}, + {defaultToken : "comment"} + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(MysqlHighlightRules, TextHighlightRules); + +exports.MysqlHighlightRules = MysqlHighlightRules; +}); + +ace.define("ace/mode/zql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mysql_highlight_rules"], function(acequire, exports, module) { + +var oop = acequire("../lib/oop"); +var TextMode = acequire("../mode/text").Mode; +var MysqlHighlightRules = acequire("./mysql_highlight_rules").MysqlHighlightRules; + +var Mode = function() { + this.HighlightRules = MysqlHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = ["--", "#"]; // todo space + this.blockComment = {start: "/*", end: "*/"}; + + this.$id = "ace/mode/zql"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/theme/houston.js b/theme/houston.js new file mode 100644 index 00000000..1e163e35 --- /dev/null +++ b/theme/houston.js @@ -0,0 +1,133 @@ +ace.define("ace/theme/houston",["require","exports","module","ace/lib/dom"], function(acequire, exports, module) { + + exports.isDark = true; + exports.cssClass = "ace-houston"; + exports.cssText = ".ace-houston .ace_gutter {\ +background: #3c3c3c;\ +color: rgba(255, 255, 255, 0.3)\ +}\ +.ace-houston .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace_gutter-cell.ace_error {\ +background-image: none;\ +background: #6b3838\ +}\ +.ace-houston {\ +background-color: none;\ +color: #F8F8F2;\ +font-size: 14px;\ +}\ +.ace-houston .ace_scrollbar-v {\ +width: 7px !important;\ +bottom: 7px !important;\ +}\ +.ace-houston .ace_scrollbar-h {\ +height: 7px !important;\ +right: 7px !important;\ +}\ +.ace-houston .ace_scroller {\ +right: 0px !important;\ +bottom: 0px !important;\ +}\ +.ace-houston .ace_cursor {\ +color: #F8F8F0\ +}\ +.ace-houston .ace_marker-layer .ace_selection {\ +background: #49483E\ +}\ +.ace-houston.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #272822;\ +}\ +.ace-houston .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-houston .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #49483E\ +}\ +.ace-houston .ace_marker-layer .ace_active-line {\ +background: #202020\ +}\ +.ace-houston .ace_gutter-active-line {\ +background-color: #272727\ +}\ +.ace-houston .ace_marker-layer .ace_selected-word {\ +border: 1px solid #49483E\ +}\ +.ace-houston .ace_invisible {\ +color: #52524d\ +}\ +.ace-houston .ace_entity.ace_name.ace_tag,\ +.ace-houston .ace_keyword,\ +.ace-houston .ace_meta.ace_tag,\ +.ace-houston .ace_storage {\ +color: #F92672\ +}\ +.ace-houston .ace_punctuation,\ +.ace-houston .ace_punctuation.ace_tag {\ +color: #fff\ +}\ +.ace-houston .ace_constant.ace_character,\ +.ace-houston .ace_constant.ace_numeric,\ +.ace-houston .ace_constant.ace_other {\ +color: #00CCBB\ +}\ +.ace-houston .ace_constant.ace_language{\ +color: #0488E0\ +}\ +.ace-houston .ace_invalid {\ +color: #F8F8F0;\ +background-color: #F92672\ +}\ +.ace-houston .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #AE81FF\ +}\ +.ace-houston .ace_support.ace_constant,\ +.ace-houston .ace_support.ace_function {\ +color: #66D9EF\ +}\ +.ace-houston .ace_fold {\ +background-color: #A6E22E;\ +border-color: #585858;\ +background-image: none;\ +position: relative;\ +background-color: rgba(255, 255, 255, 0);\ +}\ +.ace-houston .ace_fold:after {\ + content: '...';\ + color: #fff;\ + position: absolute;\ + top: -7px;\ +}\ +.ace-houston .ace_storage.ace_type,\ +.ace-houston .ace_support.ace_class,\ +.ace-houston .ace_support.ace_type {\ +font-style: italic;\ +color: #66D9EF\ +}\ +.ace-houston .ace_entity.ace_name.ace_function,\ +.ace-houston .ace_entity.ace_other,\ +.ace-houston .ace_entity.ace_other.ace_attribute-name,\ +.ace-houston .ace_variable {\ +color: #fff\ +}\ +.ace-houston .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #FD971F\ +}\ +.ace-houston .ace_string {\ +color: #FF809F\ +}\ +.ace-houston .ace_comment {\ +color: #75715E\ +}\ +.ace-houston .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\ +}"; + + var dom = acequire("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/theme/houstonLight.js b/theme/houstonLight.js new file mode 100644 index 00000000..ffc872ce --- /dev/null +++ b/theme/houstonLight.js @@ -0,0 +1,133 @@ +ace.define("ace/theme/houstonLight",["require","exports","module","ace/lib/dom"], function(acequire, exports, module) { + + exports.isDark = true; + exports.cssClass = "ace-houstonLight"; + exports.cssText = ".ace-houstonLight .ace_gutter {\ +background: #fff;\ +color: #656565\ +}\ +.ace-houstonLight .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace_gutter-cell.ace_error {\ +background-image: none;\ +background: #6b3838\ +}\ +.ace-houstonLight {\ +background-color: #333333;\ +color: #F8F8F2;\ +font-size: 14px;\ +}\ +.ace-houstonLight .ace_scrollbar-v {\ +width: 7px !important;\ +bottom: 7px !important;\ +}\ +.ace-houstonLight .ace_scrollbar-h {\ +height: 7px !important;\ +right: 7px !important;\ +}\ +.ace-houstonLight .ace_scroller {\ +right: 0px !important;\ +bottom: 0px !important;\ +}\ +.ace-houstonLight .ace_cursor {\ +color: #F8F8F0\ +}\ +.ace-houstonLight .ace_marker-layer .ace_selection {\ +background: #49483E\ +}\ +.ace-houstonLight.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #272822;\ +}\ +.ace-houstonLight .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-houstonLight .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #49483E\ +}\ +.ace-houstonLight .ace_marker-layer .ace_active-line {\ +background: #202020\ +}\ +.ace-houstonLight .ace_gutter-active-line {\ +background-color: #272727\ +}\ +.ace-houstonLight .ace_marker-layer .ace_selected-word {\ +border: 1px solid #49483E\ +}\ +.ace-houstonLight .ace_invisible {\ +color: #52524d\ +}\ +.ace-houstonLight .ace_entity.ace_name.ace_tag,\ +.ace-houstonLight .ace_keyword,\ +.ace-houstonLight .ace_meta.ace_tag,\ +.ace-houstonLight .ace_storage {\ +color: #F92672\ +}\ +.ace-houstonLight .ace_punctuation,\ +.ace-houstonLight .ace_punctuation.ace_tag {\ +color: #fff\ +}\ +.ace-houstonLight .ace_constant.ace_character,\ +.ace-houstonLight .ace_constant.ace_numeric,\ +.ace-houstonLight .ace_constant.ace_other {\ +color: #00CCBB\ +}\ +.ace-houstonLight .ace_constant.ace_language{\ +color: #0488E0\ +}\ +.ace-houstonLight .ace_invalid {\ +color: #F8F8F0;\ +background-color: #F92672\ +}\ +.ace-houstonLight .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #AE81FF\ +}\ +.ace-houstonLight .ace_support.ace_constant,\ +.ace-houstonLight .ace_support.ace_function {\ +color: #66D9EF\ +}\ +.ace-houstonLight .ace_fold {\ +background-color: #A6E22E;\ +border-color: #585858;\ +background-image: none;\ +position: relative;\ +background-color: rgba(255, 255, 255, 0);\ +}\ +.ace-houstonLight .ace_fold:after {\ + content: '...';\ + color: #fff;\ + position: absolute;\ + top: -7px;\ +}\ +.ace-houstonLight .ace_storage.ace_type,\ +.ace-houstonLight .ace_support.ace_class,\ +.ace-houstonLight .ace_support.ace_type {\ +font-style: italic;\ +color: #66D9EF\ +}\ +.ace-houstonLight .ace_entity.ace_name.ace_function,\ +.ace-houstonLight .ace_entity.ace_other,\ +.ace-houstonLight .ace_entity.ace_other.ace_attribute-name,\ +.ace-houstonLight .ace_variable {\ +color: #fff\ +}\ +.ace-houstonLight .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #FD971F\ +}\ +.ace-houstonLight .ace_string {\ +color: #FF809F\ +}\ +.ace-houstonLight .ace_comment {\ +color: #75715E\ +}\ +.ace-houstonLight .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\ +}"; + + var dom = acequire("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/theme/zebra.js b/theme/zebra.js new file mode 100644 index 00000000..b5e98128 --- /dev/null +++ b/theme/zebra.js @@ -0,0 +1,108 @@ +ace.define("ace/theme/zebra",["require","exports","module","ace/lib/dom"], function(acequire, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-zebra"; +exports.cssText = ".ace-zebra .ace_gutter {\ +background: #fff;\ +color: #4D4D4C\ +}\ +.ace-zebra .ace_print-margin {\ +width: 1px;\ +background: #f6f6f6\ +}\ +.ace-zebra {\ +background-color: #fff;\ +color: #4D4D4C\ +}\ +.ace-zebra .ace_cursor {\ +color: #AEAFAD\ +}\ +.ace-zebra .ace_marker-layer .ace_selection {\ +background: #D6D6D6\ +}\ +.ace-zebra.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FFFFFF;\ +}\ +.ace-zebra .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-zebra .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #D1D1D1\ +}\ +.ace-zebra .ace_marker-layer .ace_active-line {\ +background: #EFEFEF\ +}\ +.ace-zebra .ace_gutter-active-line {\ +background-color : #dcdcdc\ +}\ +.ace-zebra .ace_marker-layer .ace_selected-word {\ +border: 1px solid #D6D6D6\ +}\ +.ace-zebra .ace_invisible {\ +color: #D1D1D1\ +}\ +.ace-zebra .ace_keyword,\ +.ace-zebra .ace_meta,\ +.ace-zebra .ace_storage,\ +.ace-zebra .ace_storage.ace_type,\ +.ace-zebra .ace_support.ace_type {\ +color: #8959A8\ +}\ +.ace-zebra .ace_keyword.ace_operator {\ +color: #3E999F\ +}\ +.ace-zebra .ace_constant.ace_character,\ +.ace-zebra .ace_constant.ace_language,\ +.ace-zebra .ace_constant.ace_numeric,\ +.ace-zebra .ace_keyword.ace_other.ace_unit,\ +.ace-zebra .ace_support.ace_constant,\ +.ace-zebra .ace_variable.ace_parameter {\ +color: #F5871F\ +}\ +.ace-zebra .ace_constant.ace_other {\ +color: #666969\ +}\ +.ace-zebra .ace_invalid {\ +color: #FFFFFF;\ +background-color: #C82829\ +}\ +.ace-zebra .ace_invalid.ace_deprecated {\ +color: #FFFFFF;\ +background-color: #8959A8\ +}\ +.ace-zebra .ace_fold {\ +background-color: #4271AE;\ +border-color: #4D4D4C\ +}\ +.ace-zebra .ace_entity.ace_name.ace_function,\ +.ace-zebra .ace_support.ace_function,\ +.ace-zebra .ace_variable {\ +color: #4271AE\ +}\ +.ace-zebra .ace_support.ace_class,\ +.ace-zebra .ace_support.ace_type {\ +color: #C99E00\ +}\ +.ace-zebra .ace_heading,\ +.ace-zebra .ace_markup.ace_heading,\ +.ace-zebra .ace_string {\ +color: #718C00\ +}\ +.ace-zebra .ace_entity.ace_name.ace_tag,\ +.ace-zebra .ace_entity.ace_other.ace_attribute-name,\ +.ace-zebra .ace_meta.ace_tag,\ +.ace-zebra .ace_string.ace_regexp,\ +.ace-zebra .ace_variable {\ +color: #C82829\ +}\ +.ace-zebra .ace_comment {\ +color: #8E908C\ +}\ +.ace-zebra .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y\ +}"; + +var dom = acequire("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/theme/zebraDark.js b/theme/zebraDark.js new file mode 100644 index 00000000..7fecc24e --- /dev/null +++ b/theme/zebraDark.js @@ -0,0 +1,136 @@ +ace.define("ace/theme/zebraDark",["require","exports","module","ace/lib/dom"], function(acequire, exports, module) { + + exports.isDark = true; + exports.cssClass = "ace-zebraDark"; + exports.cssText = ".ace-zebraDark .ace_gutter {\ +background: #262626;\ +color: rgba(255, 255, 255, 0.3)\ +}\ +.ace-zebraDark .ace_print-margin {\ +width: 1px;\ +background: #333\ +}\ +.ace_gutter-cell.ace_error {\ +background-image: none;\ +background: #6b3838\ +}\ +.ace-zebraDark {\ +background-color: #262626;\ +color: #F8F8F2;\ +font-size: 14px;\ +}\ +.ace-zebraDark .ace_scrollbar-v {\ +width: 7px !important;\ +bottom: 7px !important;\ +}\ +.ace-zebraDark .ace_scrollbar-h {\ +height: 7px !important;\ +right: 7px !important;\ +}\ +.ace-zebraDark .ace_scroller {\ +right: 0px !important;\ +bottom: 0px !important;\ +}\ +.ace-zebraDark .ace_cursor {\ +color: #F8F8F0\ +}\ +.ace-zebraDark .ace_marker-layer .ace_selection {\ +background: #49483E\ +}\ +.ace-zebraDark.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #272822;\ +}\ +.ace-zebraDark .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-zebraDark .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #49483E\ +}\ +.ace-zebraDark .ace_marker-layer .ace_active-line {\ +background: #202020\ +}\ +.ace-zebraDark .ace_gutter-active-line {\ +background-color: #272727\ +}\ +.ace-zebraDark .ace_marker-layer .ace_selected-word {\ +border: 1px solid #49483E\ +}\ +.ace-zebraDark .ace_invisible {\ +color: #52524d\ +}\ +.ace-zebraDark .ace_entity.ace_name.ace_tag,\ +.ace-zebraDark .ace_keyword,\ +.ace-zebraDark .ace_meta.ace_tag,\ +.ace-zebraDark .ace_storage {\ +color: rgb(255, 126, 48)\ +}\ +.ace-zebraDark .ace_keyword.ace_operator {\ +color: #51b151\ +}\ +.ace-zebraDark .ace_punctuation,\ +.ace-zebraDark .ace_punctuation.ace_tag {\ +color: #fff\ +}\ +.ace-zebraDark .ace_constant.ace_character,\ +.ace-zebraDark .ace_constant.ace_numeric,\ +.ace-zebraDark .ace_constant.ace_other {\ +color: #00CCBB\ +}\ +.ace-zebraDark .ace_constant.ace_language{\ +color: #0488E0\ +}\ +.ace-zebraDark .ace_invalid {\ +color: #F8F8F0;\ +background-color: #F92672\ +}\ +.ace-zebraDark .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #AE81FF\ +}\ +.ace-zebraDark .ace_support.ace_constant,\ +.ace-zebraDark .ace_support.ace_function {\ +color: #66D9EF\ +}\ +.ace-zebraDark .ace_fold {\ +background-color: #A6E22E;\ +border-color: #585858;\ +background-image: none;\ +position: relative;\ +background-color: rgba(255, 255, 255, 0);\ +}\ +.ace-zebraDark .ace_fold:after {\ + content: '...';\ + color: #fff;\ + position: absolute;\ + top: -7px;\ +}\ +.ace-zebraDark .ace_storage.ace_type,\ +.ace-zebraDark .ace_support.ace_class,\ +.ace-zebraDark .ace_support.ace_type {\ +font-style: italic;\ +color: #66D9EF\ +}\ +.ace-zebraDark .ace_entity.ace_name.ace_function,\ +.ace-zebraDark .ace_entity.ace_other,\ +.ace-zebraDark .ace_entity.ace_other.ace_attribute-name,\ +.ace-zebraDark .ace_variable {\ +color: #fff\ +}\ +.ace-zebraDark .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #FD971F\ +}\ +.ace-zebraDark .ace_string {\ +color: #FF809F\ +}\ +.ace-zebraDark .ace_comment {\ +color: #75715E\ +}\ +.ace-zebraDark .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\ +}"; + + var dom = acequire("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/worker/json.js b/worker/json.js index ff4eb5e5..58a5128d 100644 --- a/worker/json.js +++ b/worker/json.js @@ -1,2 +1,2 @@ module.exports.id = 'ace/mode/json_worker'; -module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[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(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; \ No newline at end of file +module.exports.src = "\"no use strict\";!function(t){if(!(void 0!==t.window&&t.document||t.acequire&&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,r,i){postMessage({type:\"error\",data:{message:t,data:i.data,file:e,line:n,col:r,stack:i.stack}})},t.normalizeModule=function(e,n){if(-1!==n.indexOf(\"!\")){var r=n.split(\"!\");return t.normalizeModule(e,r[0])+\"!\"+t.normalizeModule(e,r[1])}if(\".\"==n.charAt(0)){var i=e.split(\"\/\").slice(0,-1).join(\"\/\");for(n=(i?i+\"\/\":\"\")+n;-1!==n.indexOf(\".\")&&o!=n;){var o=n;n=n.replace(\/^\\.\\\/\/,\"\").replace(\/\\\/\\.\\\/\/,\"\/\").replace(\/[^\\\/]+\\\/\\.\\.\\\/\/,\"\")}}return n},t.acequire=function(e,n){if(n||(n=e,e=null),!n.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");n=t.normalizeModule(e,n);var r=t.acequire.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;if(!t.acequire.tlns)return console.log(\"unable to load \"+n);var i=function(t,e){for(var n=t,r=\"\";n;){var i=e[n];if(\"string\"==typeof i)return i+r;if(i)return i.location.replace(\/\\\/*$\/,\"\/\")+(r||i.main||i.name);if(!1===i)return\"\";var o=n.lastIndexOf(\"\/\");if(-1===o)break;r=n.substr(o)+r,n=n.slice(0,o)}return t}(n,t.acequire.tlns);return\".js\"!=i.slice(-3)&&(i+=\".js\"),t.acequire.id=n,t.acequire.modules[n]={},importScripts(i),t.acequire(e,n)},t.acequire.modules={},t.acequire.tlns={},t.define=function(e,n,r){if(2==arguments.length?(r=n,\"string\"!=typeof e&&(n=e,e=t.acequire.id)):1==arguments.length&&(r=e,n=[],e=t.acequire.id),\"function\"==typeof r){n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return t.acequire(e,n)};t.acequire.modules[e]={exports:{},factory:function(){var t=this,e=r.apply(this,n.map(function(e){switch(e){case\"require\":return i;case\"exports\":return t.exports;case\"module\":return t;default:return i(e)}}));return e&&(t.exports=e),t}}}else t.acequire.modules[e]={exports:r,initialized:!0}},t.define.amd={},acequire.tlns={},t.initBaseUrls=function(t){for(var e in t)acequire.tlns[e]=t[e]},t.initSender=function(){var e=t.acequire(\"ace\/lib\/event_emitter\").EventEmitter,n=t.acequire(\"ace\/lib\/oop\"),r=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(r.prototype),new r};var e=t.main=null,n=t.sender=null;t.onmessage=function(r){var i=r.data;if(i.event&&n)n._signal(i.event,i.data);else if(i.command)if(e[i.command])e[i.command].apply(e,i.args);else{if(!t[i.command])throw Error(\"Unknown command:\"+i.command);t[i.command].apply(t,i.args)}else if(i.init){t.initBaseUrls(i.tlns),acequire(\"ace\/lib\/es5-shim\"),n=t.sender=t.initSender();var o=acequire(i.module)[i.classname];e=t.main=new o(n)}}}}(this),ace.define(\"ace\/lib\/oop\",[\"require\",\"exports\",\"module\"],function(t,e){\"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\/range\",[\"require\",\"exports\",\"module\"],function(t,e){\"use strict\";var n=function(t,e,n,r){this.start={row:t,column:e},this.end={row:n,column:r}};(function(){this.isEqual=function(t){return this.start.row===t.start.row&&this.end.row===t.end.row&&this.start.column===t.start.column&&this.end.column===t.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"\/\"+this.start.column+\"] -> [\"+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,r=t.start;return 1==(e=this.compare(n.row,n.column))?1==(e=this.compare(r.row,r.column))?2:0==e?1:0:-1==e?-2:-1==(e=this.compare(r.row,r.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?this.start.row>t?-1:t>this.end.row?1:this.start.row===t?e>=this.start.column?0:-1:this.end.row===t?this.end.column>=e?0:1:0:this.start.column>e?-1:e>this.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 r={row:e+1,column:0};else if(t>this.end.row)r={row:t,column:0};if(this.start.row>e)var i={row:e+1,column:0};else if(t>this.start.row)i={row:t,column:0};return n.fromPoints(i||this.start,r||this.end)},this.extend=function(t,e){var r=this.compare(t,e);if(0==r)return this;if(-1==r)var i={row:t,column:e};else var o={row:t,column:e};return n.fromPoints(i||this.start,o||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return n.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new n(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new n(this.start.row,0,this.end.row,0)},this.toScreenRange=function(t){var e=t.documentToScreenPosition(this.start),r=t.documentToScreenPosition(this.end);return new n(e.row,e.column,r.row,r.column)},this.moveBy=function(t,e){this.start.row+=t,this.start.column+=e,this.end.row+=t,this.end.column+=e}}).call(n.prototype),n.fromPoints=function(t,e){return new n(t.row,t.column,e.row,e.column)},n.comparePoints=function(t,e){return t.row-e.row||t.column-e.column},n.comparePoints=function(t,e){return t.row-e.row||t.column-e.column},e.Range=n}),ace.define(\"ace\/apply_delta\",[\"require\",\"exports\",\"module\"],function(t,e){\"use strict\";e.applyDelta=function(t,e){var n=e.start.row,r=e.start.column,i=t[n]||\"\";switch(e.action){case\"insert\":if(1===e.lines.length)t[n]=i.substring(0,r)+e.lines[0]+i.substring(r);else{var o=[n,1].concat(e.lines);t.splice.apply(t,o),t[n]=i.substring(0,r)+t[n],t[n+e.lines.length-1]+=i.substring(r)}break;case\"remove\":var s=e.end.column,a=e.end.row;n===a?t[n]=i.substring(0,r)+i.substring(s):t.splice(n,a-n+1,i.substring(0,r)+t[a].substring(s))}}}),ace.define(\"ace\/lib\/event_emitter\",[\"require\",\"exports\",\"module\"],function(t,e){\"use strict\";var n={},r=function(){this.propagationStopped=!0},i=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(t,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[t]||[],o=this._defaultHandlers[t];if(n.length||o){\"object\"==typeof e&&e||(e={}),e.type||(e.type=t),e.stopPropagation||(e.stopPropagation=r),e.preventDefault||(e.preventDefault=i),n=n.slice();for(var s=0;n.length>s&&(n[s](e,this),!e.propagationStopped);s++);return o&&!e.defaultPrevented?o(e,this):void 0}},n._signal=function(t,e){var n=(this._eventRegistry||{})[t];if(n){n=n.slice();for(var r=0;n.length>r;r++)n[r](e,this)}},n.once=function(t,e){var n=this;e&&this.addEventListener(t,function r(){n.removeEventListener(t,r),e.apply(null,arguments)})},n.setDefaultHandler=function(t,e){var n=this._defaultHandlers;if(n||(n=this._defaultHandlers={_disabled_:{}}),n[t]){var r=n[t],i=n._disabled_[t];i||(n._disabled_[t]=i=[]),i.push(r);var o=i.indexOf(e);-1!=o&&i.splice(o,1)}n[t]=e},n.removeDefaultHandler=function(t,e){var n=this._defaultHandlers;if(n){var r=n._disabled_[t];if(n[t]==e)n[t],r&&this.setDefaultHandler(t,r.pop());else if(r){var i=r.indexOf(e);-1!=i&&r.splice(i,1)}}},n.on=n.addEventListener=function(t,e,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[t];return r||(r=this._eventRegistry[t]=[]),-1==r.indexOf(e)&&r[n?\"unshift\":\"push\"](e),e},n.off=n.removeListener=n.removeEventListener=function(t,e){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[t];if(n){var r=n.indexOf(e);-1!==r&&n.splice(r,1)}},n.removeAllListeners=function(t){this._eventRegistry&&(this._eventRegistry[t]=[])},e.EventEmitter=n}),ace.define(\"ace\/anchor\",[\"require\",\"exports\",\"module\",\"ace\/lib\/oop\",\"ace\/lib\/event_emitter\"],function(t,e){\"use strict\";var n=t(\".\/lib\/oop\"),r=t(\".\/lib\/event_emitter\").EventEmitter,i=e.Anchor=function(t,e,n){this.$onChange=this.onChange.bind(this),this.attach(t),void 0===n?this.setPosition(e.row,e.column):this.setPosition(e,n)};(function(){function t(t,e,n){var r=n?t.column<=e.column:t.columnthis.row)){var n=function(e,n,r){var i=\"insert\"==e.action,o=(i?1:-1)*(e.end.row-e.start.row),s=(i?1:-1)*(e.end.column-e.start.column),a=e.start,c=i?a:e.end;return t(n,a,r)?{row:n.row,column:n.column}:t(c,n,!r)?{row:n.row+o,column:n.column+(n.row==c.row?s:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)}},this.setPosition=function(t,e,n){var r;if(r=n?{row:t,column:e}:this.$clipPositionToDocument(t,e),this.row!=r.row||this.column!=r.column){var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(t){this.document=t||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(t,e){var n={};return t>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):0>t?(n.row=0,n.column=0):(n.row=t,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,e))),0>e&&(n.column=0),n}}).call(i.prototype)}),ace.define(\"ace\/document\",[\"require\",\"exports\",\"module\",\"ace\/lib\/oop\",\"ace\/apply_delta\",\"ace\/lib\/event_emitter\",\"ace\/range\",\"ace\/anchor\"],function(t,e){\"use strict\";var n=t(\".\/lib\/oop\"),r=t(\".\/apply_delta\").applyDelta,i=t(\".\/lib\/event_emitter\").EventEmitter,o=t(\".\/range\").Range,s=t(\".\/anchor\").Anchor,a=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(){n.implement(this,i),this.setValue=function(t){var e=this.getLength()-1;this.remove(new o(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 s(this,t,e)},this.$split=0===\"aaa\".split(\/a\/).length?function(t){return t.replace(\/\\r\\n|\\r\/g,\"\\n\").split(\"\\n\")}: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 1>=this.getLength()&&this.$detectNewLine(e),this.insertMergedLines(t,this.$split(e))},this.insertInLine=function(t,e){var n=this.clippedPos(t.row,t.column),r=this.pos(t.row,t.column+e.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[e]},!0),this.clonePos(r)},this.clippedPos=function(t,e){var n=this.getLength();void 0===t?t=n:0>t?t=0:t>=n&&(t=n-1,e=void 0);var r=this.getLine(t);return null==e&&(e=r.length),{row:t,column:e=Math.min(Math.max(e,0),r.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){t=Math.min(Math.max(t,0),this.getLength());var n=0;this.getLength()>t?(e=e.concat([\"\"]),n=0):(e=[\"\"].concat(e),t--,n=this.$lines[t].length),this.insertMergedLines({row:t,column:n},e)},this.insertMergedLines=function(t,e){var n=this.clippedPos(t.row,t.column),r={row:n.row+e.length-1,column:(1==e.length?n.column:0)+e[e.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:e}),this.clonePos(r)},this.remove=function(t){var e=this.clippedPos(t.start.row,t.start.column),n=this.clippedPos(t.end.row,t.end.column);return this.applyDelta({start:e,end:n,action:\"remove\",lines:this.getLinesForRange({start:e,end:n})}),this.clonePos(e)},this.removeInLine=function(t,e,n){var r=this.clippedPos(t,e),i=this.clippedPos(t,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(t,e){t=Math.min(Math.max(0,t),this.getLength()-1);var n=(e=Math.min(Math.max(0,e),this.getLength()-1))==this.getLength()-1&&t>0,r=this.getLength()-1>e,i=n?t-1:t,s=n?this.getLine(i).length:0,a=r?e+1:e,c=r?0:this.getLine(a).length,u=new o(i,s,a,c),l=this.$lines.slice(t,e+1);return this.applyDelta({start:u.start,end:u.end,action:\"remove\",lines:this.getLinesForRange(u)}),l},this.removeNewLine=function(t){this.getLength()-1>t&&t>=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 o||(t=o.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;t.length>e;e++)this.applyDelta(t[e])},this.revertDeltas=function(t){for(var e=t.length-1;e>=0;e--)this.revertDelta(t[e])},this.applyDelta=function(t,e){var n=\"insert\"==t.action;(n?1>=t.lines.length&&!t.lines[0]:!o.comparePoints(t.start,t.end))||(n&&t.lines.length>2e4&&this.$splitAndapplyLargeDelta(t,2e4),r(this.$lines,t,e),this._signal(\"change\",t))},this.$splitAndapplyLargeDelta=function(t,e){for(var n=t.lines,r=n.length,i=t.start.row,o=t.start.column,s=0,a=0;;){s=a,a+=e-1;var c=n.slice(s,a);if(a>r){t.lines=c,t.start.row=i+s,t.start.column=o;break}c.push(\"\"),this.applyDelta({start:this.pos(i+s,o),end:this.pos(i+a,o=0),action:t.action,lines:c},!0)}},this.revertDelta=function(t){this.applyDelta({start:this.clonePos(t.start),end:this.clonePos(t.end),action:\"insert\"==t.action?\"remove\":\"insert\",lines:t.lines.slice()})},this.indexToPosition=function(t,e){for(var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=e||0,o=n.length;o>i;i++)if(0>(t-=n[i].length+r))return{row:i,column:t+n[i].length+r};return{row:o-1,column:n[o-1].length}},this.positionToIndex=function(t,e){for(var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,o=Math.min(t.row,n.length),s=e||0;o>s;++s)i+=n[s].length+r;return i+t.column}}).call(a.prototype),e.Document=a}),ace.define(\"ace\/lib\/lang\",[\"require\",\"exports\",\"module\"],function(t,e){\"use strict\";e.last=function(t){return t[t.length-1]},e.stringReverse=function(t){return t.split(\"\").reverse().join(\"\")},e.stringRepeat=function(t,e){for(var n=\"\";e>0;)1&e&&(n+=t),(e>>=1)&&(t+=t);return n};var n=\/^\\s\\s*\/,r=\/\\s\\s*$\/;e.stringTrimLeft=function(t){return t.replace(n,\"\")},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,r=t.length;r>n;n++)e[n]=t[n]&&\"object\"==typeof t[n]?this.copyObject(t[n]):t[n];return e},e.deepCopy=function t(e){if(\"object\"!=typeof e||!e)return e;var n;if(Array.isArray(e)){n=[];for(var r=0;e.length>r;r++)n[r]=t(e[r]);return n}if(\"[object Object]\"!==Object.prototype.toString.call(e))return e;for(var r in n={},e)n[r]=t(e[r]);return n},e.arrayToMap=function(t){for(var e={},n=0;t.length>n;n++)e[t[n]]=1;return e},e.createMap=function(t){var e=Object.create(null);for(var n in t)e[n]=t[n];return e},e.arrayRemove=function(t,e){for(var n=0;t.length>=n;n++)e===t[n]&&t.splice(n,1)},e.escapeRegExp=function(t){return t.replace(\/([.*+?^${}()|[\\]\\\/\\\\])\/g,\"\\\\$1\")},e.escapeHTML=function(t){return t.replace(\/&\/g,\"&\").replace(\/\"\/g,\""\").replace(\/\'\/g,\"'\").replace(\/<\/g,\"<\")},e.getMatchOffsets=function(t,e){var n=[];return t.replace(e,function(t){n.push({offset:arguments[arguments.length-2],length:t.length})}),n},e.deferredCall=function(t){var e=null,n=function(){e=null,t()},r=function(t){return r.cancel(),e=setTimeout(n,t||0),r};return r.schedule=r,r.call=function(){return this.cancel(),t(),r},r.cancel=function(){return clearTimeout(e),e=null,r},r.isPending=function(){return e},r},e.delayedCall=function(t,e){var n=null,r=function(){n=null,t()},i=function(t){null==n&&(n=setTimeout(r,t||e))};return i.delay=function(t){n&&clearTimeout(n),n=setTimeout(r,t||e)},i.schedule=i,i.call=function(){this.cancel(),t()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace\/worker\/mirror\",[\"require\",\"exports\",\"module\",\"ace\/range\",\"ace\/document\",\"ace\/lib\/lang\"],function(t,e){\"use strict\";t(\"..\/range\").Range;var n=t(\"..\/document\").Document,r=t(\"..\/lib\/lang\"),i=e.Mirror=function(t){this.sender=t;var e=this.doc=new n(\"\"),i=this.deferredUpdate=r.delayedCall(this.onUpdate.bind(this)),o=this;t.on(\"change\",function(t){var n=t.data;if(n[0].start)e.applyDeltas(n);else for(var r=0;n.length>r;r+=2){if(Array.isArray(n[r+1]))var s={action:\"insert\",start:n[r],lines:n[r+1]};else s={action:\"remove\",start:n[r],end:n[r+1]};e.applyDelta(s,!0)}return o.$timeout?i.schedule(o.$timeout):void 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(i.prototype)}),ace.define(\"ace\/mode\/json\/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var t,e,n,r,i={\'\"\':\'\"\',\"\\\\\":\"\\\\\",\"\/\":\"\/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\\t\"},o=function(e){throw{name:\"SyntaxError\",message:e,at:t,text:n}},s=function(r){return r&&r!==e&&o(\"Expected \'\"+r+\"\' instead of \'\"+e+\"\'\"),e=n.charAt(t),t+=1,e},a=function(){var t,n=\"\";for(\"-\"===e&&(n=\"-\",s(\"-\"));e>=\"0\"&&e<=\"9\";)n+=e,s();if(\".\"===e)for(n+=\".\";s()&&e>=\"0\"&&e<=\"9\";)n+=e;if(\"e\"===e||\"E\"===e)for(n+=e,s(),\"-\"!==e&&\"+\"!==e||(n+=e,s());e>=\"0\"&&e<=\"9\";)n+=e,s();if(t=+n,!isNaN(t))return t;o(\"Bad number\")},c=function(){var t,n,r,a=\"\";if(\'\"\'===e)for(;s();){if(\'\"\'===e)return s(),a;if(\"\\\\\"===e)if(s(),\"u\"===e){for(r=0,n=0;n<4&&(t=parseInt(s(),16),isFinite(t));n+=1)r=16*r+t;a+=String.fromCharCode(r)}else{if(\"string\"!=typeof i[e])break;a+=i[e]}else{if(\"\\n\"==e||\"\\r\"==e)break;a+=e}}o(\"Bad string\")},u=function(){for(;e&&e<=\" \";)s()};return r=function(){switch(u(),e){case\"{\":return function(){var t,n={};if(\"{\"===e){if(s(\"{\"),u(),\"}\"===e)return s(\"}\"),n;for(;e;){if(t=c(),u(),s(\":\"),Object.hasOwnProperty.call(n,t)&&o(\'Duplicate key \"\'+t+\'\"\'),n[t]=r(),u(),\"}\"===e)return s(\"}\"),n;s(\",\"),u()}}o(\"Bad object\")}();case\"[\":return function(){var t=[];if(\"[\"===e){if(s(\"[\"),u(),\"]\"===e)return s(\"]\"),t;for(;e;){if(t.push(r()),u(),\"]\"===e)return s(\"]\"),t;s(\",\"),u()}}o(\"Bad array\")}();case\'\"\':return c();case\"-\":return a();default:return e>=\"0\"&&\"9\">=e?a():function(){switch(e){case\"t\":return s(\"t\"),s(\"r\"),s(\"u\"),s(\"e\"),!0;case\"f\":return s(\"f\"),s(\"a\"),s(\"l\"),s(\"s\"),s(\"e\"),!1;case\"n\":return s(\"n\"),s(\"u\"),s(\"l\"),s(\"l\"),null}o(\"Unexpected \'\"+e+\"\'\")}()}},function(i,s){var a;return n=i,t=0,e=\" \",a=r(),u(),e&&o(\"Syntax error\"),\"function\"==typeof s?function t(e,n){var r,i,o=e[n];if(o&&\"object\"==typeof o)for(r in o)Object.hasOwnProperty.call(o,r)&&(void 0!==(i=t(o,r))?o[r]=i:delete o[r]);return s.call(e,n,o)}({\"\":a},\"\"):a}}),ace.define(\"ace\/mode\/json_worker\",[\"require\",\"exports\",\"module\",\"ace\/lib\/oop\",\"ace\/worker\/mirror\",\"ace\/mode\/json\/json_parse\"],function(t,e){\"use strict\";var n=t(\"..\/lib\/oop\"),r=t(\"..\/worker\/mirror\").Mirror,i=t(\".\/json\/json_parse\"),o=e.JsonWorker=function(t){r.call(this,t),this.setTimeout(200)};n.inherits(o,r),function(){this.onUpdate=function(){var t=this.doc.getValue(),e=[];try{t&&i(t)}catch(t){var n=this.doc.indexToPosition(t.at-1);e.push({row:n.row,column:n.column,text:t.message,type:\"error\"})}this.sender.emit(\"annotate\",e)}}.call(o.prototype)}),ace.define(\"ace\/lib\/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function t(){}function e(t){try{return Object.defineProperty(t,\"sentinel\",{}),\"sentinel\"in t}catch(t){}}function n(t){return(t=+t)!=t?t=0:0!==t&&t!==1\/0&&t!==-1\/0&&(t=(t>0||-1)*Math.floor(Math.abs(t))),t}Function.prototype.bind||(Function.prototype.bind=function(e){var n=this;if(\"function\"!=typeof n)throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var r=h.call(arguments,1),i=function(){if(this instanceof i){var t=n.apply(this,r.concat(h.call(arguments)));return Object(t)===t?t:this}return n.apply(e,r.concat(h.call(arguments)))};return n.prototype&&(t.prototype=n.prototype,i.prototype=new t,t.prototype=null),i});var r,i,o,s,a,c=Function.prototype.call,u=Array.prototype,l=Object.prototype,h=u.slice,f=c.bind(l.toString),p=c.bind(l.hasOwnProperty);if((a=p(l,\"__defineGetter__\"))&&(r=c.bind(l.__defineGetter__),i=c.bind(l.__defineSetter__),o=c.bind(l.__lookupGetter__),s=c.bind(l.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function t(t){var e=Array(t+2);return e[0]=e[1]=0,e}var e,n=[];return n.splice.apply(n,t(20)),n.splice.apply(n,t(26)),e=n.length,n.splice(5,0,\"XXX\"),n.length,e+1==n.length||void 0}()){var d=Array.prototype.splice;Array.prototype.splice=function(t,e){return arguments.length?d.apply(this,[void 0===t?0:t,void 0===e?this.length-t:e].concat(h.call(arguments,2))):[]}}else Array.prototype.splice=function(t,e){var n=this.length;t>0?t>n&&(t=n):null==t?t=0:0>t&&(t=Math.max(n+t,0)),n>t+e||(e=n-t);var r=this.slice(t,t+e),i=h.call(arguments,2),o=i.length;if(t===n)o&&this.push.apply(this,i);else{var s=Math.min(e,n-t),a=t+s,c=a+o-s,u=n-a,l=n-s;if(a>c)for(var f=0;u>f;++f)this[c+f]=this[a+f];else if(c>a)for(f=u;f--;)this[c+f]=this[a+f];if(o&&t===l)this.length=l,this.push.apply(this,i);else for(this.length=l+o,f=0;o>f;++f)this[t+f]=i[f]}return r};Array.isArray||(Array.isArray=function(t){return\"[object Array]\"==f(t)});var m,g,v=Object(\"a\"),w=\"a\"!=v[0]||!(0 in v);if(Array.prototype.forEach||(Array.prototype.forEach=function(t){var e=A(this),n=w&&\"[object String]\"==f(this)?this.split(\"\"):e,r=arguments[1],i=-1,o=n.length>>>0;if(\"[object Function]\"!=f(t))throw new TypeError;for(;o>++i;)i in n&&t.call(r,n[i],i,e)}),Array.prototype.map||(Array.prototype.map=function(t){var e=A(this),n=w&&\"[object String]\"==f(this)?this.split(\"\"):e,r=n.length>>>0,i=Array(r),o=arguments[1];if(\"[object Function]\"!=f(t))throw new TypeError(t+\" is not a function\");for(var s=0;r>s;s++)s in n&&(i[s]=t.call(o,n[s],s,e));return i}),Array.prototype.filter||(Array.prototype.filter=function(t){var e,n=A(this),r=w&&\"[object String]\"==f(this)?this.split(\"\"):n,i=r.length>>>0,o=[],s=arguments[1];if(\"[object Function]\"!=f(t))throw new TypeError(t+\" is not a function\");for(var a=0;i>a;a++)a in r&&(e=r[a],t.call(s,e,a,n)&&o.push(e));return o}),Array.prototype.every||(Array.prototype.every=function(t){var e=A(this),n=w&&\"[object String]\"==f(this)?this.split(\"\"):e,r=n.length>>>0,i=arguments[1];if(\"[object Function]\"!=f(t))throw new TypeError(t+\" is not a function\");for(var o=0;r>o;o++)if(o in n&&!t.call(i,n[o],o,e))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var e=A(this),n=w&&\"[object String]\"==f(this)?this.split(\"\"):e,r=n.length>>>0,i=arguments[1];if(\"[object Function]\"!=f(t))throw new TypeError(t+\" is not a function\");for(var o=0;r>o;o++)if(o in n&&t.call(i,n[o],o,e))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var e=A(this),n=w&&\"[object String]\"==f(this)?this.split(\"\"):e,r=n.length>>>0;if(\"[object Function]\"!=f(t))throw new TypeError(t+\" is not a function\");if(!r&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var i,o=0;if(arguments.length>=2)i=arguments[1];else for(;;){if(o in n){i=n[o++];break}if(++o>=r)throw new TypeError(\"reduce of empty array with no initial value\")}for(;r>o;o++)o in n&&(i=t.call(void 0,i,n[o],o,e));return i}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var e=A(this),n=w&&\"[object String]\"==f(this)?this.split(\"\"):e,r=n.length>>>0;if(\"[object Function]\"!=f(t))throw new TypeError(t+\" is not a function\");if(!r&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var i,o=r-1;if(arguments.length>=2)i=arguments[1];else for(;;){if(o in n){i=n[o--];break}if(0>--o)throw new TypeError(\"reduceRight of empty array with no initial value\")}do{o in this&&(i=t.call(void 0,i,n[o],o,e))}while(o--);return i}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(t){var e=w&&\"[object String]\"==f(this)?this.split(\"\"):A(this),r=e.length>>>0;if(!r)return-1;var i=0;for(arguments.length>1&&(i=n(arguments[1])),i=i>=0?i:Math.max(0,r+i);r>i;i++)if(i in e&&e[i]===t)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(t){var e=w&&\"[object String]\"==f(this)?this.split(\"\"):A(this),r=e.length>>>0;if(!r)return-1;var i=r-1;for(arguments.length>1&&(i=Math.min(i,n(arguments[1]))),i=i>=0?i:r-Math.abs(i);i>=0;i--)if(i in e&&t===e[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:l)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(t,e){if(\"object\"!=typeof t&&\"function\"!=typeof t||null===t)throw new TypeError(\"Object.getOwnPropertyDescriptor called on a non-object: \"+t);if(p(t,e)){var n;if(n={enumerable:!0,configurable:!0},a){var r=t.__proto__;t.__proto__=l;var i=o(t,e),c=s(t,e);if(t.__proto__=r,i||c)return i&&(n.get=i),c&&(n.set=c),n}return n.value=t[e],n}}}(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)}),Object.create)||(m=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var t={};for(var e in t)t[e]=null;return t.constructor=t.hasOwnProperty=t.propertyIsEnumerable=t.isPrototypeOf=t.toLocaleString=t.toString=t.valueOf=t.__proto__=null,t},Object.create=function(t,e){var n;if(null===t)n=m();else{if(\"object\"!=typeof t)throw new TypeError(\"typeof prototype[\"+typeof t+\"] != \'object\'\");var r=function(){};r.prototype=t,(n=new r).__proto__=t}return void 0!==e&&Object.defineProperties(n,e),n});if(Object.defineProperty){var y=e({}),b=\"undefined\"==typeof document||e(document.createElement(\"div\"));if(!y||!b)var _=Object.defineProperty}if(!Object.defineProperty||_){Object.defineProperty=function(t,e,n){if(\"object\"!=typeof t&&\"function\"!=typeof t||null===t)throw new TypeError(\"Object.defineProperty called on non-object: \"+t);if(\"object\"!=typeof n&&\"function\"!=typeof n||null===n)throw new TypeError(\"Property description must be an object: \"+n);if(_)try{return _.call(Object,t,e,n)}catch(t){}if(p(n,\"value\"))if(a&&(o(t,e)||s(t,e))){var c=t.__proto__;t.__proto__=l,delete t[e],t[e]=n.value,t.__proto__=c}else t[e]=n.value;else{if(!a)throw new TypeError(\"getters & setters can not be defined on this javascript engine\");p(n,\"get\")&&r(t,e,n.get),p(n,\"set\")&&i(t,e,n.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,e){for(var n in e)p(e,n)&&Object.defineProperty(t,n,e[n]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(t){Object.freeze=(g=Object.freeze,function(t){return\"function\"==typeof t?t:g(t)})}if(Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;for(var e=\"\";p(t,e);)e+=\"?\";t[e]=!0;var n=p(t,e);return delete t[e],n}),!Object.keys){var j=!0,L=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=L.length;for(var P in{toString:null})j=!1;Object.keys=function(t){if(\"object\"!=typeof t&&\"function\"!=typeof t||null===t)throw new TypeError(\"Object.keys called on a non-object\");var e=[];for(var n in t)p(t,n)&&e.push(n);if(j)for(var r=0,i=O;i>r;r++){var o=L[r];p(t,o)&&e.push(o)}return e}}Date.now||(Date.now=function(){return(new Date).getTime()});var x=\"\\t\\n\\v\\f\\r \u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||x.trim()){x=\"[\"+x+\"]\";var E=RegExp(\"^\"+x+x+\"*\"),M=RegExp(x+x+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(E,\"\").replace(M,\"\")}}var A=function(t){if(null==t)throw new TypeError(\"can\'t convert \"+t+\" to object\");return Object(t)}});" \ No newline at end of file