| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740 | ace.define("ace/mode/csound_preprocessor_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;var CsoundPreprocessorHighlightRules = function() {    this.semicolonComments = {        token : "comment.line.semicolon.csound",        regex : ";.*$"    };    this.comments = [        {            token : "punctuation.definition.comment.begin.csound",            regex : "/\\*",            push  : [                {                    token : "punctuation.definition.comment.end.csound",                    regex : "\\*/",                    next  : "pop"                }, {                    defaultToken: "comment.block.csound"                }            ]        }, {            token : "comment.line.double-slash.csound",            regex : "//.*$"        },        this.semicolonComments    ];    this.macroUses = [        {            token : ["entity.name.function.preprocessor.csound", "punctuation.definition.macro-parameter-value-list.begin.csound"],            regex : /(\$[A-Z_a-z]\w*\.?)(\()/,            next  : "macro parameter value list"        }, {            token : "entity.name.function.preprocessor.csound",            regex : /\$[A-Z_a-z]\w*(?:\.|\b)/        }    ];    this.numbers = [        {            token : "constant.numeric.float.csound",            regex : /(?:\d+[Ee][+-]?\d+)|(?:\d+\.\d*|\d*\.\d+)(?:[Ee][+-]?\d+)?/        }, {            token : ["storage.type.number.csound", "constant.numeric.integer.hexadecimal.csound"],            regex : /(0[Xx])([0-9A-Fa-f]+)/        }, {            token : "constant.numeric.integer.decimal.csound",            regex : /\d+/        }    ];    this.bracedStringContents = [        {            token : "constant.character.escape.csound",            regex : /\\(?:[\\abnrt"]|[0-7]{1,3})/        },        {            token : "constant.character.placeholder.csound",            regex : /%[#0\- +]*\d*(?:\.\d+)?[diuoxXfFeEgGaAcs]/        }, {            token : "constant.character.escape.csound",            regex : /%%/        }    ];    this.quotedStringContents = [        this.macroUses,        this.bracedStringContents    ];    var start = [        this.comments,        {            token : "keyword.preprocessor.csound",            regex : /#(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+/        }, {            token : "keyword.preprocessor.csound",            regex : /#include/,            push  : [                this.comments,                {                    token : "string.csound",                    regex : /([^ \t])(?:.*?\1)/,                    next  : "pop"                }            ]        }, {            token : "keyword.preprocessor.csound",            regex : /#[ \t]*define/,            next  : "define directive"        }, {            token : "keyword.preprocessor.csound",            regex : /#(?:ifn?def|undef)\b/,            next  : "macro directive"        },        this.macroUses    ];    this.$rules = {        "start": start,        "define directive": [            this.comments,            {                token : "entity.name.function.preprocessor.csound",                regex : /[A-Z_a-z]\w*/            }, {                token : "punctuation.definition.macro-parameter-name-list.begin.csound",                regex : /\(/,                next  : "macro parameter name list"            }, {                token : "punctuation.definition.macro.begin.csound",                regex : /#/,                next  : "macro body"            }        ],        "macro parameter name list": [            {                token : "variable.parameter.preprocessor.csound",                regex : /[A-Z_a-z]\w*/            }, {                token : "punctuation.definition.macro-parameter-name-list.end.csound",                regex : /\)/,                next  : "define directive"            }        ],        "macro body": [            {                token : "constant.character.escape.csound",                regex : /\\#/            }, {                token : "punctuation.definition.macro.end.csound",                regex : /#/,                next  : "start"            },            start        ],        "macro directive": [            this.comments,            {                token : "entity.name.function.preprocessor.csound",                regex : /[A-Z_a-z]\w*/,                next  : "start"            }        ],        "macro parameter value list": [            {                token : "punctuation.definition.macro-parameter-value-list.end.csound",                regex : /\)/,                next  : "start"            }, {                token : "punctuation.definition.string.begin.csound",                regex : /"/,                next  : "macro parameter value quoted string"            }, this.pushRule({                token : "punctuation.macro-parameter-value-parenthetical.begin.csound",                regex : /\(/,                next  : "macro parameter value parenthetical"            }), {                token : "punctuation.macro-parameter-value-separator.csound",                regex : "[#']"            }        ],        "macro parameter value quoted string": [            {                token : "constant.character.escape.csound",                regex : /\\[#'()]/            }, {                token : "invalid.illegal.csound",                regex : /[#'()]/            }, {                token : "punctuation.definition.string.end.csound",                regex : /"/,                next  : "macro parameter value list"            },            this.quotedStringContents,            {                defaultToken: "string.quoted.csound"            }        ],        "macro parameter value parenthetical": [            {                token : "constant.character.escape.csound",                regex : /\\\)/            }, this.popRule({                token : "punctuation.macro-parameter-value-parenthetical.end.csound",                regex : /\)/            }), this.pushRule({                token : "punctuation.macro-parameter-value-parenthetical.begin.csound",                regex : /\(/,                next  : "macro parameter value parenthetical"            }),            start        ]    };};oop.inherits(CsoundPreprocessorHighlightRules, TextHighlightRules);(function() {    this.pushRule = function(params) {        return {            regex : params.regex, onMatch: function(value, currentState, stack, line) {                if (stack.length === 0)                    stack.push(currentState);                if (Array.isArray(params.next)) {                    for (var i = 0; i < params.next.length; i++) {                        stack.push(params.next[i]);                    }                } else {                    stack.push(params.next);                }                this.next = stack[stack.length - 1];                return params.token;            },            get next() { return Array.isArray(params.next) ? params.next[params.next.length - 1] : params.next; },            set next(next) {                if (Array.isArray(params.next)) {                    var oldNext = params.next[params.next.length - 1];                    var oldNextIndex = oldNext.length - 1;                    var newNextIndex = next.length - 1;                    if (newNextIndex > oldNextIndex) {                        while (oldNextIndex >= 0 && newNextIndex >= 0) {                            if (oldNext.charAt(oldNextIndex) !== next.charAt(newNextIndex)) {                                var prefix = next.substr(0, newNextIndex);                                for (var i = 0; i < params.next.length; i++) {                                    params.next[i] = prefix + params.next[i];                                }                                break;                            }                            oldNextIndex--;                            newNextIndex--;                        }                    }                } else {                    params.next = next;                }            },            get token() { return params.token; }        };    };    this.popRule = function(params) {        return {            regex : params.regex, onMatch: function(value, currentState, stack, line) {                stack.pop();                if (params.next) {                    stack.push(params.next);                    this.next = stack[stack.length - 1];                } else {                    this.next = stack.length > 1 ? stack[stack.length - 1] : stack.pop();                }                return params.token;            }        };    };}).call(CsoundPreprocessorHighlightRules.prototype);exports.CsoundPreprocessorHighlightRules = CsoundPreprocessorHighlightRules;});ace.define("ace/mode/csound_score_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var CsoundPreprocessorHighlightRules = require("./csound_preprocessor_highlight_rules").CsoundPreprocessorHighlightRules;var CsoundScoreHighlightRules = function() {    CsoundPreprocessorHighlightRules.call(this);    this.quotedStringContents.push({        token : "invalid.illegal.csound-score",        regex : /[^"]*$/    });    var start = this.$rules.start;    start.push(        {            token : "keyword.control.csound-score",            regex : /[abCdefiqstvxy]/        }, {            token : "invalid.illegal.csound-score",            regex : /w/        }, {            token : "constant.numeric.language.csound-score",            regex : /z/        }, {            token : ["keyword.control.csound-score", "constant.numeric.integer.decimal.csound-score"],            regex : /([nNpP][pP])(\d+)/        }, {            token : "keyword.other.csound-score",            regex : /[mn]/,            push  : [                {                    token : "empty",                    regex : /$/,                    next  : "pop"                },                this.comments,                {                    token : "entity.name.label.csound-score",                    regex : /[A-Z_a-z]\w*/                }            ]        }, {            token : "keyword.preprocessor.csound-score",            regex : /r\b/,            next  : "repeat section"        },        this.numbers,        {            token : "keyword.operator.csound-score",            regex : "[!+\\-*/^%&|<>#~.]"        },        this.pushRule({            token : "punctuation.definition.string.begin.csound-score",            regex : /"/,            next  : "quoted string"        }),        this.pushRule({            token : "punctuation.braced-loop.begin.csound-score",            regex : /{/,            next  : "loop after left brace"        })    );    this.addRules({        "repeat section": [            {                token : "empty",                regex : /$/,                next  : "start"            },            this.comments,            {                token : "constant.numeric.integer.decimal.csound-score",                regex : /\d+/,                next  : "repeat section before label"            }        ],        "repeat section before label": [            {                token : "empty",                regex : /$/,                next  : "start"            },            this.comments,            {                token : "entity.name.label.csound-score",                regex : /[A-Z_a-z]\w*/,                next  : "start"            }        ],        "quoted string": [            this.popRule({                token : "punctuation.definition.string.end.csound-score",                regex : /"/            }),            this.quotedStringContents,            {                defaultToken: "string.quoted.csound-score"            }        ],        "loop after left brace": [            this.popRule({                token : "constant.numeric.integer.decimal.csound-score",                regex : /\d+/,                next  : "loop after repeat count"            }),            this.comments,            {                token : "invalid.illegal.csound",                regex : /\S.*/            }        ],        "loop after repeat count": [            this.popRule({                token : "entity.name.function.preprocessor.csound-score",                regex : /[A-Z_a-z]\w*\b/,                next  : "loop after macro name"            }),            this.comments,            {                token : "invalid.illegal.csound",                regex : /\S.*/            }        ],        "loop after macro name": [            start,            this.popRule({                token : "punctuation.braced-loop.end.csound-score",                regex : /}/            })        ]    });    this.normalizeRules();};oop.inherits(CsoundScoreHighlightRules, CsoundPreprocessorHighlightRules);exports.CsoundScoreHighlightRules = CsoundScoreHighlightRules;});ace.define("ace/mode/lua_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;var LuaHighlightRules = function() {    var keywords = (        "break|do|else|elseif|end|for|function|if|in|local|repeat|"+         "return|then|until|while|or|and|not"    );    var builtinConstants = ("true|false|nil|_G|_VERSION");    var functions = (        "string|xpcall|package|tostring|print|os|unpack|require|"+        "getfenv|setmetatable|next|assert|tonumber|io|rawequal|"+        "collectgarbage|getmetatable|module|rawset|math|debug|"+        "pcall|table|newproxy|type|coroutine|_G|select|gcinfo|"+        "pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|"+        "load|error|loadfile|"+        "sub|upper|len|gfind|rep|find|match|char|dump|gmatch|"+        "reverse|byte|format|gsub|lower|preload|loadlib|loaded|"+        "loaders|cpath|config|path|seeall|exit|setlocale|date|"+        "getenv|difftime|remove|time|clock|tmpname|rename|execute|"+        "lines|write|close|flush|open|output|type|read|stderr|"+        "stdin|input|stdout|popen|tmpfile|log|max|acos|huge|"+        "ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|"+        "frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|"+        "atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|"+        "gethook|setmetatable|setlocal|traceback|setfenv|getinfo|"+        "setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|"+        "foreachi|maxn|foreach|concat|sort|remove|resume|yield|"+        "status|wrap|create|running|"+        "__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|"+         "__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber"    );    var stdLibaries = ("string|package|os|io|math|debug|table|coroutine");    var deprecatedIn5152 = ("setn|foreach|foreachi|gcinfo|log10|maxn");    var keywordMapper = this.createKeywordMapper({        "keyword": keywords,        "support.function": functions,        "keyword.deprecated": deprecatedIn5152,        "constant.library": stdLibaries,        "constant.language": builtinConstants,        "variable.language": "self"    }, "identifier");    var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";    var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";    var integer = "(?:" + decimalInteger + "|" + hexInteger + ")";    var fraction = "(?:\\.\\d+)";    var intPart = "(?:\\d+)";    var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";    var floatNumber = "(?:" + pointFloat + ")";    this.$rules = {        "start" : [{            stateName: "bracketedComment",            onMatch : function(value, currentState, stack){                stack.unshift(this.next, value.length - 2, currentState);                return "comment";            },            regex : /\-\-\[=*\[/,            next  : [                {                    onMatch : function(value, currentState, stack) {                        if (value.length == stack[1]) {                            stack.shift();                            stack.shift();                            this.next = stack.shift();                        } else {                            this.next = "";                        }                        return "comment";                    },                    regex : /\]=*\]/,                    next  : "start"                }, {                    defaultToken : "comment"                }            ]        },        {            token : "comment",            regex : "\\-\\-.*$"        },        {            stateName: "bracketedString",            onMatch : function(value, currentState, stack){                stack.unshift(this.next, value.length, currentState);                return "string.start";            },            regex : /\[=*\[/,            next  : [                {                    onMatch : function(value, currentState, stack) {                        if (value.length == stack[1]) {                            stack.shift();                            stack.shift();                            this.next = stack.shift();                        } else {                            this.next = "";                        }                        return "string.end";                    },                                        regex : /\]=*\]/,                    next  : "start"                }, {                    defaultToken : "string"                }            ]        },        {            token : "string",           // " string            regex : '"(?:[^\\\\]|\\\\.)*?"'        }, {            token : "string",           // ' string            regex : "'(?:[^\\\\]|\\\\.)*?'"        }, {            token : "constant.numeric", // float            regex : floatNumber        }, {            token : "constant.numeric", // integer            regex : integer + "\\b"        }, {            token : keywordMapper,            regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"        }, {            token : "keyword.operator",            regex : "\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."        }, {            token : "paren.lparen",            regex : "[\\[\\(\\{]"        }, {            token : "paren.rparen",            regex : "[\\]\\)\\}]"        }, {            token : "text",            regex : "\\s+|\\w+"        } ]    };        this.normalizeRules();};oop.inherits(LuaHighlightRules, TextHighlightRules);exports.LuaHighlightRules = LuaHighlightRules;});ace.define("ace/mode/python_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;var PythonHighlightRules = function() {    var keywords = (        "and|as|assert|break|class|continue|def|del|elif|else|except|exec|" +        "finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|" +        "raise|return|try|while|with|yield|async|await"    );    var builtinConstants = (        "True|False|None|NotImplemented|Ellipsis|__debug__"    );    var builtinFunctions = (        "abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|" +        "eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|" +        "binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|" +        "float|list|raw_input|unichr|callable|format|locals|reduce|unicode|" +        "chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|" +        "cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|" +        "__import__|complex|hash|min|set|apply|delattr|help|next|setattr|" +        "buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern"    );    var keywordMapper = this.createKeywordMapper({        "invalid.deprecated": "debugger",        "support.function": builtinFunctions,        "variable.language": "self|cls",        "constant.language": builtinConstants,        "keyword": keywords    }, "identifier");    var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?";    var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";    var octInteger = "(?:0[oO]?[0-7]+)";    var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";    var binInteger = "(?:0[bB][01]+)";    var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")";    var exponent = "(?:[eE][+-]?\\d+)";    var fraction = "(?:\\.\\d+)";    var intPart = "(?:\\d+)";    var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";    var exponentFloat = "(?:(?:" + pointFloat + "|" +  intPart + ")" + exponent + ")";    var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")";    var stringEscape =  "\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";    this.$rules = {        "start" : [ {            token : "comment",            regex : "#.*$"        }, {            token : "string",           // multi line """ string start            regex : strPre + '"{3}',            next : "qqstring3"        }, {            token : "string",           // " string            regex : strPre + '"(?=.)',            next : "qqstring"        }, {            token : "string",           // multi line ''' string start            regex : strPre + "'{3}",            next : "qstring3"        }, {            token : "string",           // ' string            regex : strPre + "'(?=.)",            next : "qstring"        }, {            token : "constant.numeric", // imaginary            regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b"        }, {            token : "constant.numeric", // float            regex : floatNumber        }, {            token : "constant.numeric", // long integer            regex : integer + "[lL]\\b"        }, {            token : "constant.numeric", // integer            regex : integer + "\\b"        }, {            token : keywordMapper,            regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"        }, {            token : "keyword.operator",            regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="        }, {            token : "paren.lparen",            regex : "[\\[\\(\\{]"        }, {            token : "paren.rparen",            regex : "[\\]\\)\\}]"        }, {            token : "text",            regex : "\\s+"        } ],        "qqstring3" : [ {            token : "constant.language.escape",            regex : stringEscape        }, {            token : "string", // multi line """ string end            regex : '"{3}',            next : "start"        }, {            defaultToken : "string"        } ],        "qstring3" : [ {            token : "constant.language.escape",            regex : stringEscape        }, {            token : "string",  // multi line ''' string end            regex : "'{3}",            next : "start"        }, {            defaultToken : "string"        } ],        "qqstring" : [{            token : "constant.language.escape",            regex : stringEscape        }, {            token : "string",            regex : "\\\\$",            next  : "qqstring"        }, {            token : "string",            regex : '"|$',            next  : "start"        }, {            defaultToken: "string"        }],        "qstring" : [{            token : "constant.language.escape",            regex : stringEscape        }, {            token : "string",            regex : "\\\\$",            next  : "qstring"        }, {            token : "string",            regex : "'|$",            next  : "start"        }, {            defaultToken: "string"        }]    };};oop.inherits(PythonHighlightRules, TextHighlightRules);exports.PythonHighlightRules = PythonHighlightRules;});ace.define("ace/mode/csound_orchestra_highlight_rules",[], function(require, exports, module) {"use strict";var lang = require("../lib/lang");var oop = require("../lib/oop");var CsoundPreprocessorHighlightRules = require("./csound_preprocessor_highlight_rules").CsoundPreprocessorHighlightRules;var CsoundScoreHighlightRules = require("./csound_score_highlight_rules").CsoundScoreHighlightRules;var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules;var CsoundOrchestraHighlightRules = function() {    CsoundPreprocessorHighlightRules.call(this);    var opcodes = [        "ATSadd",        "ATSaddnz",        "ATSbufread",        "ATScross",        "ATSinfo",        "ATSinterpread",        "ATSpartialtap",        "ATSread",        "ATSreadnz",        "ATSsinnoi",        "FLbox",        "FLbutBank",        "FLbutton",        "FLcloseButton",        "FLcolor",        "FLcolor2",        "FLcount",        "FLexecButton",        "FLgetsnap",        "FLgroup",        "FLgroupEnd",        "FLgroup_end",        "FLhide",        "FLhvsBox",        "FLhvsBoxSetValue",        "FLjoy",        "FLkeyIn",        "FLknob",        "FLlabel",        "FLloadsnap",        "FLmouse",        "FLpack",        "FLpackEnd",        "FLpack_end",        "FLpanel",        "FLpanelEnd",        "FLpanel_end",        "FLprintk",        "FLprintk2",        "FLroller",        "FLrun",        "FLsavesnap",        "FLscroll",        "FLscrollEnd",        "FLscroll_end",        "FLsetAlign",        "FLsetBox",        "FLsetColor",        "FLsetColor2",        "FLsetFont",        "FLsetPosition",        "FLsetSize",        "FLsetSnapGroup",        "FLsetText",        "FLsetTextColor",        "FLsetTextSize",        "FLsetTextType",        "FLsetVal",        "FLsetVal_i",        "FLsetVali",        "FLsetsnap",        "FLshow",        "FLslidBnk",        "FLslidBnk2",        "FLslidBnk2Set",        "FLslidBnk2Setk",        "FLslidBnkGetHandle",        "FLslidBnkSet",        "FLslidBnkSetk",        "FLslider",        "FLtabs",        "FLtabsEnd",        "FLtabs_end",        "FLtext",        "FLupdate",        "FLvalue",        "FLvkeybd",        "FLvslidBnk",        "FLvslidBnk2",        "FLxyin",        "JackoAudioIn",        "JackoAudioInConnect",        "JackoAudioOut",        "JackoAudioOutConnect",        "JackoFreewheel",        "JackoInfo",        "JackoInit",        "JackoMidiInConnect",        "JackoMidiOut",        "JackoMidiOutConnect",        "JackoNoteOut",        "JackoOn",        "JackoTransport",        "K35_hpf",        "K35_lpf",        "MixerClear",        "MixerGetLevel",        "MixerReceive",        "MixerSend",        "MixerSetLevel",        "MixerSetLevel_i",        "OSCinit",        "OSClisten",        "OSCraw",        "OSCsend",        "S",        "STKBandedWG",        "STKBeeThree",        "STKBlowBotl",        "STKBlowHole",        "STKBowed",        "STKBrass",        "STKClarinet",        "STKDrummer",        "STKFMVoices",        "STKFlute",        "STKHevyMetl",        "STKMandolin",        "STKModalBar",        "STKMoog",        "STKPercFlut",        "STKPlucked",        "STKResonate",        "STKRhodey",        "STKSaxofony",        "STKShakers",        "STKSimple",        "STKSitar",        "STKStifKarp",        "STKTubeBell",        "STKVoicForm",        "STKWhistle",        "STKWurley",        "a",        "abs",        "active",        "adsr",        "adsyn",        "adsynt",        "adsynt2",        "aftouch",        "alpass",        "alwayson",        "ampdb",        "ampdbfs",        "ampmidi",        "ampmidid",        "areson",        "aresonk",        "atone",        "atonek",        "atonex",        "babo",        "balance",        "bamboo",        "barmodel",        "bbcutm",        "bbcuts",        "betarand",        "bexprnd",        "bformdec1",        "bformenc1",        "binit",        "biquad",        "biquada",        "birnd",        "bpf",        "bqrez",        "buchla",        "butbp",        "butbr",        "buthp",        "butlp",        "butterbp",        "butterbr",        "butterhp",        "butterlp",        "button",        "buzz",        "c2r",        "cabasa",        "cauchy",        "cauchyi",        "cbrt",        "ceil",        "cell",        "cent",        "centroid",        "ceps",        "cepsinv",        "chanctrl",        "changed",        "changed2",        "chani",        "chano",        "chebyshevpoly",        "checkbox",        "chn_S",        "chn_a",        "chn_k",        "chnclear",        "chnexport",        "chnget",        "chngetks",        "chnmix",        "chnparams",        "chnset",        "chnsetks",        "chuap",        "clear",        "clfilt",        "clip",        "clockoff",        "clockon",        "cmp",        "cmplxprod",        "comb",        "combinv",        "compilecsd",        "compileorc",        "compilestr",        "compress",        "compress2",        "connect",        "control",        "convle",        "convolve",        "copya2ftab",        "copyf2array",        "cos",        "cosh",        "cosinv",        "cosseg",        "cossegb",        "cossegr",        "cps2pch",        "cpsmidi",        "cpsmidib",        "cpsmidinn",        "cpsoct",        "cpspch",        "cpstmid",        "cpstun",        "cpstuni",        "cpsxpch",        "cpumeter",        "cpuprc",        "cross2",        "crossfm",        "crossfmi",        "crossfmpm",        "crossfmpmi",        "crosspm",        "crosspmi",        "crunch",        "ctlchn",        "ctrl14",        "ctrl21",        "ctrl7",        "ctrlinit",        "cuserrnd",        "dam",        "date",        "dates",        "db",        "dbamp",        "dbfsamp",        "dcblock",        "dcblock2",        "dconv",        "dct",        "dctinv",        "delay",        "delay1",        "delayk",        "delayr",        "delayw",        "deltap",        "deltap3",        "deltapi",        "deltapn",        "deltapx",        "deltapxw",        "denorm",        "diff",        "diode_ladder",        "directory",        "diskgrain",        "diskin",        "diskin2",        "dispfft",        "display",        "distort",        "distort1",        "divz",        "doppler",        "dot",        "downsamp",        "dripwater",        "dssiactivate",        "dssiaudio",        "dssictls",        "dssiinit",        "dssilist",        "dumpk",        "dumpk2",        "dumpk3",        "dumpk4",        "duserrnd",        "dust",        "dust2",        "envlpx",        "envlpxr",        "ephasor",        "eqfil",        "evalstr",        "event",        "event_i",        "exciter",        "exitnow",        "exp",        "expcurve",        "expon",        "exprand",        "exprandi",        "expseg",        "expsega",        "expsegb",        "expsegba",        "expsegr",        "fareylen",        "fareyleni",        "faustaudio",        "faustcompile",        "faustctl",        "faustgen",        "fft",        "fftinv",        "ficlose",        "filebit",        "filelen",        "filenchnls",        "filepeak",        "filescal",        "filesr",        "filevalid",        "fillarray",        "filter2",        "fin",        "fini",        "fink",        "fiopen",        "flanger",        "flashtxt",        "flooper",        "flooper2",        "floor",        "fluidAllOut",        "fluidCCi",        "fluidCCk",        "fluidControl",        "fluidEngine",        "fluidLoad",        "fluidNote",        "fluidOut",        "fluidProgramSelect",        "fluidSetInterpMethod",        "fmanal",        "fmax",        "fmb3",        "fmbell",        "fmin",        "fmmetal",        "fmod",        "fmpercfl",        "fmrhode",        "fmvoice",        "fmwurlie",        "fof",        "fof2",        "fofilter",        "fog",        "fold",        "follow",        "follow2",        "foscil",        "foscili",        "fout",        "fouti",        "foutir",        "foutk",        "fprintks",        "fprints",        "frac",        "fractalnoise",        "framebuffer",        "freeverb",        "ftchnls",        "ftconv",        "ftcps",        "ftfree",        "ftgen",        "ftgenonce",        "ftgentmp",        "ftlen",        "ftload",        "ftloadk",        "ftlptim",        "ftmorf",        "ftom",        "ftresize",        "ftresizei",        "ftsamplebank",        "ftsave",        "ftsavek",        "ftsr",        "gain",        "gainslider",        "gauss",        "gaussi",        "gausstrig",        "gbuzz",        "genarray",        "genarray_i",        "gendy",        "gendyc",        "gendyx",        "getcfg",        "getcol",        "getftargs",        "getrow",        "getseed",        "gogobel",        "grain",        "grain2",        "grain3",        "granule",        "guiro",        "harmon",        "harmon2",        "harmon3",        "harmon4",        "hdf5read",        "hdf5write",        "hilbert",        "hilbert2",        "hrtfearly",        "hrtfmove",        "hrtfmove2",        "hrtfreverb",        "hrtfstat",        "hsboscil",        "hvs1",        "hvs2",        "hvs3",        "hypot",        "i",        "ihold",        "imagecreate",        "imagefree",        "imagegetpixel",        "imageload",        "imagesave",        "imagesetpixel",        "imagesize",        "in",        "in32",        "inch",        "inh",        "init",        "initc14",        "initc21",        "initc7",        "inleta",        "inletf",        "inletk",        "inletkid",        "inletv",        "ino",        "inq",        "inrg",        "ins",        "insglobal",        "insremot",        "int",        "integ",        "interp",        "invalue",        "inx",        "inz",        "jacktransport",        "jitter",        "jitter2",        "joystick",        "jspline",        "k",        "la_i_add_mc",        "la_i_add_mr",        "la_i_add_vc",        "la_i_add_vr",        "la_i_assign_mc",        "la_i_assign_mr",        "la_i_assign_t",        "la_i_assign_vc",        "la_i_assign_vr",        "la_i_conjugate_mc",        "la_i_conjugate_mr",        "la_i_conjugate_vc",        "la_i_conjugate_vr",        "la_i_distance_vc",        "la_i_distance_vr",        "la_i_divide_mc",        "la_i_divide_mr",        "la_i_divide_vc",        "la_i_divide_vr",        "la_i_dot_mc",        "la_i_dot_mc_vc",        "la_i_dot_mr",        "la_i_dot_mr_vr",        "la_i_dot_vc",        "la_i_dot_vr",        "la_i_get_mc",        "la_i_get_mr",        "la_i_get_vc",        "la_i_get_vr",        "la_i_invert_mc",        "la_i_invert_mr",        "la_i_lower_solve_mc",        "la_i_lower_solve_mr",        "la_i_lu_det_mc",        "la_i_lu_det_mr",        "la_i_lu_factor_mc",        "la_i_lu_factor_mr",        "la_i_lu_solve_mc",        "la_i_lu_solve_mr",        "la_i_mc_create",        "la_i_mc_set",        "la_i_mr_create",        "la_i_mr_set",        "la_i_multiply_mc",        "la_i_multiply_mr",        "la_i_multiply_vc",        "la_i_multiply_vr",        "la_i_norm1_mc",        "la_i_norm1_mr",        "la_i_norm1_vc",        "la_i_norm1_vr",        "la_i_norm_euclid_mc",        "la_i_norm_euclid_mr",        "la_i_norm_euclid_vc",        "la_i_norm_euclid_vr",        "la_i_norm_inf_mc",        "la_i_norm_inf_mr",        "la_i_norm_inf_vc",        "la_i_norm_inf_vr",        "la_i_norm_max_mc",        "la_i_norm_max_mr",        "la_i_print_mc",        "la_i_print_mr",        "la_i_print_vc",        "la_i_print_vr",        "la_i_qr_eigen_mc",        "la_i_qr_eigen_mr",        "la_i_qr_factor_mc",        "la_i_qr_factor_mr",        "la_i_qr_sym_eigen_mc",        "la_i_qr_sym_eigen_mr",        "la_i_random_mc",        "la_i_random_mr",        "la_i_random_vc",        "la_i_random_vr",        "la_i_size_mc",        "la_i_size_mr",        "la_i_size_vc",        "la_i_size_vr",        "la_i_subtract_mc",        "la_i_subtract_mr",        "la_i_subtract_vc",        "la_i_subtract_vr",        "la_i_t_assign",        "la_i_trace_mc",        "la_i_trace_mr",        "la_i_transpose_mc",        "la_i_transpose_mr",        "la_i_upper_solve_mc",        "la_i_upper_solve_mr",        "la_i_vc_create",        "la_i_vc_set",        "la_i_vr_create",        "la_i_vr_set",        "la_k_a_assign",        "la_k_add_mc",        "la_k_add_mr",        "la_k_add_vc",        "la_k_add_vr",        "la_k_assign_a",        "la_k_assign_f",        "la_k_assign_mc",        "la_k_assign_mr",        "la_k_assign_t",        "la_k_assign_vc",        "la_k_assign_vr",        "la_k_conjugate_mc",        "la_k_conjugate_mr",        "la_k_conjugate_vc",        "la_k_conjugate_vr",        "la_k_current_f",        "la_k_current_vr",        "la_k_distance_vc",        "la_k_distance_vr",        "la_k_divide_mc",        "la_k_divide_mr",        "la_k_divide_vc",        "la_k_divide_vr",        "la_k_dot_mc",        "la_k_dot_mc_vc",        "la_k_dot_mr",        "la_k_dot_mr_vr",        "la_k_dot_vc",        "la_k_dot_vr",        "la_k_f_assign",        "la_k_get_mc",        "la_k_get_mr",        "la_k_get_vc",        "la_k_get_vr",        "la_k_invert_mc",        "la_k_invert_mr",        "la_k_lower_solve_mc",        "la_k_lower_solve_mr",        "la_k_lu_det_mc",        "la_k_lu_det_mr",        "la_k_lu_factor_mc",        "la_k_lu_factor_mr",        "la_k_lu_solve_mc",        "la_k_lu_solve_mr",        "la_k_mc_set",        "la_k_mr_set",        "la_k_multiply_mc",        "la_k_multiply_mr",        "la_k_multiply_vc",        "la_k_multiply_vr",        "la_k_norm1_mc",        "la_k_norm1_mr",        "la_k_norm1_vc",        "la_k_norm1_vr",        "la_k_norm_euclid_mc",        "la_k_norm_euclid_mr",        "la_k_norm_euclid_vc",        "la_k_norm_euclid_vr",        "la_k_norm_inf_mc",        "la_k_norm_inf_mr",        "la_k_norm_inf_vc",        "la_k_norm_inf_vr",        "la_k_norm_max_mc",        "la_k_norm_max_mr",        "la_k_qr_eigen_mc",        "la_k_qr_eigen_mr",        "la_k_qr_factor_mc",        "la_k_qr_factor_mr",        "la_k_qr_sym_eigen_mc",        "la_k_qr_sym_eigen_mr",        "la_k_random_mc",        "la_k_random_mr",        "la_k_random_vc",        "la_k_random_vr",        "la_k_subtract_mc",        "la_k_subtract_mr",        "la_k_subtract_vc",        "la_k_subtract_vr",        "la_k_t_assign",        "la_k_trace_mc",        "la_k_trace_mr",        "la_k_upper_solve_mc",        "la_k_upper_solve_mr",        "la_k_vc_set",        "la_k_vr_set",        "lenarray",        "lfo",        "limit",        "limit1",        "line",        "linen",        "linenr",        "lineto",        "link_beat_force",        "link_beat_get",        "link_beat_request",        "link_create",        "link_enable",        "link_is_enabled",        "link_metro",        "link_peers",        "link_tempo_get",        "link_tempo_set",        "linlin",        "linrand",        "linseg",        "linsegb",        "linsegr",        "liveconv",        "locsend",        "locsig",        "log",        "log10",        "log2",        "logbtwo",        "logcurve",        "loopseg",        "loopsegp",        "looptseg",        "loopxseg",        "lorenz",        "loscil",        "loscil3",        "loscilx",        "lowpass2",        "lowres",        "lowresx",        "lpf18",        "lpform",        "lpfreson",        "lphasor",        "lpinterp",        "lposcil",        "lposcil3",        "lposcila",        "lposcilsa",        "lposcilsa2",        "lpread",        "lpreson",        "lpshold",        "lpsholdp",        "lpslot",        "lua_exec",        "lua_iaopcall",        "lua_iaopcall_off",        "lua_ikopcall",        "lua_ikopcall_off",        "lua_iopcall",        "lua_iopcall_off",        "lua_opdef",        "mac",        "maca",        "madsr",        "mags",        "mandel",        "mandol",        "maparray",        "maparray_i",        "marimba",        "massign",        "max",        "max_k",        "maxabs",        "maxabsaccum",        "maxaccum",        "maxalloc",        "maxarray",        "mclock",        "mdelay",        "median",        "mediank",        "metro",        "mfb",        "midglobal",        "midiarp",        "midic14",        "midic21",        "midic7",        "midichannelaftertouch",        "midichn",        "midicontrolchange",        "midictrl",        "mididefault",        "midifilestatus",        "midiin",        "midinoteoff",        "midinoteoncps",        "midinoteonkey",        "midinoteonoct",        "midinoteonpch",        "midion",        "midion2",        "midiout",        "midiout_i",        "midipgm",        "midipitchbend",        "midipolyaftertouch",        "midiprogramchange",        "miditempo",        "midremot",        "min",        "minabs",        "minabsaccum",        "minaccum",        "minarray",        "mincer",        "mirror",        "mode",        "modmatrix",        "monitor",        "moog",        "moogladder",        "moogladder2",        "moogvcf",        "moogvcf2",        "moscil",        "mp3bitrate",        "mp3in",        "mp3len",        "mp3nchnls",        "mp3scal",        "mp3scal_check",        "mp3scal_load",        "mp3scal_load2",        "mp3scal_play",        "mp3scal_play2",        "mp3sr",        "mpulse",        "mrtmsg",        "mtof",        "mton",        "multitap",        "mute",        "mvchpf",        "mvclpf1",        "mvclpf2",        "mvclpf3",        "mvclpf4",        "mxadsr",        "nchnls_hw",        "nestedap",        "nlalp",        "nlfilt",        "nlfilt2",        "noise",        "noteoff",        "noteon",        "noteondur",        "noteondur2",        "notnum",        "nreverb",        "nrpn",        "nsamp",        "nstance",        "nstrnum",        "ntom",        "ntrpol",        "nxtpow2",        "octave",        "octcps",        "octmidi",        "octmidib",        "octmidinn",        "octpch",        "olabuffer",        "oscbnk",        "oscil",        "oscil1",        "oscil1i",        "oscil3",        "oscili",        "oscilikt",        "osciliktp",        "oscilikts",        "osciln",        "oscils",        "oscilx",        "out",        "out32",        "outc",        "outch",        "outh",        "outiat",        "outic",        "outic14",        "outipat",        "outipb",        "outipc",        "outkat",        "outkc",        "outkc14",        "outkpat",        "outkpb",        "outkpc",        "outleta",        "outletf",        "outletk",        "outletkid",        "outletv",        "outo",        "outq",        "outq1",        "outq2",        "outq3",        "outq4",        "outrg",        "outs",        "outs1",        "outs2",        "outvalue",        "outx",        "outz",        "p",        "p5gconnect",        "p5gdata",        "pan",        "pan2",        "pareq",        "part2txt",        "partials",        "partikkel",        "partikkelget",        "partikkelset",        "partikkelsync",        "passign",        "paulstretch",        "pcauchy",        "pchbend",        "pchmidi",        "pchmidib",        "pchmidinn",        "pchoct",        "pchtom",        "pconvolve",        "pcount",        "pdclip",        "pdhalf",        "pdhalfy",        "peak",        "pgmassign",        "pgmchn",        "phaser1",        "phaser2",        "phasor",        "phasorbnk",        "phs",        "pindex",        "pinker",        "pinkish",        "pitch",        "pitchac",        "pitchamdf",        "planet",        "platerev",        "plltrack",        "pluck",        "poisson",        "pol2rect",        "polyaft",        "polynomial",        "port",        "portk",        "poscil",        "poscil3",        "pow",        "powershape",        "powoftwo",        "pows",        "prealloc",        "prepiano",        "print",        "print_type",        "printf",        "printf_i",        "printk",        "printk2",        "printks",        "printks2",        "prints",        "product",        "pset",        "ptable",        "ptable3",        "ptablei",        "ptableiw",        "ptablew",        "ptrack",        "puts",        "pvadd",        "pvbufread",        "pvcross",        "pvinterp",        "pvoc",        "pvread",        "pvs2array",        "pvs2tab",        "pvsadsyn",        "pvsanal",        "pvsarp",        "pvsbandp",        "pvsbandr",        "pvsbin",        "pvsblur",        "pvsbuffer",        "pvsbufread",        "pvsbufread2",        "pvscale",        "pvscent",        "pvsceps",        "pvscross",        "pvsdemix",        "pvsdiskin",        "pvsdisp",        "pvsenvftw",        "pvsfilter",        "pvsfread",        "pvsfreeze",        "pvsfromarray",        "pvsftr",        "pvsftw",        "pvsfwrite",        "pvsgain",        "pvsgendy",        "pvshift",        "pvsifd",        "pvsin",        "pvsinfo",        "pvsinit",        "pvslock",        "pvsmaska",        "pvsmix",        "pvsmooth",        "pvsmorph",        "pvsosc",        "pvsout",        "pvspitch",        "pvstanal",        "pvstencil",        "pvstrace",        "pvsvoc",        "pvswarp",        "pvsynth",        "pwd",        "pyassign",        "pyassigni",        "pyassignt",        "pycall",        "pycall1",        "pycall1i",        "pycall1t",        "pycall2",        "pycall2i",        "pycall2t",        "pycall3",        "pycall3i",        "pycall3t",        "pycall4",        "pycall4i",        "pycall4t",        "pycall5",        "pycall5i",        "pycall5t",        "pycall6",        "pycall6i",        "pycall6t",        "pycall7",        "pycall7i",        "pycall7t",        "pycall8",        "pycall8i",        "pycall8t",        "pycalli",        "pycalln",        "pycallni",        "pycallt",        "pyeval",        "pyevali",        "pyevalt",        "pyexec",        "pyexeci",        "pyexect",        "pyinit",        "pylassign",        "pylassigni",        "pylassignt",        "pylcall",        "pylcall1",        "pylcall1i",        "pylcall1t",        "pylcall2",        "pylcall2i",        "pylcall2t",        "pylcall3",        "pylcall3i",        "pylcall3t",        "pylcall4",        "pylcall4i",        "pylcall4t",        "pylcall5",        "pylcall5i",        "pylcall5t",        "pylcall6",        "pylcall6i",        "pylcall6t",        "pylcall7",        "pylcall7i",        "pylcall7t",        "pylcall8",        "pylcall8i",        "pylcall8t",        "pylcalli",        "pylcalln",        "pylcallni",        "pylcallt",        "pyleval",        "pylevali",        "pylevalt",        "pylexec",        "pylexeci",        "pylexect",        "pylrun",        "pylruni",        "pylrunt",        "pyrun",        "pyruni",        "pyrunt",        "qinf",        "qnan",        "r2c",        "rand",        "randh",        "randi",        "random",        "randomh",        "randomi",        "rbjeq",        "readclock",        "readf",        "readfi",        "readk",        "readk2",        "readk3",        "readk4",        "readks",        "readscore",        "readscratch",        "rect2pol",        "release",        "remoteport",        "remove",        "repluck",        "reson",        "resonk",        "resonr",        "resonx",        "resonxk",        "resony",        "resonz",        "resyn",        "reverb",        "reverb2",        "reverbsc",        "rewindscore",        "rezzy",        "rfft",        "rifft",        "rms",        "rnd",        "rnd31",        "round",        "rspline",        "rtclock",        "s16b14",        "s32b14",        "samphold",        "sandpaper",        "sc_lag",        "sc_lagud",        "sc_phasor",        "sc_trig",        "scale",        "scalearray",        "scanhammer",        "scans",        "scantable",        "scanu",        "schedkwhen",        "schedkwhennamed",        "schedule",        "schedwhen",        "scoreline",        "scoreline_i",        "seed",        "sekere",        "select",        "semitone",        "sense",        "sensekey",        "seqtime",        "seqtime2",        "serialBegin",        "serialEnd",        "serialFlush",        "serialPrint",        "serialRead",        "serialWrite",        "serialWrite_i",        "setcol",        "setctrl",        "setksmps",        "setrow",        "setscorepos",        "sfilist",        "sfinstr",        "sfinstr3",        "sfinstr3m",        "sfinstrm",        "sfload",        "sflooper",        "sfpassign",        "sfplay",        "sfplay3",        "sfplay3m",        "sfplaym",        "sfplist",        "sfpreset",        "shaker",        "shiftin",        "shiftout",        "signalflowgraph",        "signum",        "sin",        "sinh",        "sininv",        "sinsyn",        "sleighbells",        "slicearray",        "slider16",        "slider16f",        "slider16table",        "slider16tablef",        "slider32",        "slider32f",        "slider32table",        "slider32tablef",        "slider64",        "slider64f",        "slider64table",        "slider64tablef",        "slider8",        "slider8f",        "slider8table",        "slider8tablef",        "sliderKawai",        "sndloop",        "sndwarp",        "sndwarpst",        "sockrecv",        "sockrecvs",        "socksend",        "socksend_k",        "socksends",        "sorta",        "sortd",        "soundin",        "space",        "spat3d",        "spat3di",        "spat3dt",        "spdist",        "splitrig",        "sprintf",        "sprintfk",        "spsend",        "sqrt",        "squinewave",        "statevar",        "stix",        "strcat",        "strcatk",        "strchar",        "strchark",        "strcmp",        "strcmpk",        "strcpy",        "strcpyk",        "strecv",        "streson",        "strfromurl",        "strget",        "strindex",        "strindexk",        "strlen",        "strlenk",        "strlower",        "strlowerk",        "strrindex",        "strrindexk",        "strset",        "strsub",        "strsubk",        "strtod",        "strtodk",        "strtol",        "strtolk",        "strupper",        "strupperk",        "stsend",        "subinstr",        "subinstrinit",        "sum",        "sumarray",        "svfilter",        "syncgrain",        "syncloop",        "syncphasor",        "system",        "system_i",        "tab",        "tab2pvs",        "tab_i",        "tabifd",        "table",        "table3",        "table3kt",        "tablecopy",        "tablefilter",        "tablefilteri",        "tablegpw",        "tablei",        "tableicopy",        "tableigpw",        "tableikt",        "tableimix",        "tableiw",        "tablekt",        "tablemix",        "tableng",        "tablera",        "tableseg",        "tableshuffle",        "tableshufflei",        "tablew",        "tablewa",        "tablewkt",        "tablexkt",        "tablexseg",        "tabmorph",        "tabmorpha",        "tabmorphak",        "tabmorphi",        "tabplay",        "tabrec",        "tabsum",        "tabw",        "tabw_i",        "tambourine",        "tan",        "tanh",        "taninv",        "taninv2",        "tb0",        "tb0_init",        "tb1",        "tb10",        "tb10_init",        "tb11",        "tb11_init",        "tb12",        "tb12_init",        "tb13",        "tb13_init",        "tb14",        "tb14_init",        "tb15",        "tb15_init",        "tb1_init",        "tb2",        "tb2_init",        "tb3",        "tb3_init",        "tb4",        "tb4_init",        "tb5",        "tb5_init",        "tb6",        "tb6_init",        "tb7",        "tb7_init",        "tb8",        "tb8_init",        "tb9",        "tb9_init",        "tbvcf",        "tempest",        "tempo",        "temposcal",        "tempoval",        "timedseq",        "timeinstk",        "timeinsts",        "timek",        "times",        "tival",        "tlineto",        "tone",        "tonek",        "tonex",        "tradsyn",        "trandom",        "transeg",        "transegb",        "transegr",        "trcross",        "trfilter",        "trhighest",        "trigger",        "trigseq",        "trirand",        "trlowest",        "trmix",        "trscale",        "trshift",        "trsplit",        "turnoff",        "turnoff2",        "turnon",        "tvconv",        "unirand",        "unwrap",        "upsamp",        "urandom",        "urd",        "vactrol",        "vadd",        "vadd_i",        "vaddv",        "vaddv_i",        "vaget",        "valpass",        "vaset",        "vbap",        "vbapg",        "vbapgmove",        "vbaplsinit",        "vbapmove",        "vbapz",        "vbapzmove",        "vcella",        "vco",        "vco2",        "vco2ft",        "vco2ift",        "vco2init",        "vcomb",        "vcopy",        "vcopy_i",        "vdel_k",        "vdelay",        "vdelay3",        "vdelayk",        "vdelayx",        "vdelayxq",        "vdelayxs",        "vdelayxw",        "vdelayxwq",        "vdelayxws",        "vdivv",        "vdivv_i",        "vecdelay",        "veloc",        "vexp",        "vexp_i",        "vexpseg",        "vexpv",        "vexpv_i",        "vibes",        "vibr",        "vibrato",        "vincr",        "vlimit",        "vlinseg",        "vlowres",        "vmap",        "vmirror",        "vmult",        "vmult_i",        "vmultv",        "vmultv_i",        "voice",        "vosim",        "vphaseseg",        "vport",        "vpow",        "vpow_i",        "vpowv",        "vpowv_i",        "vpvoc",        "vrandh",        "vrandi",        "vsubv",        "vsubv_i",        "vtaba",        "vtabi",        "vtabk",        "vtable1k",        "vtablea",        "vtablei",        "vtablek",        "vtablewa",        "vtablewi",        "vtablewk",        "vtabwa",        "vtabwi",        "vtabwk",        "vwrap",        "waveset",        "websocket",        "weibull",        "wgbow",        "wgbowedbar",        "wgbrass",        "wgclar",        "wgflute",        "wgpluck",        "wgpluck2",        "wguide1",        "wguide2",        "wiiconnect",        "wiidata",        "wiirange",        "wiisend",        "window",        "wrap",        "writescratch",        "wterrain",        "xadsr",        "xin",        "xout",        "xscanmap",        "xscans",        "xscansmap",        "xscanu",        "xtratim",        "xyscale",        "zacl",        "zakinit",        "zamod",        "zar",        "zarg",        "zaw",        "zawm",        "zdf_1pole",        "zdf_1pole_mode",        "zdf_2pole",        "zdf_2pole_mode",        "zdf_ladder",        "zfilter2",        "zir",        "ziw",        "ziwm",        "zkcl",        "zkmod",        "zkr",        "zkw",        "zkwm"    ];    var deprecatedOpcodes = [        "array",        "bformdec",        "bformenc",        "copy2ftab",        "copy2ttab",        "hrtfer",        "ktableseg",        "lentab",        "maxtab",        "mintab",        "scalet",        "sndload",        "soundout",        "soundouts",        "specaddm",        "specdiff",        "specdisp",        "specfilt",        "spechist",        "specptrk",        "specscal",        "specsum",        "spectrum",        "sumtab",        "tabgen",        "tabmap",        "tabmap_i",        "tabslice",        "vbap16",        "vbap4",        "vbap4move",        "vbap8",        "vbap8move",        "xyin"    ];    opcodes = lang.arrayToMap(opcodes);    deprecatedOpcodes = lang.arrayToMap(deprecatedOpcodes);    this.lineContinuations = [        {            token : "constant.character.escape.line-continuation.csound",            regex : /\\$/        }, this.pushRule({            token : "constant.character.escape.line-continuation.csound",            regex : /\\/,            next  : "line continuation"        })    ];    this.comments.push(this.lineContinuations);    this.quotedStringContents.push(        this.lineContinuations,        {            token : "invalid.illegal",            regex : /[^"\\]*$/        }    );    var start = this.$rules.start;    start.splice(1, 0, {        token : ["text.csound", "entity.name.label.csound", "entity.punctuation.label.csound", "text.csound"],        regex : /^([ \t]*)(\w+)(:)([ \t]+|$)/    });    start.push(        this.pushRule({            token : "keyword.function.csound",            regex : /\binstr\b/,            next  : "instrument numbers and identifiers"        }), this.pushRule({            token : "keyword.function.csound",            regex : /\bopcode\b/,            next  : "after opcode keyword"        }), {            token : "keyword.other.csound",            regex : /\bend(?:in|op)\b/        },        {            token : "variable.language.csound",            regex : /\b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\b/        },        this.numbers,        {            token : "keyword.operator.csound",            regex : "\\+=|-=|\\*=|/=|<<|>>|<=|>=|==|!=|&&|\\|\\||[~¬]|[=!+\\-*/^%&|<>#?:]"        },        this.pushRule({            token : "punctuation.definition.string.begin.csound",            regex : /"/,            next  : "quoted string"        }), this.pushRule({            token : "punctuation.definition.string.begin.csound",            regex : /{{/,            next  : "braced string"        }),        {            token : "keyword.control.csound",            regex : /\b(?:do|else(?:if)?|end(?:if|until)|fi|i(?:f|then)|kthen|od|r(?:ir)?eturn|then|until|while)\b/        },        this.pushRule({            token : "keyword.control.csound",            regex : /\b[ik]?goto\b/,            next  : "goto before label"        }), this.pushRule({            token : "keyword.control.csound",            regex : /\b(?:r(?:einit|igoto)|tigoto)\b/,            next  : "goto before label"        }), this.pushRule({            token : "keyword.control.csound",            regex : /\bc(?:g|in?|k|nk?)goto\b/,            next  : ["goto before label", "goto before argument"]        }), this.pushRule({            token : "keyword.control.csound",            regex : /\btimout\b/,            next  : ["goto before label", "goto before argument", "goto before argument"]        }), this.pushRule({            token : "keyword.control.csound",            regex : /\bloop_[gl][et]\b/,            next  : ["goto before label", "goto before argument", "goto before argument", "goto before argument"]        }),        this.pushRule({            token : "support.function.csound",            regex : /\b(?:readscore|scoreline(?:_i)?)\b/,            next  : "Csound score opcode"        }), this.pushRule({            token : "support.function.csound",            regex : /\bpyl?run[it]?\b(?!$)/,            next  : "Python opcode"        }), this.pushRule({            token : "support.function.csound",            regex : /\blua_(?:exec|opdef)\b(?!$)/,            next  : "Lua opcode"        }),        {            token : "support.variable.csound",            regex : /\bp\d+\b/        }, {            regex : /\b([A-Z_a-z]\w*)(?:(:)([A-Za-z]))?\b/, onMatch: function(value, currentState, stack, line) {                var tokens = value.split(this.splitRegex);                var name = tokens[1];                var type;                if (opcodes.hasOwnProperty(name))                    type = "support.function.csound";                else if (deprecatedOpcodes.hasOwnProperty(name))                    type = "invalid.deprecated.csound";                if (type) {                    if (tokens[2]) {                        return [                            {type: type, value: name},                            {type: "punctuation.type-annotation.csound", value: tokens[2]},                            {type: "type-annotation.storage.type.csound", value: tokens[3]}                        ];                    }                    return type;                }                return "text.csound";            }        }    );    this.$rules["macro parameter value list"].splice(2, 0, {        token : "punctuation.definition.string.begin.csound",        regex : /{{/,        next  : "macro parameter value braced string"    });    this.addRules({        "macro parameter value braced string": [            {                token : "constant.character.escape.csound",                regex : /\\[#'()]/            }, {                token : "invalid.illegal.csound.csound",                regex : /[#'()]/            }, {                token : "punctuation.definition.string.end.csound",                regex : /}}/,                next  : "macro parameter value list"            }, {                defaultToken: "string.braced.csound"            }        ],        "instrument numbers and identifiers": [            this.comments,            {                token : "entity.name.function.csound",                regex : /\d+|[A-Z_a-z]\w*/            }, this.popRule({                token : "empty",                regex : /$/            })        ],        "after opcode keyword": [            this.comments,            this.popRule({                token : "empty",                regex : /$/            }), this.popRule({                token : "entity.name.function.opcode.csound",                regex : /[A-Z_a-z]\w*/,                next  : "opcode type signatures"            })        ],        "opcode type signatures": [            this.comments,            this.popRule({                token : "empty",                regex : /$/            }), {                token : "storage.type.csound",                regex : /\b(?:0|[afijkKoOpPStV\[\]]+)/            }        ],        "quoted string": [            this.popRule({                token : "punctuation.definition.string.end.csound",                regex : /"/            }),            this.quotedStringContents,            {                defaultToken: "string.quoted.csound"            }        ],        "braced string": [            this.popRule({                token : "punctuation.definition.string.end.csound",                regex : /}}/            }),            this.bracedStringContents,            {                defaultToken: "string.braced.csound"            }        ],        "goto before argument": [            this.popRule({                token : "text.csound",                regex : /,/            }),            start        ],        "goto before label": [            {                token : "text.csound",                regex : /\s+/            },            this.comments,            this.popRule({                token : "entity.name.label.csound",                regex : /\w+/            }), this.popRule({                token : "empty",                regex : /(?!\w)/            })        ],        "Csound score opcode": [            this.comments,            {                token : "punctuation.definition.string.begin.csound",                regex : /{{/,                next  : "csound-score-start"            }, this.popRule({                token : "empty",                regex : /$/            })        ],        "Python opcode": [            this.comments,            {                token : "punctuation.definition.string.begin.csound",                regex : /{{/,                next  : "python-start"            }, this.popRule({                token : "empty",                regex : /$/            })        ],        "Lua opcode": [            this.comments,            {                token : "punctuation.definition.string.begin.csound",                regex : /{{/,                next  : "lua-start"            }, this.popRule({                token : "empty",                regex : /$/            })        ],        "line continuation": [            this.popRule({                token : "empty",                regex : /$/            }),            this.semicolonComments,            {                token : "invalid.illegal.csound",                regex : /\S.*/            }        ]    });    var rules = [        this.popRule({            token : "punctuation.definition.string.end.csound",            regex : /}}/        })    ];    this.embedRules(CsoundScoreHighlightRules, "csound-score-", rules);    this.embedRules(PythonHighlightRules, "python-", rules);    this.embedRules(LuaHighlightRules, "lua-", rules);    this.normalizeRules();};oop.inherits(CsoundOrchestraHighlightRules, CsoundPreprocessorHighlightRules);exports.CsoundOrchestraHighlightRules = CsoundOrchestraHighlightRules;});ace.define("ace/mode/css_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var lang = require("../lib/lang");var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom";var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";var pseudoClasses  = exports.pseudoClasses =  "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";var CssHighlightRules = function() {    var keywordMapper = this.createKeywordMapper({        "support.function": supportFunction,        "support.constant": supportConstant,        "support.type": supportType,        "support.constant.color": supportConstantColor,        "support.constant.fonts": supportConstantFonts    }, "text", true);    this.$rules = {        "start" : [{            include : ["strings", "url", "comments"]        }, {            token: "paren.lparen",            regex: "\\{",            next:  "ruleset"        }, {            token: "paren.rparen",            regex: "\\}"        }, {            token: "string",            regex: "@(?!viewport)",            next:  "media"        }, {            token: "keyword",            regex: "#[a-z0-9-_]+"        }, {            token: "keyword",            regex: "%"        }, {            token: "variable",            regex: "\\.[a-z0-9-_]+"        }, {            token: "string",            regex: ":[a-z0-9-_]+"        }, {            token : "constant.numeric",            regex : numRe        }, {            token: "constant",            regex: "[a-z0-9-_]+"        }, {            caseInsensitive: true        }],        "media": [{            include : ["strings", "url", "comments"]        }, {            token: "paren.lparen",            regex: "\\{",            next:  "start"        }, {            token: "paren.rparen",            regex: "\\}",            next:  "start"        }, {            token: "string",            regex: ";",            next:  "start"        }, {            token: "keyword",            regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"                + "|page|font|keyframes|viewport|counter-style|font-feature-values"                + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"        }],        "comments" : [{            token: "comment", // multi line comment            regex: "\\/\\*",            push: [{                token : "comment",                regex : "\\*\\/",                next : "pop"            }, {                defaultToken : "comment"            }]        }],        "ruleset" : [{            regex : "-(webkit|ms|moz|o)-",            token : "text"        }, {            token : "punctuation.operator",            regex : "[:;]"        }, {            token : "paren.rparen",            regex : "\\}",            next : "start"        }, {            include : ["strings", "url", "comments"]        }, {            token : ["constant.numeric", "keyword"],            regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"        }, {            token : "constant.numeric",            regex : numRe        }, {            token : "constant.numeric",  // hex6 color            regex : "#[a-f0-9]{6}"        }, {            token : "constant.numeric", // hex3 color            regex : "#[a-f0-9]{3}"        }, {            token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"],            regex : pseudoElements        }, {            token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],            regex : pseudoClasses        }, {            include: "url"        }, {            token : keywordMapper,            regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"        }, {            caseInsensitive: true        }],        url: [{            token : "support.function",            regex : "(?:url(:?-prefix)?|domain|regexp)\\(",            push: [{                token : "support.function",                regex : "\\)",                next : "pop"            }, {                defaultToken: "string"            }]        }],        strings: [{            token : "string.start",            regex : "'",            push : [{                token : "string.end",                regex : "'|$",                next: "pop"            }, {                include : "escapes"            }, {                token : "constant.language.escape",                regex : /\\$/,                consumeLineEnd: true            }, {                defaultToken: "string"            }]        }, {            token : "string.start",            regex : '"',            push : [{                token : "string.end",                regex : '"|$',                next: "pop"            }, {                include : "escapes"            }, {                token : "constant.language.escape",                regex : /\\$/,                consumeLineEnd: true            }, {                defaultToken: "string"            }]        }],        escapes: [{            token : "constant.language.escape",            regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/        }]    };    this.normalizeRules();};oop.inherits(CssHighlightRules, TextHighlightRules);exports.CssHighlightRules = CssHighlightRules;});ace.define("ace/mode/doc_comment_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var TextHighlightRules = require("./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/javascript_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*";var JavaScriptHighlightRules = function(options) {    var keywordMapper = this.createKeywordMapper({        "variable.language":            "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|"  + // Constructors            "Namespace|QName|XML|XMLList|"                                             + // E4X            "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|"   +            "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|"                    +            "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|"   + // Errors            "SyntaxError|TypeError|URIError|"                                          +            "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions            "isNaN|parseFloat|parseInt|"                                               +            "JSON|Math|"                                                               + // Other            "this|arguments|prototype|window|document"                                 , // Pseudo        "keyword":            "const|yield|import|get|set|async|await|" +            "break|case|catch|continue|default|delete|do|else|finally|for|function|" +            "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +            "__parent__|__count__|escape|unescape|with|__proto__|" +            "class|enum|extends|super|export|implements|private|public|interface|package|protected|static",        "storage.type":            "const|let|var|function",        "constant.language":            "null|Infinity|NaN|undefined",        "support.function":            "alert",        "constant.language.boolean": "true|false"    }, "identifier");    var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void";    var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex        "u[0-9a-fA-F]{4}|" + // unicode        "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode        "[0-2][0-7]{0,2}|" + // oct        "3[0-7][0-7]?|" + // oct        "[4-7][0-7]?|" + //oct        ".)";    this.$rules = {        "no_regex" : [            DocCommentHighlightRules.getStartRule("doc-start"),            comments("no_regex"),            {                token : "string",                regex : "'(?=.)",                next  : "qstring"            }, {                token : "string",                regex : '"(?=.)',                next  : "qqstring"            }, {                token : "constant.numeric", // hexadecimal, octal and binary                regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/            }, {                token : "constant.numeric", // decimal integers and floats                regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/            }, {                token : [                    "storage.type", "punctuation.operator", "support.function",                    "punctuation.operator", "entity.name.function", "text","keyword.operator"                ],                regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)",                next: "function_arguments"            }, {                token : [                    "storage.type", "punctuation.operator", "entity.name.function", "text",                    "keyword.operator", "text", "storage.type", "text", "paren.lparen"                ],                regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",                next: "function_arguments"            }, {                token : [                    "entity.name.function", "text", "keyword.operator", "text", "storage.type",                    "text", "paren.lparen"                ],                regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",                next: "function_arguments"            }, {                token : [                    "storage.type", "punctuation.operator", "entity.name.function", "text",                    "keyword.operator", "text",                    "storage.type", "text", "entity.name.function", "text", "paren.lparen"                ],                regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",                next: "function_arguments"            }, {                token : [                    "storage.type", "text", "entity.name.function", "text", "paren.lparen"                ],                regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()",                next: "function_arguments"            }, {                token : [                    "entity.name.function", "text", "punctuation.operator",                    "text", "storage.type", "text", "paren.lparen"                ],                regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",                next: "function_arguments"            }, {                token : [                    "text", "text", "storage.type", "text", "paren.lparen"                ],                regex : "(:)(\\s*)(function)(\\s*)(\\()",                next: "function_arguments"            }, {                token : "keyword",                regex : "from(?=\\s*('|\"))"            }, {                token : "keyword",                regex : "(?:" + kwBeforeRe + ")\\b",                next : "start"            }, {                token : ["support.constant"],                regex : /that\b/            }, {                token : ["storage.type", "punctuation.operator", "support.function.firebug"],                regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/            }, {                token : keywordMapper,                regex : identifierRe            }, {                token : "punctuation.operator",                regex : /[.](?![.])/,                next  : "property"            }, {                token : "storage.type",                regex : /=>/            }, {                token : "keyword.operator",                regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,                next  : "start"            }, {                token : "punctuation.operator",                regex : /[?:,;.]/,                next  : "start"            }, {                token : "paren.lparen",                regex : /[\[({]/,                next  : "start"            }, {                token : "paren.rparen",                regex : /[\])}]/            }, {                token: "comment",                regex: /^#!.*$/            }        ],        property: [{                token : "text",                regex : "\\s+"            }, {                token : [                    "storage.type", "punctuation.operator", "entity.name.function", "text",                    "keyword.operator", "text",                    "storage.type", "text", "entity.name.function", "text", "paren.lparen"                ],                regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",                next: "function_arguments"            }, {                token : "punctuation.operator",                regex : /[.](?![.])/            }, {                token : "support.function",                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/            }, {                token : "support.function.dom",                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/            }, {                token :  "support.constant",                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/            }, {                token : "identifier",                regex : identifierRe            }, {                regex: "",                token: "empty",                next: "no_regex"            }        ],        "start": [            DocCommentHighlightRules.getStartRule("doc-start"),            comments("start"),            {                token: "string.regexp",                regex: "\\/",                next: "regex"            }, {                token : "text",                regex : "\\s+|^$",                next : "start"            }, {                token: "empty",                regex: "",                next: "no_regex"            }        ],        "regex": [            {                token: "regexp.keyword.operator",                regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"            }, {                token: "string.regexp",                regex: "/[sxngimy]*",                next: "no_regex"            }, {                token : "invalid",                regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/            }, {                token : "constant.language.escape",                regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/            }, {                token : "constant.language.delimiter",                regex: /\|/            }, {                token: "constant.language.escape",                regex: /\[\^?/,                next: "regex_character_class"            }, {                token: "empty",                regex: "$",                next: "no_regex"            }, {                defaultToken: "string.regexp"            }        ],        "regex_character_class": [            {                token: "regexp.charclass.keyword.operator",                regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"            }, {                token: "constant.language.escape",                regex: "]",                next: "regex"            }, {                token: "constant.language.escape",                regex: "-"            }, {                token: "empty",                regex: "$",                next: "no_regex"            }, {                defaultToken: "string.regexp.charachterclass"            }        ],        "function_arguments": [            {                token: "variable.parameter",                regex: identifierRe            }, {                token: "punctuation.operator",                regex: "[, ]+"            }, {                token: "punctuation.operator",                regex: "$"            }, {                token: "empty",                regex: "",                next: "no_regex"            }        ],        "qqstring" : [            {                token : "constant.language.escape",                regex : escapedRe            }, {                token : "string",                regex : "\\\\$",                consumeLineEnd  : true            }, {                token : "string",                regex : '"|$',                next  : "no_regex"            }, {                defaultToken: "string"            }        ],        "qstring" : [            {                token : "constant.language.escape",                regex : escapedRe            }, {                token : "string",                regex : "\\\\$",                consumeLineEnd  : true            }, {                token : "string",                regex : "'|$",                next  : "no_regex"            }, {                defaultToken: "string"            }        ]    };    if (!options || !options.noES6) {        this.$rules.no_regex.unshift({            regex: "[{}]", onMatch: function(val, state, stack) {                this.next = val == "{" ? this.nextState : "";                if (val == "{" && stack.length) {                    stack.unshift("start", state);                }                else if (val == "}" && stack.length) {                    stack.shift();                    this.next = stack.shift();                    if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1)                        return "paren.quasi.end";                }                return val == "{" ? "paren.lparen" : "paren.rparen";            },            nextState: "start"        }, {            token : "string.quasi.start",            regex : /`/,            push  : [{                token : "constant.language.escape",                regex : escapedRe            }, {                token : "paren.quasi.start",                regex : /\${/,                push  : "start"            }, {                token : "string.quasi.end",                regex : /`/,                next  : "pop"            }, {                defaultToken: "string.quasi"            }]        });        if (!options || options.jsx != false)            JSX.call(this);    }    this.embedRules(DocCommentHighlightRules, "doc-",        [ DocCommentHighlightRules.getEndRule("no_regex") ]);    this.normalizeRules();};oop.inherits(JavaScriptHighlightRules, TextHighlightRules);function JSX() {    var tagRegex = identifierRe.replace("\\d", "\\d\\-");    var jsxTag = {        onMatch : function(val, state, stack) {            var offset = val.charAt(1) == "/" ? 2 : 1;            if (offset == 1) {                if (state != this.nextState)                    stack.unshift(this.next, this.nextState, 0);                else                    stack.unshift(this.next);                stack[2]++;            } else if (offset == 2) {                if (state == this.nextState) {                    stack[1]--;                    if (!stack[1] || stack[1] < 0) {                        stack.shift();                        stack.shift();                    }                }            }            return [{                type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml",                value: val.slice(0, offset)            }, {                type: "meta.tag.tag-name.xml",                value: val.substr(offset)            }];        },        regex : "</?" + tagRegex + "",        next: "jsxAttributes",        nextState: "jsx"    };    this.$rules.start.unshift(jsxTag);    var jsxJsRule = {        regex: "{",        token: "paren.quasi.start",        push: "start"    };    this.$rules.jsx = [        jsxJsRule,        jsxTag,        {include : "reference"},        {defaultToken: "string"}    ];    this.$rules.jsxAttributes = [{        token : "meta.tag.punctuation.tag-close.xml",        regex : "/?>",        onMatch : function(value, currentState, stack) {            if (currentState == stack[0])                stack.shift();            if (value.length == 2) {                if (stack[0] == this.nextState)                    stack[1]--;                if (!stack[1] || stack[1] < 0) {                    stack.splice(0, 2);                }            }            this.next = stack[0] || "start";            return [{type: this.token, value: value}];        },        nextState: "jsx"    },    jsxJsRule,    comments("jsxAttributes"),    {        token : "entity.other.attribute-name.xml",        regex : tagRegex    }, {        token : "keyword.operator.attribute-equals.xml",        regex : "="    }, {        token : "text.tag-whitespace.xml",        regex : "\\s+"    }, {        token : "string.attribute-value.xml",        regex : "'",        stateName : "jsx_attr_q",        push : [            {token : "string.attribute-value.xml", regex: "'", next: "pop"},            {include : "reference"},            {defaultToken : "string.attribute-value.xml"}        ]    }, {        token : "string.attribute-value.xml",        regex : '"',        stateName : "jsx_attr_qq",        push : [            {token : "string.attribute-value.xml", regex: '"', next: "pop"},            {include : "reference"},            {defaultToken : "string.attribute-value.xml"}        ]    },    jsxTag    ];    this.$rules.reference = [{        token : "constant.language.escape.reference.xml",        regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"    }];}function comments(next) {    return [        {            token : "comment", // multi line comment            regex : /\/\*/,            next: [                DocCommentHighlightRules.getTagRule(),                {token : "comment", regex : "\\*\\/", next : next || "pop"},                {defaultToken : "comment", caseInsensitive: true}            ]        }, {            token : "comment",            regex : "\\/\\/",            next: [                DocCommentHighlightRules.getTagRule(),                {token : "comment", regex : "$|^", next : next || "pop"},                {defaultToken : "comment", caseInsensitive: true}            ]        }    ];}exports.JavaScriptHighlightRules = JavaScriptHighlightRules;});ace.define("ace/mode/xml_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;var XmlHighlightRules = function(normalize) {    var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*";    this.$rules = {        start : [            {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},            {                token : ["punctuation.instruction.xml", "keyword.instruction.xml"],                regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"            },            {token : "comment.start.xml", regex : "<\\!--", next : "comment"},            {                token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],                regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true            },            {include : "tag"},            {token : "text.end-tag-open.xml", regex: "</"},            {token : "text.tag-open.xml", regex: "<"},            {include : "reference"},            {defaultToken : "text.xml"}        ],        processing_instruction : [{            token : "entity.other.attribute-name.decl-attribute-name.xml",            regex : tagRegex        }, {            token : "keyword.operator.decl-attribute-equals.xml",            regex : "="        }, {            include: "whitespace"        }, {            include: "string"        }, {            token : "punctuation.xml-decl.xml",            regex : "\\?>",            next : "start"        }],        doctype : [            {include : "whitespace"},            {include : "string"},            {token : "xml-pe.doctype.xml", regex : ">", next : "start"},            {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"},            {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"}        ],        int_subset : [{            token : "text.xml",            regex : "\\s+"        }, {            token: "punctuation.int-subset.xml",            regex: "]",            next: "pop"        }, {            token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"],            regex : "(<\\!)(" + tagRegex + ")",            push : [{                token : "text",                regex : "\\s+"            },            {                token : "punctuation.markup-decl.xml",                regex : ">",                next : "pop"            },            {include : "string"}]        }],        cdata : [            {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"},            {token : "text.xml", regex : "\\s+"},            {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"}        ],        comment : [            {token : "comment.end.xml", regex : "-->", next : "start"},            {defaultToken : "comment.xml"}        ],        reference : [{            token : "constant.language.escape.reference.xml",            regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"        }],        attr_reference : [{            token : "constant.language.escape.reference.attribute-value.xml",            regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"        }],        tag : [{            token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"],            regex : "(?:(<)|(</))((?:" + tagRegex + ":)?" + tagRegex + ")",            next: [                {include : "attributes"},                {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}            ]        }],        tag_whitespace : [            {token : "text.tag-whitespace.xml", regex : "\\s+"}        ],        whitespace : [            {token : "text.whitespace.xml", regex : "\\s+"}        ],        string: [{            token : "string.xml",            regex : "'",            push : [                {token : "string.xml", regex: "'", next: "pop"},                {defaultToken : "string.xml"}            ]        }, {            token : "string.xml",            regex : '"',            push : [                {token : "string.xml", regex: '"', next: "pop"},                {defaultToken : "string.xml"}            ]        }],        attributes: [{            token : "entity.other.attribute-name.xml",            regex : tagRegex        }, {            token : "keyword.operator.attribute-equals.xml",            regex : "="        }, {            include: "tag_whitespace"        }, {            include: "attribute_value"        }],        attribute_value: [{            token : "string.attribute-value.xml",            regex : "'",            push : [                {token : "string.attribute-value.xml", regex: "'", next: "pop"},                {include : "attr_reference"},                {defaultToken : "string.attribute-value.xml"}            ]        }, {            token : "string.attribute-value.xml",            regex : '"',            push : [                {token : "string.attribute-value.xml", regex: '"', next: "pop"},                {include : "attr_reference"},                {defaultToken : "string.attribute-value.xml"}            ]        }]    };    if (this.constructor === XmlHighlightRules)        this.normalizeRules();};(function() {    this.embedTagRules = function(HighlightRules, prefix, tag){        this.$rules.tag.unshift({            token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],            regex : "(<)(" + tag + "(?=\\s|>|$))",            next: [                {include : "attributes"},                {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"}            ]        });        this.$rules[tag + "-end"] = [            {include : "attributes"},            {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>",  next: "start",                onMatch : function(value, currentState, stack) {                    stack.splice(0);                    return this.token;            }}        ];        this.embedRules(HighlightRules, prefix, [{            token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],            regex : "(</)(" + tag + "(?=\\s|>|$))",            next: tag + "-end"        }, {            token: "string.cdata.xml",            regex : "<\\!\\[CDATA\\["        }, {            token: "string.cdata.xml",            regex : "\\]\\]>"        }]);    };}).call(TextHighlightRules.prototype);oop.inherits(XmlHighlightRules, TextHighlightRules);exports.XmlHighlightRules = XmlHighlightRules;});ace.define("ace/mode/html_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var lang = require("../lib/lang");var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules;var tagMap = lang.createMap({    a           : 'anchor',    button 	    : 'form',    form        : 'form',    img         : 'image',    input       : 'form',    label       : 'form',    option      : 'form',    script      : 'script',    select      : 'form',    textarea    : 'form',    style       : 'style',    table       : 'table',    tbody       : 'table',    td          : 'table',    tfoot       : 'table',    th          : 'table',    tr          : 'table'});var HtmlHighlightRules = function() {    XmlHighlightRules.call(this);    this.addRules({        attributes: [{            include : "tag_whitespace"        }, {            token : "entity.other.attribute-name.xml",            regex : "[-_a-zA-Z0-9:.]+"        }, {            token : "keyword.operator.attribute-equals.xml",            regex : "=",            push : [{                include: "tag_whitespace"            }, {                token : "string.unquoted.attribute-value.html",                regex : "[^<>='\"`\\s]+",                next : "pop"            }, {                token : "empty",                regex : "",                next : "pop"            }]        }, {            include : "attribute_value"        }],        tag: [{            token : function(start, tag) {                var group = tagMap[tag];                return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml",                    "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"];            },            regex : "(</?)([-_a-zA-Z0-9:.]+)",            next: "tag_stuff"        }],        tag_stuff: [            {include : "attributes"},            {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}        ]    });    this.embedTagRules(CssHighlightRules, "css-", "style");    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script");    if (this.constructor === HtmlHighlightRules)        this.normalizeRules();};oop.inherits(HtmlHighlightRules, XmlHighlightRules);exports.HtmlHighlightRules = HtmlHighlightRules;});ace.define("ace/mode/csound_document_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var CsoundOrchestraHighlightRules = require("./csound_orchestra_highlight_rules").CsoundOrchestraHighlightRules;var CsoundScoreHighlightRules = require("./csound_score_highlight_rules").CsoundScoreHighlightRules;var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;var CsoundDocumentHighlightRules = function() {    this.$rules = {        "start": [            {                token : ["meta.tag.punctuation.tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],                regex : /(<)(CsoundSynthesi[sz]er)(>)/,                next  : "synthesizer"            },            {defaultToken : "text.csound-document"}        ],        "synthesizer": [            {                token : ["meta.tag.punctuation.end-tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],                regex : "(</)(CsoundSynthesi[sz]er)(>)",                next  : "start"            }, {                token : ["meta.tag.punctuation.tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],                regex : "(<)(CsInstruments)(>)",                next  : "csound-start"            }, {                token : ["meta.tag.punctuation.tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],                regex : "(<)(CsScore)(>)",                next  : "csound-score-start"            }, {                token : ["meta.tag.punctuation.tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],                regex : "(<)([Hh][Tt][Mm][Ll])(>)",                next  : "html-start"            }        ]    };    this.embedRules(CsoundOrchestraHighlightRules, "csound-", [{        token : ["meta.tag.punctuation.end-tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],        regex : "(</)(CsInstruments)(>)",        next  : "synthesizer"    }]);    this.embedRules(CsoundScoreHighlightRules, "csound-score-", [{        token : ["meta.tag.punctuation.end-tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],        regex : "(</)(CsScore)(>)",        next  : "synthesizer"    }]);    this.embedRules(HtmlHighlightRules, "html-", [{        token : ["meta.tag.punctuation.end-tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],        regex : "(</)([Hh][Tt][Mm][Ll])(>)",        next  : "synthesizer"    }]);    this.normalizeRules();};oop.inherits(CsoundDocumentHighlightRules, TextHighlightRules);exports.CsoundDocumentHighlightRules = CsoundDocumentHighlightRules;});ace.define("ace/mode/csound_document",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var TextMode = require("./text").Mode;var CsoundDocumentHighlightRules = require("./csound_document_highlight_rules").CsoundDocumentHighlightRules;var Mode = function() {    this.HighlightRules = CsoundDocumentHighlightRules;};oop.inherits(Mode, TextMode);exports.Mode = Mode;});                (function() {                    ace.require(["ace/mode/csound_document"], function(m) {                        if (typeof module == "object" && typeof exports == "object" && module) {                            module.exports = m;                        }                    });                })();            
 |