diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index 5cfc5af..4d0d407 100644 --- a/dist/jsoneditor-minimalist.js +++ b/dist/jsoneditor-minimalist.js @@ -24,8 +24,8 @@ * Copyright (c) 2011-2016 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.1.4 - * @date 2016-02-13 + * @version 5.1.5 + * @date 2016-02-15 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -5227,7 +5227,7 @@ return /******/ (function(modules) { // webpackBootstrap } // show checkbox when the value is a boolean - if (type === 'boolean') { + if (type === 'boolean' && this.editable.value) { if (!this.dom.checkbox) { this.dom.checkbox = document.createElement('input'); this.dom.checkbox.type = 'checkbox'; diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index 04d0ff8..0b264ce 100644 --- a/dist/jsoneditor-minimalist.map +++ b/dist/jsoneditor-minimalist.map @@ -1 +1 @@ -{"version":3,"file":"jsoneditor-minimalist.map","sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","e","code","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","_delete","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","ajv","allErrors","verbose","validateSchema","compile","validate","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","Node","modeswitcher","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","search","hasOwnProperty","_debouncedValidate","debounce","bind","focusNode","domFocus","Function","content","table","params","field","value","node","_setRoot","recurse","expand","appendChild","searchBox","blur","getValue","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","valid","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","reduce","all","findParents","parent","child","message","type","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","margin","interval","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","modeBox","_onKeyDown","_startDragDistance","_updateDragDistance","getNodeFromTarget","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","Array","first","startPath","getPath","endPath","startChild","endChild","childs","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","ctrlKey","shiftKey","handled","selectContentEditable","previous","next","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","push","click","onDuplicate","onRemove","close","show","ace","MAX_ERRORS","indentation","Number","_ace","theme","aceEditor","textarea","clientWidth","buttonFormat","format","buttonCompact","compact","editorDom","style","edit","$blockScrolling","Infinity","setTheme","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","defineProperty","poweredBy","createTextNode","href","open","on","spellcheck","destroy","resize","force","sanitize","escapeUnicode","escapeUnicodeChars","originalOnChange","setValue","validationErrors","marginBottom","paddingBottom","doValidate","limit","hidden","innerHTML","join","jsonlint","jsonString","jsString","curr","charAt","prev","lastNonWhitespace","chars","pp","skipBlockComment","skipComment","parseString","quote","parseKey","specialValues","key","regexp","test","match","replace","charCodeAt","toString","a","b","object","String","Boolean","RegExp","isUrlRegex","isUrl","obj","getAbsoluteLeft","elem","rect","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","split","removeClassName","index","splice","stripFormatting","divElement","childNodes","iMax","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","setStart","setEnd","getInnerText","element","buffer","flush","nodeValue","hasChildNodes","innerText","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","re","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","insideRect","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","oldSelection","newSelection","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","prevElem","searchFieldActive","searchValueActive","updateDom","_clearDelay","forceSearch","resultCount","createMenuItems","list","domItems","item","separator","li","domItem","button","hide","submenu","divIcon","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","contentRect","anchorHeight","offsetHeight","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","targetIndex","prevButton","nextButton","expanded","setField","fieldEditable","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","appendNodeFactory","_updateEditability","path","getFieldsPath","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","fit","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","currentIndex","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","str","undoDiff","redoDiff","domValue","classNames","isEmpty","count","checkbox","tdCheckbox","checked","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","isDraggedNode","some","n","_createDomField","isFirst","domTree","marginLeft","contentEditable","_escapeHTML","_updateDomIndexes","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","offsetX","onKeyDown","nextNode","nextDom","nextDom2","altKey","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","_onSort","order","firstDom","lastDom","lastChild","TYPE_TITLES","auto","array","string","titles","lower","num","numFloat","isNaN","htmlEscaped","html","escapedText","_escapeJSON","escaped","createModeSwitcher","current","switchMode","availableModes","form","view","currentMode","currentTitle","box","div","position","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_",2,4,6,8,10,11,14,17,18,21,22,23,24,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$",3,5,7,9,12,13,15,16,1,19,20,25,"defaultActions","parseError","hash","popStack","stack","vstack","lstack","lex","token","self","lexer","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","lines","unput","less","pastInput","past","upcomingInput","pre","tempMatch","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","trAppend","tdAppend","domText","paddingLeft","acequire","isDark","cssClass","cssText","importCssString","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","row","getLine","column","openBracePos","findMatchingBracket","indent","$getIndent","Behaviour","TokenIterator","lang","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","session","getCursorPosition","getSelectionRange","getTextRange","getWrapBehavioursEnabled","isSaneInsertion","inMultiSelectMode","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","stringRepeat","clearMaybeInsertedClosing","next_indent","getTabString","isMultiLine","leftChar","getTokenAt","rightToken","pair","stringBefore","stringAfter","wordRe","$mode","tokenRe","isWordBefore","isWordAfter","iterator","$matchTokenType","getCurrentToken","iterator2","stepForward","getCurrentTokenRow","types","bracket","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","searchboxCss","HashHandler","keyUtil","showReplaceForm","$init","setEditor","$initElements","sb","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","find","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","$syncOptions","setCssClass","$search","$options","renderer","updateBackMarkers","skipCurrent","backwards","preventScroll","wrap","regExp","caseSensitive","wholeWord","noMatch","_emit","getReadOnly","replaceAndFindNext","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","el","activeElement","Search","src"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,IACQ,kBAAXG,SAAyBA,OAAOC,IAC9CD,OAAOH,GACmB,gBAAZC,SACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,KACpBK,KAAM,WACT,MAAgB,UAAUC,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUP,OAGnC,IAAIC,GAASO,EAAiBD,IAC7BP,WACAS,GAAIF,EACJG,QAAQ,EAUT,OANAL,GAAQE,GAAUI,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOS,QAAS,EAGTT,EAAOD,QAvBf,GAAIQ,KAqCJ,OATAF,GAAoBM,EAAIP,EAGxBC,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,GAGjBR,EAAoB,KAK/B,SAASL,EAAQD,EAASM,GA6C/B,QAASS,GAAYC,EAAWC,EAASC,GACvC,KAAMd,eAAgBW,IACpB,KAAM,IAAII,OAAM,+CAIlB,IAAIC,GAAYC,EAAKC,4BACrB,IAAiB,IAAbF,GAA+B,EAAZA,EACrB,KAAM,IAAID,OAAM,iGAIlB,IAAIF,IAEEA,EAAQM,QACVC,QAAQC,KAAK,gDACbR,EAAQS,QAAUT,EAAQM,YACnBN,GAAQM,OAEbN,EAAQU,SACVH,QAAQC,KAAK,kDACbR,EAAQW,SAAWX,EAAQU,aACpBV,GAAQU,QAEbV,EAAQY,WACVL,QAAQC,KAAK,sDACbR,EAAQa,WAAab,EAAQY,eACtBZ,GAAQY,UAIbZ,GAAS,CACX,GAAIc,IACF,MAAO,QACP,MAAO,SACP,WAAY,aAAc,UAAW,eACrC,gBAAiB,UAAW,SAAU,OAAQ,QAAS,OAAQ,cAGjEC,QAAOC,KAAKhB,GAASiB,QAAQ,SAAUC,GACC,KAAlCJ,EAAcK,QAAQD,IACxBX,QAAQC,KAAK,mBAAqBU,EAAS,oCAM/CE,UAAUC,QACZlC,KAAKmC,QAAQvB,EAAWC,EAASC,GA3FrC,GAAIsB,EACJ,KACEA,EAAMlC,GAAsB,WAAkC,GAAImC,GAAI,GAAItB,OAAM,2BAA4D,MAA7BsB,GAAEC,KAAO,mBAA0BD,MAEpJ,MAAOE,IAIP,GAAIC,GAAWtC,EAAoB,GAC/BuC,EAAWvC,EAAoB,GAC/Be,EAAOf,EAAoB,EAoG/BS,GAAW+B,SAGX/B,EAAWgC,UAAUC,kBAAoB,IASzCjC,EAAWgC,UAAUR,QAAU,SAAUvB,EAAWC,EAASC,GAC3Dd,KAAKY,UAAYA,EACjBZ,KAAKa,QAAUA,MACfb,KAAKc,KAAOA,KAEZ,IAAI+B,GAAO7C,KAAKa,QAAQgC,MAAQ,MAChC7C,MAAK8C,QAAQD,IAOflC,EAAWgC,UAAUI,QAAU,aAM/BpC,EAAWgC,UAAUK,IAAM,SAAUlC,GACnCd,KAAKc,KAAOA,GAOdH,EAAWgC,UAAUM,IAAM,WACzB,MAAOjD,MAAKc,MAOdH,EAAWgC,UAAUO,QAAU,SAAUC,GACvCnD,KAAKc,KAAOG,EAAKmC,MAAMD,IAOzBxC,EAAWgC,UAAUU,QAAU,WAC7B,MAAOC,MAAKC,UAAUvD,KAAKc,OAO7BH,EAAWgC,UAAUa,QAAU,SAAUC,GAClCzD,KAAKa,UACRb,KAAKa,YAEPb,KAAKa,QAAQ4C,KAAOA,GAOtB9C,EAAWgC,UAAUe,QAAU,WAC7B,MAAO1D,MAAKa,SAAWb,KAAKa,QAAQ4C,MAStC9C,EAAWgC,UAAUG,QAAU,SAAUD,GACvC,GAGIc,GACAF,EAJA7C,EAAYZ,KAAKY,UACjBC,EAAUI,EAAK2C,UAAW5D,KAAKa,SAC/BgD,EAAUhD,EAAQgC,IAItBhC,GAAQgC,KAAOA,CACf,IAAIiB,GAASnD,EAAW+B,MAAMG,EAC9B,KAAIiB,EAqCF,KAAM,IAAI/C,OAAM,iBAAmBF,EAAQgC,KAAO,IApClD,KACE,GAAIkB,GAAyB,QAAfD,EAAOH,IAYrB,IAXAF,EAAOzD,KAAK0D,UACZC,EAAO3D,KAAK+D,EAAS,UAAY,SAEjC/D,KAAK+C,UACL9B,EAAK+C,MAAMhE,MACXiB,EAAK2C,OAAO5D,KAAM8D,EAAOG,OACzBjE,KAAKkE,OAAOtD,EAAWC,GAEvBb,KAAKwD,QAAQC,GACbzD,KAAK+D,EAAS,UAAY,OAAOJ,GAEN,kBAAhBG,GAAOK,KAChB,IACEL,EAAOK,KAAK5D,KAAKP,MAEnB,MAAOuC,GACLnB,QAAQD,MAAMoB,GAIlB,GAAoC,kBAAzB1B,GAAQuD,cAA+BvB,IAASgB,EACzD,IACEhD,EAAQuD,aAAavB,EAAMgB,GAE7B,MAAOtB,GACLnB,QAAQD,MAAMoB,IAIpB,MAAOA,GACLvC,KAAKqE,SAAS9B,KAYpB5B,EAAWgC,UAAU2B,QAAU,WAC7B,MAAOtE,MAAKa,QAAQgC,MAStBlC,EAAWgC,UAAU0B,SAAW,SAAS9B,GACvC,IAAIvC,KAAKa,SAA2C,kBAAzBb,MAAKa,QAAQS,QAItC,KAAMiB,EAHNvC,MAAKa,QAAQS,QAAQiB,IAYzB5B,EAAWgC,UAAU4B,UAAY,SAAUC,GAEzC,GAAIA,EAAQ,CACV,GAAIC,EACJ,KAEEA,EAAMzE,KAAKa,QAAQ4D,KAAOrC,GAAMsC,WAAW,EAAMC,SAAS,IAG5D,MAAOpC,GACLnB,QAAQC,KAAK,iMAGXoD,IACFzE,KAAK4E,eAAiBH,EAAII,QAAQL,GAIlCxE,KAAKa,QAAQ2D,OAASA,EAGtBxE,KAAK8E,gBAKP9E,MAAK4E,eAAiB,KACtB5E,KAAKa,QAAQ2D,OAAS,KACtBxE,KAAK8E,YAQTnE,EAAWgC,UAAUmC,SAAW,aAuBhCnE,EAAWoE,aAAe,SAAUlC,GAClC,GAAImC,GAAGC,CAEP,IAAIhE,EAAKiE,QAAQrC,GAEf,IAAKmC,EAAI,EAAGA,EAAInC,EAAKX,OAAQ8C,IAC3BrE,EAAWoE,aAAalC,EAAKmC,QAG5B,CAEH,KAAM,QAAUnC,IAAO,KAAM,IAAI9B,OAAM,0BACvC,MAAM,SAAW8B,IAAO,KAAM,IAAI9B,OAAM,2BACxC,MAAM,QAAU8B,IAAO,KAAM,IAAI9B,OAAM,0BACvC,IAAI0C,GAAOZ,EAAKA,IAChB,IAAIY,IAAQ9C,GAAW+B,MACrB,KAAM,IAAI3B,OAAM,SAAW0C,EAAO,uBAIpC,IAAiC,kBAAtBZ,GAAKoB,MAAMC,OACpB,KAAM,IAAInD,OAAM,8CAElB,IAAIoE,IAAY,UAAW,eAAgB,QAC3C,KAAKH,EAAI,EAAGA,EAAIG,EAASjD,OAAQ8C,IAE/B,GADAC,EAAOE,EAASH,GACZC,IAAQpC,GAAKoB,MACf,KAAM,IAAIlD,OAAM,sBAAwBkE,EAAO,yBAInDtE,GAAW+B,MAAMe,GAAQZ,IAK7BlC,EAAWoE,aAAavC,GACxB7B,EAAWoE,aAAatC,GAExB5C,EAAOD,QAAUe,GAKZ,SAASd,EAAQD,EAASM,GAE/B,GAAIkF,GAAclF,EAAoB,GAClCmF,EAAUnF,EAAoB,GAC9BoF,EAAYpF,EAAoB,GAChCqF,EAAcrF,EAAoB,GAClCsF,EAAOtF,EAAoB,GAC3BuF,EAAevF,EAAoB,GACnCe,EAAOf,EAAoB,GAG3BsC,IAsBJA,GAAS0B,OAAS,SAAUtD,EAAWC,GACrC,IAAKD,EACH,KAAM,IAAIG,OAAM,iCAElBf,MAAKY,UAAYA,EACjBZ,KAAK0F,OACL1F,KAAK2F,YAAc,GAAIP,GACvBpF,KAAK4F,UAAYC,OACjB7F,KAAK8F,gBACHC,UAEF/F,KAAK4E,eAAiB,KACtB5E,KAAKgG,cAGLhG,KAAKiG,YAAYpF,GAEbb,KAAKa,QAAQqF,SAAiC,SAAtBlG,KAAKa,QAAQgC,OACvC7C,KAAKkG,QAAU,GAAIb,GAAQrF,OAG7BA,KAAKmG,eACLnG,KAAKoG,gBAOP5D,EAASO,QAAU,WACb/C,KAAKqG,OAASrG,KAAKY,WAAaZ,KAAKqG,MAAMC,YAActG,KAAKY,WAChEZ,KAAKY,UAAU2F,YAAYvG,KAAKqG,QASpC7D,EAASyD,YAAc,SAAUpF,GAU/B,GATAb,KAAKa,SACH2F,QAAQ,EACRN,SAAS,EACTrD,KAAM,OACNY,KAAMoC,OACNrB,OAAQ,MAIN3D,EACF,IAAK,GAAIoE,KAAQpE,GACXA,EAAQ4F,eAAexB,KACzBjF,KAAKa,QAAQoE,GAAQpE,EAAQoE,GAMnCjF,MAAKuE,UAAUvE,KAAKa,QAAQ2D,QAG5BxE,KAAK0G,mBAAqBzF,EAAK0F,SAAS3G,KAAK8E,SAAS8B,KAAK5G,MAAOA,KAAK4C,mBAIzE,IAAIiE,GAAYhB,OAGZiB,EAAW,IAQftE,GAASQ,IAAM,SAAUlC,EAAM2C,GAS7B,GAPIA,IAEFrC,QAAQC,KAAK,qEACbrB,KAAKa,QAAQ4C,KAAOA,GAIlB3C,YAAgBiG,WAAsBlB,SAAT/E,EAC/Bd,KAAKgE,YAEF,CACHhE,KAAKgH,QAAQT,YAAYvG,KAAKiH,MAG9B,IAAIC,IACFC,MAAOnH,KAAKa,QAAQ4C,KACpB2D,MAAOtG,GAELuG,EAAO,GAAI7B,GAAKxF,KAAMkH,EAC1BlH,MAAKsH,SAASD,GAGdrH,KAAK8E,UAGL,IAAIyC,IAAU,CACdvH,MAAKqH,KAAKG,OAAOD,GAEjBvH,KAAKgH,QAAQS,YAAYzH,KAAKiH,OAI5BjH,KAAKkG,SACPlG,KAAKkG,QAAQlC,QAIXhE,KAAK0H,WACP1H,KAAK0H,UAAU1D,SAQnBxB,EAASS,IAAM,WAMb,MAJI4D,IACFA,EAAUc,OAGR3H,KAAKqH,KACArH,KAAKqH,KAAKO,WAGV/B,QAQXrD,EAASa,QAAU,WACjB,MAAOC,MAAKC,UAAUvD,KAAKiD,QAO7BT,EAASU,QAAU,SAASC,GAC1BnD,KAAKgD,IAAI/B,EAAKmC,MAAMD,KAOtBX,EAASgB,QAAU,SAAUC,GAC3BzD,KAAKa,QAAQ4C,KAAOA,EAChBzD,KAAKqH,MACPrH,KAAKqH,KAAKQ,YAAY7H,KAAKa,QAAQ4C,OAQvCjB,EAASkB,QAAU,WACjB,MAAO1D,MAAKa,QAAQ4C,MAUtBjB,EAASsF,MAAQ,WACf,GAAIC,GAAQ/H,KAAKgH,QAAQgB,cAAc,yBACnCD,GACFA,EAAMD,QAEC9H,KAAKqH,KAAK3B,IAAI8B,OACrBxH,KAAKqH,KAAK3B,IAAI8B,OAAOM,QAEd9H,KAAKqH,KAAK3B,IAAIuC,KACrBjI,KAAKqH,KAAK3B,IAAIuC,KAAKH,SAInBC,EAAQ/H,KAAKqG,MAAM2B,cAAc,UAC7BD,GACFA,EAAMD,UAQZtF,EAASwB,MAAQ,WACXhE,KAAKqH,OACPrH,KAAKqH,KAAKa,WACVlI,KAAKmI,MAAM5B,YAAYvG,KAAKqH,KAAKe,gBAC1BpI,MAAKqH,OAShB7E,EAAS8E,SAAW,SAAUD,GAC5BrH,KAAKgE,QAELhE,KAAKqH,KAAOA,EAGZrH,KAAKmI,MAAMV,YAAYJ,EAAKe,WAe9B5F,EAASgE,OAAS,SAAU6B,GAC1B,GAAIC,EAUJ,OATItI,MAAKqH,MACPrH,KAAKgH,QAAQT,YAAYvG,KAAKiH,OAC9BqB,EAAUtI,KAAKqH,KAAKb,OAAO6B,GAC3BrI,KAAKgH,QAAQS,YAAYzH,KAAKiH,QAG9BqB,KAGKA,GAMT9F,EAAS+F,UAAY,WACfvI,KAAKqH,OACPrH,KAAKgH,QAAQT,YAAYvG,KAAKiH,OAC9BjH,KAAKqH,KAAKG,SACVxH,KAAKgH,QAAQS,YAAYzH,KAAKiH,SAOlCzE,EAASgG,YAAc,WACjBxI,KAAKqH,OACPrH,KAAKgH,QAAQT,YAAYvG,KAAKiH,OAC9BjH,KAAKqH,KAAKa,WACVlI,KAAKgH,QAAQS,YAAYzH,KAAKiH,SAkBlCzE,EAASiG,UAAY,SAAUC,EAAQxB,GAEjClH,KAAKkG,SACPlG,KAAKkG,QAAQyC,IAAID,EAAQxB,GAG3BlH,KAAK4I,aASPpG,EAASoG,UAAY,WAKnB,GAHA5I,KAAK0G,qBAGD1G,KAAKa,QAAQW,SACf,IACExB,KAAKa,QAAQW,WAEf,MAAOe,GACLnB,QAAQD,MAAM,+BAAgCoB,KASpDC,EAASsC,SAAW,WAEd9E,KAAKgG,YACPhG,KAAKgG,WAAWlE,QAAQ,SAAUuF,GAChCA,EAAKwB,SAAS,OAIlB,IAAInJ,GAAOM,KAAKqH,IAChB,IAAK3H,EAAL,CAKA,GAAIoJ,GAAkBpJ,EAAKoF,WAGvBiE,IACJ,IAAI/I,KAAK4E,eAAgB,CACvB,GAAIoE,GAAQhJ,KAAK4E,eAAelF,EAAKkI,WAChCoB,KAEHD,EAAe/I,KAAK4E,eAAeqE,OAC9BC,IAAI,SAAU/H,GACb,MAAOF,GAAKkI,mBAAmBhI,KAEhC+H,IAAI,SAAmB/H,GACtB,OACEkG,KAAM3H,EAAK0J,SAASjI,EAAMkI,UAC1BlI,MAAOA,KAGVmI,OAAO,SAAkBC,GACxB,MAAqB,OAAdA,EAAMlC,QAMvBrH,KAAKgG,WAAa8C,EACbU,OAAOT,GACPU,OAAO,SAAwBC,EAAKH,GAGnC,MAAOA,GAAMlC,KACRsC,cACAT,IAAI,SAAUU,GACb,OACEvC,KAAMuC,EACNC,MAAON,EAAMlC,KACblG,OACE2I,QAAyB,WAAhBF,EAAOG,KACV,8BACA,6BAIXP,OAAOE,GAAMH,SAGnBL,IAAI,SAAmBK,GAEtB,MADAA,GAAMlC,KAAKwB,SAASU,EAAMpI,MAAOoI,EAAMM,OAChCN,EAAMlC,SASrB7E,EAASwH,gBAAkB,SAAUC,GACnC,GAAIC,GAAKlK,KACLgH,EAAUhH,KAAKgH,QACfmD,EAAMlJ,EAAKmJ,eAAepD,GAC1BqD,EAASrD,EAAQsD,aACjBC,EAASJ,EAAME,EACfG,EAAS,GACTC,EAAW,EAEDN,GAAMK,EAAfP,GAA0BjD,EAAQ0D,UAAY,EACjD1K,KAAK2K,gBAAmBR,EAAMK,EAAUP,GAAU,EAE3CA,EAASM,EAASC,GACvBH,EAASrD,EAAQ0D,UAAY1D,EAAQ4D,aACvC5K,KAAK2K,gBAAmBJ,EAASC,EAAUP,GAAU,EAGrDjK,KAAK2K,eAAiB9E,OAGpB7F,KAAK2K,eACF3K,KAAK6K,kBACR7K,KAAK6K,gBAAkBC,YAAY,WAC7BZ,EAAGS,eACL3D,EAAQ0D,WAAaR,EAAGS,eAGxBT,EAAGa,kBAEJN,IAILzK,KAAK+K,kBAOTvI,EAASuI,eAAiB,WACpB/K,KAAK6K,kBACPG,aAAahL,KAAK6K,uBACX7K,MAAK6K,iBAEV7K,KAAK2K,sBACA3K,MAAK2K,gBAehBnI,EAASyI,aAAe,SAAUrF,GAC3BA,IAID,aAAeA,IAAa5F,KAAKgH,UAEnChH,KAAKgH,QAAQ0D,UAAY9E,EAAU8E,WAEjC9E,EAAUG,OAEZ/F,KAAKkL,OAAOtF,EAAUG,OAEpBH,EAAUuF,OACZlK,EAAKmK,mBAAmBxF,EAAUuF,OAEhCvF,EAAUF,KACZE,EAAUF,IAAIoC,UAalBtF,EAAS6I,aAAe,WACtB,GAAIF,GAAQlK,EAAKqK,oBAKjB,OAJIH,IAAsC,QAA7BA,EAAMvK,UAAU2K,WAC3BJ,EAAQ,OAIRzF,IAAKoB,EACLqE,MAAOA,EACPpF,MAAO/F,KAAK8F,eAAeC,MAAMyF,MAAM,GACvCd,UAAW1K,KAAKgH,QAAUhH,KAAKgH,QAAQ0D,UAAY,IAavDlI,EAASiJ,SAAW,SAAUtB,EAAKuB,GACjC,GAAI1E,GAAUhH,KAAKgH,OACnB,IAAIA,EAAS,CACX,GAAI2E,GAAS3L,IAET2L,GAAOC,iBACTZ,aAAaW,EAAOC,sBACbD,GAAOC,gBAEZD,EAAOE,kBACTF,EAAOE,iBAAgB,SAChBF,GAAOE,gBAIhB,IAAIxB,GAASrD,EAAQsD,aACjBC,EAASvD,EAAQ4D,aAAeP,EAChCyB,EAAiBC,KAAKC,IAAID,KAAKE,IAAI9B,EAAME,EAAS,EAAG,GAAIE,GAGzD2B,EAAU,WACZ,GAAIxB,GAAY1D,EAAQ0D,UACpByB,EAAQL,EAAiBpB,CACzBqB,MAAKK,IAAID,GAAQ,GACnBnF,EAAQ0D,WAAayB,EAAO,EAC5BR,EAAOE,gBAAkBH,EACzBC,EAAOC,eAAiBS,WAAWH,EAAS,MAIxCR,GACFA,GAAS,GAEX1E,EAAQ0D,UAAYoB,QACbH,GAAOC,qBACPD,GAAOE,iBAGlBK,SAGIR,IACFA,GAAS,IASflJ,EAAS2D,aAAe,WAQtB,QAASmG,GAAQC,GAGXZ,EAAOa,UACTb,EAAOa,SAASD,GAVpBvM,KAAKqG,MAAQoG,SAASC,cAAc,OACpC1M,KAAKqG,MAAMsG,UAAY,8BAAgC3M,KAAKa,QAAQgC,KACpE7C,KAAKY,UAAU6G,YAAYzH,KAAKqG,MAGhC,IAAIsF,GAAS3L,IAQbA,MAAKqG,MAAMuG,QAAU,SAAUL,GAC7B,GAAIM,GAASN,EAAMM,MAEnBP,GAAQC,GAIe,UAAnBM,EAAOtB,UACTgB,EAAMO,kBAGV9M,KAAKqG,MAAM0G,QAAUT,EACrBtM,KAAKqG,MAAM2G,SAAWV,EACtBtM,KAAKqG,MAAM4G,UAAYX,EACvBtM,KAAKqG,MAAM6G,QAAUZ,EACrBtM,KAAKqG,MAAM8G,MAAQb,EACnBtM,KAAKqG,MAAM+G,QAAUd,EACrBtM,KAAKqG,MAAMgH,YAAcf,EACzBtM,KAAKqG,MAAMiH,UAAYhB,EACvBtM,KAAKqG,MAAMkH,YAAcjB,EACzBtM,KAAKqG,MAAMmH,WAAalB,EAIxBrL,EAAKwM,iBAAiBzN,KAAKqG,MAAO,QAASiG,GAAS,GACpDrL,EAAKwM,iBAAiBzN,KAAKqG,MAAO,OAAQiG,GAAS,GACnDtM,KAAKqG,MAAMqH,UAAYpB,EACvBtM,KAAKqG,MAAMsH,WAAarB,EAGxBtM,KAAKiI,KAAOwE,SAASC,cAAc,OACnC1M,KAAKiI,KAAK0E,UAAY,kBACtB3M,KAAKqG,MAAMoB,YAAYzH,KAAKiI,KAG5B,IAAIM,GAAYkE,SAASC,cAAc,SACvCnE,GAAUoE,UAAY,wBACtBpE,EAAUqF,MAAQ,oBAClBrF,EAAUqE,QAAU,WAClBjB,EAAOpD,aAETvI,KAAKiI,KAAKR,YAAYc,EAGtB,IAAIC,GAAciE,SAASC,cAAc,SASzC,IARAlE,EAAYoF,MAAQ,sBACpBpF,EAAYmE,UAAY,0BACxBnE,EAAYoE,QAAU,WACpBjB,EAAOnD,eAETxI,KAAKiI,KAAKR,YAAYe,GAGlBxI,KAAKkG,QAAS,CAEhB,GAAI2H,GAAOpB,SAASC,cAAc,SAClCmB,GAAKlB,UAAY,uCACjBkB,EAAKD,MAAQ,4BACbC,EAAKjB,QAAU,WACbjB,EAAOmC,WAET9N,KAAKiI,KAAKR,YAAYoG,GACtB7N,KAAK0F,IAAImI,KAAOA,CAGhB,IAAIE,GAAOtB,SAASC,cAAc,SAClCqB,GAAKpB,UAAY,kBACjBoB,EAAKH,MAAQ,sBACbG,EAAKnB,QAAU,WACbjB,EAAOqC,WAEThO,KAAKiI,KAAKR,YAAYsG,GACtB/N,KAAK0F,IAAIqI,KAAOA,EAGhB/N,KAAKkG,QAAQ1E,SAAW,WACtBqM,EAAKI,UAAYtC,EAAOzF,QAAQgI,UAChCH,EAAKE,UAAYtC,EAAOzF,QAAQiI,WAElCnO,KAAKkG,QAAQ1E,WAIf,GAAIxB,KAAKa,SAAWb,KAAKa,QAAQ6B,OAAS1C,KAAKa,QAAQ6B,MAAMR,OAAQ,CACnE,GAAIkM,GAAU3I,EAAavB,OAAOlE,KAAMA,KAAKa,QAAQ6B,MAAO1C,KAAKa,QAAQgC,KACzE7C,MAAKiI,KAAKR,YAAY2G,GACtBpO,KAAK0F,IAAI0I,QAAUA,EAIjBpO,KAAKa,QAAQ2F,SACfxG,KAAK0H,UAAY,GAAIpC,GAAUtF,KAAMA,KAAKiI,QAQ9CzF,EAASsL,QAAU,WACb9N,KAAKkG,UAEPlG,KAAKkG,QAAQ2H,OAGb7N,KAAK4I,cAQTpG,EAASwL,QAAU,WACbhO,KAAKkG,UAEPlG,KAAKkG,QAAQ6H,OAGb/N,KAAK4I,cASTpG,EAASgK,SAAW,SAAUD,GACV,WAAdA,EAAMxC,MACR/J,KAAKqO,WAAW9B,GAGA,SAAdA,EAAMxC,OACRjD,EAAWyF,EAAMM,QAGD,aAAdN,EAAMxC,MACR/J,KAAKsO,mBAAmB/B,IAER,aAAdA,EAAMxC,MAAqC,WAAdwC,EAAMxC,MAAmC,SAAdwC,EAAMxC,OAChE/J,KAAKuO,oBAAoBhC,EAG3B,IAAIlF,GAAO7B,EAAKgJ,kBAAkBjC,EAAMM,OAExC,IAAIxF,GAAQA,EAAKoH,SAAU,CACzB,GAAkB,SAAdlC,EAAMxC,KAAiB,CACzB,GAAIwC,EAAMM,QAAUxF,EAAK3B,IAAIuC,KAI3B,WAHAjI,MAAK0O,gBAAgBnC,EAAMM,OAOxBN,GAAMoC,UACT3O,KAAK4O,WAIS,aAAdrC,EAAMxC,MAERvE,EAAKqJ,YAAY7O,KAAK8F,eAAeC,MAAOwG,OAI5B,aAAdA,EAAMxC,OACR/J,KAAK4O,WAEDvH,GAAQkF,EAAMM,QAAUxF,EAAK3B,IAAIoJ,KAEnCtJ,EAAKqJ,YAAYxH,EAAMkF,KAEflF,GAASkF,EAAMM,QAAUxF,EAAK3B,IAAIyB,OAASoF,EAAMM,QAAUxF,EAAK3B,IAAI0B,QAE5EpH,KAAK+O,oBAAoBxC,GAK3BlF,IACFA,EAAKiF,QAAQC,IAIjB/J,EAAS8L,mBAAqB,SAAU/B,GACtCvM,KAAKgP,mBACHC,cAAe1C,EAAMM,OACrBqC,aAAc3C,EAAM4C,MACpBC,aAAc7C,EAAM8C,MACpBC,aAAc,EACdX,UAAU,IAIdnM,EAAS+L,oBAAsB,SAAUhC,GAClCvM,KAAKgP,mBACRhP,KAAKsO,mBAAmB/B,EAG1B,IAAIgD,GAAQhD,EAAM4C,MAAQnP,KAAKgP,kBAAkBE,aAC7CM,EAAQjD,EAAM8C,MAAQrP,KAAKgP,kBAAkBI,YASjD,OAPApP,MAAKgP,kBAAkBM,aAAevD,KAAK0D,KAAKF,EAAQA,EAAQC,EAAQA,GACxExP,KAAKgP,kBAAkBL,SACnB3O,KAAKgP,kBAAkBL,UAAY3O,KAAKgP,kBAAkBM,aAAe,GAE7E/C,EAAM+C,aAAetP,KAAKgP,kBAAkBM,aAC5C/C,EAAMoC,SAAW3O,KAAKgP,kBAAkBL,SAEjCpC,EAAM+C,cAQf9M,EAASuM,oBAAsB,SAAUxC,GACvC,GAAIlF,GAAO7B,EAAKgJ,kBAAkBjC,EAAMM,OAExC,IAA0B,SAAtB7M,KAAKa,QAAQgC,MAA+CgD,SAA5B7F,KAAKa,QAAQa,WAAjD,CAMA1B,KAAK8F,gBACH4J,MAAOrI,GAAQ,KACfsI,IAAK,KACL5J,UAGF/F,KAAKsO,mBAAmB/B,EAExB,IAAIZ,GAAS3L,IACRA,MAAK4P,YACR5P,KAAK4P,UAAY3O,EAAKwM,iBAAiBoC,OAAQ,YAAa,SAAUtD,GACpEZ,EAAOmE,eAAevD,MAGrBvM,KAAK+P,UACR/P,KAAK+P,QAAU9O,EAAKwM,iBAAiBoC,OAAQ,UAAW,SAAUtD,GAChEZ,EAAOqE,kBAAkBzD,QAW/B/J,EAASsN,eAAiB,SAAUvD,GAIlC,GAHAA,EAAMO,iBAEN9M,KAAKuO,oBAAoBhC,GACpBA,EAAMoC,SAAX,CAIA,GAAItH,GAAO7B,EAAKgJ,kBAAkBjC,EAAMM,OAEpCxF,KAC+B,MAA7BrH,KAAK8F,eAAe4J,QACtB1P,KAAK8F,eAAe4J,MAAQrI,GAE9BrH,KAAK8F,eAAe6J,IAAMtI,GAI5BrH,KAAK4O,UAGL,IAAIc,GAAQ1P,KAAK8F,eAAe4J,MAC5BC,EAAM3P,KAAK8F,eAAe6J,KAAO3P,KAAK8F,eAAe4J,KACrDA,IAASC,IAEX3P,KAAK8F,eAAeC,MAAQ/F,KAAKiQ,mBAAmBP,EAAOC,GAC3D3P,KAAKkL,OAAOlL,KAAK8F,eAAeC,UASpCvD,EAASwN,kBAAoB,SAAUzD,GAEjCvM,KAAK8F,eAAeC,MAAM,IAC5B/F,KAAK8F,eAAeC,MAAM,GAAGL,IAAIuC,KAAKH,QAGxC9H,KAAK8F,eAAe4J,MAAQ,KAC5B1P,KAAK8F,eAAe6J,IAAM,KAGtB3P,KAAK4P,YACP3O,EAAKiP,oBAAoBL,OAAQ,YAAa7P,KAAK4P,iBAC5C5P,MAAK4P,WAEV5P,KAAK+P,UACP9O,EAAKiP,oBAAoBL,OAAQ,UAAW7P,KAAK+P,eAC1C/P,MAAK+P,UAShBvN,EAASoM,SAAW,SAAUuB,GAC5BnQ,KAAK8F,eAAeC,MAAMjE,QAAQ,SAAUuF,GAC1CA,EAAK+I,aAAY,KAEnBpQ,KAAK8F,eAAeC,SAEhBoK,IACFnQ,KAAK8F,eAAe4J,MAAQ,KAC5B1P,KAAK8F,eAAe6J,IAAM,OAQ9BnN,EAAS0I,OAAS,SAAUnF,GAC1B,IAAKsK,MAAMnL,QAAQa,GACjB,MAAO/F,MAAKkL,QAAQnF,GAGtB,IAAIA,EAAO,CACT/F,KAAK4O,WAEL5O,KAAK8F,eAAeC,MAAQA,EAAMyF,MAAM,EAExC,IAAI8E,GAAQvK,EAAM,EAClBA,GAAMjE,QAAQ,SAAUuF,GACtBA,EAAK+I,aAAY,EAAM/I,IAASiJ,OActC9N,EAASyN,mBAAqB,SAAUP,EAAOC,GAI7C,IAHA,GAAIY,GAAYb,EAAMc,UAClBC,EAAUd,EAAIa,UACdxL,EAAI,EACDA,EAAIuL,EAAUrO,QAAUqO,EAAUvL,KAAOyL,EAAQzL,IACtDA,GAEF,IAAItF,GAAO6Q,EAAUvL,EAAI,GACrB0L,EAAaH,EAAUvL,GACvB2L,EAAWF,EAAQzL,EAgBvB,IAdK0L,GAAeC,IACdjR,EAAKkK,QAEP8G,EAAahR,EACbiR,EAAWjR,EACXA,EAAOA,EAAKkK,SAIZ8G,EAAahR,EAAKkR,OAAO,GACzBD,EAAWjR,EAAKkR,OAAOlR,EAAKkR,OAAO1O,OAAS,KAI5CxC,GAAQgR,GAAcC,EAAU,CAClC,GAAIE,GAAanR,EAAKkR,OAAO5O,QAAQ0O,GACjCI,EAAWpR,EAAKkR,OAAO5O,QAAQ2O,GAC/BI,EAAahF,KAAKC,IAAI6E,EAAYC,GAClCE,EAAYjF,KAAKE,IAAI4E,EAAYC,EAErC,OAAOpR,GAAKkR,OAAOpF,MAAMuF,EAAYC,EAAY,GAGjD,UASJxO,EAAS6L,WAAa,SAAU9B,GAC9B,GAAI0E,GAAS1E,EAAM2E,OAAS3E,EAAM4E,QAC9BC,EAAU7E,EAAM6E,QAChBC,EAAW9E,EAAM8E,SACjBC,GAAU,CASd,IAPc,GAAVL,GACF5E,WAAW,WAETpL,EAAKsQ,sBAAsBzK,IAC1B,GAGD9G,KAAK0H,UACP,GAAI0J,GAAqB,IAAVH,EACbjR,KAAK0H,UAAUhC,IAAIc,OAAOsB,QAC1B9H,KAAK0H,UAAUhC,IAAIc,OAAO0E,SAC1BoG,GAAU,MAEP,IAAc,KAAVL,GAAkBG,GAAqB,IAAVH,EAAe,CACnD,GAAInJ,IAAQ,CACPuJ,GAMHrR,KAAK0H,UAAU8J,SAAS1J,GAJxB9H,KAAK0H,UAAU+J,KAAK3J,GAOtBwJ,GAAU,EAIVtR,KAAKkG,UACHkL,IAAYC,GAAsB,IAAVJ,GAE1BjR,KAAK8N,UACLwD,GAAU,GAEHF,GAAWC,GAAsB,IAAVJ,IAE9BjR,KAAKgO,UACLsD,GAAU,IAIVA,IACF/E,EAAMO,iBACNP,EAAMmF,oBAQVlP,EAAS4D,aAAe,WACtB,GAAIuL,GAAelF,SAASC,cAAc,MAC1CiF,GAAahF,UAAY,mBACzB3M,KAAK2R,aAAeA,EAEpB3R,KAAKgH,QAAUyF,SAASC,cAAc,OACtC1M,KAAKgH,QAAQ2F,UAAY,kBACzBgF,EAAalK,YAAYzH,KAAKgH,SAE9BhH,KAAKiH,MAAQwF,SAASC,cAAc,SACpC1M,KAAKiH,MAAM0F,UAAY,kBACvB3M,KAAKgH,QAAQS,YAAYzH,KAAKiH,MAI9B,IAAI2K,EACJ5R,MAAK6R,gBAAkBpF,SAASC,cAAc,YACpB,SAAtB1M,KAAKa,QAAQgC,OACf+O,EAAMnF,SAASC,cAAc,OAC7BkF,EAAIE,MAAQ,OACZ9R,KAAK6R,gBAAgBpK,YAAYmK,IAEnCA,EAAMnF,SAASC,cAAc,OAC7BkF,EAAIE,MAAQ,OACZ9R,KAAK6R,gBAAgBpK,YAAYmK,GACjCA,EAAMnF,SAASC,cAAc,OAC7B1M,KAAK6R,gBAAgBpK,YAAYmK,GACjC5R,KAAKiH,MAAMQ,YAAYzH,KAAK6R,iBAE5B7R,KAAKmI,MAAQsE,SAASC,cAAc,SACpC1M,KAAKiH,MAAMQ,YAAYzH,KAAKmI,OAE5BnI,KAAKqG,MAAMoB,YAAYkK,IAUzBnP,EAASkM,gBAAkB,SAAUqD,EAAQC,GAC3C,GAAIC,MACAtG,EAAS3L,IAGbiS,GAAMC,MACJ7J,KAAM,YACNuF,MAAO,qCACPjB,UAAW,uBACXwF,MAAO,WACL3M,EAAK4M,YAAYzG,EAAO7F,eAAeC,UAK3CkM,EAAMC,MACJ7J,KAAM,SACNuF,MAAO,oCACPjB,UAAW,oBACXwF,MAAO,WACL3M,EAAK6M,SAAS1G,EAAO7F,eAAeC,SAIxC,IAAIkC,GAAO,GAAI1C,GAAY0M,GAAQK,MAAON,GAC1C/J,GAAKsK,KAAKR,EAAQ/R,KAAKgH,UAKzBnH,EAAOD,UAEHiD,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,SAGNd,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,SAGNd,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,UAOL,SAAS9D,EAAQD,EAASM,GAE/B,GAAIsS,EACJ,KACEA,EAAMtS,EAAoB,IAE5B,MAAOqC,IAIP,GAAIkD,GAAevF,EAAoB,GACnCe,EAAOf,EAAoB,GAG3BuC,KAEAgQ,EAAa,CAsBjBhQ,GAASyB,OAAS,SAAUtD,EAAWC,GAErCA,EAAUA,MACVb,KAAKa,QAAUA,EAGXA,EAAQ6R,YACV1S,KAAK0S,YAAcC,OAAO9R,EAAQ6R,aAGlC1S,KAAK0S,YAAc,CAIrB,IAAIE,GAAO/R,EAAQ2R,IAAM3R,EAAQ2R,IAAMA,CAGvCxS,MAAK6C,KAAwB,QAAhBhC,EAAQgC,KAAkB,OAAS,OAC/B,QAAb7C,KAAK6C,MAEa,mBAAT+P,KACT5S,KAAK6C,KAAO,OACZzB,QAAQC,KAAK,iKAKjBrB,KAAK6S,MAAQhS,EAAQgS,OAAS,sBAE9B,IAAI3I,GAAKlK,IACTA,MAAKY,UAAYA,EACjBZ,KAAK0F,OACL1F,KAAK8S,UAAYjN,OACjB7F,KAAK+S,SAAWlN,OAChB7F,KAAK4E,eAAiB,KAGtB5E,KAAK0G,mBAAqBzF,EAAK0F,SAAS3G,KAAK8E,SAAS8B,KAAK5G,MAAOA,KAAK4C,mBAEvE5C,KAAK8R,MAAQlR,EAAUoS,YACvBhT,KAAKqK,OAASzJ,EAAU0J,aAExBtK,KAAKqG,MAAQoG,SAASC,cAAc,OACpC1M,KAAKqG,MAAMsG,UAAY,8BAAgC3M,KAAKa,QAAQgC,KACpE7C,KAAKqG,MAAMuG,QAAU,SAAUL,GAE7BA,EAAMO,kBAER9M,KAAKqG,MAAM4G,UAAY,SAAUV,GAC/BrC,EAAGmE,WAAW9B,IAIhBvM,KAAKiI,KAAOwE,SAASC,cAAc,OACnC1M,KAAKiI,KAAK0E,UAAY,kBACtB3M,KAAKqG,MAAMoB,YAAYzH,KAAKiI,KAG5B,IAAIgL,GAAexG,SAASC,cAAc,SAC1CuG,GAAatG,UAAY,oBACzBsG,EAAarF,MAAQ,qEACrB5N,KAAKiI,KAAKR,YAAYwL,GACtBA,EAAarG,QAAU,WACrB,IACE1C,EAAGgJ,SACHhJ,EAAGtB,YAEL,MAAOrG,GACL2H,EAAG7F,SAAS9B,IAKhB,IAAI4Q,GAAgB1G,SAASC,cAAc,SAe3C,IAdAyG,EAAcxG,UAAY,qBAC1BwG,EAAcvF,MAAQ,4DACtB5N,KAAKiI,KAAKR,YAAY0L,GACtBA,EAAcvG,QAAU,WACtB,IACE1C,EAAGkJ,UACHlJ,EAAGtB,YAEL,MAAOrG,GACL2H,EAAG7F,SAAS9B,KAKZvC,KAAKa,SAAWb,KAAKa,QAAQ6B,OAAS1C,KAAKa,QAAQ6B,MAAMR,OAAQ,CACnE,GAAIkM,GAAU3I,EAAavB,OAAOlE,KAAMA,KAAKa,QAAQ6B,MAAO1C,KAAKa,QAAQgC,KACzE7C,MAAKiI,KAAKR,YAAY2G,GACtBpO,KAAK0F,IAAI0I,QAAUA,EASrB,GANApO,KAAKgH,QAAUyF,SAASC,cAAc,OACtC1M,KAAKgH,QAAQ2F,UAAY,mBACzB3M,KAAKqG,MAAMoB,YAAYzH,KAAKgH,SAE5BhH,KAAKY,UAAU6G,YAAYzH,KAAKqG,OAEf,QAAbrG,KAAK6C,KAAgB,CACvB7C,KAAKqT,UAAY5G,SAASC,cAAc,OACxC1M,KAAKqT,UAAUC,MAAMjJ,OAAS,OAC9BrK,KAAKqT,UAAUC,MAAMxB,MAAQ,OAC7B9R,KAAKgH,QAAQS,YAAYzH,KAAKqT,UAE9B,IAAIP,GAAYF,EAAKW,KAAKvT,KAAKqT,UAC/BP,GAAUU,gBAAkBC,EAAAA,EAC5BX,EAAUY,SAAS1T,KAAK6S,OACxBC,EAAUa,oBAAmB,GAC7Bb,EAAUc,YAAY,IACtBd,EAAUe,aAAa/Q,QAAQ,iBAC/BgQ,EAAUe,aAAaC,WAAW9T,KAAK0S,aACvCI,EAAUe,aAAaE,gBAAe,GACtCjB,EAAUe,aAAaG,gBAAe,GACtClB,EAAUmB,SAASC,QAAQ,SAAU,MACrCpB,EAAUmB,SAASC,QAAQ,YAAa,MACxClU,KAAK8S,UAAYA,EAGZ9S,KAAKyG,eAAe,WACvB7E,OAAOuS,eAAenU,KAAM,UAC1BiD,IAAK,WAEH,MADA7B,SAAQC,KAAK,sDACN6I,EAAG4I,WAEZ9P,IAAK,SAAU8P,GACb1R,QAAQC,KAAK,sDACb6I,EAAG4I,UAAYA,IAKrB,IAAIsB,GAAY3H,SAASC,cAAc,IACvC0H,GAAU3M,YAAYgF,SAAS4H,eAAe,mBAC9CD,EAAUE,KAAO,sBACjBF,EAAUvH,OAAS,SACnBuH,EAAUzH,UAAY,uBACtByH,EAAUxH,QAAU,WAIlBiD,OAAO0E,KAAKH,EAAUE,KAAMF,EAAUvH,SAExC7M,KAAKiI,KAAKR,YAAY2M,GAGtBtB,EAAU0B,GAAG,SAAUxU,KAAK4I,UAAUhC,KAAK5G,WAExC,CAEH,GAAI+S,GAAWtG,SAASC,cAAc,WACtCqG,GAASpG,UAAY,kBACrBoG,EAAS0B,YAAa,EACtBzU,KAAKgH,QAAQS,YAAYsL,GACzB/S,KAAK+S,SAAWA,EAGc,OAA1B/S,KAAK+S,SAAShG,QAChB/M,KAAK+S,SAAShG,QAAU/M,KAAK4I,UAAUhC,KAAK5G,MAI5CA,KAAK+S,SAAS/F,SAAWhN,KAAK4I,UAAUhC,KAAK5G,MAIjDA,KAAKuE,UAAUvE,KAAKa,QAAQ2D,SAS9B/B,EAASmG,UAAY,WAKnB,GAHA5I,KAAK0G,qBAGD1G,KAAKa,QAAQW,SACf,IACExB,KAAKa,QAAQW,WAEf,MAAOe,GACLnB,QAAQD,MAAM,+BAAgCoB,KAUpDE,EAAS4L,WAAa,SAAU9B,GAC9B,GAAI0E,GAAS1E,EAAM2E,OAAS3E,EAAM4E,QAC9BG,GAAU,CAEA,MAAVL,GAAiB1E,EAAM6E,UACrB7E,EAAM8E,UACRrR,KAAKoT,UACLpT,KAAK4I,cAGL5I,KAAKkT,SACLlT,KAAK4I,aAEP0I,GAAU,GAGRA,IACF/E,EAAMO,iBACNP,EAAMmF,oBAQVjP,EAASM,QAAU,WAEb/C,KAAK8S,WACP9S,KAAK8S,UAAU4B,UAGb1U,KAAKqG,OAASrG,KAAKY,WAAaZ,KAAKqG,MAAMC,YAActG,KAAKY,WAChEZ,KAAKY,UAAU2F,YAAYvG,KAAKqG,QAOpC5D,EAAS2Q,QAAU,WACjB,GAAItS,GAAOd,KAAKiD,MACZoF,EAAO/E,KAAKC,UAAUzC,EAC1Bd,MAAKkD,QAAQmF,IAMf5F,EAASyQ,OAAS,WAChB,GAAIpS,GAAOd,KAAKiD,MACZoF,EAAO/E,KAAKC,UAAUzC,EAAM,KAAMd,KAAK0S,YAC3C1S,MAAKkD,QAAQmF,IAMf5F,EAASqF,MAAQ,WACX9H,KAAK+S,UACP/S,KAAK+S,SAASjL,QAEZ9H,KAAK8S,WACP9S,KAAK8S,UAAUhL,SAOnBrF,EAASkS,OAAS,WAChB,GAAI3U,KAAK8S,UAAW,CAClB,GAAI8B,IAAQ,CACZ5U,MAAK8S,UAAU6B,OAAOC,KAQ1BnS,EAASO,IAAM,SAASlC,GACtBd,KAAKkD,QAAQI,KAAKC,UAAUzC,EAAM,KAAMd,KAAK0S,eAO/CjQ,EAASQ,IAAM,WACb,GACInC,GADAuH,EAAOrI,KAAKqD,SAGhB,KACEvC,EAAOG,EAAKmC,MAAMiF,GAEpB,MAAO9F,GAEL8F,EAAOpH,EAAK4T,SAASxM,GAGrBvH,EAAOG,EAAKmC,MAAMiF,GAGpB,MAAOvH,IAOT2B,EAASY,QAAU,WACjB,MAAIrD,MAAK+S,SACA/S,KAAK+S,SAAS3L,MAEnBpH,KAAK8S,UACA9S,KAAK8S,UAAUlL,WAEjB,IAOTnF,EAASS,QAAU,SAASC,GAW1B,GAVInD,KAAKa,QAAQiU,iBAAkB,EACjCzM,KAAOpH,EAAK8T,mBAAmB5R,GAG/BkF,KAAOlF,EAGLnD,KAAK+S,WACP/S,KAAK+S,SAAS3L,MAAQiB,MAEpBrI,KAAK8S,UAAW,CAElB,GAAIkC,GAAmBhV,KAAKa,QAAQW,QACpCxB,MAAKa,QAAQW,SAAW,KAExBxB,KAAK8S,UAAUmC,SAAS5M,KAAM,IAE9BrI,KAAKa,QAAQW,SAAWwT,EAI1BhV,KAAK8E,YAOPrC,EAASqC,SAAW,WAEd9E,KAAK0F,IAAIwP,mBACXlV,KAAK0F,IAAIwP,iBAAiB5O,WAAWC,YAAYvG,KAAK0F,IAAIwP,kBAC1DlV,KAAK0F,IAAIwP,iBAAmB,KAE5BlV,KAAKgH,QAAQsM,MAAM6B,aAAe,GAClCnV,KAAKgH,QAAQsM,MAAM8B,cAAgB,GAGrC,IAEItU,GAFAuU,GAAa,EACbpM,IAEJ,KACEnI,EAAOd,KAAKiD,MACZoS,GAAa,EAEf,MAAO9S,IAKP,GAAI8S,GAAcrV,KAAK4E,eAAgB,CACrC,GAAIoE,GAAQhJ,KAAK4E,eAAe9D,EAC3BkI,KACHC,EAASjJ,KAAK4E,eAAeqE,OAAOC,IAAI,SAAU/H,GAChD,MAAOF,GAAKkI,mBAAmBhI,MAKrC,GAAI8H,EAAO/G,OAAS,EAAG,CAErB,GAAIoT,GAAQrM,EAAO/G,OAASuQ,CAC5B,IAAI6C,EAAO,CACTrM,EAASA,EAAOuC,MAAM,EAAGiH,EACzB,IAAI8C,GAASvV,KAAK4E,eAAeqE,OAAO/G,OAASuQ,CACjDxJ,GAAOiJ,KAAK,IAAMqD,EAAS,oBAG7B,GAAIL,GAAmBzI,SAASC,cAAc,MAC9CwI,GAAiBM,UAAY,gDAEzBvM,EAAOC,IAAI,SAAU/H,GACnB,GAAI2I,EASJ,OAPEA,GADmB,gBAAV3I,GACC,wBAA0BA,EAAQ,cAGlC,OAASA,EAAMkI,SAAW,YACvBlI,EAAM2I,QAAU,QAGxB,iEAAmEA,EAAU,UACnF2L,KAAK,IACR,mBAGJzV,KAAK0F,IAAIwP,iBAAmBA,EAC5BlV,KAAKqG,MAAMoB,YAAYyN,EAEvB,IAAI7K,GAAS6K,EAAiB5K,YAC9BtK,MAAKgH,QAAQsM,MAAM6B,cAAiB9K,EAAU,KAC9CrK,KAAKgH,QAAQsM,MAAM8B,cAAgB/K,EAAS,KAI9C,GAAIrK,KAAK8S,UAAW,CAClB,GAAI8B,IAAQ,CACZ5U,MAAK8S,UAAU6B,OAAOC,KAK1B/U,EAAOD,UAEHiD,KAAM,OACNoB,MAAOxB,EACPkB,KAAM,OACNQ,KAAM1B,EAASyQ,SAGfrQ,KAAM,OACNoB,MAAOxB,EACPkB,KAAM,OACNQ,KAAM1B,EAASyQ,UAOd,SAASrT,EAAQD,EAASM,GAE/B,GAAIwV,GAAWxV,EAAoB,GAQnCN,GAAQwD,MAAQ,SAAeuS,GAC7B,IACE,MAAOrS,MAAKF,MAAMuS,GAEpB,MAAOpT,GAKL,KAHA3C,GAAQkF,SAAS6Q,GAGXpT,IAYV3C,EAAQiV,SAAW,SAAUe,GAc3B,QAASC,KAAU,MAAOD,GAASE,OAAO9Q,GAC1C,QAASyM,KAAU,MAAOmE,GAASE,OAAO9Q,EAAI,GAC9C,QAAS+Q,KAAU,MAAOH,GAASE,OAAO9Q,EAAI,GAG9C,QAASgR,KAGP,IAFA,GAAItV,GAAIuV,EAAM/T,OAAS,EAEhBxB,GAAK,GAAG,CACb,GAAIwV,GAAKD,EAAMvV,EACf,IAAW,MAAPwV,GAAqB,OAAPA,GAAsB,OAAPA,GAAsB,MAAPA,EAC9C,MAAOA,EAETxV,KAGF,MAAO,GAIT,QAASyV,KAEP,IADAnR,GAAK,EACEA,EAAI4Q,EAAS1T,SAAsB,MAAX2T,KAA6B,MAAXpE,MAC/CzM,GAEFA,IAAK,EAIP,QAASoR,KAEP,IADApR,GAAK,EACEA,EAAI4Q,EAAS1T,QAAsB,OAAX2T,KAC7B7Q,IAKJ,QAASqR,GAAYC,GACnBL,EAAM/D,KAAK,KACXlN,GAEA,KADA,GAAIvE,GAAIoV,IACD7Q,EAAI4Q,EAAS1T,QAAUzB,IAAM6V,GACxB,MAAN7V,GAAwB,OAAXsV,KAEfE,EAAM/D,KAAK,MAIH,OAANzR,IACFuE,IACAvE,EAAIoV,IAGM,MAANpV,GACFwV,EAAM/D,KAAK,OAGf+D,EAAM/D,KAAKzR,GAEXuE,IACAvE,EAAIoV,GAEFpV,KAAM6V,IACRL,EAAM/D,KAAK,KACXlN,KAKJ,QAASuR,KAMP,IALA,GAAIC,IAAiB,OAAQ,OAAQ,SACjCC,EAAM,GACNhW,EAAIoV,IAEJa,EAAS,eACNA,EAAOC,KAAKlW,IACjBgW,GAAOhW,EACPuE,IACAvE,EAAIoV,GAIJI,GAAM/D,KAD2B,KAA/BsE,EAAcxU,QAAQyU,GACb,IAAMA,EAAM,IAGZA,GAjGf,GAAIR,MACAjR,EAAI,EAKJ4R,EAAQhB,EAASgB,MAAM,uEA+F3B,KA9FIA,IACFhB,EAAWgB,EAAM,IA6Fb5R,EAAI4Q,EAAS1T,QAAQ,CACzB,GAAIzB,GAAIoV,GAEE,OAANpV,GAAwB,MAAXgR,IACf0E,IAEa,MAAN1V,GAAwB,MAAXgR,IACpB2E,IAEa,MAAN3V,GAAoB,MAANA,EACrB4V,EAAY5V,GAEL,aAAakW,KAAKlW,IAAkD,MAA3C,IAAK,KAAKuB,QAAQgU,KAElDO,KAGAN,EAAM/D,KAAKzR,GACXuE,KAIJ,MAAOiR,GAAMR,KAAK,KASpB7V,EAAQmV,mBAAqB,SAAU1M,GAIrC,MAAOA,GAAKwO,QAAQ,mBAAoB,SAASpW,GAC/C,MAAO,OAAO,OAASA,EAAEqW,WAAW,GAAGC,SAAS,KAAKvL,MAAM,OAW/D5L,EAAQkF,SAAW,SAAkB6Q,GACX,mBAAd,GACRD,EAAStS,MAAMuS,GAGfrS,KAAKF,MAAMuS,IAUf/V,EAAQgE,OAAS,SAAgBoT,EAAGC,GAClC,IAAK,GAAIhS,KAAQgS,GACXA,EAAExQ,eAAexB,KACnB+R,EAAE/R,GAAQgS,EAAEhS,GAGhB,OAAO+R,IAQTpX,EAAQoE,MAAQ,SAAgBgT,GAC9B,IAAK,GAAI/R,KAAQ+R,GACXA,EAAEvQ,eAAexB,UACZ+R,GAAE/R,EAGb,OAAO+R,IAQTpX,EAAQmK,KAAO,SAAemN,GAC5B,MAAe,QAAXA,EACK,OAEMrR,SAAXqR,EACK,YAEJA,YAAkBvE,SAA8B,gBAAXuE,GACjC,SAEJA,YAAkBC,SAA8B,gBAAXD,GACjC,SAEJA,YAAkBE,UAA+B,iBAAXF,GAClC,UAEJA,YAAkBG,SAA8B,gBAAXH,GACjC,SAELtX,EAAQsF,QAAQgS,GACX,QAGF,SAQT,IAAII,GAAa,kBACjB1X,GAAQ2X,MAAQ,SAAgBlP,GAC9B,OAAuB,gBAARA,IAAoBA,YAAgB8O,UAC/CG,EAAWX,KAAKtO,IAQtBzI,EAAQsF,QAAU,SAAUsS,GAC1B,MAA+C,mBAAxC5V,OAAOe,UAAUoU,SAASxW,KAAKiX,IASxC5X,EAAQ6X,gBAAkB,SAAyBC,GACjD,GAAIC,GAAOD,EAAKE,uBAChB,OAAOD,GAAKE,KAAOhI,OAAOiI,aAAerL,SAASsL,YAAc,GASlEnY,EAAQwK,eAAiB,SAAwBsN,GAC/C,GAAIC,GAAOD,EAAKE,uBAChB,OAAOD,GAAKxN,IAAM0F,OAAOmI,aAAevL,SAAS/B,WAAa,GAQhE9K,EAAQqY,aAAe,SAAsBP,EAAM/K,GACjD,GAAIuL,GAAUR,EAAK/K,UAAUwL,MAAM,IACD,KAA9BD,EAAQlW,QAAQ2K,KAClBuL,EAAQhG,KAAKvF,GACb+K,EAAK/K,UAAYuL,EAAQzC,KAAK,OASlC7V,EAAQwY,gBAAkB,SAAyBV,EAAM/K,GACvD,GAAIuL,GAAUR,EAAK/K,UAAUwL,MAAM,KAC/BE,EAAQH,EAAQlW,QAAQ2K,EACf,KAAT0L,IACFH,EAAQI,OAAOD,EAAO,GACtBX,EAAK/K,UAAYuL,EAAQzC,KAAK,OASlC7V,EAAQ2Y,gBAAkB,SAAyBC,GAEjD,IAAK,GADD5H,GAAS4H,EAAWC,WACfzT,EAAI,EAAG0T,EAAO9H,EAAO1O,OAAYwW,EAAJ1T,EAAUA,IAAK,CACnD,GAAI6E,GAAQ+G,EAAO5L,EAGf6E,GAAMyJ,OAERzJ,EAAM8O,gBAAgB,QAIxB,IAAIC,GAAa/O,EAAM+O,UACvB,IAAIA,EACF,IAAK,GAAIC,GAAID,EAAW1W,OAAS,EAAG2W,GAAK,EAAGA,IAAK,CAC/C,GAAIC,GAAYF,EAAWC,EACvBC,GAAUC,aAAc,GAC1BlP,EAAM8O,gBAAgBG,EAAUrV,MAMtC7D,EAAQ2Y,gBAAgB1O,KAW5BjK,EAAQoZ,wBAA0B,SAAiCC,GACjE,GAAI9N,GAAOvF,CACR6G,UAASyM,cACV/N,EAAQsB,SAASyM,cACjB/N,EAAMgO,mBAAmBF,GACzB9N,EAAMjD,UAAS,GACftC,EAAYiK,OAAOxE,eACnBzF,EAAUwT,kBACVxT,EAAUyT,SAASlO,KASvBvL,EAAQ2R,sBAAwB,SAA+B0H,GAC7D,GAAKA,GAA6D,OAAnCA,EAAuB1N,SAAtD,CAIA,GAAI+N,GAAKnO,CACL0E,QAAOxE,cAAgBoB,SAASyM,cAClC/N,EAAQsB,SAASyM,cACjB/N,EAAMgO,mBAAmBF,GACzBK,EAAMzJ,OAAOxE,eACbiO,EAAIF,kBACJE,EAAID,SAASlO,MASjBvL,EAAQyL,aAAe,WACrB,GAAIwE,OAAOxE,aAAc,CACvB,GAAIiO,GAAMzJ,OAAOxE,cACjB,IAAIiO,EAAIC,YAAcD,EAAIE,WACxB,MAAOF,GAAIC,WAAW,GAG1B,MAAO,OAQT3Z,EAAQqL,aAAe,SAAsBE,GAC3C,GAAIA,GACE0E,OAAOxE,aAAc,CACvB,GAAIiO,GAAMzJ,OAAOxE,cACjBiO,GAAIF,kBACJE,EAAID,SAASlO,KAcnBvL,EAAQ0L,mBAAqB,WAC3B,GAAIH,GAAQvL,EAAQyL,cAEpB,OAAIF,IAAS,eAAiBA,IAAS,aAAeA,IAClDA,EAAMsO,gBAAmBtO,EAAMsO,gBAAkBtO,EAAMuO,cAEvDC,YAAaxO,EAAMwO,YACnBC,UAAWzO,EAAMyO,UACjBhZ,UAAWuK,EAAMsO,eAAenT,YAI7B,MAUT1G,EAAQwL,mBAAqB,SAA4BlE,GACvD,GAAIuF,SAASyM,aAAerJ,OAAOxE,aAAc,CAC/C,GAAIzF,GAAYiK,OAAOxE,cACvB,IAAGzF,EAAW,CACZ,GAAIuF,GAAQsB,SAASyM,aAEhBhS,GAAOtG,UAAUiZ,YACpB3S,EAAOtG,UAAU6G,YAAYgF,SAAS4H,eAAe,KAKvDlJ,EAAM2O,SAAS5S,EAAOtG,UAAUiZ,WAAY3S,EAAOyS,aACnDxO,EAAM4O,OAAO7S,EAAOtG,UAAUiZ,WAAY3S,EAAO0S,WAEjDha,EAAQqL,aAAaE,MAW3BvL,EAAQoa,aAAe,SAAsBC,EAASC,GACpD,GAAI5J,GAAmBzK,QAAVqU,CAgBb,IAfI5J,IACF4J,GACE7R,KAAQ,GACR8R,MAAS,WACP,GAAI9R,GAAOrI,KAAKqI,IAEhB,OADArI,MAAKqI,KAAO,GACLA,GAETrF,IAAO,SAAUqF,GACfrI,KAAKqI,KAAOA,KAMd4R,EAAQG,UACV,MAAOF,GAAOC,QAAUF,EAAQG,SAIlC,IAAIH,EAAQI,gBAAiB,CAI3B,IAAK,GAHD5B,GAAawB,EAAQxB,WACrB6B,EAAY,GAEPtV,EAAI,EAAG0T,EAAOD,EAAWvW,OAAYwW,EAAJ1T,EAAUA,IAAK,CACvD,GAAI6E,GAAQ4O,EAAWzT,EAEvB,IAAsB,OAAlB6E,EAAM0B,UAAuC,KAAlB1B,EAAM0B,SAAiB,CACpD,GAAIgP,GAAY9B,EAAWzT,EAAI,GAC3BwV,EAAWD,EAAYA,EAAUhP,SAAW1F,MAC5C2U,IAAwB,OAAZA,GAAiC,KAAZA,GAA+B,MAAZA,IACtDF,GAAa,KACbJ,EAAOC,SAETG,GAAa1a,EAAQoa,aAAanQ,EAAOqQ,GACzCA,EAAOlX,IAAI,UAEc,MAAlB6G,EAAM0B,UACb+O,GAAaJ,EAAOC,QACpBD,EAAOlX,IAAI,OAGXsX,GAAa1a,EAAQoa,aAAanQ,EAAOqQ,GAI7C,MAAOI,GAGP,MAAwB,KAApBL,EAAQ1O,UAA2D,IAAxC3L,EAAQsB,6BAM9BgZ,EAAOC,QAKX,IASTva,EAAQsB,2BAA6B,WACnC,GAAkB,IAAduZ,EAAkB,CACpB,GAAIC,GAAK,EACT,IAAyB,+BAArBC,UAAUC,QACd,CACE,GAAIC,GAAKF,UAAUG,UACfC,EAAM,GAAI1D,QAAO,6BACF,OAAf0D,EAAGC,KAAKH,KACVH,EAAKO,WAAY5D,OAAO6D,KAI5BT,EAAaC,EAGf,MAAOD,IAOT7a,EAAQub,UAAY,WAClB,MAAkD,IAA1CR,UAAUG,UAAU9Y,QAAQ,WAQtC,IAAIyY,GAAa,EAWjB7a,GAAQ6N,iBAAmB,SAA0BwM,EAASvR,EAAQ0S,EAAUC,GAC9E,GAAIpB,EAAQxM,iBASV,MARmB5H,UAAfwV,IACFA,GAAa,GAEA,eAAX3S,GAA2B9I,EAAQub,cACrCzS,EAAS,kBAGXuR,EAAQxM,iBAAiB/E,EAAQ0S,EAAUC,GACpCD,CACF,IAAInB,EAAQqB,YAAa,CAE9B,GAAIC,GAAI,WACN,MAAOH,GAAS7a,KAAK0Z,EAASpK,OAAOtD,OAGvC,OADA0N,GAAQqB,YAAY,KAAO5S,EAAQ6S,GAC5BA,IAWX3b,EAAQsQ,oBAAsB,SAA6B+J,EAASvR,EAAQ0S,EAAUC,GAChFpB,EAAQ/J,qBACSrK,SAAfwV,IACFA,GAAa,GAEA,eAAX3S,GAA2B9I,EAAQub,cACrCzS,EAAS,kBAGXuR,EAAQ/J,oBAAoBxH,EAAQ0S,EAAUC,IACrCpB,EAAQuB,aAEjBvB,EAAQuB,YAAY,KAAO9S,EAAQ0S,IASvCxb,EAAQ6b,UAAY,QAASA,GAAUC,GACrC,GAAIzW,GAAM0W,CAEV,IAAwB,IAApBD,EAASxZ,OACX,QAIF,IAAI0U,GAAQ8E,EAAS9E,MAAM,WAC3B,IAAIA,EACF3R,EAAO2R,EAAM,GACb+E,EAAYD,EAASE,OAAO3W,EAAK/C,OAAS,OAEvC,CAAA,GAAoB,MAAhBwZ,EAAS,GAchB,KAAM,IAAIG,aAAY,uBAZtB,IAAIlM,GAAM+L,EAAS1Z,QAAQ,IAC3B,IAAY,KAAR2N,EACF,KAAM,IAAIkM,aAAY,+BAExB,IAAY,IAARlM,EACF,KAAM,IAAIkM,aAAY,yBAGxB5W,GAAO3B,KAAKF,MAAMsY,EAASI,UAAU,EAAGnM,IACxCgM,EAAYD,EAASE,OAAOjM,EAAM,GAMpC,OAAQ1K,GAAMuE,OAAOiS,EAAUE,KAQjC/b,EAAQuJ,mBAAqB,SAAUhI,GACrC,GAAsB,SAAlBA,EAAM4a,SAAsB1L,MAAMnL,QAAQ/D,EAAMqD,QAAS,CAC3D,GAAIwX,GAAQ7a,EAAMqD,MAClB,IAAIwX,EAAO,CAKT,GAJAA,EAAQA,EAAM9S,IAAI,SAAU9B,GAC1B,MAAO9D,MAAKC,UAAU6D,KAGpB4U,EAAM9Z,OAAS,EAAG,CACpB,GAAI+Z,IAAQ,KAAOD,EAAM9Z,OAAS,GAAK,YACvC8Z,GAAQA,EAAMxQ,MAAM,EAAG,GACvBwQ,EAAM9J,KAAK+J,GAEb9a,EAAM2I,QAAU,8BAAgCkS,EAAMvG,KAAK,OAI/D,MAAOtU,IASTvB,EAAQsc,WAAa,SAAUtS,EAAQC,EAAOW,GAC5C,GAAI2R,GAAqBtW,SAAX2E,EAAuBA,EAAS,CAC9C,OAAOX,GAAMgO,KAASsE,GAAWvS,EAAOiO,MACjChO,EAAMuS,MAASD,GAAWvS,EAAOwS,OACjCvS,EAAMM,IAASgS,GAAWvS,EAAOO,KACjCN,EAAMU,OAAS4R,GAAWvS,EAAOW,QAiB1C3K,EAAQ+G,SAAW,SAAkB0V,EAAMC,EAAMC,GAC/C,GAAIC,EACJ,OAAO,YACL,GAAIC,GAAUzc,KAAM0c,EAAOza,UACvB0a,EAAQ,WACVH,EAAU,KACLD,GAAWF,EAAKO,MAAMH,EAASC,IAElCG,EAAUN,IAAcC,CAC5BxR,cAAawR,GACbA,EAAUnQ,WAAWsQ,EAAOL,GACxBO,GAASR,EAAKO,MAAMH,EAASC,KAYrC9c,EAAQkd,SAAW,SAAkBC,EAASC,GAM5C,IALA,GAAIC,GAAMD,EAAQ9a,OACdwN,EAAQ,EACRwN,EAASH,EAAQ7a,OACjBib,EAASH,EAAQ9a,OAEd8a,EAAQlH,OAAOpG,KAAWqN,EAAQjH,OAAOpG,IACrCuN,EAARvN,GACDA,GAGF,MAAOsN,EAAQlH,OAAOqH,EAAS,KAAOJ,EAAQjH,OAAOoH,EAAS,IAC3DC,EAASzN,GAASwN,EAAS,GAC5BC,IACAD,GAGF,QAAQxN,MAAOA,EAAOC,IAAKwN,KAMxB,SAAStd,EAAQD,EAASM,GAO/B,QAASkF,KACPpF,KAAKod,QAAS,EAOhBhY,EAAYzC,UAAU0a,UAAY,SAAUhW,GACtCrH,KAAKod,SAILpd,KAAKqH,MAAQA,IAEXrH,KAAKqH,MACPrH,KAAKqH,KAAKiW,cAAa,GAIzBtd,KAAKqH,KAAOA,EACZrH,KAAKqH,KAAKiW,cAAa,IAIzBtd,KAAKud,uBAOPnY,EAAYzC,UAAU6a,YAAc,WAClC,IAAIxd,KAAKod,OAAT,CAIA,GAAIlT,GAAKlK,IACLA,MAAKqH,OACPrH,KAAKud,qBAKLvd,KAAKyd,iBAAmBpR,WAAW,WACjCnC,EAAG7C,KAAKiW,cAAa,GACrBpT,EAAG7C,KAAOxB,OACVqE,EAAGuT,iBAAmB5X,QACrB,MAQPT,EAAYzC,UAAU4a,mBAAqB,WACrCvd,KAAKyd,mBACPzS,aAAahL,KAAKyd,kBAClBzd,KAAKyd,iBAAmB5X,SAQ5BT,EAAYzC,UAAU+a,KAAO,WAC3B1d,KAAKod,QAAS,GAMhBhY,EAAYzC,UAAUgb,OAAS,WAC7B3d,KAAKod,QAAS,GAGhBvd,EAAOD,QAAUwF,GAKZ,SAASvF,EAAQD,EAASM,GAS/B,QAASmF,GAASsG,GAChB3L,KAAK2L,OAASA,EACd3L,KAAKgE,QAGLhE,KAAK4d,SACHC,WACEhQ,KAAQ,SAAU3G,GAChBA,EAAOG,KAAKQ,YAAYX,EAAO4W,WAEjC/P,KAAQ,SAAU7G,GAChBA,EAAOG,KAAKQ,YAAYX,EAAO6W,YAGnCC,WACEnQ,KAAQ,SAAU3G,GAChBA,EAAOG,KAAK4W,YAAY/W,EAAO4W,WAEjC/P,KAAQ,SAAU7G,GAChBA,EAAOG,KAAK4W,YAAY/W,EAAO6W,YAGnCG,YACErQ,KAAQ,SAAU3G,GAChBA,EAAOG,KAAK6W,WAAWhX,EAAOiX,UAEhCpQ,KAAQ,SAAU7G,GAChBA,EAAOG,KAAK6W,WAAWhX,EAAOkX,WAIlCC,aACExQ,KAAQ,SAAU3G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAOrD,YAAYc,MAG9B0G,KAAQ,SAAU7G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAOnC,YAAYJ,OAIhCiX,mBACEzQ,KAAQ,SAAU3G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAOrD,YAAYc,MAG9B0G,KAAQ,SAAU7G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAO2U,aAAalX,EAAMH,EAAOsX,gBAI9CC,kBACE5Q,KAAQ,SAAU3G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAOrD,YAAYc,MAG9B0G,KAAQ,SAAU7G,GAChB,GAAIwX,GAAYxX,EAAOwX,SACvBxX,GAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAO+U,YAAYzX,EAAOG,KAAMqX,GACvCA,EAAYrX,MAIlBuX,aACE/Q,KAAQ,SAAU3G,GAChB,GAAI0C,GAAS1C,EAAO0C,OAChB4U,EAAa5U,EAAOgH,OAAO1J,EAAOmR,QAAUzO,EAAOiV,MACvD3X,GAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BuC,EAAO2U,aAAalX,EAAMmX,MAG9BzQ,KAAQ,SAAU7G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAOrD,YAAYc,OAIhCyX,gBACEjR,KAAQ,SAAU3G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAOrD,YAAYc,MAG9B0G,KAAQ,SAAU7G,GAChB,GAAIwX,GAAYxX,EAAOwX,SACvBxX,GAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO0C,OAAO+U,YAAYtX,EAAMqX,GAChCA,EAAYrX,MAIlB0X,WACElR,KAAQ,SAAU3G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAO8X,cAAcpV,OAAOqV,WAAW5X,EAAMH,EAAO8X,kBAGxDjR,KAAQ,SAAU7G,GAChBA,EAAOnB,MAAMjE,QAAQ,SAAUuF,GAC7BH,EAAOgY,cAActV,OAAOqV,WAAW5X,EAAMH,EAAOgY,mBAK1DC,MACEtR,KAAQ,SAAU3G,GAChB,GAAIG,GAAOH,EAAOG,IAClBA,GAAK+X,aACL/X,EAAK8X,KAAOjY,EAAOmY,QACnBhY,EAAKuJ,OAAS1J,EAAOoY,UACrBjY,EAAKkY,cAEPxR,KAAQ,SAAU7G,GAChB,GAAIG,GAAOH,EAAOG,IAClBA,GAAK+X,aACL/X,EAAK8X,KAAOjY,EAAOsY,QACnBnY,EAAKuJ,OAAS1J,EAAOuY,UACrBpY,EAAKkY,gBAlIFrf,EAAoB,EA+I/BmF,GAAQ1C,UAAUnB,SAAW,aAa7B6D,EAAQ1C,UAAUgG,IAAM,SAAUD,EAAQxB,GACxClH,KAAKqY,QACLrY,KAAKkG,QAAQlG,KAAKqY,QAChB3P,OAAUA,EACVxB,OAAUA,EACVwY,UAAa,GAAIC,OAIf3f,KAAKqY,MAAQrY,KAAKkG,QAAQhE,OAAS,GACrClC,KAAKkG,QAAQoS,OAAOtY,KAAKqY,MAAQ,EAAGrY,KAAKkG,QAAQhE,OAASlC,KAAKqY,MAAQ,GAIzErY,KAAKwB,YAMP6D,EAAQ1C,UAAUqB,MAAQ,WACxBhE,KAAKkG,WACLlG,KAAKqY,MAAQ,GAGbrY,KAAKwB,YAOP6D,EAAQ1C,UAAUuL,QAAU,WAC1B,MAAQlO,MAAKqY,OAAS,GAOxBhT,EAAQ1C,UAAUwL,QAAU,WAC1B,MAAQnO,MAAKqY,MAAQrY,KAAKkG,QAAQhE,OAAS,GAM7CmD,EAAQ1C,UAAUkL,KAAO,WACvB,GAAI7N,KAAKkO,UAAW,CAClB,GAAIsJ,GAAMxX,KAAKkG,QAAQlG,KAAKqY,MAC5B,IAAIb,EAAK,CACP,GAAI9O,GAAS1I,KAAK4d,QAAQpG,EAAI9O,OAC1BA,IAAUA,EAAOmF,MACnBnF,EAAOmF,KAAK2J,EAAItQ,QACZsQ,EAAItQ,OAAO0Y,cACb5f,KAAK2L,OAAOV,aAAauM,EAAItQ,OAAO0Y,eAItCxe,QAAQD,MAAM,GAAIJ,OAAM,mBAAqByW,EAAI9O,OAAS,MAG9D1I,KAAKqY,QAGLrY,KAAKwB,aAOT6D,EAAQ1C,UAAUoL,KAAO,WACvB,GAAI/N,KAAKmO,UAAW,CAClBnO,KAAKqY,OAEL,IAAIb,GAAMxX,KAAKkG,QAAQlG,KAAKqY,MAC5B,IAAIb,EAAK,CACP,GAAI9O,GAAS1I,KAAK4d,QAAQpG,EAAI9O,OAC1BA,IAAUA,EAAOqF,MACnBrF,EAAOqF,KAAKyJ,EAAItQ,QACZsQ,EAAItQ,OAAO2Y,cACb7f,KAAK2L,OAAOV,aAAauM,EAAItQ,OAAO2Y,eAItCze,QAAQD,MAAM,GAAIJ,OAAM,mBAAqByW,EAAI9O,OAAS,MAK9D1I,KAAKwB,aAIT3B,EAAOD,QAAUyF,GAKZ,SAASxF,EAAQD,EAASM,GAS/B,QAASoF,GAAWqG,EAAQ/K,GAC1B,GAAI8G,GAAY1H,IAEhBA,MAAK2L,OAASA,EACd3L,KAAKwc,QAAU3W,OACf7F,KAAK8f,MAAQ,IACb9f,KAAK+f,SAAWla,OAEhB7F,KAAK0F,OACL1F,KAAK0F,IAAI9E,UAAYA,CAErB,IAAIqG,GAAQwF,SAASC,cAAc;AACnC1M,KAAK0F,IAAIuB,MAAQA,EACjBA,EAAM0F,UAAY,oBAClB/L,EAAU6G,YAAYR,EACtB,IAAIkB,GAAQsE,SAASC,cAAc,QACnC1M,MAAK0F,IAAIyC,MAAQA,EACjBlB,EAAMQ,YAAYU,EAClB,IAAI6X,GAAKvT,SAASC,cAAc,KAChCvE,GAAMV,YAAYuY,EAElB,IAAIC,GAAKxT,SAASC,cAAc,KAChCsT,GAAGvY,YAAYwY,EACf,IAAI3X,GAAUmE,SAASC,cAAc,MACrC1M,MAAK0F,IAAI4C,QAAUA,EACnBA,EAAQqE,UAAY,qBACpBsT,EAAGxY,YAAYa,GAEf2X,EAAKxT,SAASC,cAAc,MAC5BsT,EAAGvY,YAAYwY,EACf,IAAIC,GAAWzT,SAASC,cAAc,MACtC1M,MAAK0F,IAAIqC,MAAQmY,EACjBA,EAASvT,UAAY,mBACrBuT,EAAStS,MAAQ,2BACjBqS,EAAGxY,YAAYyY,EAGf,IAAIC,GAAa1T,SAASC,cAAc,QACxCwT,GAASzY,YAAY0Y,EACrB,IAAIC,GAAc3T,SAASC,cAAc,QACzCyT,GAAW1Y,YAAY2Y,GACvBJ,EAAKvT,SAASC,cAAc,MAC5B0T,EAAY3Y,YAAYuY,EAExB,IAAIK,GAAgB5T,SAASC,cAAc,SAC3C2T,GAAc1T,UAAY,qBAC1BsT,EAAKxT,SAASC,cAAc,MAC5BuT,EAAGxY,YAAY4Y,GACfL,EAAGvY,YAAYwY,EAEf,IAAIzZ,GAASiG,SAASC,cAAc,QACpC1M,MAAK0F,IAAIc,OAASA,EAClBA,EAAOuG,QAAU,SAAUR,GACzB7E,EAAU4Y,iBAAiB/T,IAE7B/F,EAAOwG,SAAW,SAAUT,GAC1B7E,EAAU6Y,aAEZ/Z,EAAOyG,UAAY,SAAUV,GAC3B7E,EAAU2G,WAAW9B,IAEvB/F,EAAO0G,QAAU,SAAUX,GACzB7E,EAAU8Y,SAASjU,IAErB8T,EAAczT,QAAU,SAAUL,GAChC/F,EAAO0E,UAIT+U,EAAKxT,SAASC,cAAc,MAC5BuT,EAAGxY,YAAYjB,GACfwZ,EAAGvY,YAAYwY,EAEf,IAAIQ,GAAahU,SAASC,cAAc,SACxC+T,GAAW7S,MAAQ,sBACnB6S,EAAW9T,UAAY,kBACvB8T,EAAW7T,QAAU,WACnBlF,EAAU+J,QAEZwO,EAAKxT,SAASC,cAAc,MAC5BuT,EAAGxY,YAAYgZ,GACfT,EAAGvY,YAAYwY,EAEf,IAAIS,GAAiBjU,SAASC,cAAc,SAC5CgU,GAAe9S,MAAQ,gCACvB8S,EAAe/T,UAAY,sBAC3B+T,EAAe9T,QAAU,WACvBlF,EAAU8J,YAEZyO,EAAKxT,SAASC,cAAc,MAC5BuT,EAAGxY,YAAYiZ,GACfV,EAAGvY,YAAYwY,GAQjB3a,EAAU3C,UAAU8O,KAAO,SAAS3J,GAClC,GAAoBjC,QAAhB7F,KAAKsI,QAAsB,CAC7B,GAAI+P,GAA6BxS,QAApB7F,KAAK2gB,YAA4B3gB,KAAK2gB,YAAc,EAAI,CACjEtI,GAAQrY,KAAKsI,QAAQpG,OAAS,IAChCmW,EAAQ,GAEVrY,KAAK4gB,iBAAiBvI,EAAOvQ,KASjCxC,EAAU3C,UAAU6O,SAAW,SAAS1J,GACtC,GAAoBjC,QAAhB7F,KAAKsI,QAAsB,CAC7B,GAAI2D,GAAMjM,KAAKsI,QAAQpG,OAAS,EAC5BmW,EAA6BxS,QAApB7F,KAAK2gB,YAA4B3gB,KAAK2gB,YAAc,EAAI1U,CACzD,GAARoM,IACFA,EAAQpM,GAEVjM,KAAK4gB,iBAAiBvI,EAAOvQ,KAWjCxC,EAAU3C,UAAUie,iBAAmB,SAASvI,EAAOvQ,GAErD,GAAI9H,KAAK6gB,aAAc,CACrB,GAAIC,GAAW9gB,KAAK6gB,aAAaxZ,KAC7B0Z,EAAW/gB,KAAK6gB,aAAanJ,IACjB,UAAZqJ,QACKD,GAASE,wBAGTF,GAASG,kBAElBH,EAASI,YAGX,IAAKlhB,KAAKsI,UAAYtI,KAAKsI,QAAQ+P,GAIjC,MAFArY,MAAK2gB,YAAc9a,YACnB7F,KAAK6gB,aAAehb,OAItB7F,MAAK2gB,YAActI,CAGnB,IAAIhR,GAAOrH,KAAKsI,QAAQtI,KAAK2gB,aAAatZ,KACtCqQ,EAAO1X,KAAKsI,QAAQtI,KAAK2gB,aAAajJ,IAC9B,UAARA,EACFrQ,EAAK2Z,mBAAoB,EAGzB3Z,EAAK4Z,mBAAoB,EAE3BjhB,KAAK6gB,aAAe7gB,KAAKsI,QAAQtI,KAAK2gB,aACtCtZ,EAAK6Z,YAGL7Z,EAAKoE,SAAS,WACR3D,GACFT,EAAKS,MAAM4P,MASjBpS,EAAU3C,UAAUwe,YAAc,WACZtb,QAAhB7F,KAAKwc,UACPxR,aAAahL,KAAKwc,eACXxc,MAAKwc,UAUhBlX,EAAU3C,UAAU2d,iBAAmB,SAAU/T,GAG/CvM,KAAKmhB,aACL,IAAIzZ,GAAY1H,IAChBA,MAAKwc,QAAUnQ,WAAW,SAAUE,GAClC7E,EAAU6Y,aAEZvgB,KAAK8f,QAUPxa,EAAU3C,UAAU4d,UAAY,SAAUa,GACxCphB,KAAKmhB,aAEL,IAAI/Z,GAAQpH,KAAK0F,IAAIc,OAAOY,MACxBiB,EAAQjB,EAAMlF,OAAS,EAAKkF,EAAQvB,MACxC,IAAIwC,GAAQrI,KAAK+f,UAAYqB,EAO3B,GALAphB,KAAK+f,SAAW1X,EAChBrI,KAAKsI,QAAUtI,KAAK2L,OAAOnF,OAAO6B,GAClCrI,KAAK4gB,iBAAiB/a,QAGVA,QAARwC,EAAmB,CACrB,GAAIgZ,GAAcrhB,KAAKsI,QAAQpG,MAC/B,QAAQmf,GACN,IAAK,GAAGrhB,KAAK0F,IAAI4C,QAAQkN,UAAY,iBAAmB,MACxD,KAAK,GAAGxV,KAAK0F,IAAI4C,QAAQkN,UAAY,eAAiB,MACtD,SAASxV,KAAK0F,IAAI4C,QAAQkN,UAAY6L,EAAc,qBAItDrhB,MAAK0F,IAAI4C,QAAQkN,UAAY,IAUnClQ,EAAU3C,UAAU0L,WAAa,SAAU9B,GACzC,GAAI0E,GAAS1E,EAAM2E,KACL,KAAVD,GACFjR,KAAK0F,IAAIc,OAAOY,MAAQ,GACxBpH,KAAKugB,YACLhU,EAAMO,iBACNP,EAAMmF,mBAEW,IAAVT,IACH1E,EAAM6E,QAERpR,KAAKugB,WAAU,GAERhU,EAAM8E,SAEbrR,KAAKwR,WAILxR,KAAKyR,OAEPlF,EAAMO,iBACNP,EAAMmF,oBASVpM,EAAU3C,UAAU6d,SAAW,SAAUjU,GACvC,GAAI0E,GAAS1E,EAAM4E,OACL,KAAVF,GAA0B,IAAVA,GAClBjR,KAAKsgB,iBAAiB/T,IAO1BjH,EAAU3C,UAAUqB,MAAQ,WAC1BhE,KAAK0F,IAAIc,OAAOY,MAAQ,GACxBpH,KAAKugB,aAGP1gB,EAAOD,QAAU0F,GAKZ,SAASzF,EAAQD,EAASM,GAa/B,QAASqF,GAAa0M,EAAOpR,GAsC3B,QAASygB,GAAiBC,EAAMC,EAAUvP,GACxCA,EAAMnQ,QAAQ,SAAU2f,GACtB,GAAiB,aAAbA,EAAK1X,KAAqB,CAE5B,GAAI2X,GAAYjV,SAASC,cAAc,MACvCgV,GAAU/U,UAAY,uBACtBgV,EAAKlV,SAASC,cAAc,MAC5BiV,EAAGla,YAAYia,GACfH,EAAK9Z,YAAYka,OAEd,CACH,GAAIC,MAGAD,EAAKlV,SAASC,cAAc,KAChC6U,GAAK9Z,YAAYka,EAGjB,IAAIE,GAASpV,SAASC,cAAc,SAgBpC,IAfAmV,EAAOlV,UAAY8U,EAAK9U,UACxBiV,EAAQC,OAASA,EACbJ,EAAK7T,QACPiU,EAAOjU,MAAQ6T,EAAK7T,OAElB6T,EAAKtP,QACP0P,EAAOjV,QAAU,SAAUL,GACzBA,EAAMO,iBACN5C,EAAG4X,OACHL,EAAKtP,UAGTwP,EAAGla,YAAYoa,GAGXJ,EAAKM,QAAS,CAEhB,GAAIC,GAAUvV,SAASC,cAAc,MACrCsV,GAAQrV,UAAY,kBACpBkV,EAAOpa,YAAYua,GACnBH,EAAOpa,YAAYgF,SAAS4H,eAAeoN,EAAKpZ,MAEhD,IAAI4Z,EACJ,IAAIR,EAAKtP,MAAO,CAEd0P,EAAOlV,WAAa,qBAEpB,IAAIuV,GAAezV,SAASC,cAAc,SAC1CkV,GAAQM,aAAeA,EACvBA,EAAavV,UAAY,oBACzBuV,EAAa1M,UAAY,wCACzBmM,EAAGla,YAAYya,GACXT,EAAKU,eACPD,EAAatU,MAAQ6T,EAAKU,cAG5BF,EAAgBC,MAEb,CAEH,GAAIE,GAAY3V,SAASC,cAAc,MACvC0V,GAAUzV,UAAY,oBACtBkV,EAAOpa,YAAY2a,GAEnBH,EAAgBJ,EAIlBI,EAAcrV,QAAU,SAAUL,GAChCA,EAAMO,iBACN5C,EAAGmY,cAAcT,GACjBK,EAAcna,QAIhB,IAAIwa,KACJV,GAAQW,SAAWD,CACnB,IAAIE,GAAK/V,SAASC,cAAc,KAChCkV,GAAQY,GAAKA,EACbA,EAAG7V,UAAY,kBACf6V,EAAGlP,MAAMjJ,OAAS,IAClBsX,EAAGla,YAAY+a,GACflB,EAAgBkB,EAAIF,EAAab,EAAKM,aAItCF,GAAOrM,UAAY,sCAAwCiM,EAAKpZ,IAGlEmZ,GAAStP,KAAK0P,MA7HpB5hB,KAAK0F,MAEL,IAAIwE,GAAKlK,KACL0F,EAAM1F,KAAK0F,GACf1F,MAAK+R,OAASlM,OACd7F,KAAKiS,MAAQA,EACbjS,KAAKyiB,kBACLziB,KAAK4F,UAAYC,OACjB7F,KAAKgS,QAAUnR,EAAUA,EAAQyR,MAAQzM,MAGzC,IAAInG,GAAO+M,SAASC,cAAc,MAClChN,GAAKiN,UAAY,8BACjBjH,EAAIhG,KAAOA,CAGX,IAAIuI,GAAOwE,SAASC,cAAc,MAClCzE,GAAK0E,UAAY,yBACjBjH,EAAIuC,KAAOA,EACXvI,EAAK+H,YAAYQ,EAGjB,IAAIsZ,GAAO9U,SAASC,cAAc,KAClC6U,GAAK5U,UAAY,kBACjB1E,EAAKR,YAAY8Z,GACjB7b,EAAI6b,KAAOA,EACX7b,EAAIuM,QAGJ,IAAIyQ,GAAcjW,SAASC,cAAc,SACzChH,GAAIgd,YAAcA,CAClB,IAAIf,GAAKlV,SAASC,cAAc,KAChCiV,GAAGrO,MAAMqP,SAAW,SACpBhB,EAAGrO,MAAMjJ,OAAS,IAClBsX,EAAGla,YAAYib,GACfnB,EAAK9Z,YAAYka,GA8FjBL,EAAgBC,EAAMvhB,KAAK0F,IAAIuM,MAAOA,GAKtCjS,KAAK4iB,UAAY,EACjB3Q,EAAMnQ,QAAQ,SAAU2f,GACtB,GAAIpX,GAAqE,IAA3D4H,EAAM/P,QAAUuf,EAAKM,QAAUN,EAAKM,QAAQ7f,OAAS,GACnEgI,GAAG0Y,UAAY7W,KAAKE,IAAI/B,EAAG0Y,UAAWvY,KArJ1C,GAAIpJ,GAAOf,EAAoB,EA8J/BqF,GAAY5C,UAAUkgB,mBAAqB,WACzC,GAAIC,MACA5Y,EAAKlK,IAiBT,OAhBAA,MAAK0F,IAAIuM,MAAMnQ,QAAQ,SAAU2f,GAC/BqB,EAAQ5Q,KAAKuP,EAAKI,QACdJ,EAAKS,cACPY,EAAQ5Q,KAAKuP,EAAKS,cAEhBT,EAAKc,UAAYd,GAAQvX,EAAG6Y,cAC9BtB,EAAKc,SAASzgB,QAAQ,SAAUkhB,GAC9BF,EAAQ5Q,KAAK8Q,EAAQnB,QACjBmB,EAAQd,cACVY,EAAQ5Q,KAAK8Q,EAAQd,kBAOtBY,GAITvd,EAAY0d,YAAcpd,OAQ1BN,EAAY5C,UAAU4P,KAAO,SAAUR,EAAQmR,GAC7CljB,KAAK8hB,MAGL,IAAIqB,IAAY,CAChB,IAAID,EAAe,CACjB,GAAIE,GAAarR,EAAO6F,wBACpByL,EAAcH,EAActL,uBAE5BwL,GAAW7Y,OAASvK,KAAK4iB,UAAYS,EAAY9Y,QAG5C6Y,EAAWjZ,IAAMnK,KAAK4iB,UAAYS,EAAYlZ,MAErDgZ,GAAY,GAQhB,GAAIA,EAAW,CAEb,GAAIG,GAAevR,EAAOwR,YAC1BvjB,MAAK0F,IAAIuC,KAAKqL,MAAMuE,KAAO,MAC3B7X,KAAK0F,IAAIuC,KAAKqL,MAAMnJ,IAAMmZ,EAAe,KACzCtjB,KAAK0F,IAAIuC,KAAKqL,MAAM/I,OAAS,OAI7BvK,MAAK0F,IAAIuC,KAAKqL,MAAMuE,KAAO,MAC3B7X,KAAK0F,IAAIuC,KAAKqL,MAAMnJ,IAAM,GAC1BnK,KAAK0F,IAAIuC,KAAKqL,MAAM/I,OAAS,KAI/B,IAAIX,GAASmI,EAAOzL,UACpBsD,GAAO2U,aAAave,KAAK0F,IAAIhG,KAAMkK,EAAOiQ,WAG1C,IAAI3P,GAAKlK,KACLuhB,EAAOvhB,KAAK0F,IAAI6b,IACpBvhB,MAAKyiB,eAAee,UAAYviB,EAAKwM,iBAAiBoC,OAAQ,YAAa,SAAUtD,GAEnF,GAAIM,GAASN,EAAMM,MACdA,IAAU0U,GAAUrX,EAAGuZ,WAAW5W,EAAQ0U,KAC7CrX,EAAG4X,OACHvV,EAAMmF,kBACNnF,EAAMO,oBAGV9M,KAAKyiB,eAAeiB,QAAUziB,EAAKwM,iBAAiBoC,OAAQ,UAAW,SAAUtD,GAC/ErC,EAAGmE,WAAW9B,KAIhBvM,KAAK4F,UAAY3E,EAAKoK,eACtBrL,KAAK+R,OAASA,EACd1F,WAAW,WACTnC,EAAGxE,IAAIgd,YAAY5a,SAClB,GAECvC,EAAY0d,aACd1d,EAAY0d,YAAYnB,OAE1Bvc,EAAY0d,YAAcjjB,MAM5BuF,EAAY5C,UAAUmf,KAAO,WAEvB9hB,KAAK0F,IAAIhG,KAAK4G,aAChBtG,KAAK0F,IAAIhG,KAAK4G,WAAWC,YAAYvG,KAAK0F,IAAIhG,MAC1CM,KAAKgS,SACPhS,KAAKgS,UAMT,KAAK,GAAIvO,KAAQzD,MAAKyiB,eACpB,GAAIziB,KAAKyiB,eAAehc,eAAehD,GAAO,CAC5C,GAAIkgB,GAAK3jB,KAAKyiB,eAAehf,EACzBkgB,IACF1iB,EAAKiP,oBAAoBL,OAAQpM,EAAMkgB,SAElC3jB,MAAKyiB,eAAehf,GAI3B8B,EAAY0d,aAAejjB,OAC7BuF,EAAY0d,YAAcpd,SAU9BN,EAAY5C,UAAU0f,cAAgB,SAAUT,GAC9C,GAAI1X,GAAKlK,KACL4jB,EAAkBhC,GAAW5hB,KAAK+iB,aAGlCA,EAAe/iB,KAAK+iB,YAcxB,IAbIA,IAEFA,EAAaP,GAAGlP,MAAMjJ,OAAS,IAC/B0Y,EAAaP,GAAGlP,MAAMuQ,QAAU,GAChCxX,WAAW,WACLnC,EAAG6Y,cAAgBA,IACrBA,EAAaP,GAAGlP,MAAMwQ,QAAU,GAChC7iB,EAAKmX,gBAAgB2K,EAAaP,GAAGlc,WAAY,yBAElD,KACHtG,KAAK+iB,aAAeld,SAGjB+d,EAAgB,CACnB,GAAIpB,GAAKZ,EAAQY,EACjBA,GAAGlP,MAAMwQ,QAAU,OACNtB,GAAGlY,YAChB+B,YAAW,WACLnC,EAAG6Y,cAAgBnB,IACrBY,EAAGlP,MAAMjJ,OAAiC,GAAvBmY,EAAG/J,WAAWvW,OAAe,KAChDsgB,EAAGlP,MAAMuQ,QAAU,aAEpB,GACH5iB,EAAKgX,aAAauK,EAAGlc,WAAY,uBACjCtG,KAAK+iB,aAAenB,IASxBrc,EAAY5C,UAAU0L,WAAa,SAAU9B,GAC3C,GAGIuW,GAASiB,EAAaC,EAAYC,EAHlCpX,EAASN,EAAMM,OACfoE,EAAS1E,EAAM2E,MACfI,GAAU,CAGA,KAAVL,GAIEjR,KAAK4F,WACP3E,EAAKgK,aAAajL,KAAK4F,WAErB5F,KAAK+R,QACP/R,KAAK+R,OAAOjK,QAGd9H,KAAK8hB,OAELxQ,GAAU,GAEO,GAAVL,EACF1E,EAAM8E,UAUTyR,EAAU9iB,KAAK6iB,qBACfkB,EAAcjB,EAAQ9gB,QAAQ6K,GACX,GAAfkX,IAEFjB,EAAQA,EAAQ5gB,OAAS,GAAG4F,QAC5BwJ,GAAU,KAdZwR,EAAU9iB,KAAK6iB,qBACfkB,EAAcjB,EAAQ9gB,QAAQ6K,GAC1BkX,GAAejB,EAAQ5gB,OAAS,IAElC4gB,EAAQ,GAAGhb,QACXwJ,GAAU,IAaG,IAAVL,GACiB,qBAApBpE,EAAOF,YACTmW,EAAU9iB,KAAK6iB,qBACfkB,EAAcjB,EAAQ9gB,QAAQ6K,GAC9BmX,EAAalB,EAAQiB,EAAc,GAC/BC,GACFA,EAAWlc,SAGfwJ,GAAU,GAEO,IAAVL,GACP6R,EAAU9iB,KAAK6iB,qBACfkB,EAAcjB,EAAQ9gB,QAAQ6K,GAC9BmX,EAAalB,EAAQiB,EAAc,GAC/BC,GAAsC,qBAAxBA,EAAWrX,YAE3BqX,EAAalB,EAAQiB,EAAc,IAEhCC,IAEHA,EAAalB,EAAQA,EAAQ5gB,OAAS,IAEpC8hB,GACFA,EAAWlc,QAEbwJ,GAAU,GAEO,IAAVL,GACP6R,EAAU9iB,KAAK6iB,qBACfkB,EAAcjB,EAAQ9gB,QAAQ6K,GAC9BoX,EAAanB,EAAQiB,EAAc,GAC/BE,GAAsC,qBAAxBA,EAAWtX,WAC3BsX,EAAWnc,QAEbwJ,GAAU,GAEO,IAAVL,IACP6R,EAAU9iB,KAAK6iB,qBACfkB,EAAcjB,EAAQ9gB,QAAQ6K,GAC9BoX,EAAanB,EAAQiB,EAAc,GAC/BE,GAAsC,qBAAxBA,EAAWtX,YAE3BsX,EAAanB,EAAQiB,EAAc,IAEhCE,IAEHA,EAAanB,EAAQ,IAEnBmB,IACFA,EAAWnc,QACXwJ,GAAU,GAEZA,GAAU,GAIRA,IACF/E,EAAMmF,kBACNnF,EAAMO,mBAUVvH,EAAY5C,UAAU8gB,WAAa,SAAU5Z,EAAOD,GAElD,IADA,GAAIvH,GAAIwH,EAAMvD,WACPjE,GAAG,CACR,GAAIA,GAAKuH,EACP,OAAO,CAETvH,GAAIA,EAAEiE,WAGR,OAAO,GAGTzG,EAAOD,QAAU2F,GAKZ,SAAS1F,EAAQD,EAASM,GAiB/B,QAASsF,GAAMmG,EAAQzE,GAErBlH,KAAK2L,OAASA,EACd3L,KAAK0F,OACL1F,KAAKkkB,UAAW,EAEbhd,GAAWA,YAAkBtF,SAC9B5B,KAAKmkB,SAASjd,EAAOC,MAAOD,EAAOkd,eACnCpkB,KAAKiV,SAAS/N,EAAOE,MAAOF,EAAO6C,QAGnC/J,KAAKmkB,SAAS,IACdnkB,KAAKiV,SAAS,OAGhBjV,KAAKqkB,wBAA0BpjB,EAAK0F,SAAS3G,KAAKskB,eAAe1d,KAAK5G,MAAOwF,EAAK7C,UAAUC,mBAC5F5C,KAAKukB,wBAA0BtjB,EAAK0F,SAAS3G,KAAKwkB,eAAe5d,KAAK5G,MAAOwF,EAAK7C,UAAUC,mBA/B9F,GAAI2C,GAAcrF,EAAoB,GAClCukB,EAAoBvkB,EAAoB,IACxCe,EAAOf,EAAoB,EAiC/BsF,GAAK7C,UAAUC,kBAAoB,IAMnC4C,EAAK7C,UAAU+hB,mBAAqB,WAMlC,GALA1kB,KAAKyB,UACH0F,OAAO,EACPC,OAAO,GAGLpH,KAAK2L,SACP3L,KAAKyB,SAAS0F,MAAqC,SAA7BnH,KAAK2L,OAAO9K,QAAQgC,KAC1C7C,KAAKyB,SAAS2F,MAAqC,SAA7BpH,KAAK2L,OAAO9K,QAAQgC,MAER,SAA7B7C,KAAK2L,OAAO9K,QAAQgC,MAAgD,SAA7B7C,KAAK2L,OAAO9K,QAAQgC,OACjB,kBAAnC7C,MAAK2L,OAAO9K,QAAQa,YAA4B,CAC1D,GAAID,GAAWzB,KAAK2L,OAAO9K,QAAQa,YACjCyF,MAAOnH,KAAKmH,MACZC,MAAOpH,KAAKoH,MACZud,KAAM3kB,KAAK4kB,iBAGW,kBAAbnjB,IACTzB,KAAKyB,SAAS0F,MAAQ1F,EACtBzB,KAAKyB,SAAS2F,MAAQ3F,IAGQ,iBAAnBA,GAAS0F,QAAqBnH,KAAKyB,SAAS0F,MAAQ1F,EAAS0F,OAC1C,iBAAnB1F,GAAS2F,QAAqBpH,KAAKyB,SAAS2F,MAAQ3F,EAAS2F,UAUhF5B,EAAK7C,UAAUiiB,cAAgB,WAG7B,IAFA,GAAIvd,GAAOrH,KACP2kB,KACGtd,GAAM,CACX,GAAIF,GAAsBtB,QAAdwB,EAAKF,MAAqBE,EAAKF,MAAQE,EAAKgR,KAC1CxS,UAAVsB,GACFwd,EAAKE,QAAQ1d,GAEfE,EAAOA,EAAKuC,OAEd,MAAO+a,IAQTnf,EAAK7C,UAAUyG,SAAW,SAAUsS,GAGlC,IAFA,GAAIiJ,GAAO1jB,EAAKwa,UAAUC,GACtBrU,EAAOrH,KACJqH,GAAQsd,EAAKziB,OAAS,GAAG,CAC9B,GAAI+C,GAAO0f,EAAKG,OAChB,IAAoB,gBAAT7f,GAAmB,CAC5B,GAAkB,UAAdoC,EAAK0C,KACP,KAAM,IAAIhJ,OAAM,kCAAoCkE,EAAO,qBAE7DoC,GAAOA,EAAKuJ,OAAO3L,OAEhB,CACH,GAAkB,WAAdoC,EAAK0C,KACP,KAAM,IAAIhJ,OAAM,yBAA2BkE,EAAO,sBAEpDoC,GAAOA,EAAKuJ,OAAOtH,OAAO,SAAUO,GAClC,MAAOA,GAAM1C,QAAUlC,IACtB,IAIP,MAAOoC,IAQT7B,EAAK7C,UAAUgH,YAAc,WAG3B,IAFA,GAAIob,MACAnb,EAAS5J,KAAK4J,OACXA,GACLmb,EAAQF,QAAQjb,GAChBA,EAASA,EAAOA,MAElB,OAAOmb,IAWTvf,EAAK7C,UAAUkG,SAAW,SAAU1H,EAAO0I,GAEzC7J,KAAKoI,SAELpI,KAAKmB,MAAQA,CACb,IAAI6jB,GAAUhlB,KAAK0F,IAAIsf,OACvB,IAAI7jB,EAAO,CACJ6jB,IACHA,EAAUvY,SAASC,cAAc,MACjC1M,KAAK0F,IAAIsf,QAAUA,EACnBhlB,KAAK0F,IAAIuf,QAAQ3e,WAAWmB,YAAYud,GAG1C,IAAIE,GAAUzY,SAASC,cAAc,MACrCwY,GAAQvY,UAAY,sCACpBuY,EAAQzd,YAAYgF,SAAS4H,eAAelT,EAAM2I,SAElD,IAAI+X,GAASpV,SAASC,cAAc,SAqCpC,KApCAmV,EAAOlV,UAAY,0BACnBkV,EAAOpa,YAAYyd,GAGnBrD,EAAOtU,YAAcsU,EAAOsD,QAAU,WAEpC,IAAK,GADDC,IAAc,QAAS,QAAS,QAAS,QACpCpgB,EAAI,EAAGA,EAAIogB,EAAWljB,OAAQ8C,IAAK,CAC1C,GAAIqgB,GAAYD,EAAWpgB,EAC3BkgB,GAAQvY,UAAY,iCAAmC0Y,CAEvD,IAAIhC,GAAcrjB,KAAK2L,OAAO3E,QAAQ4Q,wBAClC0N,EAAcJ,EAAQtN,wBACtBpN,EAAS,GACT+a,EAAMtkB,EAAKib,WAAWmH,EAAaiC,EAAa9a,EAEpD,IAAI+a,EACF,QAGJ3e,KAAK5G,MAIH6J,IACFgY,EAAOjV,QAAU,WACf/C,EAAMF,cAAc7H,QAAQ,SAAU8H,GACpCA,EAAOpC,QAAO,KAGhBqC,EAAM4B,SAAS,WACb5B,EAAM/B,YAMLkd,EAAQnL,YACbmL,EAAQze,YAAYye,EAAQnL,WAE9BmL,GAAQvd,YAAYoa,OAGhBmD,KACFhlB,KAAK0F,IAAIsf,QAAQ1e,WAAWC,YAAYvG,KAAK0F,IAAIsf,eAC1ChlB,MAAK0F,IAAIsf,UAUtBxf,EAAK7C,UAAU6iB,SAAW,WACxB,MAAOxlB,MAAK4J,OAAS5J,KAAK4J,OAAOgH,OAAO5O,QAAQhC,MAAQ,IAO1DwF,EAAK7C,UAAU8iB,UAAY,SAAS7b,GAClC5J,KAAK4J,OAASA,GAQhBpE,EAAK7C,UAAUwhB,SAAW,SAAShd,EAAOid,GACxCpkB,KAAKmH,MAAQA,EACbnH,KAAK0lB,cAAgBve,EACrBnH,KAAKokB,cAAiBA,KAAkB,GAO1C5e,EAAK7C,UAAUgjB,SAAW,WAKxB,MAJmB9f,UAAf7F,KAAKmH,OACPnH,KAAK4lB,eAGA5lB,KAAKmH,OASd3B,EAAK7C,UAAUsS,SAAW,SAAS7N,EAAO2C,GACxC,GAAI8b,GAAYhc,EAGZ+G,EAAS5Q,KAAK4Q,MAClB,IAAIA,EACF,KAAOA,EAAO1O,QACZlC,KAAKuG,YAAYqK,EAAO,GAS5B,IAHA5Q,KAAK+J,KAAO/J,KAAK8lB,SAAS1e,GAGtB2C,GAAQA,GAAQ/J,KAAK+J,KAAM,CAC7B,GAAY,UAARA,GAAiC,QAAb/J,KAAK+J,KAI3B,KAAM,IAAIhJ,OAAM,6CACoBf,KAAK+J,KACrC,2BAA6BA,EAAO,IALxC/J,MAAK+J,KAAOA,EAShB,GAAiB,SAAb/J,KAAK+J,KAAiB,CAExB/J,KAAK4Q,SACL,KAAK,GAAI5L,GAAI,EAAG0T,EAAOtR,EAAMlF,OAAYwW,EAAJ1T,EAAUA,IAC7C6gB,EAAaze,EAAMpC,GACAa,SAAfggB,GAA8BA,YAAsB9e,YAEtD8C,EAAQ,GAAIrE,GAAKxF,KAAK2L,QACpBvE,MAAOye,IAET7lB,KAAKyH,YAAYoC,GAGrB7J,MAAKoH,MAAQ,OAEV,IAAiB,UAAbpH,KAAK+J,KAAkB,CAE9B/J,KAAK4Q,SACL,KAAK,GAAImV,KAAc3e,GACjBA,EAAMX,eAAesf,KACvBF,EAAaze,EAAM2e,GACAlgB,SAAfggB,GAA8BA,YAAsB9e,YAEtD8C,EAAQ,GAAIrE,GAAKxF,KAAK2L,QACpBxE,MAAO4e,EACP3e,MAAOye,IAET7lB,KAAKyH,YAAYoC,IAIvB7J,MAAKoH,MAAQ,OAIbpH,MAAK4Q,OAAS/K,OACd7F,KAAKoH,MAAQA,CAafpH,MAAKgmB,cAAgBhmB,KAAKoH,OAO5B5B,EAAK7C,UAAUiF,SAAW,WAGxB,GAAiB,SAAb5H,KAAK+J,KAAiB,CACxB,GAAIkc,KAIJ,OAHAjmB,MAAK4Q,OAAO9O,QAAS,SAAU+H,GAC7Boc,EAAI/T,KAAKrI,EAAMjC,cAEVqe,EAEJ,GAAiB,UAAbjmB,KAAK+J,KAAkB,CAC9B,GAAIyN,KAIJ,OAHAxX,MAAK4Q,OAAO9O,QAAS,SAAU+H,GAC7B2N,EAAI3N,EAAM8b,YAAc9b,EAAMjC,aAEzB4P,EAOP,MAJmB3R,UAAf7F,KAAKoH,OACPpH,KAAKkmB,eAGAlmB,KAAKoH,OAQhB5B,EAAK7C,UAAUwjB,SAAW,WACxB,MAAQnmB,MAAK4J,OAAS5J,KAAK4J,OAAOuc,WAAa,EAAI,GAOrD3gB,EAAK7C,UAAU6N,QAAU,WACvB,GAAImU,GAAO3kB,KAAK4J,OAAS5J,KAAK4J,OAAO4G,YAErC,OADAmU,GAAKzS,KAAKlS,MACH2kB,GASTnf,EAAK7C,UAAUyjB,MAAQ,WACrB,GAAIA,GAAQ,GAAI5gB,GAAKxF,KAAK2L,OAS1B,IARAya,EAAMrc,KAAO/J,KAAK+J,KAClBqc,EAAMjf,MAAQnH,KAAKmH,MACnBif,EAAMC,eAAiBrmB,KAAKqmB,eAC5BD,EAAMhC,cAAgBpkB,KAAKokB,cAC3BgC,EAAMhf,MAAQpH,KAAKoH,MACnBgf,EAAME,eAAiBtmB,KAAKsmB,eAC5BF,EAAMlC,SAAWlkB,KAAKkkB,SAElBlkB,KAAK4Q,OAAQ,CAEf,GAAI2V,KACJvmB,MAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5B,GAAI2c,GAAa3c,EAAMuc,OACvBI,GAAWf,UAAUW,GACrBG,EAAYrU,KAAKsU,KAEnBJ,EAAMxV,OAAS2V,MAIfH,GAAMxV,OAAS/K,MAGjB,OAAOugB,IAQT5gB,EAAK7C,UAAU6E,OAAS,SAASD,GAC1BvH,KAAK4Q,SAKV5Q,KAAKkkB,UAAW,EACZlkB,KAAK0F,IAAI8B,SACXxH,KAAK0F,IAAI8B,OAAOmF,UAAY,uBAG9B3M,KAAKuf,aAEDhY,KAAY,GACdvH,KAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5BA,EAAMrC,OAAOD,OAUnB/B,EAAK7C,UAAUuF,SAAW,SAASX,GAC5BvH,KAAK4Q,SAIV5Q,KAAKof,aAGD7X,KAAY,GACdvH,KAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5BA,EAAM3B,SAASX,KAMfvH,KAAK0F,IAAI8B,SACXxH,KAAK0F,IAAI8B,OAAOmF,UAAY,wBAE9B3M,KAAKkkB,UAAW,IAMlB1e,EAAK7C,UAAU4c,WAAa,WAC1B,GAAI3O,GAAS5Q,KAAK4Q,MAClB,IAAKA,GAGA5Q,KAAKkkB,SAAV,CAIA,GAAIlE,GAAKhgB,KAAK0F,IAAIsa,GACd/Y,EAAQ+Y,EAAKA,EAAG1Z,WAAaT,MACjC,IAAIoB,EAAO,CAET,GAAI4X,GAAS7e,KAAKymB,YACdC,EAAS1G,EAAG2G,WACZD,GACFzf,EAAMsX,aAAaM,EAAQ6H,GAG3Bzf,EAAMQ,YAAYoX,GAIpB7e,KAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5B5C,EAAMsX,aAAa1U,EAAMzB,SAAUyW,GACnChV,EAAM0V,kBAQZ/Z,EAAK7C,UAAUmf,KAAO,WACpB,GAAI9B,GAAKhgB,KAAK0F,IAAIsa,GACd/Y,EAAQ+Y,EAAKA,EAAG1Z,WAAaT,MAC7BoB,IACFA,EAAMV,YAAYyZ,GAEpBhgB,KAAKof,cAOP5Z,EAAK7C,UAAUyc,WAAa,WAC1B,GAAIxO,GAAS5Q,KAAK4Q,MAClB,IAAKA,GAGA5Q,KAAKkkB,SAAV,CAKA,GAAIrF,GAAS7e,KAAKymB,WACd5H,GAAOvY,YACTuY,EAAOvY,WAAWC,YAAYsY,GAIhC7e,KAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5BA,EAAMiY,WAUVtc,EAAK7C,UAAU8E,YAAc,SAASJ,GACpC,GAAIrH,KAAK4mB,aAAc,CASrB,GAPAvf,EAAKoe,UAAUzlB,MACfqH,EAAK+c,cAA8B,UAAbpkB,KAAK+J,KACV,SAAb/J,KAAK+J,OACP1C,EAAKgR,MAAQrY,KAAK4Q,OAAO1O,QAE3BlC,KAAK4Q,OAAOsB,KAAK7K,GAEbrH,KAAKkkB,SAAU,CAEjB,GAAI2C,GAAQxf,EAAKe,SACb0e,EAAW9mB,KAAKymB,YAChBxf,EAAQ6f,EAAWA,EAASxgB,WAAaT,MACzCihB,IAAY7f,GACdA,EAAMsX,aAAasI,EAAOC,GAG5Bzf,EAAKkY,aAGPvf,KAAKkhB,WAAW6F,eAAiB,IACjC1f,EAAK6Z,WAAW3Z,SAAW,MAW/B/B,EAAK7C,UAAUsc,WAAa,SAAS5X,EAAMmX,GACzC,GAAIxe,KAAK4mB,aAAc,CAGrB,GAAIze,GAASnI,KAAK0F,IAAM,GAAI1F,KAAK0F,IAAIsa,GAAG1Z,WAAaT,MACrD,IAAIsC,EAAO,CACT,GAAI6e,GAASva,SAASC,cAAc,KACpCsa,GAAO1T,MAAMjJ,OAASlC,EAAMmC,aAAe,KAC3CnC,EAAMV,YAAYuf,GAGhB3f,EAAKuC,QACPvC,EAAKuC,OAAOrD,YAAYc,GAGtBmX,YAAsByI,GACxBjnB,KAAKyH,YAAYJ,GAGjBrH,KAAKue,aAAalX,EAAMmX,GAGtBrW,GACFA,EAAM5B,YAAYygB,KAYxBxhB,EAAK7C,UAAUukB,OAAS,SAAU7f,EAAMgR,GACtC,GAAIhR,EAAKuC,QAAU5J,KAAM,CAEvB,GAAImnB,GAAennB,KAAK4Q,OAAO5O,QAAQqF,EACpBgR,GAAf8O,GAEF9O,IAIJ,GAAImG,GAAaxe,KAAK4Q,OAAOyH,IAAUrY,KAAK6e,MAC5C7e,MAAKif,WAAW5X,EAAMmX,IASxBhZ,EAAK7C,UAAU4b,aAAe,SAASlX,EAAMmX,GAC3C,GAAIxe,KAAK4mB,aAAc,CACrB,GAAIpI,GAAcxe,KAAK6e,OAIrBxX,EAAKoe,UAAUzlB,MACfqH,EAAK+c,cAA8B,UAAbpkB,KAAK+J,KAC3B/J,KAAK4Q,OAAOsB,KAAK7K,OAEd,CAEH,GAAIgR,GAAQrY,KAAK4Q,OAAO5O,QAAQwc,EAChC,IAAa,IAATnG,EACF,KAAM,IAAItX,OAAM,iBAIlBsG,GAAKoe,UAAUzlB,MACfqH,EAAK+c,cAA8B,UAAbpkB,KAAK+J,KAC3B/J,KAAK4Q,OAAO0H,OAAOD,EAAO,EAAGhR,GAG/B,GAAIrH,KAAKkkB,SAAU,CAEjB,GAAI2C,GAAQxf,EAAKe,SACbse,EAASlI,EAAWpW,SACpBnB,EAAQyf,EAASA,EAAOpgB,WAAaT,MACrC6gB,IAAUzf,GACZA,EAAMsX,aAAasI,EAAOH,GAG5Brf,EAAKkY,aAGPvf,KAAKkhB,WAAW6F,eAAiB,IACjC1f,EAAK6Z,WAAW3Z,SAAW,MAU/B/B,EAAK7C,UAAUgc,YAAc,SAAStX,EAAMqX,GAC1C,GAAI1e,KAAK4mB,aAAc,CACrB,GAAIvO,GAAQrY,KAAK4Q,OAAO5O,QAAQ0c,GAC5BF,EAAaxe,KAAK4Q,OAAOyH,EAAQ,EACjCmG,GACFxe,KAAKue,aAAalX,EAAMmX,GAGxBxe,KAAKyH,YAAYJ,KAYvB7B,EAAK7C,UAAU6D,OAAS,SAAS6B,GAC/B,GACIgQ,GADA/P,KAEA9B,EAAS6B,EAAOA,EAAK+e,cAAgBvhB,MAOzC,UAJO7F,MAAKqnB,kBACLrnB,MAAKsnB,YAGMzhB,QAAd7F,KAAKmH,MAAoB,CAC3B,GAAIA,GAAQgQ,OAAOnX,KAAKmH,OAAOigB,aAC/B/O,GAAQlR,EAAMnF,QAAQwE,GACT,IAAT6R,IACFrY,KAAKqnB,aAAc,EACnB/e,EAAQ4J,MACN7K,KAAQrH,KACR0X,KAAQ,WAKZ1X,KAAKunB,kBAIP,GAAIvnB,KAAK4mB,aAAc,CAIrB,GAAI5mB,KAAK4Q,OAAQ,CACf,GAAI4W,KACJxnB,MAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5B2d,EAAeA,EAAahe,OAAOK,EAAMrD,OAAO6B,MAElDC,EAAUA,EAAQkB,OAAOge,GAI3B,GAAc3hB,QAAVW,EAAqB,CACvB,GAAIe,IAAU,CACa,IAAvBigB,EAAatlB,OACflC,KAAKkI,SAASX,GAGdvH,KAAKwH,OAAOD,QAIb,CAEH,GAAkB1B,QAAd7F,KAAKoH,MAAqB,CAC5B,GAAIA,GAAQ+P,OAAOnX,KAAKoH,OAAOggB,aAC/B/O,GAAQjR,EAAMpF,QAAQwE,GACT,IAAT6R,IACFrY,KAAKsnB,aAAc,EACnBhf,EAAQ4J,MACN7K,KAAQrH,KACR0X,KAAQ,WAMd1X,KAAKynB,kBAGP,MAAOnf,IAQT9C,EAAK7C,UAAU8I,SAAW,SAASC,GACjC,IAAK1L,KAAK0F,IAAIsa,KAAOhgB,KAAK0F,IAAIsa,GAAG1Z,WAI/B,IAFA,GAAIsD,GAAS5J,KAAK4J,OACdrC,GAAU,EACPqC,GACLA,EAAOpC,OAAOD,GACdqC,EAASA,EAAOA,MAIhB5J,MAAK0F,IAAIsa,IAAMhgB,KAAK0F,IAAIsa,GAAG1Z,YAC7BtG,KAAK2L,OAAOF,SAASzL,KAAK0F,IAAIsa,GAAG0H,UAAWhc,IAMhDlG,EAAKmiB,aAAe9hB,OAQpBL,EAAK7C,UAAUmF,MAAQ,SAAS8f,GAG9B,GAFApiB,EAAKmiB,aAAeC,EAEhB5nB,KAAK0F,IAAIsa,IAAMhgB,KAAK0F,IAAIsa,GAAG1Z,WAAY,CACzC,GAAIZ,GAAM1F,KAAK0F,GAEf,QAAQkiB,GACN,IAAK,OACCliB,EAAIoJ,KACNpJ,EAAIoJ,KAAKhH,QAGTpC,EAAIuC,KAAKH,OAEX,MAEF,KAAK,OACHpC,EAAIuC,KAAKH,OACT,MAEF,KAAK,SACC9H,KAAK4mB,aACPlhB,EAAI8B,OAAOM,QAEJpC,EAAIyB,OAASnH,KAAKokB,eACzB1e,EAAIyB,MAAMW,QACV7G,EAAKsQ,sBAAsB7L,EAAIyB,QAExBzB,EAAI0B,QAAUpH,KAAK4mB,cAC1BlhB,EAAI0B,MAAMU,QACV7G,EAAKsQ,sBAAsB7L,EAAI0B,QAG/B1B,EAAIuC,KAAKH,OAEX,MAEF,KAAK,QACCpC,EAAIyB,OAASnH,KAAKokB,eACpB1e,EAAIyB,MAAMW,QACV7G,EAAKsQ,sBAAsB7L,EAAIyB,QAExBzB,EAAI0B,QAAUpH,KAAK4mB,cAC1BlhB,EAAI0B,MAAMU,QACV7G,EAAKsQ,sBAAsB7L,EAAI0B,QAExBpH,KAAK4mB,aACZlhB,EAAI8B,OAAOM,QAGXpC,EAAIuC,KAAKH,OAEX,MAEF,KAAK,QACL,QACMpC,EAAI0B,QAAUpH,KAAK4mB,cACrBlhB,EAAI0B,MAAMU,QACV7G,EAAKsQ,sBAAsB7L,EAAI0B,QAExB1B,EAAIyB,OAASnH,KAAKokB,eACzB1e,EAAIyB,MAAMW,QACV7G,EAAKsQ,sBAAsB7L,EAAIyB,QAExBnH,KAAK4mB,aACZlhB,EAAI8B,OAAOM,QAGXpC,EAAIuC,KAAKH,WAWnBtC,EAAK0F,OAAS,SAAS2c,GACrBxb,WAAW,WACTpL,EAAKsQ,sBAAsBsW,IAC1B,IAMLriB,EAAK7C,UAAUgF,KAAO,WAEpB3H,KAAKkmB,cAAa,GAClBlmB,KAAK4lB,cAAa,IASpBpgB,EAAK7C,UAAUmlB,aAAe,SAASzgB,GACrC,GAAIrH,MAAQqH,EACV,OAAO,CAGT,IAAIuJ,GAAS5Q,KAAK4Q,MAClB,IAAIA,EAEF,IAAK,GAAI5L,GAAI,EAAG0T,EAAO9H,EAAO1O,OAAYwW,EAAJ1T,EAAUA,IAC9C,GAAI4L,EAAO5L,GAAG8iB,aAAazgB,GACzB,OAAO,CAKb,QAAO,GAWT7B,EAAK7C,UAAUolB,MAAQ,SAAS1gB,EAAMmX,GACpC,GAAInX,GAAQmX,EAAZ,CAMA,GAAInX,EAAKygB,aAAa9nB,MACpB,KAAM,IAAIe,OAAM,6CAIdsG,GAAKuC,QACPvC,EAAKuC,OAAOrD,YAAYc,EAI1B,IAAI+e,GAAQ/e,EAAK+e,OACjB/e,GAAK2gB,WAGDxJ,EACFxe,KAAKue,aAAa6H,EAAO5H,GAGzBxe,KAAKyH,YAAY2e,KAgBrB5gB,EAAK7C,UAAU4D,YAAc,SAASc,GACpC,GAAIrH,KAAK4Q,OAAQ,CACf,GAAIyH,GAAQrY,KAAK4Q,OAAO5O,QAAQqF,EAEhC,IAAa,IAATgR,EAAa,CACfhR,EAAKya,aAGEza,GAAKggB,kBACLhgB,GAAKigB,WAEZ,IAAIW,GAAcjoB,KAAK4Q,OAAO0H,OAAOD,EAAO,GAAG,EAK/C,OAJA4P,GAAYre,OAAS,KAErB5J,KAAKkhB,WAAW6F,eAAiB,IAE1BkB,GAIX,MAAOpiB,SAUTL,EAAK7C,UAAUulB,QAAU,SAAU7gB,GACjCrH,KAAKuG,YAAYc,IAOnB7B,EAAK7C,UAAUub,WAAa,SAAUE,GACpC,GAAID,GAAUne,KAAK+J,IAEnB,IAAIoU,GAAWC,EAAf,CAKA,GAAgB,UAAXA,GAAkC,QAAXA,GACZ,UAAXD,GAAkC,QAAXA,EAIvB,CAEH,GACIgK,GADAlhB,EAAQjH,KAAK0F,IAAIsa,GAAKhgB,KAAK0F,IAAIsa,GAAG1Z,WAAaT,MAGjDsiB,GADEnoB,KAAKkkB,SACElkB,KAAKymB,YAGLzmB,KAAKoI,QAEhB,IAAIse,GAAUyB,GAAUA,EAAO7hB,WAAc6hB,EAAOxB,YAAc9gB,MAGlE7F,MAAK8hB,OACL9hB,KAAKgoB,WAGLhoB,KAAK+J,KAAOqU,EAGG,UAAXA,GACGpe,KAAK4Q,SACR5Q,KAAK4Q,WAGP5Q,KAAK4Q,OAAO9O,QAAQ,SAAU+H,EAAOwO,GACnCxO,EAAMme,iBACCne,GAAMwO,MACbxO,EAAMua,eAAgB,EACHve,QAAfgE,EAAM1C,QACR0C,EAAM1C,MAAQ,OAIH,UAAXgX,GAAkC,QAAXA,KACzBne,KAAKkkB,UAAW,IAGA,SAAX9F,GACFpe,KAAK4Q,SACR5Q,KAAK4Q,WAGP5Q,KAAK4Q,OAAO9O,QAAQ,SAAU+H,EAAOwO,GACnCxO,EAAMme,WACNne,EAAMua,eAAgB,EACtBva,EAAMwO,MAAQA,KAGD,UAAX8F,GAAkC,QAAXA,KACzBne,KAAKkkB,UAAW,IAIlBlkB,KAAKkkB,UAAW,EAIdjd,IACEyf,EACFzf,EAAMsX,aAAave,KAAKoI,SAAUse,GAGlCzf,EAAMQ,YAAYzH,KAAKoI,WAG3BpI,KAAKuf,iBApELvf,MAAK+J,KAAOqU,GAuEC,QAAXA,GAAgC,UAAXA,KAER,UAAXA,EACFpe,KAAKoH,MAAQ+P,OAAOnX,KAAKoH,OAGzBpH,KAAKoH,MAAQpH,KAAKooB,YAAYjR,OAAOnX,KAAKoH,QAG5CpH,KAAK8H,SAGP9H,KAAKkhB,WAAW6F,eAAiB,MASnCvhB,EAAK7C,UAAUujB,aAAe,SAASmC,GAKrC,GAJIroB,KAAK0F,IAAI0B,OAAsB,SAAbpH,KAAK+J,MAAgC,UAAb/J,KAAK+J,OACjD/J,KAAKsmB,eAAiBrlB,EAAK+Y,aAAaha,KAAK0F,IAAI0B,QAGxBvB,QAAvB7F,KAAKsmB,eACP,IAEE,GAAIlf,EACJ,IAAiB,UAAbpH,KAAK+J,KACP3C,EAAQpH,KAAKsoB,cAActoB,KAAKsmB,oBAE7B,CACH,GAAIiC,GAAMvoB,KAAKsoB,cAActoB,KAAKsmB,eAClClf,GAAQpH,KAAKooB,YAAYG,GAEvBnhB,IAAUpH,KAAKoH,QACjBpH,KAAKoH,MAAQA,EACbpH,KAAKqkB,2BAGT,MAAO9hB,GAGL,GAFAvC,KAAKoH,MAAQvB,OAETwiB,KAAW,EACb,KAAM9lB,KAUdiD,EAAK7C,UAAU2hB,eAAiB,WAG9B,GAAI1E,GAAe5f,KAAK2L,OAAON,cAC/B,IAAIuU,EAAazU,MAAO,CACtB,GAAIqd,GAAWvnB,EAAK6b,SAAS3F,OAAOnX,KAAKoH,OAAQ+P,OAAOnX,KAAKgmB,eAC7DpG,GAAazU,MAAMwO,YAAc6O,EAAS9Y,MAC1CkQ,EAAazU,MAAMyO,UAAY4O,EAAS7Y,IAE1C,GAAIkQ,GAAe7f,KAAK2L,OAAON,cAC/B,IAAIwU,EAAa1U,MAAO,CACtB,GAAIsd,GAAWxnB,EAAK6b,SAAS3F,OAAOnX,KAAKgmB,eAAgB7O,OAAOnX,KAAKoH,OACrEyY,GAAa1U,MAAMwO,YAAc8O,EAAS/Y,MAC1CmQ,EAAa1U,MAAMyO,UAAY6O,EAAS9Y,IAG1C3P,KAAK2L,OAAOlD,UAAU,aACpBpB,KAAMrH,KACN8d,SAAU9d,KAAKgmB,cACfjI,SAAU/d,KAAKoH,MACfwY,aAAcA,EACdC,aAAcA,IAGhB7f,KAAKgmB,cAAgBhmB,KAAKoH,OAO5B5B,EAAK7C,UAAU6hB,eAAiB,WAG9B,GAAI5E,GAAe5f,KAAK2L,OAAON,cAC/B,IAAIuU,EAAazU,MAAO,CACtB,GAAIqd,GAAWvnB,EAAK6b,SAAS9c,KAAKmH,MAAOnH,KAAK0lB,cAC9C9F,GAAazU,MAAMwO,YAAc6O,EAAS9Y,MAC1CkQ,EAAazU,MAAMyO,UAAY4O,EAAS7Y,IAE1C,GAAIkQ,GAAe7f,KAAK2L,OAAON,cAC/B,IAAIwU,EAAa1U,MAAO,CACtB,GAAIsd,GAAWxnB,EAAK6b,SAAS9c,KAAK0lB,cAAe1lB,KAAKmH,MACtD0Y,GAAa1U,MAAMwO,YAAc8O,EAAS/Y,MAC1CmQ,EAAa1U,MAAMyO,UAAY6O,EAAS9Y,IAG1C3P,KAAK2L,OAAOlD,UAAU,aACpBpB,KAAMrH,KACN8d,SAAU9d,KAAK0lB,cACf3H,SAAU/d,KAAKmH,MACfyY,aAAcA,EACdC,aAAcA,IAGhB7f,KAAK0lB,cAAgB1lB,KAAKmH,OAU5B3B,EAAK7C,UAAU8kB,gBAAkB,WAC/B,GAAIiB,GAAW1oB,KAAK0F,IAAI0B,KACxB,IAAIshB,EAAU,CACZ,GAAIC,IAAc,oBAIdvhB,EAAQpH,KAAKoH,MACb2C,EAAqB,QAAb/J,KAAK+J,KAAkB9I,EAAK8I,KAAK3C,GAASpH,KAAK+J,KACvDwN,EAAgB,UAARxN,GAAoB9I,EAAKsW,MAAMnQ,EAC3CuhB,GAAWzW,KAAK,cAAgBnI,GAC5BwN,GACFoR,EAAWzW,KAAK,iBAIlB,IAAI0W,GAAiC,IAAtBzR,OAAOnX,KAAKoH,QAA6B,SAAbpH,KAAK+J,MAAgC,UAAb/J,KAAK+J,IAgBxE,IAfI6e,GACFD,EAAWzW,KAAK,oBAIdlS,KAAKihB,mBACP0H,EAAWzW,KAAK,+BAEdlS,KAAKsnB,aACPqB,EAAWzW,KAAK,wBAGlBwW,EAAS/b,UAAYgc,EAAWlT,KAAK,KAGzB,SAAR1L,GAA2B,UAARA,EAAkB,CACvC,GAAI8e,GAAQ7oB,KAAK4Q,OAAS5Q,KAAK4Q,OAAO1O,OAAS,CAC/CwmB,GAAS9a,MAAQ5N,KAAK+J,KAAO,eAAiB8e,EAAQ,aAE/CtR,IAASvX,KAAKyB,SAAS2F,MAC9BshB,EAAS9a,MAAQ,qDAGjB8a,EAAS9a,MAAQ,EAIN,aAAT7D,GACG/J,KAAK0F,IAAIojB,WACZ9oB,KAAK0F,IAAIojB,SAAWrc,SAASC,cAAc,SAC3C1M,KAAK0F,IAAIojB,SAAS/e,KAAO,WACzB/J,KAAK0F,IAAIqjB,WAAatc,SAASC,cAAc,MAC7C1M,KAAK0F,IAAIqjB,WAAWpc,UAAY,kBAChC3M,KAAK0F,IAAIqjB,WAAWthB,YAAYzH,KAAK0F,IAAIojB,UAEzC9oB,KAAK0F,IAAIuf,QAAQ3e,WAAWiY,aAAave,KAAK0F,IAAIqjB,WAAY/oB,KAAK0F,IAAIuf,UAGzEjlB,KAAK0F,IAAIojB,SAASE,QAAUhpB,KAAKoH,OAI7BpH,KAAK0F,IAAIqjB,aACX/oB,KAAK0F,IAAIqjB,WAAWziB,WAAWC,YAAYvG,KAAK0F,IAAIqjB,kBAC7C/oB,MAAK0F,IAAIqjB,iBACT/oB,MAAK0F,IAAIojB,UAKpB7nB,EAAKsX,gBAAgBmQ,KAWzBljB,EAAK7C,UAAU4kB,gBAAkB,WAC/B,GAAI0B,GAAWjpB,KAAK0F,IAAIyB,KACxB,IAAI8hB,EAAU,CAEZ,GAAIL,GAAiC,IAAtBzR,OAAOnX,KAAKmH,QAAoC,SAApBnH,KAAK4J,OAAOG,IACnD6e,GACF3nB,EAAKgX,aAAagR,EAAU,oBAG5BhoB,EAAKmX,gBAAgB6Q,EAAU,oBAI7BjpB,KAAKghB,kBACP/f,EAAKgX,aAAagR,EAAU,+BAG5BhoB,EAAKmX,gBAAgB6Q,EAAU,+BAE7BjpB,KAAKqnB,YACPpmB,EAAKgX,aAAagR,EAAU,wBAG5BhoB,EAAKmX,gBAAgB6Q,EAAU,wBAIjChoB,EAAKsX,gBAAgB0Q,KAUzBzjB,EAAK7C,UAAUijB,aAAe,SAASyC,GAKrC,GAJIroB,KAAK0F,IAAIyB,OAASnH,KAAKokB,gBACzBpkB,KAAKqmB,eAAiBplB,EAAK+Y,aAAaha,KAAK0F,IAAIyB,QAGxBtB,QAAvB7F,KAAKqmB,eACP,IACE,GAAIlf,GAAQnH,KAAKsoB,cAActoB,KAAKqmB,eAEhClf,KAAUnH,KAAKmH,QACjBnH,KAAKmH,MAAQA,EACbnH,KAAKukB,2BAGT,MAAOhiB,GAGL,GAFAvC,KAAKmH,MAAQtB,OAETwiB,KAAW,EACb,KAAM9lB,KAUdiD,EAAK7C,UAAUmC,SAAW,WACxB,GAAImE,KAGJ,IAAkB,WAAdjJ,KAAK+J,KAAmB,CAG1B,IAAK,GAFDlI,MACAqnB,KACKlkB,EAAI,EAAGA,EAAIhF,KAAK4Q,OAAO1O,OAAQ8C,IAAK,CAC3C,GAAI6E,GAAQ7J,KAAK4Q,OAAO5L,EACpBnD,GAAKgI,EAAM1C,QACb+hB,EAAchX,KAAKrI,EAAM1C,OAE3BtF,EAAKgI,EAAM1C,QAAS,EAGlB+hB,EAAchnB,OAAS,IACzB+G,EAASjJ,KAAK4Q,OACTtH,OAAO,SAAUjC,GAChB,MAA6C,KAAtC6hB,EAAclnB,QAAQqF,EAAKF,SAEnC+B,IAAI,SAAU7B,GACb,OACEA,KAAMA,EACNlG,OACE2I,QAAS,kBAAoBzC,EAAKF,MAAQ,SAQxD,GAAInH,KAAK4Q,OACP,IAAK,GAAI5L,GAAI,EAAGA,EAAIhF,KAAK4Q,OAAO1O,OAAQ8C,IAAK,CAC3C,GAAI3C,GAAIrC,KAAK4Q,OAAO5L,GAAGF,UACnBzC,GAAEH,OAAS,IACb+G,EAASA,EAAOO,OAAOnH,IAK7B,MAAO4G,IAMTzD,EAAK7C,UAAUqlB,SAAW,WAKxBhoB,KAAK0F,QAQPF,EAAK7C,UAAUyF,OAAS,WACtB,GAAI1C,GAAM1F,KAAK0F,GACf,IAAIA,EAAIsa,GACN,MAAOta,GAAIsa,EASb,IANAhgB,KAAK0kB,qBAGLhf,EAAIsa,GAAKvT,SAASC,cAAc,MAChChH,EAAIsa,GAAG3Y,KAAOrH,KAEmB,SAA7BA,KAAK2L,OAAO9K,QAAQgC,KAAiB,CACvC,GAAIsmB,GAAS1c,SAASC,cAAc,KACpC,IAAI1M,KAAKyB,SAAS0F,OAEZnH,KAAK4J,OAAQ,CACf,GAAIwf,GAAU3c,SAASC,cAAc,SACrChH,GAAIoJ,KAAOsa,EACXA,EAAQzc,UAAY,sBACpByc,EAAQxb,MAAQ,6CAChBub,EAAO1hB,YAAY2hB,GAGvB1jB,EAAIsa,GAAGvY,YAAY0hB,EAGnB,IAAIE,GAAS5c,SAASC,cAAc,MAChCzE,EAAOwE,SAASC,cAAc,SAClChH,GAAIuC,KAAOA,EACXA,EAAK0E,UAAY,yBACjB1E,EAAK2F,MAAQ,0CACbyb,EAAO5hB,YAAY/B,EAAIuC,MACvBvC,EAAIsa,GAAGvY,YAAY4hB,GAIrB,GAAIC,GAAU7c,SAASC,cAAc,KAOrC,OANAhH,GAAIsa,GAAGvY,YAAY6hB,GACnB5jB,EAAI6jB,KAAOvpB,KAAKwpB,iBAChBF,EAAQ7hB,YAAY/B,EAAI6jB,MAExBvpB,KAAKkhB,WAAW6F,eAAiB,IAE1BrhB,EAAIsa,IAQbxa,EAAKqJ,YAAc,SAAU9I,EAAOwG,GAClC,IAAK8D,MAAMnL,QAAQa,GACjB,MAAOP,GAAKqJ,aAAa9I,GAAQwG,EAEnC,IAAqB,IAAjBxG,EAAM7D,OAAV,CAIA,GAAIunB,GAAY1jB,EAAM,GAClB2jB,EAAW3jB,EAAMA,EAAM7D,OAAS,GAChCynB,EAAcnkB,EAAKgJ,kBAAkBjC,EAAMM,QAC3C2R,EAAakL,EAASE,eACtBje,EAAS8d,EAAU9d,OAInBke,EAAU5oB,EAAKmJ,eAAeuf,EAAYjkB,IAAIsa,IAAM/e,EAAKmJ,eAAeqf,EAAU/jB,IAAIsa,GAErFrU,GAAOiE,YACVjE,EAAOiE,UAAY3O,EAAKwM,iBAAiBoC,OAAQ,YAAa,SAAUtD,GACtE/G,EAAKskB,OAAO/jB,EAAOwG,MAIlBZ,EAAOoE,UACVpE,EAAOoE,QAAU9O,EAAKwM,iBAAiBoC,OAAQ,UAAU,SAAUtD,GACjE/G,EAAKukB,UAAUhkB,EAAOwG,MAI1BZ,EAAOhG,YAAY+X,OACnB/R,EAAOmD,MACLkb,UAAWvd,SAASwd,KAAK3W,MAAM4W,OAC/BtK,aAAcjU,EAAON,eACrB2T,cAAeR,EACf2L,OAAQ5d,EAAM4C,MACd0a,QAASA,EACTO,MAAOX,EAAUtD,YAEnB1Z,SAASwd,KAAK3W,MAAM4W,OAAS,OAE7B3d,EAAMO,mBAQRtH,EAAKskB,OAAS,SAAU/jB,EAAOwG,GAC7B,IAAK8D,MAAMnL,QAAQa,GACjB,MAAOP,GAAKskB,QAAQ/jB,GAAQwG,EAE9B,IAAqB,IAAjBxG,EAAM7D,OAAV,CAKA,GAGImoB,GAAQC,EAAQC,EAAQC,EAASC,EAAQC,EACzCC,EAAUC,EACVC,EAASC,EAASC,EAAUC,EAAYC,EAAYC,EALpDvf,EAAS5F,EAAM,GAAG4F,OAClB1B,EAASsC,EAAM8C,MAAQ1D,EAAOmD,KAAK+a,QACnCM,EAAS5d,EAAM4C,MAIfgc,GAAQ,EAKR1B,EAAY1jB,EAAM,EAItB,IAHAskB,EAASZ,EAAU/jB,IAAIsa,GACvB6K,EAAU5pB,EAAKmJ,eAAeigB,GAC9BW,EAAaX,EAAO9G,aACPsH,EAAT5gB,EAAkB,CAEpBqgB,EAASD,CACT,GACEC,GAASA,EAAOc,gBAChBT,EAAWnlB,EAAKgJ,kBAAkB8b,GAClCQ,EAAUR,EAASrpB,EAAKmJ,eAAekgB,GAAU,QAE5CA,GAAmBQ,EAAT7gB,EAEb0gB,KAAaA,EAAS/gB,SACxB+gB,EAAW9kB,QAGR8kB,IAEHD,EAASL,EAAO/jB,WAAWuT,WAC3ByQ,EAASI,EAASA,EAAO/D,YAAc9gB,OACvC8kB,EAAWnlB,EAAKgJ,kBAAkB8b,GAC9BK,GAAYlB,IACdkB,EAAW9kB,SAIX8kB,IAEFL,EAASK,EAASjlB,IAAIsa,GACtB8K,EAAUR,EAASrpB,EAAKmJ,eAAekgB,GAAU,EAC7CrgB,EAAS6gB,EAAUE,IACrBL,EAAW9kB,SAIX8kB,IACF5kB,EAAMjE,QAAQ,SAAUuF,GACtBsjB,EAAS/gB,OAAOqV,WAAW5X,EAAMsjB,KAEnCQ,GAAQ,OAGP,CAEH,GAAIzB,GAAW3jB,EAAMA,EAAM7D,OAAS,EAGpC,IAFAuoB,EAAUf,EAASxF,UAAYwF,EAAS7K,OAAU6K,EAAS7K,OAAOzW,SAAWshB,EAAShkB,IAAIsa,GAC1FwK,EAAUC,EAASA,EAAO9D,YAAc9gB,OAC3B,CACXklB,EAAW9pB,EAAKmJ,eAAeogB,GAC/BD,EAASC,CACT,GACEI,GAAWplB,EAAKgJ,kBAAkB+b,GAC9BA,IACFU,EAAaV,EAAO5D,YAChB1lB,EAAKmJ,eAAemgB,EAAO5D,aAAe,EAC9CuE,EAAaX,EAAUU,EAAaF,EAAY,EAE5CH,EAAShhB,OAAOgH,OAAO1O,QAAU6D,EAAM7D,QACvC0oB,EAAShhB,OAAOgH,OAAO7K,EAAM7D,OAAS,IAAMwnB,IAG9CmB,GAAW,KAKfN,EAASA,EAAO5D,kBAEX4D,GAAUtgB,EAAS4gB,EAAUK,EAEpC,IAAIN,GAAYA,EAAShhB,OAAQ,CAE/B,GAAI2F,GAAS4a,EAASxe,EAAOmD,KAAKqb,OAC9BkB,EAAYtf,KAAKuf,MAAM/b,EAAQ,GAAK,GACpC6a,EAAQze,EAAOmD,KAAKsb,MAAQiB,EAC5BE,EAAYX,EAASzE,UAIzB,KADAmE,EAASM,EAASllB,IAAIsa,GAAGoL,gBACNhB,EAAZmB,GAAqBjB,GAAQ,CAClCK,EAAWnlB,EAAKgJ,kBAAkB8b,EAElC,IAAIkB,GAAgBzlB,EAAM0lB,KAAK,SAAUpkB,GACvC,MAAOA,KAASsjB,GAAYA,EAASlH,WAAWpc,IAGlD,IAAImkB,OAGC,CAAA,KAAIb,YAAoB1D,IAe3B,KAdA,IAAIrW,GAAS+Z,EAAS/gB,OAAOgH,MAC7B,IAAIA,EAAO1O,QAAU6D,EAAM7D,QAAU0O,EAAO7K,EAAM7D,OAAS,IAAMwnB,EAS/D,KAJAkB,GAAWplB,EAAKgJ,kBAAkB8b,GAClCiB,EAAYX,EAASzE,WAUzBmE,EAASA,EAAOc,gBAIdX,EAAO9D,aAAeiE,EAASllB,IAAIsa,KACrCja,EAAMjE,QAAQ,SAAUuF,GACtBujB,EAAShhB,OAAOqV,WAAW5X,EAAMujB,KAEnCO,GAAQ,KAMZA,IAEFxf,EAAOmD,KAAKqb,OAASA,EACrBxe,EAAOmD,KAAKsb,MAAQX,EAAUtD,YAIhCxa,EAAO3B,gBAAgBC,GAEvBsC,EAAMO,mBAQRtH,EAAKukB,UAAY,SAAUhkB,EAAOwG,GAChC,IAAK8D,MAAMnL,QAAQa,GACjB,MAAOP,GAAKskB,QAAQ/jB,GAAQwG,EAE9B,IAAqB,IAAjBxG,EAAM7D,OAAV,CAIA,GAAIunB,GAAY1jB,EAAM,GAClB4F,EAAS8d,EAAU9d,OACnB/B,EAAS6f,EAAU7f,OACnBmH,EAAanH,EAAOgH,OAAO5O,QAAQynB,GACnCjL,EAAa5U,EAAOgH,OAAOG,EAAahL,EAAM7D,SAAW0H,EAAOiV,MAGhE9Y,GAAM,IACRA,EAAM,GAAGL,IAAIuC,KAAKH,OAGpB,IAAIZ,IACFnB,MAAOA,EACP6Z,aAAcjU,EAAOmD,KAAK8Q,aAC1BC,aAAclU,EAAON,eACrB2T,cAAerT,EAAOmD,KAAKkQ,cAC3BE,cAAeV,EAGbtX,GAAO8X,eAAiB9X,EAAOgY,eAEjCvT,EAAOlD,UAAU,YAAavB,GAGhCuF,SAASwd,KAAK3W,MAAM4W,OAASve,EAAOmD,KAAKkb,UACzCre,EAAOhG,YAAYgY,SACnB5X,EAAMjE,QAAQ,SAAUuF,GAClBkF,EAAMM,SAAWxF,EAAK3B,IAAIoJ,MAAQvC,EAAMM,SAAWxF,EAAK3B,IAAIuC,MAC9D0D,EAAOhG,YAAY6X,sBAGhB7R,GAAOmD,KAEVnD,EAAOiE,YACT3O,EAAKiP,oBAAoBL,OAAQ,YAAalE,EAAOiE,iBAC9CjE,GAAOiE,WAEZjE,EAAOoE,UACT9O,EAAKiP,oBAAoBL,OAAQ,UAAWlE,EAAOoE,eAC5CpE,GAAOoE,SAIhBpE,EAAOZ,iBAEPwB,EAAMO,mBASRtH,EAAK7C,UAAU8gB,WAAa,SAAUpc,GAEpC,IADA,GAAIqkB,GAAI1rB,KAAK4J,OACN8hB,GAAG,CACR,GAAIA,GAAKrkB,EACP,OAAO,CAETqkB,GAAIA,EAAE9hB,OAGR,OAAO,GAQTpE,EAAK7C,UAAUgpB,gBAAkB,WAC/B,MAAOlf,UAASC,cAAc,QAQhClH,EAAK7C,UAAU2a,aAAe,SAAUD,GAClCrd,KAAK0F,IAAIsa,KACP3C,EACFpc,EAAKgX,aAAajY,KAAK0F,IAAIsa,GAAI,wBAG/B/e,EAAKmX,gBAAgBpY,KAAK0F,IAAIsa,GAAI,wBAGhChgB,KAAK6e,QACP7e,KAAK6e,OAAOvB,aAAaD,GAGvBrd,KAAK4Q,QACP5Q,KAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5BA,EAAMyT,aAAaD,OAW3B7X,EAAK7C,UAAUyN,YAAc,SAAU3B,EAAUmd,GAC/C5rB,KAAKyO,SAAWA,EAEZzO,KAAK0F,IAAIsa,KACPvR,EACFxN,EAAKgX,aAAajY,KAAK0F,IAAIsa,GAAI,uBAG/B/e,EAAKmX,gBAAgBpY,KAAK0F,IAAIsa,GAAI,uBAGhC4L,EACF3qB,EAAKgX,aAAajY,KAAK0F,IAAIsa,GAAI,oBAG/B/e,EAAKmX,gBAAgBpY,KAAK0F,IAAIsa,GAAI,oBAGhChgB,KAAK6e,QACP7e,KAAK6e,OAAOzO,YAAY3B,GAGtBzO,KAAK4Q,QACP5Q,KAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5BA,EAAMuG,YAAY3B,OAW1BjJ,EAAK7C,UAAUsb,YAAc,SAAU7W,GACrCpH,KAAKoH,MAAQA,EACbpH,KAAKkhB,aAOP1b,EAAK7C,UAAUkF,YAAc,SAAUV,GACrCnH,KAAKmH,MAAQA,EACbnH,KAAKkhB,aAaP1b,EAAK7C,UAAUue,UAAY,SAAUrgB,GAEnC,GAAIgrB,GAAU7rB,KAAK0F,IAAI6jB,IACnBsC,KACFA,EAAQvY,MAAMwY,WAA+B,GAAlB9rB,KAAKmmB,WAAkB,KAIpD,IAAI8C,GAAWjpB,KAAK0F,IAAIyB,KACxB,IAAI8hB,EAAU,CACRjpB,KAAKokB,eAEP6E,EAAS8C,gBAAkB/rB,KAAKyB,SAAS0F,MACzC8hB,EAASxU,YAAa,EACtBwU,EAAStc,UAAY,oBAIrBsc,EAAStc,UAAY,qBAGvB,IAAIxF,EAEFA,GADgBtB,QAAd7F,KAAKqY,MACCrY,KAAKqY,MAEQxS,QAAd7F,KAAKmH,MACJnH,KAAKmH,MAENnH,KAAK4mB,aACJ5mB,KAAK+J,KAGL,GAEVkf,EAASzT,UAAYxV,KAAKgsB,YAAY7kB,GAIxC,GAAIuhB,GAAW1oB,KAAK0F,IAAI0B,KACxB,IAAIshB,EAAU,CACZ,GAAIG,GAAQ7oB,KAAK4Q,OAAS5Q,KAAK4Q,OAAO1O,OAAS,CAC9B,UAAblC,KAAK+J,MACP2e,EAASlT,UAAY,IAAMqT,EAAQ,IACnC5nB,EAAKgX,aAAajY,KAAK0F,IAAIsa,GAAI,0BAEX,UAAbhgB,KAAK+J,MACZ2e,EAASlT,UAAY,IAAMqT,EAAQ,IACnC5nB,EAAKgX,aAAajY,KAAK0F,IAAIsa,GAAI,2BAG/B0I,EAASlT,UAAYxV,KAAKgsB,YAAYhsB,KAAKoH,OAC3CnG,EAAKmX,gBAAgBpY,KAAK0F,IAAIsa,GAAI,0BAKtChgB,KAAKunB,kBACLvnB,KAAKynB,kBAGD5mB,GAAWA,EAAQkmB,iBAAkB,GAEvC/mB,KAAKisB,oBAGHprB,GAAWA,EAAQ0G,WAAY,GAE7BvH,KAAK4Q,QACP5Q,KAAK4Q,OAAO9O,QAAQ,SAAU+H,GAC5BA,EAAMqX,UAAUrgB,KAMlBb,KAAK6e,QACP7e,KAAK6e,OAAOqC,aAUhB1b,EAAK7C,UAAUspB,kBAAoB,WACjC,GAAIvD,GAAW1oB,KAAK0F,IAAI0B,MACpBwJ,EAAS5Q,KAAK4Q,MACd8X,IAAY9X,IACG,SAAb5Q,KAAK+J,KACP6G,EAAO9O,QAAQ,SAAU+H,EAAOwO,GAC9BxO,EAAMwO,MAAQA,CACd,IAAI0N,GAAalc,EAAMnE,IAAIyB,KACvB4e,KACFA,EAAWvQ,UAAY6C,KAIP,UAAbrY,KAAK+J,MACZ6G,EAAO9O,QAAQ,SAAU+H,GACJhE,QAAfgE,EAAMwO,cACDxO,GAAMwO,MAEMxS,QAAfgE,EAAM1C,QACR0C,EAAM1C,MAAQ,SAY1B3B,EAAK7C,UAAUupB,gBAAkB,WAC/B,GAAIxD,EA2BJ,OAzBiB,SAAb1oB,KAAK+J,MACP2e,EAAWjc,SAASC,cAAc,OAClCgc,EAASlT,UAAY,SAED,UAAbxV,KAAK+J,MACZ2e,EAAWjc,SAASC,cAAc,OAClCgc,EAASlT,UAAY,UAGhBxV,KAAKyB,SAAS2F,OAASnG,EAAKsW,MAAMvX,KAAKoH,QAE1CshB,EAAWjc,SAASC,cAAc,KAClCgc,EAASpU,KAAOtU,KAAKoH,MACrBshB,EAAS7b,OAAS,SAClB6b,EAASlT,UAAYxV,KAAKgsB,YAAYhsB,KAAKoH,SAI3CshB,EAAWjc,SAASC,cAAc,OAClCgc,EAASqD,gBAAkB/rB,KAAKyB,SAAS2F,MACzCshB,EAASjU,YAAa,EACtBiU,EAASlT,UAAYxV,KAAKgsB,YAAYhsB,KAAKoH,QAIxCshB,GAQTljB,EAAK7C,UAAUwpB,uBAAyB,WAEtC,GAAI3kB,GAASiF,SAASC,cAAc,SAYpC,OAXI1M,MAAK4mB,cACPpf,EAAOmF,UAAY3M,KAAKkkB,SAAW,sBAAwB,uBAC3D1c,EAAOoG,MACH,wGAIJpG,EAAOmF,UAAY,uBACnBnF,EAAOoG,MAAQ,IAGVpG,GASThC,EAAK7C,UAAU6mB,eAAiB,WAC9B,GAAI9jB,GAAM1F,KAAK0F,IACXmmB,EAAUpf,SAASC,cAAc,SACjCvE,EAAQsE,SAASC,cAAc,QACnCmf,GAAQvY,MAAM8Y,eAAiB,WAC/BP,EAAQlf,UAAY,oBACpBkf,EAAQpkB,YAAYU,EACpB,IAAI6X,GAAKvT,SAASC,cAAc,KAChCvE,GAAMV,YAAYuY,EAGlB,IAAIqM,GAAW5f,SAASC,cAAc,KACtC2f,GAAS1f,UAAY,kBACrBqT,EAAGvY,YAAY4kB,GACf3mB,EAAI8B,OAASxH,KAAKmsB,yBAClBE,EAAS5kB,YAAY/B,EAAI8B,QACzB9B,EAAI2mB,SAAWA,CAGf,IAAI/C,GAAU7c,SAASC,cAAc,KACrC4c,GAAQ3c,UAAY,kBACpBqT,EAAGvY,YAAY6hB,GACf5jB,EAAIyB,MAAQnH,KAAK2rB,kBACjBrC,EAAQ7hB,YAAY/B,EAAIyB,OACxBzB,EAAI4jB,QAAUA,CAGd,IAAIgD,GAAc7f,SAASC,cAAc,KACzC4f,GAAY3f,UAAY,kBACxBqT,EAAGvY,YAAY6kB,GACE,UAAbtsB,KAAK+J,MAAiC,SAAb/J,KAAK+J,OAChCuiB,EAAY7kB,YAAYgF,SAAS4H,eAAe,MAChDiY,EAAY3f,UAAY,wBAE1BjH,EAAI4mB,YAAcA,CAGlB,IAAIrH,GAAUxY,SAASC,cAAc,KAOrC,OANAuY,GAAQtY,UAAY,kBACpBqT,EAAGvY,YAAYwd,GACfvf,EAAI0B,MAAQpH,KAAKksB,kBACjBjH,EAAQxd,YAAY/B,EAAI0B,OACxB1B,EAAIuf,QAAUA,EAEP4G,GAOTrmB,EAAK7C,UAAU2J,QAAU,SAAUC,GACjC,GAII1F,GAJAkD,EAAOwC,EAAMxC,KACb8C,EAASN,EAAMM,QAAUN,EAAMggB,WAC/B7mB,EAAM1F,KAAK0F,IACX2B,EAAOrH,KAEPwsB,EAAaxsB,KAAK4mB,YActB,KAVI/Z,GAAUnH,EAAIoJ,MAAQjC,GAAUnH,EAAIuC,QAC1B,aAAR8B,EACF/J,KAAK2L,OAAOhG,YAAY0X,UAAUrd,MAEnB,YAAR+J,GACP/J,KAAK2L,OAAOhG,YAAY6X,eAKhB,SAARzT,GAAmB8C,GAAUnH,EAAIuC,KAAM,CACzC,GAAItC,GAAc0B,EAAKsE,OAAOhG,WAC9BA,GAAY0X,UAAUhW,GACtB1B,EAAY+X,OACZzc,EAAKgX,aAAavS,EAAIuC,KAAM,uBAC5BjI,KAAK0O,gBAAgBhJ,EAAIuC,KAAM,WAC7BhH,EAAKmX,gBAAgB1S,EAAIuC,KAAM,uBAC/BtC,EAAYgY,SACZhY,EAAY6X,gBAKhB,GAAY,SAARzT,IACE8C,GAAUnH,EAAI8B,SACiB,SAA7BH,EAAKsE,OAAO9K,QAAQgC,MAAgD,SAA7BwE,EAAKsE,OAAO9K,QAAQgC,OAAwC,QAApBgK,EAAOtB,WACtFihB,EAAY,CACd,GAAIjlB,GAAUgF,EAAM6E,OACpBpR,MAAKysB,UAAUllB,GAMT,UAARwC,GAAoB8C,GAAUnH,EAAIojB,WACpC9oB,KAAK0F,IAAI0B,MAAMoO,WAAaxV,KAAKoH,MACjCpH,KAAKkmB,eAIP,IAAIwC,GAAWhjB,EAAI0B,KACnB,IAAIyF,GAAU6b,EAEZ,OAAQ3e,GACN,IAAK,QACHlD,EAAY7G,IACZ,MAEF,KAAK,OACL,IAAK,SACHA,KAAKkmB,cAAa,GAClBlmB,KAAKynB,kBACDznB,KAAKoH,QACPshB,EAASlT,UAAYxV,KAAKgsB,YAAYhsB,KAAKoH,OAE7C,MAEF,KAAK,QAEHpH,KAAKkmB,cAAa,GAClBlmB,KAAKynB,iBACL,MAEF,KAAK,UACL,IAAK,YAEHznB,KAAK2L,OAAO/F,UAAY5F,KAAK2L,OAAON,cACpC,MAEF,KAAK,SACCkB,EAAM6E,UAAYpR,KAAKyB,SAAS2F,QAC9BnG,EAAKsW,MAAMvX,KAAKoH,QAClByI,OAAO0E,KAAKvU,KAAKoH,MAAO;AAG5B,KAEF,KAAK,QAEHpH,KAAKkmB,cAAa,GAClBlmB,KAAKynB,iBACL,MAEF,KAAK,MACL,IAAK,QACHpb,WAAW,WACThF,EAAK6e,cAAa,GAClB7e,EAAKogB,mBACJ,GAMT,GAAIwB,GAAWvjB,EAAIyB,KACnB,IAAI0F,GAAUoc,EACZ,OAAQlf,GACN,IAAK,QACHlD,EAAY7G,IACZ,MAEF,KAAK,OACL,IAAK,SACHA,KAAK4lB,cAAa,GAClB5lB,KAAKunB,kBACDvnB,KAAKmH,QACP8hB,EAASzT,UAAYxV,KAAKgsB,YAAYhsB,KAAKmH,OAE7C,MAEF,KAAK,QACHnH,KAAK4lB,cAAa,GAClB5lB,KAAKunB,iBACL,MAEF,KAAK,UACL,IAAK,YACHvnB,KAAK2L,OAAO/F,UAAY5F,KAAK2L,OAAON,cACpC,MAEF,KAAK,QACHrL,KAAK4lB,cAAa,GAClB5lB,KAAKunB,iBACL,MAEF,KAAK,MACL,IAAK,QACHlb,WAAW,WACThF,EAAKue,cAAa,GAClBve,EAAKkgB,mBACJ,GAOT,GAAIsE,GAAUnmB,EAAI6jB,IAClB,IAAI1c,GAAUgf,EAAQvlB,YAAsB,SAARyD,IAAoBwC,EAAMoC,SAAU,CACtE,GAAIkJ,GAAyBhS,QAAjB0G,EAAMmgB,QACbngB,EAAMmgB,QAAkC,IAAvB1sB,KAAKmmB,WAAa,GACnC5Z,EAAM4C,MAAQlO,EAAKwW,gBAAgB/R,EAAI4mB,YACxCzU,IAAQ2U,EAENvD,IACFhoB,EAAK+X,wBAAwBiQ,GAC7BA,EAASnhB,SAIP4gB,IACFznB,EAAK+X,wBAAwB0P,GAC7BA,EAAS5gB,UAIT+E,GAAUnH,EAAI2mB,UAAaG,IAAe3f,GAAUnH,EAAI4jB,SAAWzc,GAAUnH,EAAI4mB,aAC1E,SAARviB,GAAoBwC,EAAMoC,UACzBsa,IACFhoB,EAAK+X,wBAAwBiQ,GAC7BA,EAASnhB,SAID,WAARiC,GACF/J,KAAK2sB,UAAUpgB,IAQnB/G,EAAK7C,UAAUgqB,UAAY,SAAUpgB,GACnC,GAMIuU,GAAU8L,EAAUC,EAASC,EAE7BlN,EACAZ,EACAjZ,EACAD,EAXAmL,EAAS1E,EAAM2E,OAAS3E,EAAM4E,QAC9BtE,EAASN,EAAMM,QAAUN,EAAMggB,WAC/Bnb,EAAU7E,EAAM6E,QAChBC,EAAW9E,EAAM8E,SACjB0b,EAASxgB,EAAMwgB,OACfzb,GAAU,EAEV7P,EAAwC,SAA7BzB,KAAK2L,OAAO9K,QAAQgC,KAK/BmqB,EAAgBhtB,KAAK2L,OAAO7F,eAAeC,MAAM7D,OAAS,EACxDlC,KAAK2L,OAAO7F,eAAeC,OAC1B/F,MACHypB,EAAYuD,EAAc,GAC1BtD,EAAWsD,EAAcA,EAAc9qB,OAAS,EAGpD,IAAc,IAAV+O,GACF,GAAIpE,GAAU7M,KAAK0F,IAAI0B,QAChBpH,KAAKyB,SAAS2F,OAASmF,EAAM6E,UAC5BnQ,EAAKsW,MAAMvX,KAAKoH,SAClByI,OAAO0E,KAAKvU,KAAKoH,MAAO,UACxBkK,GAAU,OAIX,IAAIzE,GAAU7M,KAAK0F,IAAI8B,OAAQ,CAClC,GAAIglB,GAAaxsB,KAAK4mB,YACtB,IAAI4F,EAAY,CACd,GAAIjlB,GAAUgF,EAAM6E,OACpBpR,MAAKysB,UAAUllB,GACfsF,EAAO/E,QACPwJ,GAAU,QAIX,IAAc,IAAVL,EACHG,GAAW3P,IACb+D,EAAK4M,YAAY4a,GACjB1b,GAAU,OAGT,IAAc,IAAVL,EACHG,IACFpR,KAAKysB,UAAUpb,GACfxE,EAAO/E,QACPwJ,GAAU,OAGT,IAAc,IAAVL,GAAgBxP,EACnB2P,IACFpR,KAAK0O,gBAAgB7B,GACrByE,GAAU,OAGT,IAAc,IAAVL,GAAgBxP,EACnB2P,IACF5L,EAAK6M,SAAS2a,GACd1b,GAAU,OAGT,IAAc,IAAVL,GAAgBxP,EACnB2P,IAAYC,GACdrR,KAAKitB,kBACL3b,GAAU,GAEHF,GAAWC,IAClBrR,KAAKktB,iBACL5b,GAAU,OAGT,IAAc,IAAVL,GACP,GAAI8b,EAAQ,CAEV,GAAII,GAAUntB,KAAKotB,WACfD,IACFA,EAAQrlB,MAAMtC,EAAKmiB,cAAgB3nB,KAAKqtB,gBAAgBxgB,IAE1DyE,GAAU,OAGT,IAAc,IAAVL,GACP,GAAI8b,EAAQ,CAEV,GAAIO,GAAWttB,KAAKutB,YAChBD,IACFA,EAASxlB,MAAMtC,EAAKmiB,cAAgB3nB,KAAKqtB,gBAAgBxgB,IAE3DyE,GAAU,OAGT,IAAc,IAAVL,GACP,GAAI8b,IAAW1b,EAAU,CAEvB,GAAImc,GAAcxtB,KAAKytB,iBAAiB5gB,EACpC2gB,IACFxtB,KAAK8H,MAAM9H,KAAKqtB,gBAAgBG,IAElClc,GAAU,MAEP,IAAIyb,GAAU1b,GAAY5P,EAAU,CACvC,GAAIioB,EAASxF,SAAU,CACrB,GAAIwJ,GAAYhE,EAASjD,WACzBoG,GAAUa,EAAYA,EAAU/G,YAAc9gB,WAE3C,CACH,GAAIH,GAAMgkB,EAASthB,QACnBykB,GAAUnnB,EAAIihB,YAEZkG,IACFD,EAAWpnB,EAAKgJ,kBAAkBqe,GAClCC,EAAWD,EAAQlG,YACnBgH,EAAYnoB,EAAKgJ,kBAAkBse,GAC/BF,GAAYA,YAAoB3F,IACG,GAAjCyC,EAAS9f,OAAOgH,OAAO1O,QACzByrB,GAAaA,EAAU/jB,SACzBgW,EAAe5f,KAAK2L,OAAON,eAC3B2T,EAAgB0K,EAASE,eAEzBoD,EAAclrB,QAAQ,SAAUuF,GAC9BsmB,EAAU/jB,OAAOqV,WAAW5X,EAAMsmB,KAEpC3tB,KAAK8H,MAAMtC,EAAKmiB,cAAgB3nB,KAAKqtB,gBAAgBxgB,IAErD7M,KAAK2L,OAAOlD,UAAU,aACpB1C,MAAOinB,EACPhO,cAAeA,EACfE,cAAeyO,EACf/N,aAAcA,EACdC,aAAc7f,KAAK2L,OAAON,wBAM/B,IAAc,IAAV4F,EACH8b,IAAW1b,GAEbyP,EAAW9gB,KAAK4tB,gBACZ9M,IACF9gB,KAAK2L,OAAOiD,UAAS,GACrBkS,EAAShZ,MAAMtC,EAAKmiB,cAAgB3nB,KAAKqtB,gBAAgBxgB,KAE3DyE,GAAU,IAEFyb,GAAU3b,GAAWC,GAAY5P,GAEzCqf,EAAW9gB,KAAK4tB,gBACZ9M,IACFhb,EAAiB9F,KAAK2L,OAAO7F,eAC7BA,EAAe4J,MAAQ5J,EAAe4J,OAAS1P,KAC/C8F,EAAe6J,IAAMmR,EACrB/a,EAAQ/F,KAAK2L,OAAOsE,mBAAmBnK,EAAe4J,MAAO5J,EAAe6J,KAE5E3P,KAAK2L,OAAOT,OAAOnF,GACnB+a,EAAShZ,MAAM,UAEjBwJ,GAAU,GAEHyb,GAAU1b,GAAY5P,IAE7Bqf,EAAW2I,EAAUmE,gBACjB9M,GAAYA,EAASlX,SACvBgW,EAAe5f,KAAK2L,OAAON,eAC3B2T,EAAgB0K,EAASE,eAEzBoD,EAAclrB,QAAQ,SAAUuF,GAC9ByZ,EAASlX,OAAOqV,WAAW5X,EAAMyZ,KAEnC9gB,KAAK8H,MAAMtC,EAAKmiB,cAAgB3nB,KAAKqtB,gBAAgBxgB,IAErD7M,KAAK2L,OAAOlD,UAAU,aACpB1C,MAAOinB,EACPhO,cAAeA,EACfE,cAAe4B,EACflB,aAAcA,EACdC,aAAc7f,KAAK2L,OAAON,kBAG9BiG,GAAU,OAGT,IAAc,IAAVL,GACP,GAAI8b,IAAW1b,EAAU,CAEvB,GAAIwc,GAAc7tB,KAAK8tB,aAAajhB,EAChCghB,IACF7tB,KAAK8H,MAAM9H,KAAKqtB,gBAAgBQ,IAElCvc,GAAU,MAEP,IAAIyb,GAAU1b,GAAY5P,EAAU,CACvCiE,EAAM+jB,EAAUrhB,QAChB,IAAI2lB,GAAUroB,EAAI0lB,eACd2C,KACFjN,EAAWtb,EAAKgJ,kBAAkBuf,GAC9BjN,GAAYA,EAASlX,QACpBkX,YAAoBmG,KACjBnG,EAASkN,cACfpO,EAAe5f,KAAK2L,OAAON,eAC3B2T,EAAgB0K,EAASE,eAEzBoD,EAAclrB,QAAQ,SAAUuF,GAC9ByZ,EAASlX,OAAOqV,WAAW5X,EAAMyZ,KAEnC9gB,KAAK8H,MAAMtC,EAAKmiB,cAAgB3nB,KAAKqtB,gBAAgBxgB,IAErD7M,KAAK2L,OAAOlD,UAAU,aACpB1C,MAAOinB,EACPhO,cAAeA,EACfE,cAAe4B,EACflB,aAAcA,EACdC,aAAc7f,KAAK2L,OAAON,wBAM/B,IAAc,IAAV4F,EACP,GAAI8b,IAAW1b,EAEbub,EAAW5sB,KAAKiuB,YACZrB,IACF5sB,KAAK2L,OAAOiD,UAAS,GACrBge,EAAS9kB,MAAMtC,EAAKmiB,cAAgB3nB,KAAKqtB,gBAAgBxgB,KAE3DyE,GAAU,MAEP,KAAKyb,GAAU3b,GAAWC,GAAY5P,EAEzCmrB,EAAW5sB,KAAKiuB,YACZrB,IACF9mB,EAAiB9F,KAAK2L,OAAO7F,eAC7BA,EAAe4J,MAAQ5J,EAAe4J,OAAS1P,KAC/C8F,EAAe6J,IAAMid,EACrB7mB,EAAQ/F,KAAK2L,OAAOsE,mBAAmBnK,EAAe4J,MAAO5J,EAAe6J,KAE5E3P,KAAK2L,OAAOT,OAAOnF,GACnB6mB,EAAS9kB,MAAM,UAEjBwJ,GAAU,MAEP,IAAIyb,GAAU1b,GAAY5P,EAAU,CAGrCmrB,EADElD,EAASxF,SACAwF,EAAS7K,OAAS6K,EAAS7K,OAAOoP,YAAcpoB,OAGhD6jB,EAASuE,WAEtB,IAAIN,GAAYf,IAAaA,EAASqB,aAAerB,EAAShjB,OAAOiV,OACjE8O,IAAaA,EAAU/jB,SACzBgW,EAAe5f,KAAK2L,OAAON,eAC3B2T,EAAgB0K,EAASE,eAEzBoD,EAAclrB,QAAQ,SAAUuF,GAC9BsmB,EAAU/jB,OAAOqV,WAAW5X,EAAMsmB,KAEpC3tB,KAAK8H,MAAMtC,EAAKmiB,cAAgB3nB,KAAKqtB,gBAAgBxgB,IAErD7M,KAAK2L,OAAOlD,UAAU,aACpB1C,MAAOinB,EACPhO,cAAeA,EACfE,cAAeyO,EACf/N,aAAcA,EACdC,aAAc7f,KAAK2L,OAAON,kBAG9BiG,GAAU,EAIVA,IACF/E,EAAMO,iBACNP,EAAMmF,oBASVlM,EAAK7C,UAAU8pB,UAAY,SAAUllB,GACnC,GAAIA,EAAS,CAEX,GAAIN,GAAQjH,KAAK0F,IAAIsa,GAAG1Z,WACpBD,EAAQY,EAAMX,WACdoE,EAAYrE,EAAMqE,SACtBrE,GAAME,YAAYU,GAGhBjH,KAAKkkB,SACPlkB,KAAKkI,SAASX,GAGdvH,KAAKwH,OAAOD,GAGVA,IAEFlB,EAAMoB,YAAYR,GAClBZ,EAAMqE,UAAYA,IAQtBlF,EAAK6M,SAAW,SAAStM,GACvB,IAAKsK,MAAMnL,QAAQa,GACjB,MAAOP,GAAK6M,UAAUtM,GAGxB,IAAIA,GAASA,EAAM7D,OAAS,EAAG,CAC7B,GAAIunB,GAAY1jB,EAAM,GAClB6D,EAAS6f,EAAU7f,OACnB+B,EAAS8d,EAAU9d,OACnBoF,EAAa0Y,EAAUjE,UAC3B7Z,GAAOhG,YAAY6X,aAGnB,IAAIoC,GAAejU,EAAON,cAC1B7F,GAAK0oB,UAAUnoB,EACf,IAAI8Z,GAAelU,EAAON,cAG1BtF,GAAMjE,QAAQ,SAAUuF,GACtBA,EAAKuC,OAAOse,QAAQ7gB,KAItBsE,EAAOlD,UAAU,eACf1C,MAAOA,EAAMyF,MAAM,GACnB5B,OAAQA,EACRyO,MAAOtH,EACP6O,aAAcA,EACdC,aAAcA,MAWpBra,EAAK4M,YAAc,SAASrM,GAC1B,IAAKsK,MAAMnL,QAAQa,GACjB,MAAOP,GAAK4M,aAAarM,GAG3B,IAAIA,GAASA,EAAM7D,OAAS,EAAG,CAC7B,GAAIwnB,GAAW3jB,EAAMA,EAAM7D,OAAS,GAChC0H,EAAS8f,EAAS9f,OAClB+B,EAAS+d,EAAS/d,MAEtBA,GAAOiD,SAASjD,EAAO7F,eAAeC,MAGtC,IAAI6Z,GAAejU,EAAON,eACtBqT,EAAYgL,EACZyE,EAASpoB,EAAMmD,IAAI,SAAU7B,GAC/B,GAAI+e,GAAQ/e,EAAK+e,OAGjB,OAFAxc,GAAO+U,YAAYyH,EAAO1H,GAC1BA,EAAY0H,EACLA,GAIY,KAAjBrgB,EAAM7D,OACRisB,EAAO,GAAGrmB,QAGV6D,EAAOT,OAAOijB,EAEhB,IAAItO,GAAelU,EAAON,cAE1BM,GAAOlD,UAAU,kBACfiW,UAAWgL,EACX3jB,MAAOooB,EACPvkB,OAAQA,EACRgW,aAAcA,EACdC,aAAcA,MAYpBra,EAAK7C,UAAUsqB,gBAAkB,SAAU9lB,EAAOC,EAAO2C,GACvD,GAAI6V,GAAe5f,KAAK2L,OAAON,eAE3B+iB,EAAU,GAAI5oB,GAAKxF,KAAK2L,QAC1BxE,MAAiBtB,QAATsB,EAAsBA,EAAQ,GACtCC,MAAiBvB,QAATuB,EAAsBA,EAAQ,GACtC2C,KAAMA,GAERqkB,GAAQ5mB,QAAO,GACfxH,KAAK4J,OAAO2U,aAAa6P,EAASpuB,MAClCA,KAAK2L,OAAOhG,YAAY6X,cACxB4Q,EAAQtmB,MAAM,QACd,IAAI+X,GAAe7f,KAAK2L,OAAON,cAE/BrL,MAAK2L,OAAOlD,UAAU,qBACpB1C,OAAQqoB,GACR5P,WAAYxe,KACZ4J,OAAQ5J,KAAK4J,OACbgW,aAAcA,EACdC,aAAcA,KAWlBra,EAAK7C,UAAUuqB,eAAiB,SAAU/lB,EAAOC,EAAO2C,GACtD,GAAI6V,GAAe5f,KAAK2L,OAAON,eAE3B+iB,EAAU,GAAI5oB,GAAKxF,KAAK2L,QAC1BxE,MAAiBtB,QAATsB,EAAsBA,EAAQ,GACtCC,MAAiBvB,QAATuB,EAAsBA,EAAQ,GACtC2C,KAAMA,GAERqkB,GAAQ5mB,QAAO,GACfxH,KAAK4J,OAAO+U,YAAYyP,EAASpuB,MACjCA,KAAK2L,OAAOhG,YAAY6X,cACxB4Q,EAAQtmB,MAAM,QACd,IAAI+X,GAAe7f,KAAK2L,OAAON,cAE/BrL,MAAK2L,OAAOlD,UAAU,oBACpB1C,OAAQqoB,GACR1P,UAAW1e,KACX4J,OAAQ5J,KAAK4J,OACbgW,aAAcA,EACdC,aAAcA,KAWlBra,EAAK7C,UAAU0rB,UAAY,SAAUlnB,EAAOC,EAAO2C,GACjD,GAAI6V,GAAe5f,KAAK2L,OAAON,eAE3B+iB,EAAU,GAAI5oB,GAAKxF,KAAK2L,QAC1BxE,MAAiBtB,QAATsB,EAAsBA,EAAQ,GACtCC,MAAiBvB,QAATuB,EAAsBA,EAAQ,GACtC2C,KAAMA,GAERqkB,GAAQ5mB,QAAO,GACfxH,KAAK4J,OAAOnC,YAAY2mB,GACxBpuB,KAAK2L,OAAOhG,YAAY6X,cACxB4Q,EAAQtmB,MAAM,QACd,IAAI+X,GAAe7f,KAAK2L,OAAON,cAE/BrL,MAAK2L,OAAOlD,UAAU,eACpB1C,OAAQqoB,GACRxkB,OAAQ5J,KAAK4J,OACbgW,aAAcA,EACdC,aAAcA,KASlBra,EAAK7C,UAAU2rB,cAAgB,SAAUlQ,GACvC,GAAID,GAAUne,KAAK+J,IACnB,IAAIqU,GAAWD,EAAS,CACtB,GAAIyB,GAAe5f,KAAK2L,OAAON,cAC/BrL,MAAKke,WAAWE,EAChB,IAAIyB,GAAe7f,KAAK2L,OAAON,cAE/BrL,MAAK2L,OAAOlD,UAAU,cACpBpB,KAAMrH,KACNme,QAASA,EACTC,QAASA,EACTwB,aAAcA,EACdC,aAAcA,MAWpBra,EAAK7C,UAAU4rB,QAAU,SAAUlJ,GACjC,GAAIrlB,KAAK4mB,aAAc,CACrB,GAAI4H,GAAsB,QAAbnJ,EAAuB,GAAK,EACrCpgB,EAAqB,SAAbjF,KAAK+J,KAAmB,QAAS,OAC7C/J,MAAKof,YAEL,IAAIE,GAAYtf,KAAK4Q,OACjByO,EAAUrf,KAAKmf,IAGnBnf,MAAK4Q,OAAS5Q,KAAK4Q,OAAOpH,SAG1BxJ,KAAK4Q,OAAOuO,KAAK,SAAUnI,EAAGC,GAC5B,MAAID,GAAE/R,GAAQgS,EAAEhS,GAAcupB,EAC1BxX,EAAE/R,GAAQgS,EAAEhS,IAAeupB,EACxB,IAETxuB,KAAKmf,KAAiB,GAATqP,EAAc,MAAQ,OAEnCxuB,KAAK2L,OAAOlD,UAAU,QACpBpB,KAAMrH,KACNsf,UAAWA,EACXD,QAASA,EACTI,UAAWzf,KAAK4Q,OAChB4O,QAASxf,KAAKmf,OAGhBnf,KAAKuf,eAQT/Z,EAAK7C,UAAU8jB,UAAY,WAKzB,MAJKzmB,MAAK6e,SACR7e,KAAK6e,OAAS,GAAIoI,GAAWjnB,KAAK2L,QAClC3L,KAAK6e,OAAO4G,UAAUzlB,OAEjBA,KAAK6e,OAAOzW,UASrB5C,EAAKgJ,kBAAoB,SAAU3B,GACjC,KAAOA,GAAQ,CACb,GAAIA,EAAOxF,KACT,MAAOwF,GAAOxF,IAEhBwF,GAASA,EAAOvG,WAGlB,MAAOT,SAQTL,EAAK0oB,UAAY,SAAUnoB,GACzB,IAAKsK,MAAMnL,QAAQa,GAEjB,WADAP,GAAK0oB,WAAWnoB,GAIlB,IAAI0jB,GAAY1jB,EAAM,GAClB6D,EAAS6f,EAAU7f,OACnBmH,EAAa0Y,EAAUjE,UAEvB5b,GAAOgH,OAAOG,EAAahL,EAAM7D,QACnC0H,EAAOgH,OAAOG,EAAahL,EAAM7D,QAAQ4F,QAElC8B,EAAOgH,OAAOG,EAAa,GAClCnH,EAAOgH,OAAOG,EAAa,GAAGjJ,QAG9B8B,EAAO9B,SASXtC,EAAK7C,UAAUinB,aAAe,WAC5B,GAAIvR,GAAQrY,KAAK4J,OAAOgH,OAAO5O,QAAQhC,KACvC,OAAOA,MAAK4J,OAAOgH,OAAOyH,EAAQ,IAAMrY,KAAK4J,OAAOiV,QAQtDrZ,EAAK7C,UAAUirB,cAAgB,WAC7B,GAAI9M,GAAW,KACXpb,EAAM1F,KAAKoI,QACf,IAAI1C,GAAOA,EAAIY,WAAY,CAEzB,GAAIynB,GAAUroB,CACd,GACEqoB,GAAUA,EAAQ3C,gBAClBtK,EAAWtb,EAAKgJ,kBAAkBuf,SAE7BA,GAAYjN,YAAoBmG,KAAenG,EAASkN,aAEjE,MAAOlN,IAQTtb,EAAK7C,UAAUsrB,UAAY,WACzB,GAAIrB,GAAW,KACXlnB,EAAM1F,KAAKoI,QACf,IAAI1C,GAAOA,EAAIY,WAAY,CAEzB,GAAIumB,GAAUnnB,CACd,GACEmnB,GAAUA,EAAQlG,YAClBiG,EAAWpnB,EAAKgJ,kBAAkBqe,SAE7BA,GAAYD,YAAoB3F,KAAe2F,EAASoB,aAGjE,MAAOpB,IAQTpnB,EAAK7C,UAAU4qB,WAAa,WAC1B,GAAI9D,GAAY,KACZ/jB,EAAM1F,KAAKoI,QACf,IAAI1C,GAAOA,EAAIY,WAAY,CACzB,GAAImoB,GAAW/oB,EAAIY,WAAWuT,UAC9B4P,GAAYjkB,EAAKgJ,kBAAkBigB,GAGrC,MAAOhF,IAQTjkB,EAAK7C,UAAUyqB,UAAY,WACzB,GAAI1D,GAAW,KACXhkB,EAAM1F,KAAKoI,QACf,IAAI1C,GAAOA,EAAIY,WAAY,CACzB,GAAIooB,GAAUhpB,EAAIY,WAAWqoB,SAE7B,KADAjF,EAAYlkB,EAAKgJ,kBAAkBkgB,GAC5BA,GAAYhF,YAAoBzC,KAAeyC,EAASsE,aAC7DU,EAAUA,EAAQtD,gBAClB1B,EAAYlkB,EAAKgJ,kBAAkBkgB,GAGvC,MAAOhF,IASTlkB,EAAK7C,UAAU8qB,iBAAmB,SAAU/V,GAC1C,GAAIhS,GAAM1F,KAAK0F,GAEf,QAAQgS,GACN,IAAKhS,GAAI0B,MACP,GAAIpH,KAAKokB,cACP,MAAO1e,GAAIyB,KAGf,KAAKzB,GAAIyB,MACP,GAAInH,KAAK4mB,aACP,MAAOlhB,GAAI8B,MAGf,KAAK9B,GAAI8B,OACP,MAAO9B,GAAIuC,IACb,KAAKvC,GAAIuC,KACP,GAAIvC,EAAIoJ,KACN,MAAOpJ,GAAIoJ,IAGf,SACE,MAAO,QAUbtJ,EAAK7C,UAAUmrB,aAAe,SAAUpW,GACtC,GAAIhS,GAAM1F,KAAK0F,GAEf,QAAQgS,GACN,IAAKhS,GAAIoJ,KACP,MAAOpJ,GAAIuC,IACb,KAAKvC,GAAIuC,KACP,GAAIjI,KAAK4mB,aACP,MAAOlhB,GAAI8B,MAGf,KAAK9B,GAAI8B,OACP,GAAIxH,KAAKokB,cACP,MAAO1e,GAAIyB,KAGf,KAAKzB,GAAIyB,MACP,IAAKnH,KAAK4mB,aACR,MAAOlhB,GAAI0B,KAEf,SACE,MAAO,QAYb5B,EAAK7C,UAAU0qB,gBAAkB,SAAUpT,GACzC,GAAIvU,GAAM1F,KAAK0F,GACf,KAAK,GAAIjC,KAAQiC,GACf,GAAIA,EAAIe,eAAehD,IACjBiC,EAAIjC,IAASwW,EACf,MAAOxW,EAIb,OAAO,OAST+B,EAAK7C,UAAUikB,WAAa,WAC1B,MAAoB,SAAb5mB,KAAK+J,MAAgC,UAAb/J,KAAK+J,MAItCvE,EAAKopB,aACHC,KAAQ,8HAGR3X,OAAU,+EAEV4X,MAAS,yEAETC,OAAU,oGAYZvpB,EAAK7C,UAAU+L,gBAAkB,SAAUqD,EAAQC,GACjD,GAAI3K,GAAOrH,KACPgvB,EAASxpB,EAAKopB,YACd3c,IAgDJ,IA9CIjS,KAAKyB,SAAS2F,OAChB6K,EAAMC,MACJ7J,KAAM,OACNuF,MAAO,gCACPjB,UAAW,mBAAqB3M,KAAK+J,KACrCgY,UAEI1Z,KAAM,OACNsE,UAAW,wBACO,QAAb3M,KAAK+J,KAAiB,uBAAyB,IACpD6D,MAAOohB,EAAOH,KACd1c,MAAO,WACL9K,EAAKinB,cAAc,WAIrBjmB,KAAM,QACNsE,UAAW,yBACO,SAAb3M,KAAK+J,KAAkB,uBAAyB,IACrD6D,MAAOohB,EAAOF,MACd3c,MAAO,WACL9K,EAAKinB,cAAc,YAIrBjmB,KAAM,SACNsE,UAAW,0BACO,UAAb3M,KAAK+J,KAAmB,uBAAyB,IACtD6D,MAAOohB,EAAO9X,OACd/E,MAAO,WACL9K,EAAKinB,cAAc,aAIrBjmB,KAAM,SACNsE,UAAW,0BACO,UAAb3M,KAAK+J,KAAmB,uBAAyB,IACtD6D,MAAOohB,EAAOD,OACd5c,MAAO,WACL9K,EAAKinB,cAAc,eAOzBtuB,KAAK4mB,aAAc,CACrB,GAAIvB,GAA2B,OAAbrlB,KAAKmf,KAAiB,OAAQ,KAChDlN,GAAMC,MACJ7J,KAAM,OACNuF,MAAO,2BAA6B5N,KAAK+J,KACzC4C,UAAW,mBAAqB0Y,EAChClT,MAAO,WACL9K,EAAKknB,QAAQlJ,IAEftD,UAEI1Z,KAAM,YACNsE,UAAW,sBACXiB,MAAO,2BAA6B5N,KAAK+J,KAAO,sBAChDoI,MAAO,WACL9K,EAAKknB,QAAQ,UAIflmB,KAAM,aACNsE,UAAW,uBACXiB,MAAO,2BAA6B5N,KAAK+J,KAAM,uBAC/CoI,MAAO,WACL9K,EAAKknB,QAAQ,aAOvB,GAAIvuB,KAAK4J,QAAU5J,KAAK4J,OAAOgd,aAAc,CACvC3U,EAAM/P,QAER+P,EAAMC,MACJnI,KAAQ,aAKZ,IAAI6G,GAASvJ,EAAKuC,OAAOgH,MACrBvJ,IAAQuJ,EAAOA,EAAO1O,OAAS,IACjC+P,EAAMC,MACJ7J,KAAM,SACNuF,MAAO,wEACPuU,aAAc,8CACdxV,UAAW,oBACXwF,MAAO,WACL9K,EAAKgnB,UAAU,GAAI,GAAI,SAEzBtM,UAEI1Z,KAAM,OACNsE,UAAW,uBACXiB,MAAOohB,EAAOH,KACd1c,MAAO,WACL9K,EAAKgnB,UAAU,GAAI,GAAI,WAIzBhmB,KAAM,QACNsE,UAAW,wBACXiB,MAAOohB,EAAOF,MACd3c,MAAO,WACL9K,EAAKgnB,UAAU,UAIjBhmB,KAAM,SACNsE,UAAW,yBACXiB,MAAOohB,EAAO9X,OACd/E,MAAO,WACL9K,EAAKgnB,UAAU,UAIjBhmB,KAAM,SACNsE,UAAW,yBACXiB,MAAOohB,EAAOD,OACd5c,MAAO,WACL9K,EAAKgnB,UAAU,GAAI,GAAI,eAQjCpc,EAAMC,MACJ7J,KAAM,SACNuF,MAAO,mEACPuU,aAAc,8CACdxV,UAAW,oBACXwF,MAAO,WACL9K,EAAK4lB,gBAAgB,GAAI,GAAI,SAE/BlL,UAEI1Z,KAAM,OACNsE,UAAW,uBACXiB,MAAOohB,EAAOH,KACd1c,MAAO,WACL9K,EAAK4lB,gBAAgB,GAAI,GAAI,WAI/B5kB,KAAM,QACNsE,UAAW,wBACXiB,MAAOohB,EAAOF,MACd3c,MAAO,WACL9K,EAAK4lB,gBAAgB,UAIvB5kB,KAAM,SACNsE,UAAW,yBACXiB,MAAOohB,EAAO9X,OACd/E,MAAO,WACL9K,EAAK4lB,gBAAgB,UAIvB5kB,KAAM,SACNsE,UAAW,yBACXiB,MAAOohB,EAAOD,OACd5c,MAAO,WACL9K,EAAK4lB,gBAAgB,GAAI,GAAI,eAMjCjtB,KAAKyB,SAAS0F,QAEhB8K,EAAMC,MACJ7J,KAAM,YACNuF,MAAO,gCACPjB,UAAW,uBACXwF,MAAO,WACL3M,EAAK4M,YAAY/K,MAKrB4K,EAAMC,MACJ7J,KAAM,SACNuF,MAAO,+BACPjB,UAAW,oBACXwF,MAAO,WACL3M,EAAK6M,SAAShL,OAMtB,GAAIY,GAAO,GAAI1C,GAAY0M,GAAQK,MAAON,GAC1C/J,GAAKsK,KAAKR,EAAQ/R,KAAK2L,OAAO3E,UAShCxB,EAAK7C,UAAUmjB,SAAW,SAAS1e,GACjC,MAAIA,aAAiBiJ,OACZ,QAELjJ,YAAiBxF,QACZ,SAEY,gBAAX,IAA0D,gBAA5B5B,MAAKooB,YAAYhhB,GAChD,SAGF,QAUT5B,EAAK7C,UAAUylB,YAAc,SAASG,GACpC,GAAI0G,GAAQ1G,EAAInB,cACZ8H,EAAMvc,OAAO4V,GACb4G,EAAWlU,WAAWsN,EAE1B,OAAW,IAAPA,EACK,GAES,QAAT0G,EACA,KAES,QAATA,GACA,EAES,SAATA,GACA,EAECG,MAAMF,IAASE,MAAMD,GAItB5G,EAHA2G,GAaX1pB,EAAK7C,UAAUqpB,YAAc,SAAU3jB,GACrC,GAAoB,gBAATA,GACT,MAAO8O,QAAO9O,EAGd,IAAIgnB,GAAclY,OAAO9O,GACpBwO,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,MAAO,WACfA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UAEf/V,EAAOwC,KAAKC,UAAU8rB,GACtBC,EAAOxuB,EAAKgb,UAAU,EAAGhb,EAAKoB,OAAS,EAI3C,OAHIlC,MAAK2L,OAAO9K,QAAQiU,iBAAkB,IACxCwa,EAAOruB,EAAK8T,mBAAmBua,IAE1BA,GAUX9pB,EAAK7C,UAAU2lB,cAAgB,SAAUiH,GACvC,GAAIzuB,GAAO,IAAMd,KAAKwvB,YAAYD,GAAe,IAC7CF,EAAcpuB,EAAKmC,MAAMtC,EAE7B,OAAOuuB,GACFxY,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,iBAAkB,KAC1BA,QAAQ,SAAU,MAYzBrR,EAAK7C,UAAU6sB,YAAc,SAAUnnB,GAIrC,IAFA,GAAIonB,GAAU,GACVzqB,EAAI,EACDA,EAAIqD,EAAKnG,QAAQ,CACtB,GAAIzB,GAAI4H,EAAKyN,OAAO9Q,EACX,OAALvE,EACFgvB,GAAW,MAEC,MAALhvB,GACPgvB,GAAWhvB,EACXuE,IAEAvE,EAAI4H,EAAKyN,OAAO9Q,IACN,KAANvE,GAAuC,IAA3B,aAAauB,QAAQvB,MACnCgvB,GAAW,MAEbA,GAAWhvB,GAGXgvB,GADY,KAALhvB,EACI,MAGAA,EAEbuE,IAGF,MAAOyqB,GAIT,IAAIxI,GAAaxC,EAAkBjf,EAEnC3F,GAAOD,QAAU4F,GAKZ,SAAS3F,EAAQD,EAASM,GAW/B,QAASwvB,GAAmB/jB,EAAQjJ,EAAOitB,GAOzC,QAASC,GAAW/sB,GAElB8I,EAAO7I,QAAQD,EAGf,IAAIuL,GAAUzC,EAAOjG,KAAOiG,EAAOjG,IAAI0I,OACnCA,IACFA,EAAQtG,QA6CZ,IAAK,GAxCD+nB,IACFvtB,MACE+F,KAAQ,OACRuF,MAAS,6BACTuE,MAAS,WACPyd,EAAW,UAGfE,MACEznB,KAAQ,OACRuF,MAAS,wBACTuE,MAAS,WACPyd,EAAW,UAGfvnB,MACEA,KAAQ,OACRuF,MAAS,8BACTuE,MAAS,WACPyd,EAAW,UAGfrG,MACElhB,KAAQ,OACRuF,MAAS,wBACTuE,MAAS,WACPyd,EAAW,UAGfG,MACE1nB,KAAQ,OACRuF,MAAS,sBACTuE,MAAS,WACPyd,EAAW,WAMb3d,KACKjN,EAAI,EAAGA,EAAItC,EAAMR,OAAQ8C,IAAK,CACrC,GAAInC,GAAOH,EAAMsC,GACbyc,EAAOoO,EAAehtB,EAC1B,KAAK4e,EACH,KAAM,IAAI1gB,OAAM,iBAAmB8B,EAAO,IAG5C4e,GAAK9U,UAAY,yBAA4BgjB,GAAW9sB,EAAQ,uBAAyB,IACzFoP,EAAMC,KAAKuP,GAIb,GAAIuO,GAAcH,EAAeF,EACjC,KAAKK,EACH,KAAM,IAAIjvB,OAAM,iBAAmB4uB,EAAU,IAE/C,IAAIM,GAAeD,EAAY3nB,KAG3B6nB,EAAMzjB,SAASC,cAAc,SACjCwjB,GAAIvjB,UAAY,wCAChBujB,EAAI1a,UAAYya,EAAe,YAC/BC,EAAItiB,MAAQ,qBACZsiB,EAAItjB,QAAU,WACZ,GAAI3E,GAAO,GAAI1C,GAAY0M,EAC3BhK,GAAKsK,KAAK2d,GAGZ,IAAIC,GAAM1jB,SAASC,cAAc,MAKjC,OAJAyjB,GAAIxjB,UAAY,mBAChBwjB,EAAI7c,MAAM8c,SAAW,WACrBD,EAAI1oB,YAAYyoB,GAETC,EArGT,GAAI5qB,GAAcrF,EAAoB,EAwGtCN,GAAQsE,OAASwrB,GAKZ,SAAS7vB,EAAQD,EAASM,GAG/B,GAAIwV,GAAW,WACf,GAAI2a,IAAUC,MAAO,aACrBC,MACAC,UAAWrvB,MAAQ,EAAEsvB,WAAa,EAAEC,OAAS,EAAEC,WAAa,EAAEC,OAAS,EAAEC,gBAAkB,EAAEC,KAAO,EAAEC,mBAAqB,EAAEC,KAAO,GAAGC,MAAQ,GAAGC,SAAW,GAAGC,UAAY,GAAGC,IAAM,GAAGC,WAAa,GAAGC,UAAY,GAAGC,IAAI,GAAGC,IAAI,GAAGC,eAAiB,GAAGC,WAAa,GAAGC,IAAI,GAAGC,IAAI,GAAGC,IAAI,GAAGC,IAAI,GAAGC,gBAAkB,GAAGC,QAAU,EAAEC,KAAO,GAC7UC,YAAaC,EAAE,QAAQC,EAAE,SAASC,EAAE,SAASC,EAAE,OAAOC,GAAG,OAAOC,GAAG,QAAQC,GAAG,MAAMC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,KAC1HC,cAAe,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAC5JC,cAAe,SAAmBC,EAAOC,EAAOC,EAAS7C,EAAG8C,EAAQC,EAAGC,GAEvE,GAAIC,GAAKF,EAAGpxB,OAAS,CACrB,QAAQmxB,GACR,IAAK,GACKrzB,KAAKyzB,EAAIP,EAAOrc,QAAQ,YAAa,MACzBA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,KACfA,QAAQ,OAAO,KACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,KAErC,MACA,KAAK,GAAE7W,KAAKyzB,EAAI9gB,OAAOugB,EACvB,MACA,KAAK,GAAElzB,KAAKyzB,EAAI,IAChB,MACA,KAAK,GAAEzzB,KAAKyzB,GAAI,CAChB,MACA,KAAK,GAAEzzB,KAAKyzB,GAAI,CAChB,MACA,KAAK,GAAE,MAAOzzB,MAAKyzB,EAAIH,EAAGE,EAAG,EAE7B,KAAK,IAAGxzB,KAAKyzB,IACb,MACA,KAAK,IAAGzzB,KAAKyzB,EAAIH,EAAGE,EAAG,EACvB,MACA,KAAK,IAAGxzB,KAAKyzB,GAAKH,EAAGE,EAAG,GAAIF,EAAGE,GAC/B,MACA,KAAK,IAAGxzB,KAAKyzB,KAAQzzB,KAAKyzB,EAAEH,EAAGE,GAAI,IAAMF,EAAGE,GAAI,EAChD,MACA,KAAK,IAAGxzB,KAAKyzB,EAAIH,EAAGE,EAAG,GAAIF,EAAGE,EAAG,GAAGF,EAAGE,GAAI,IAAMF,EAAGE,GAAI,EACxD,MACA,KAAK,IAAGxzB,KAAKyzB,IACb,MACA,KAAK,IAAGzzB,KAAKyzB,EAAIH,EAAGE,EAAG,EACvB,MACA,KAAK,IAAGxzB,KAAKyzB,GAAKH,EAAGE,GACrB,MACA,KAAK,IAAGxzB,KAAKyzB,EAAIH,EAAGE,EAAG,GAAIF,EAAGE,EAAG,GAAGthB,KAAKohB,EAAGE,MAI5CvsB,QAASysB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIsB,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAMoB,GAAG,KAAKzB,IAAI,EAAE,MAAMA,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKW,EAAE,GAAGtB,GAAG,EAAE,IAAIO,IAAI,EAAE,IAAIwB,GAAG,GAAGC,GAAG,KAAKV,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIsB,GAAG,KAAKH,GAAG,EAAE,KAAKzB,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMJ,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMD,IAAI,EAAE,MAAMH,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMW,EAAE,GAAGtB,GAAG,EAAE,IAAIgC,GAAG,KAAKV,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAML,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMW,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAMH,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMA,IAAI,EAAE,IAAIE,IAAI,EAAE,MACtwCuB,gBAAiBL,IAAI,EAAE,IACvBM,WAAY,SAAoBhM,EAAKiM,GACjC,KAAM,IAAIzzB,OAAMwnB,IAEpBnlB,MAAO,SAAe2E,GA0BlB,QAAS0sB,GAAU/I,GACfgJ,EAAMxyB,OAASwyB,EAAMxyB,OAAS,EAAEwpB,EAChCiJ,EAAOzyB,OAASyyB,EAAOzyB,OAASwpB,EAChCkJ,EAAO1yB,OAAS0yB,EAAO1yB,OAASwpB,EAGpC,QAASmJ,KACL,GAAIC,EAMJ,OALAA,GAAQC,EAAKC,MAAMH,OAAS,EAEP,gBAAVC,KACPA,EAAQC,EAAKvE,SAASsE,IAAUA,GAE7BA,EAtCX,GAAIC,GAAO/0B,KACP00B,GAAS,GACTC,GAAU,MACVC,KACA3tB,EAAQjH,KAAKiH,MACbisB,EAAS,GACTE,EAAW,EACXD,EAAS,EACT8B,EAAa,EACbC,EAAS,EACT9D,EAAM,CAIVpxB,MAAKg1B,MAAMG,SAASptB,GACpB/H,KAAKg1B,MAAMzE,GAAKvwB,KAAKuwB,GACrBvwB,KAAKuwB,GAAGyE,MAAQh1B,KAAKg1B,MACW,mBAArBh1B,MAAKg1B,MAAMI,SAClBp1B,KAAKg1B,MAAMI,UACf,IAAIC,GAAQr1B,KAAKg1B,MAAMI,MACvBR,GAAO1iB,KAAKmjB,GAEsB,kBAAvBr1B,MAAKuwB,GAAGgE,aACfv0B,KAAKu0B,WAAav0B,KAAKuwB,GAAGgE,WAmB9B,KADA,GAAIe,GAAQC,EAAgBC,EAAO9sB,EAAW+sB,EAAY/0B,EAAEuc,EAAIyY,EAAUC,EAAzBC,OACpC,CAgBT,GAdAJ,EAAQd,EAAMA,EAAMxyB,OAAO,GAGvBlC,KAAKs0B,eAAekB,GACpB9sB,EAAS1I,KAAKs0B,eAAekB,IAEf,MAAVF,IACAA,EAAST,KAEbnsB,EAASzB,EAAMuuB,IAAUvuB,EAAMuuB,GAAOF,IAKpB,mBAAX5sB,KAA2BA,EAAOxG,SAAWwG,EAAO,GAAI,CAE/D,IAAKusB,EAAY,CAEbU,IACA,KAAKj1B,IAAKuG,GAAMuuB,GAAYx1B,KAAKkyB,WAAWxxB,IAAMA,EAAI,GAClDi1B,EAASzjB,KAAK,IAAIlS,KAAKkyB,WAAWxxB,GAAG,IAEzC,IAAIm1B,GAAS,EAETA,GADA71B,KAAKg1B,MAAMc,aACF,wBAAwB1C,EAAS,GAAG,MAAMpzB,KAAKg1B,MAAMc,eAAe,eAAeH,EAASlgB,KAAK,MAAQ,UAAYzV,KAAKkyB,WAAWoD,GAAS,IAE9I,wBAAwBlC,EAAS,GAAG,iBACpB,GAAVkC,EAAsB,eACV,KAAKt1B,KAAKkyB,WAAWoD,IAAWA,GAAQ,KAEvEt1B,KAAKu0B,WAAWsB,GACXxtB,KAAMrI,KAAKg1B,MAAMpe,MAAOke,MAAO90B,KAAKkyB,WAAWoD,IAAWA,EAAQS,KAAM/1B,KAAKg1B,MAAM5B,SAAU4C,IAAKX,EAAOM,SAAUA,IAI5H,GAAkB,GAAdV,EAAiB,CACjB,GAAIK,GAAUlE,EACV,KAAM,IAAIrwB,OAAM80B,GAAU,kBAI9B1C,GAASnzB,KAAKg1B,MAAM7B,OACpBD,EAASlzB,KAAKg1B,MAAM9B,OACpBE,EAAWpzB,KAAKg1B,MAAM5B,SACtBiC,EAAQr1B,KAAKg1B,MAAMI,OACnBE,EAAST,IAIb,OAAU,CAEN,GAAKK,EAAOne,YAAe9P,GAAMuuB,GAC7B,KAEJ,IAAa,GAATA,EACA,KAAM,IAAIz0B,OAAM80B,GAAU,kBAE9BpB,GAAS,GACTe,EAAQd,EAAMA,EAAMxyB,OAAO,GAG/BqzB,EAAiBD,EACjBA,EAASJ,EACTM,EAAQd,EAAMA,EAAMxyB,OAAO,GAC3BwG,EAASzB,EAAMuuB,IAAUvuB,EAAMuuB,GAAON,GACtCD,EAAa,EAIjB,GAAIvsB,EAAO,YAAc2H,QAAS3H,EAAOxG,OAAS,EAC9C,KAAM,IAAInB,OAAM,oDAAoDy0B,EAAM,YAAYF,EAG1F,QAAQ5sB,EAAO,IAEX,IAAK,GAGDgsB,EAAMxiB,KAAKojB,GACXX,EAAOziB,KAAKlS,KAAKg1B,MAAM9B,QACvB0B,EAAO1iB,KAAKlS,KAAKg1B,MAAMI,QACvBV,EAAMxiB,KAAKxJ,EAAO,IAClB4sB,EAAS,KACJC,GAQDD,EAASC,EACTA,EAAiB,OARjBpC,EAASnzB,KAAKg1B,MAAM7B,OACpBD,EAASlzB,KAAKg1B,MAAM9B,OACpBE,EAAWpzB,KAAKg1B,MAAM5B,SACtBiC,EAAQr1B,KAAKg1B,MAAMI,OACfH,EAAa,GACbA,IAKR,MAEJ,KAAK,GAgBD,GAbAhY,EAAMjd,KAAKgzB,aAAatqB,EAAO,IAAI,GAGnCktB,EAAMnC,EAAIkB,EAAOA,EAAOzyB,OAAO+a,GAE/B2Y,EAAMrC,IACF0C,WAAYrB,EAAOA,EAAO1yB,QAAQ+a,GAAK,IAAIgZ,WAC3CC,UAAWtB,EAAOA,EAAO1yB,OAAO,GAAGg0B,UACnCC,aAAcvB,EAAOA,EAAO1yB,QAAQ+a,GAAK,IAAIkZ,aAC7CC,YAAaxB,EAAOA,EAAO1yB,OAAO,GAAGk0B,aAEzCX,EAAIz1B,KAAKizB,cAAc1yB,KAAKq1B,EAAO1C,EAAQC,EAAQC,EAAUpzB,KAAKuwB,GAAI7nB,EAAO,GAAIisB,EAAQC,GAExE,mBAANa,GACP,MAAOA,EAIPxY,KACAyX,EAAQA,EAAMlpB,MAAM,EAAE,GAAGyR,EAAI,GAC7B0X,EAASA,EAAOnpB,MAAM,EAAG,GAAGyR,GAC5B2X,EAASA,EAAOppB,MAAM,EAAG,GAAGyR,IAGhCyX,EAAMxiB,KAAKlS,KAAKgzB,aAAatqB,EAAO,IAAI,IACxCisB,EAAOziB,KAAK0jB,EAAMnC,GAClBmB,EAAO1iB,KAAK0jB,EAAMrC,IAElBmC,EAAWzuB,EAAMytB,EAAMA,EAAMxyB,OAAO,IAAIwyB,EAAMA,EAAMxyB,OAAO,IAC3DwyB,EAAMxiB,KAAKwjB,EACX,MAEJ,KAAK,GACD,OAAO,GAKnB,OAAO,IAGPV,EAAQ,WACZ,GAAIA,IAAU5D,IAAI,EAClBmD,WAAW,SAAoBhM,EAAKiM,GAC5B,IAAIx0B,KAAKuwB,GAAGgE,WAGR,KAAM,IAAIxzB,OAAMwnB,EAFhBvoB,MAAKuwB,GAAGgE,WAAWhM,EAAKiM,IAKpCW,SAAS,SAAUptB,GAOX,MANA/H,MAAKq2B,OAAStuB,EACd/H,KAAKs2B,MAAQt2B,KAAKu2B,MAAQv2B,KAAKw2B,MAAO,EACtCx2B,KAAKozB,SAAWpzB,KAAKmzB,OAAS,EAC9BnzB,KAAKkzB,OAASlzB,KAAKy2B,QAAUz2B,KAAK4W,MAAQ,GAC1C5W,KAAK02B,gBAAkB,WACvB12B,KAAKo1B,QAAUa,WAAW,EAAEE,aAAa,EAAED,UAAU,EAAEE,YAAY,GAC5Dp2B,MAEf+H,MAAM,WACE,GAAI4uB,GAAK32B,KAAKq2B,OAAO,EACrBr2B,MAAKkzB,QAAQyD,EACb32B,KAAKmzB,SACLnzB,KAAK4W,OAAO+f,EACZ32B,KAAKy2B,SAASE,CACd,IAAIC,GAAQD,EAAG/f,MAAM,KAGrB,OAFIggB,IAAO52B,KAAKozB,WAChBpzB,KAAKq2B,OAASr2B,KAAKq2B,OAAO7qB,MAAM,GACzBmrB,GAEfE,MAAM,SAAUF,GAER,MADA32B,MAAKq2B,OAASM,EAAK32B,KAAKq2B,OACjBr2B,MAEfic,KAAK,WAEG,MADAjc,MAAKs2B,OAAQ,EACNt2B,MAEf82B,KAAK,SAAUpL,GACP1rB,KAAKq2B,OAASr2B,KAAK4W,MAAMpL,MAAMkgB,GAAK1rB,KAAKq2B,QAEjDU,UAAU,WACF,GAAIC,GAAOh3B,KAAKy2B,QAAQ7a,OAAO,EAAG5b,KAAKy2B,QAAQv0B,OAASlC,KAAK4W,MAAM1U,OACnE,QAAQ80B,EAAK90B,OAAS,GAAK,MAAM,IAAM80B,EAAKpb,OAAO,KAAK/E,QAAQ,MAAO,KAE/EogB,cAAc,WACN,GAAIxlB,GAAOzR,KAAK4W,KAIhB,OAHInF,GAAKvP,OAAS,KACduP,GAAQzR,KAAKq2B,OAAOza,OAAO,EAAG,GAAGnK,EAAKvP,UAElCuP,EAAKmK,OAAO,EAAE,KAAKnK,EAAKvP,OAAS,GAAK,MAAM,KAAK2U,QAAQ,MAAO,KAEhFif,aAAa,WACL,GAAIoB,GAAMl3B,KAAK+2B,YACXt2B,EAAI,GAAI4P,OAAM6mB,EAAIh1B,OAAS,GAAGuT,KAAK,IACvC,OAAOyhB,GAAMl3B,KAAKi3B,gBAAkB,KAAOx2B,EAAE,KAErDgR,KAAK,WACG,GAAIzR,KAAKw2B,KACL,MAAOx2B,MAAKoxB,GAEXpxB,MAAKq2B,SAAQr2B,KAAKw2B,MAAO,EAE9B,IAAI1B,GACAle,EACAugB,EACA9e,EAEAue,CACC52B,MAAKs2B,QACNt2B,KAAKkzB,OAAS,GACdlzB,KAAK4W,MAAQ,GAGjB,KAAK,GADDwgB,GAAQp3B,KAAKq3B,gBACRryB,EAAE,EAAEA,EAAIoyB,EAAMl1B,SACnBi1B,EAAYn3B,KAAKq2B,OAAOzf,MAAM5W,KAAKo3B,MAAMA,EAAMpyB,MAC3CmyB,GAAevgB,KAASugB,EAAU,GAAGj1B,OAAS0U,EAAM,GAAG1U,UACvD0U,EAAQugB,EACR9e,EAAQrT,EACHhF,KAAKa,QAAQy2B,OALKtyB,KAQ/B,MAAI4R,IACAggB,EAAQhgB,EAAM,GAAGA,MAAM,SACnBggB,IAAO52B,KAAKozB,UAAYwD,EAAM10B,QAClClC,KAAKo1B,QAAUa,WAAYj2B,KAAKo1B,OAAOc,UACxBA,UAAWl2B,KAAKozB,SAAS,EACzB+C,aAAcn2B,KAAKo1B,OAAOgB,YAC1BA,YAAaQ,EAAQA,EAAMA,EAAM10B,OAAO,GAAGA,OAAO,EAAIlC,KAAKo1B,OAAOgB,YAAcxf,EAAM,GAAG1U,QACxGlC,KAAKkzB,QAAUtc,EAAM,GACrB5W,KAAK4W,OAASA,EAAM,GACpB5W,KAAKmzB,OAASnzB,KAAKkzB,OAAOhxB,OAC1BlC,KAAKs2B,OAAQ,EACbt2B,KAAKq2B,OAASr2B,KAAKq2B,OAAO7qB,MAAMoL,EAAM,GAAG1U,QACzClC,KAAKy2B,SAAW7f,EAAM,GACtBke,EAAQ90B,KAAKizB,cAAc1yB,KAAKP,KAAMA,KAAKuwB,GAAIvwB,KAAMo3B,EAAM/e,GAAOrY,KAAK02B,eAAe12B,KAAK02B,eAAex0B,OAAO,IAC7GlC,KAAKw2B,MAAQx2B,KAAKq2B,SAAQr2B,KAAKw2B,MAAO,GACtC1B,EAAcA,EACb,QAEW,KAAhB90B,KAAKq2B,OACEr2B,KAAKoxB,QAEZpxB,MAAKu0B,WAAW,0BAA0Bv0B,KAAKozB,SAAS,GAAG,yBAAyBpzB,KAAK81B,gBAChFztB,KAAM,GAAIysB,MAAO,KAAMiB,KAAM/1B,KAAKozB,YAGvDyB,IAAI,WACI,GAAIY,GAAIz1B,KAAKyR,MACb,OAAiB,mBAANgkB,GACAA,EAEAz1B,KAAK60B,OAGxB0C,MAAM,SAAeC,GACbx3B,KAAK02B,eAAexkB,KAAKslB,IAEjCC,SAAS,WACD,MAAOz3B,MAAK02B,eAAegB,OAEnCL,cAAc,WACN,MAAOr3B,MAAK23B,WAAW33B,KAAK02B,eAAe12B,KAAK02B,eAAex0B,OAAO,IAAIk1B,OAElFQ,SAAS,WACD,MAAO53B,MAAK02B,eAAe12B,KAAK02B,eAAex0B,OAAO,IAE9D21B,UAAU,SAAeL,GACjBx3B,KAAKu3B,MAAMC,IA0CnB,OAxCAxC,GAAMn0B,WACNm0B,EAAM/B,cAAgB,SAAmB1C,EAAGuH,EAAIC,EAA0BC,GAG1E,OAAOD,GACP,IAAK,GACL,KACA,KAAK,GAAE,MAAO,EAEd,KAAK,GAAkD,MAAhDD,GAAI5E,OAAS4E,EAAI5E,OAAOtX,OAAO,EAAEkc,EAAI3E,OAAO,GAAW,CAE9D,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,IAAG,MAAO,GAEf,KAAK,IAAG,MAAO,EAEf,KAAK,IAAG,MAAO,GAEf,KAAK,IAAG,MAAO,YAIf6B,EAAMoC,OAAS,WAAW,8DAA8D,sEAAqE,UAAU,UAAU,UAAU,UAAU,SAAS,SAAS,cAAc,eAAe,cAAc,SAAS,UAC3QpC,EAAM2C,YAAcM,SAAWb,OAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAIc,WAAY,IAI9ElD,IAEP,OADA3E,GAAO2E,MAAQA,EACR3E,IAGLzwB,GAAQywB,OAAS3a,EACjB9V,EAAQwD,MAAQsS,EAAStS,MAAMwD,KAAK8O,IAKjC,SAAS7V,EAAQD,EAASM,GAG/B,GAAIsS,GAAMtS,GAAsB,WAAkC,GAAImC,GAAI,GAAItB,OAAM,6BAA8D,MAA7BsB,GAAEC,KAAO,mBAA0BD,KAGxJnC,GAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IAEpBL,EAAOD,QAAU4S,GAKZ,SAAS3S,EAAQD,EAASM,GAS/B,QAASukB,GAAkBjf,GAQzB,QAASyhB,GAAYtb,GAEnB3L,KAAK2L,OAASA,EACd3L,KAAK0F,OA4MP,MAzMAuhB,GAAWtkB,UAAY,GAAI6C,GAM3ByhB,EAAWtkB,UAAUyF,OAAS,WAE5B,GAAI1C,GAAM1F,KAAK0F,GAEf,IAAIA,EAAIsa,GACN,MAAOta,GAAIsa,EAGbhgB,MAAK0kB,oBAGL,IAAIyT,GAAW1rB,SAASC,cAAc,KAMtC,IALAyrB,EAAS9wB,KAAOrH,KAChB0F,EAAIsa,GAAKmY,EAILn4B,KAAKyB,SAAS0F,MAAO,CAEvBzB,EAAIyjB,OAAS1c,SAASC,cAAc,KAGpC,IAAI2c,GAAS5c,SAASC,cAAc,KACpChH,GAAI2jB,OAASA,CACb,IAAIphB,GAAOwE,SAASC,cAAc,SAClCzE,GAAK0E,UAAY,yBACjB1E,EAAK2F,MAAQ,0CACblI,EAAIuC,KAAOA,EACXohB,EAAO5hB,YAAY/B,EAAIuC,MAIzB,GAAImwB,GAAW3rB,SAASC,cAAc,MAClC2rB,EAAU5rB,SAASC,cAAc,MASrC,OARA2rB,GAAQ7iB,UAAY,UACpB6iB,EAAQ1rB,UAAY,sBACpByrB,EAAS3wB,YAAY4wB,GACrB3yB,EAAIua,GAAKmY,EACT1yB,EAAI2C,KAAOgwB,EAEXr4B,KAAKkhB,YAEEiX,GAMTlR,EAAWtkB,UAAUue,UAAY,WAC/B,GAAIxb,GAAM1F,KAAK0F,IACX0yB,EAAW1yB,EAAIua,EACfmY,KACFA,EAAS9kB,MAAMglB,YAAiC,GAAlBt4B,KAAKmmB,WAAkB,GAAM,KAI7D,IAAIkS,GAAU3yB,EAAI2C,IACdgwB,KACFA,EAAQ7iB,UAAY,UAAYxV,KAAK4J,OAAOG,KAAO,IAKrD,IAAIouB,GAAWzyB,EAAIsa,EACdhgB,MAAKguB,YAYHtoB,EAAIsa,GAAGnG,aACNnU,EAAIyjB,QACNgP,EAAS1wB,YAAY/B,EAAIyjB,QAEvBzjB,EAAI2jB,QACN8O,EAAS1wB,YAAY/B,EAAI2jB,QAE3B8O,EAAS1wB,YAAY2wB,IAlBnB1yB,EAAIsa,GAAGnG,aACLnU,EAAIyjB,QACNgP,EAAS5xB,YAAYb,EAAIyjB,QAEvBzjB,EAAI2jB,QACN8O,EAAS5xB,YAAYb,EAAI2jB,QAE3B8O,EAAS5xB,YAAY6xB,KAqB3BnR,EAAWtkB,UAAUqrB,UAAY,WAC/B,MAAqC,IAA7BhuB,KAAK4J,OAAOgH,OAAO1O,QAS7B+kB,EAAWtkB,UAAU+L,gBAAkB,SAAUqD,EAAQC,GACvD,GAAI3K,GAAOrH,KACPgvB,EAASxpB,EAAKopB,YACd3c,IAGA5J,KAAQ,SACRuF,MAAS,uDACTuU,aAAgB,8CAChBxV,UAAa,oBACbwF,MAAS,WACP9K,EAAKgnB,UAAU,GAAI,GAAI,SAEzBtM,UAEI1Z,KAAQ,OACRsE,UAAa,uBACbiB,MAASohB,EAAOH,KAChB1c,MAAS,WACP9K,EAAKgnB,UAAU,GAAI,GAAI,WAIzBhmB,KAAQ,QACRsE,UAAa,wBACbiB,MAASohB,EAAOF,MAChB3c,MAAS,WACP9K,EAAKgnB,UAAU,UAIjBhmB,KAAQ,SACRsE,UAAa,yBACbiB,MAASohB,EAAO9X,OAChB/E,MAAS,WACP9K,EAAKgnB,UAAU,UAIjBhmB,KAAQ,SACRsE,UAAa,yBACbiB,MAASohB,EAAOD,OAChB5c,MAAS,WACP9K,EAAKgnB,UAAU,GAAI,GAAI,eAO7BpmB,EAAO,GAAI1C,GAAY0M,GAAQK,MAAON,GAC1C/J,GAAKsK,KAAKR,EAAQ/R,KAAK2L,OAAO3E,UAOhCigB,EAAWtkB,UAAU2J,QAAU,SAAUC,GACvC,GAAIxC,GAAOwC,EAAMxC,KACb8C,EAASN,EAAMM,QAAUN,EAAMggB,WAC/B7mB,EAAM1F,KAAK0F,IAGXuC,EAAOvC,EAAIuC,IAWf,IAVI4E,GAAU5E,IACA,aAAR8B,EACF/J,KAAK2L,OAAOhG,YAAY0X,UAAUrd,KAAK4J,QAExB,YAARG,GACP/J,KAAK2L,OAAOhG,YAAY6X,eAKhB,SAARzT,GAAmB8C,GAAUnH,EAAIuC,KAAM,CACzC,GAAItC,GAAc3F,KAAK2L,OAAOhG,WAC9BA,GAAY0X,UAAUrd,KAAK4J,QAC3BjE,EAAY+X,OACZzc,EAAKgX,aAAavS,EAAIuC,KAAM,uBAC5BjI,KAAK0O,gBAAgBhJ,EAAIuC,KAAM,WAC7BhH,EAAKmX,gBAAgB1S,EAAIuC,KAAM,uBAC/BtC,EAAYgY,SACZhY,EAAY6X,gBAIJ,WAARzT,GACF/J,KAAK2sB,UAAUpgB,IAIZ0a,EA9NT,GAAIhmB,GAAOf,EAAoB,GAC3BqF,EAAcrF,EAAoB,EAgOtCL,GAAOD,QAAU6kB,GAKZ,SAAS5kB,EAAQD,EAASM,GAgC/BsS,IAAI1S,OAAO,wBAAyB,UAAW,UAAW,SAAU,eAAgB,SAASy4B,EAAU34B,EAASC,GAEhHD,EAAQ44B,QAAS,EACjB54B,EAAQ64B,SAAW,iBACnB74B,EAAQ84B,QAAU,4/EA2GlB,IAAIhzB,GAAM6yB,EAAS,aACnB7yB,GAAIizB,gBAAgB/4B,EAAQ84B,QAAS94B,EAAQ64B,aAMxC,SAAS54B,EAAQD,EAASM,GAE/BsS,IAAI1S,OAAO,iCAAiC,UAAU,UAAU,SAAS,cAAc,iCAAkC,SAASy4B,EAAU34B,EAASC,GACrJ,YAEA,IAAI+4B,GAAML,EAAS,cACfM,EAAqBN,EAAS,0BAA0BM,mBAExDC,EAAqB,WACrB94B,KAAK+4B,QACDrpB,QAEQolB,MAAQ,WACRkE,MAAQ,gDAERlE,MAAQ,SACRkE,MAAQ,IACRvnB,KAAQ,WAERqjB,MAAQ,mBACRkE,MAAQ,yBAERlE,MAAQ,mBACRkE,MAAQ,oDAERlE,MAAQ,4BACRkE,MAAQ,sBAERlE,MAAQ,kBACRkE,MAAQ,uCAERlE,MAAQ,kBACRkE,MAAQ,cAERlE,MAAQ,eACRkE,MAAQ,UAERlE,MAAQ,eACRkE,MAAQ,YAERlE,MAAQ,OACRkE,MAAQ,SAGhBjK,SAEQ+F,MAAQ,2BACRkE,MAAQ,uDAERlE,MAAQ,SACRkE,MAAQ,cAERlE,MAAQ,SACRkE,MAAQ,IACRvnB,KAAQ,UAERqjB,MAAQ,SACRkE,MAAQ,GACRvnB,KAAQ,WAOxBmnB,GAAIK,SAASH,EAAoBD,GAEjCj5B,EAAQk5B,mBAAqBA,IAG7BtmB,IAAI1S,OAAO,mCAAmC,UAAU,UAAU,SAAS,aAAc,SAASy4B,EAAU34B,EAASC,GACrH,YAEA,IAAIq5B,GAAQX,EAAS,YAAYW,MAE7BC,EAAuB,cAE3B,WAEIn5B,KAAKo5B,aAAe,SAASrD,EAAMhuB,GAC/B,MAAM,QAAQ4O,KAAKof,GAGZ,SAASpf,KAAK5O,IAFV,GAKf/H,KAAKq5B,YAAc,SAASC,EAAKC,GAC7B,GAAIxD,GAAOuD,EAAIE,QAAQD,GACnB3iB,EAAQmf,EAAKnf,MAAM,WAEvB,KAAKA,EAAO,MAAO,EAEnB,IAAI6iB,GAAS7iB,EAAM,GAAG1U,OAClBw3B,EAAeJ,EAAIK,qBAAqBJ,IAAKA,EAAKE,OAAQA,GAE9D,KAAKC,GAAgBA,EAAaH,KAAOA,EAAK,MAAO,EAErD,IAAIK,GAAS55B,KAAK65B,WAAWP,EAAIE,QAAQE,EAAaH,KACtDD,GAAIziB,QAAQ,GAAIqiB,GAAMK,EAAK,EAAGA,EAAKE,EAAO,GAAIG,IAGlD55B,KAAK65B,WAAa,SAAS9D,GACvB,MAAOA,GAAKnf,MAAM,QAAQ,MAG/BrW,KAAK44B,EAAqBx2B,WAE7B/C,EAAQu5B,qBAAuBA,IAG/B3mB,IAAI1S,OAAO,6BAA6B,UAAU,UAAU,SAAS,cAAc,qBAAqB,qBAAqB,gBAAiB,SAASy4B,EAAU34B,EAASC,GAC1K,YAEA,IAUI4c,GAVAmc,EAAML,EAAS,iBACfuB,EAAYvB,EAAS,gBAAgBuB,UACrCC,EAAgBxB,EAAS,wBAAwBwB,cACjDC,EAAOzB,EAAS,kBAEhB0B,GACC,OAAQ,eAAgB,wBACzBC,GACC,OAAQ,eAAgB,uBAAwB,WAGjDC,KACAC,EAAc,SAASzuB,GACvB,GAAItL,GAAK,EAMT,OALIsL,GAAO0uB,cACPh6B,EAAKsL,EAAO/F,UAAUyS,MAClB8hB,EAAa3gB,YAAc7N,EAAO0uB,YAAY7gB,aAC9C2gB,GAAgB3gB,WAAY7N,EAAO0uB,YAAY7gB,cAEnD2gB,EAAa95B,GACNoc,EAAU0d,EAAa95B,QAClCoc,EAAU0d,EAAa95B,IACnBi6B,qBAAsB,EACtBC,gBAAiB,GACjBC,oBAAqB,GACrBC,sBAAuB,EACvBC,iBAAkB,GAClBC,uBAAwB,GACxBC,qBAAsB,MAI1BC,EAAa,SAASj1B,EAAW6I,EAAUqsB,EAASC,GACpD,GAAIC,GAAUp1B,EAAU+J,IAAI4pB,IAAM3zB,EAAU8J,MAAM6pB,GAClD,QACIlxB,KAAMyyB,EAAUrsB,EAAWssB,EAC3Bn1B,WACQ,EACAA,EAAU8J,MAAM+pB,OAAS,EACzBuB,EACAp1B,EAAU+J,IAAI8pB,QAAUuB,EAAU,EAAI,MAKlDC,EAAkB,WAClBj7B,KAAK2I,IAAI,SAAU,YAAa,SAAS6sB,EAAO9sB,EAAQiD,EAAQuvB,EAAS7yB,GACrE,GAAI6hB,GAASve,EAAOwvB,oBAChBpF,EAAOmF,EAAQ5B,IAAIE,QAAQtP,EAAOqP,IACtC,IAAY,KAARlxB,EAAa,CACb+xB,EAAYzuB,EACZ,IAAI/F,GAAY+F,EAAOyvB,oBACnB3sB,EAAWysB,EAAQ5B,IAAI+B,aAAaz1B,EACxC,IAAiB,KAAb6I,GAAgC,MAAbA,GAAoB9C,EAAO2vB,2BAC9C,MAAOT,GAAWj1B,EAAW6I,EAAU,IAAK,IACzC,IAAIwsB,EAAgBM,gBAAgB5vB,EAAQuvB,GAC/C,MAAI,WAAWvkB,KAAKof,EAAK7L,EAAOuP,UAAY9tB,EAAO6vB,mBAC/CP,EAAgBQ,iBAAiB9vB,EAAQuvB,EAAS,MAE9C7yB,KAAM,KACNzC,WAAY,EAAG,MAGnBq1B,EAAgBS,kBAAkB/vB,EAAQuvB,EAAS,MAE/C7yB,KAAM,IACNzC,WAAY,EAAG,SAIxB,IAAY,KAARyC,EAAa,CACpB+xB,EAAYzuB,EACZ,IAAIgwB,GAAY5F,EAAKja,UAAUoO,EAAOuP,OAAQvP,EAAOuP,OAAS,EAC9D,IAAiB,KAAbkC,EAAkB,CAClB,GAAIC,GAAWV,EAAQW,oBAAoB,KAAMpC,OAAQvP,EAAOuP,OAAS,EAAGF,IAAKrP,EAAOqP,KACxF,IAAiB,OAAbqC,GAAqBX,EAAgBa,sBAAsB5R,EAAQ6L,EAAM1tB,GAEzE,MADA4yB,GAAgBc;CAEZ1zB,KAAM,GACNzC,WAAY,EAAG,SAIxB,CAAA,GAAY,MAARyC,GAAwB,QAARA,EAAgB,CACvC+xB,EAAYzuB,EACZ,IAAIovB,GAAU,EACVE,GAAgBe,uBAAuB9R,EAAQ6L,KAC/CgF,EAAUf,EAAKiC,aAAa,IAAKxf,EAAQge,uBACzCQ,EAAgBiB,4BAEpB,IAAIP,GAAY5F,EAAKja,UAAUoO,EAAOuP,OAAQvP,EAAOuP,OAAS,EAC9D,IAAkB,MAAdkC,EAAmB,CACnB,GAAIjC,GAAewB,EAAQvB,qBAAqBJ,IAAKrP,EAAOqP,IAAKE,OAAQvP,EAAOuP,OAAO,GAAI,IAC3F,KAAKC,EACA,MAAO,KACZ,IAAIyC,GAAcn8B,KAAK65B,WAAWqB,EAAQ1B,QAAQE,EAAaH,UAC5D,CAAA,IAAIwB,EAIP,WADAE,GAAgBiB,2BAFhB,IAAIC,GAAcn8B,KAAK65B,WAAW9D,GAKtC,GAAI6D,GAASuC,EAAcjB,EAAQkB,cAEnC,QACI/zB,KAAM,KAAOuxB,EAAS,KAAOuC,EAAcpB,EAC3Cn1B,WAAY,EAAGg0B,EAAO13B,OAAQ,EAAG03B,EAAO13B,SAG5C+4B,EAAgBiB,+BAIxBl8B,KAAK2I,IAAI,SAAU,WAAY,SAAS6sB,EAAO9sB,EAAQiD,EAAQuvB,EAAS/vB,GACpE,GAAIsD,GAAWysB,EAAQ5B,IAAI+B,aAAalwB,EACxC,KAAKA,EAAMkxB,eAA6B,KAAZ5tB,EAAiB,CACzC2rB,EAAYzuB,EACZ,IAAIoqB,GAAOmF,EAAQ5B,IAAIE,QAAQruB,EAAMuE,MAAM6pB,KACvCoC,EAAY5F,EAAKja,UAAU3Q,EAAMwE,IAAI8pB,OAAQtuB,EAAMwE,IAAI8pB,OAAS,EACpE,IAAiB,KAAbkC,EAEA,MADAxwB,GAAMwE,IAAI8pB,SACHtuB,CAEPsR,GAAQge,2BAKpBz6B,KAAK2I,IAAI,SAAU,YAAa,SAAS6sB,EAAO9sB,EAAQiD,EAAQuvB,EAAS7yB,GACrE,GAAY,KAARA,EAAa,CACb+xB,EAAYzuB,EACZ,IAAI/F,GAAY+F,EAAOyvB,oBACnB3sB,EAAWysB,EAAQ5B,IAAI+B,aAAaz1B,EACxC,IAAiB,KAAb6I,GAAmB9C,EAAO2vB,2BAC1B,MAAOT,GAAWj1B,EAAW6I,EAAU,IAAK,IACzC,IAAIwsB,EAAgBM,gBAAgB5vB,EAAQuvB,GAE/C,MADAD,GAAgBQ,iBAAiB9vB,EAAQuvB,EAAS,MAE9C7yB,KAAM,KACNzC,WAAY,EAAG,QAGpB,IAAY,KAARyC,EAAa,CACpB+xB,EAAYzuB,EACZ,IAAIue,GAASve,EAAOwvB,oBAChBpF,EAAOmF,EAAQ5B,IAAIE,QAAQtP,EAAOqP,KAClCoC,EAAY5F,EAAKja,UAAUoO,EAAOuP,OAAQvP,EAAOuP,OAAS,EAC9D,IAAiB,KAAbkC,EAAkB,CAClB,GAAIC,GAAWV,EAAQW,oBAAoB,KAAMpC,OAAQvP,EAAOuP,OAAS,EAAGF,IAAKrP,EAAOqP,KACxF,IAAiB,OAAbqC,GAAqBX,EAAgBa,sBAAsB5R,EAAQ6L,EAAM1tB,GAEzE,MADA4yB,GAAgBc,0BAEZ1zB,KAAM,GACNzC,WAAY,EAAG,QAOnC5F,KAAK2I,IAAI,SAAU,WAAY,SAAS6sB,EAAO9sB,EAAQiD,EAAQuvB,EAAS/vB,GACpE,GAAIsD,GAAWysB,EAAQ5B,IAAI+B,aAAalwB,EACxC,KAAKA,EAAMkxB,eAA6B,KAAZ5tB,EAAiB,CACzC2rB,EAAYzuB,EACZ,IAAIoqB,GAAOmF,EAAQ5B,IAAIE,QAAQruB,EAAMuE,MAAM6pB,KACvCoC,EAAY5F,EAAKja,UAAU3Q,EAAMuE,MAAM+pB,OAAS,EAAGtuB,EAAMuE,MAAM+pB,OAAS,EAC5E,IAAiB,KAAbkC,EAEA,MADAxwB,GAAMwE,IAAI8pB,SACHtuB,KAKnBnL,KAAK2I,IAAI,WAAY,YAAa,SAAS6sB,EAAO9sB,EAAQiD,EAAQuvB,EAAS7yB,GACvE,GAAY,KAARA,EAAa,CACb+xB,EAAYzuB,EACZ,IAAI/F,GAAY+F,EAAOyvB,oBACnB3sB,EAAWysB,EAAQ5B,IAAI+B,aAAaz1B,EACxC,IAAiB,KAAb6I,GAAmB9C,EAAO2vB,2BAC1B,MAAOT,GAAWj1B,EAAW6I,EAAU,IAAK,IACzC,IAAIwsB,EAAgBM,gBAAgB5vB,EAAQuvB,GAE/C,MADAD,GAAgBQ,iBAAiB9vB,EAAQuvB,EAAS,MAE9C7yB,KAAM,KACNzC,WAAY,EAAG,QAGpB,IAAY,KAARyC,EAAa,CACpB+xB,EAAYzuB,EACZ,IAAIue,GAASve,EAAOwvB,oBAChBpF,EAAOmF,EAAQ5B,IAAIE,QAAQtP,EAAOqP,KAClCoC,EAAY5F,EAAKja,UAAUoO,EAAOuP,OAAQvP,EAAOuP,OAAS,EAC9D,IAAiB,KAAbkC,EAAkB,CAClB,GAAIC,GAAWV,EAAQW,oBAAoB,KAAMpC,OAAQvP,EAAOuP,OAAS,EAAGF,IAAKrP,EAAOqP,KACxF,IAAiB,OAAbqC,GAAqBX,EAAgBa,sBAAsB5R,EAAQ6L,EAAM1tB,GAEzE,MADA4yB,GAAgBc,0BAEZ1zB,KAAM,GACNzC,WAAY,EAAG,QAOnC5F,KAAK2I,IAAI,WAAY,WAAY,SAAS6sB,EAAO9sB,EAAQiD,EAAQuvB,EAAS/vB,GACtE,GAAIsD,GAAWysB,EAAQ5B,IAAI+B,aAAalwB,EACxC,KAAKA,EAAMkxB,eAA6B,KAAZ5tB,EAAiB,CACzC2rB,EAAYzuB,EACZ,IAAIoqB,GAAOmF,EAAQ5B,IAAIE,QAAQruB,EAAMuE,MAAM6pB,KACvCoC,EAAY5F,EAAKja,UAAU3Q,EAAMuE,MAAM+pB,OAAS,EAAGtuB,EAAMuE,MAAM+pB,OAAS,EAC5E,IAAiB,KAAbkC,EAEA,MADAxwB,GAAMwE,IAAI8pB,SACHtuB,KAKnBnL,KAAK2I,IAAI,iBAAkB,YAAa,SAAS6sB,EAAO9sB,EAAQiD,EAAQuvB,EAAS7yB,GAC7E,GAAY,KAARA,GAAuB,KAARA,EAAa,CAC5B+xB,EAAYzuB,EACZ,IAAI2K,GAAQjO,EACRzC,EAAY+F,EAAOyvB,oBACnB3sB,EAAWysB,EAAQ5B,IAAI+B,aAAaz1B,EACxC,IAAiB,KAAb6I,GAAgC,MAAbA,GAAgC,KAAZA,GAAmB9C,EAAO2vB,2BACjE,MAAOT,GAAWj1B,EAAW6I,EAAU6H,EAAOA,EAC3C,KAAK7H,EAAU,CAClB,GAAIyb,GAASve,EAAOwvB,oBAChBpF,EAAOmF,EAAQ5B,IAAIE,QAAQtP,EAAOqP,KAClC+C,EAAWvG,EAAKja,UAAUoO,EAAOuP,OAAO,EAAGvP,EAAOuP,QAClDkC,EAAY5F,EAAKja,UAAUoO,EAAOuP,OAAQvP,EAAOuP,OAAS,GAE1D3E,EAAQoG,EAAQqB,WAAWrS,EAAOqP,IAAKrP,EAAOuP,QAC9C+C,EAAatB,EAAQqB,WAAWrS,EAAOqP,IAAKrP,EAAOuP,OAAS,EAChE,IAAgB,MAAZ6C,GAAoBxH,GAAS,SAASne,KAAKme,EAAM/qB,MACjD,MAAO,KAEX,IAGI0yB,GAHAC,EAAe5H,GAAS,gBAAgBne,KAAKme,EAAM/qB,MACnD4yB,GAAeH,GAAc,gBAAgB7lB,KAAK6lB,EAAWzyB,KAGjE,IAAI4xB,GAAarlB,EACbmmB,EAAOC,IAAiBC,MACrB,CACH,GAAID,IAAiBC,EACjB,MAAO,KACX,IAAID,GAAgBC,EAChB,MAAO,KACX,IAAIC,GAAS1B,EAAQ2B,MAAMC,OAC3BF,GAAO5rB,UAAY,CACnB,IAAI+rB,GAAeH,EAAOjmB,KAAK2lB,EAC/BM,GAAO5rB,UAAY,CACnB,IAAIgsB,GAAcJ,EAAOjmB,KAAK2lB,EAC9B,IAAIS,GAAgBC,EAChB,MAAO,KACX,IAAIrB,IAAc,gBAAgBhlB,KAAKglB,GACnC,MAAO,KACXc,IAAO,EAEX,OACIp0B,KAAMo0B,EAAOnmB,EAAQA,EAAQ,GAC7B1Q,WAAY,EAAE,QAM9B5F,KAAK2I,IAAI,iBAAkB,WAAY,SAAS6sB,EAAO9sB,EAAQiD,EAAQuvB,EAAS/vB,GAC5E,GAAIsD,GAAWysB,EAAQ5B,IAAI+B,aAAalwB,EACxC,KAAKA,EAAMkxB,gBAA8B,KAAZ5tB,GAA+B,KAAZA,GAAkB,CAC9D2rB,EAAYzuB,EACZ,IAAIoqB,GAAOmF,EAAQ5B,IAAIE,QAAQruB,EAAMuE,MAAM6pB,KACvCoC,EAAY5F,EAAKja,UAAU3Q,EAAMuE,MAAM+pB,OAAS,EAAGtuB,EAAMuE,MAAM+pB,OAAS,EAC5E,IAAIkC,GAAaltB,EAEb,MADAtD,GAAMwE,IAAI8pB,SACHtuB,KAQvB8vB,GAAgBM,gBAAkB,SAAS5vB,EAAQuvB,GAC/C,GAAIhR,GAASve,EAAOwvB,oBAChB8B,EAAW,GAAIlD,GAAcmB,EAAShR,EAAOqP,IAAKrP,EAAOuP,OAC7D,KAAKz5B,KAAKk9B,gBAAgBD,EAASE,mBAAqB,OAAQlD,GAAwB,CACpF,GAAImD,GAAY,GAAIrD,GAAcmB,EAAShR,EAAOqP,IAAKrP,EAAOuP,OAAS,EACvE,KAAKz5B,KAAKk9B,gBAAgBE,EAAUD,mBAAqB,OAAQlD,GAC7D,OAAO,EAGf,MADAgD,GAASI,cACFJ,EAASK,uBAAyBpT,EAAOqP,KAC5Cv5B,KAAKk9B,gBAAgBD,EAASE,mBAAqB,OAAQjD,IAGnEe,EAAgBiC,gBAAkB,SAASpI,EAAOyI,GAC9C,MAAOA,GAAMv7B,QAAQ8yB,EAAM/qB,MAAQ+qB,GAAS,IAGhDmG,EAAgBQ,iBAAmB,SAAS9vB,EAAQuvB,EAASsC,GACzD,GAAItT,GAASve,EAAOwvB,oBAChBpF,EAAOmF,EAAQ5B,IAAIE,QAAQtP,EAAOqP,IACjCv5B,MAAK87B,sBAAsB5R,EAAQ6L,EAAMtZ,EAAQ+d,oBAAoB,MACtE/d,EAAQ6d,qBAAuB,GACnC7d,EAAQ8d,gBAAkBrQ,EAAOqP,IACjC9c,EAAQ+d,oBAAsBgD,EAAUzH,EAAKna,OAAOsO,EAAOuP,QAC3Dhd,EAAQ6d,wBAGZW,EAAgBS,kBAAoB,SAAS/vB,EAAQuvB,EAASsC,GAC1D,GAAItT,GAASve,EAAOwvB,oBAChBpF,EAAOmF,EAAQ5B,IAAIE,QAAQtP,EAAOqP,IACjCv5B,MAAKg8B,uBAAuB9R,EAAQ6L,KACrCtZ,EAAQge,sBAAwB,GACpChe,EAAQie,iBAAmBxQ,EAAOqP,IAClC9c,EAAQke,uBAAyB5E,EAAKna,OAAO,EAAGsO,EAAOuP,QAAU+D,EACjE/gB,EAAQme,qBAAuB7E,EAAKna,OAAOsO,EAAOuP,QAClDhd,EAAQge,yBAGZQ,EAAgBa,sBAAwB,SAAS5R,EAAQ6L,EAAMyH,GAC3D,MAAO/gB,GAAQ6d,qBAAuB,GAClCpQ,EAAOqP,MAAQ9c,EAAQ8d,iBACvBiD,IAAY/gB,EAAQ+d,oBAAoB,IACxCzE,EAAKna,OAAOsO,EAAOuP,UAAYhd,EAAQ+d,qBAG/CS,EAAgBe,uBAAyB,SAAS9R,EAAQ6L,GACtD,MAAOtZ,GAAQge,sBAAwB,GACnCvQ,EAAOqP,MAAQ9c,EAAQie,kBACvB3E,EAAKna,OAAOsO,EAAOuP,UAAYhd,EAAQme,sBACvC7E,EAAKna,OAAO,EAAGsO,EAAOuP,SAAWhd,EAAQke,wBAGjDM,EAAgBc,uBAAyB,WACrCtf,EAAQ+d,oBAAsB/d,EAAQ+d,oBAAoB5e,OAAO,GACjEa,EAAQ6d,wBAGZW,EAAgBiB,0BAA4B,WACpCzf,IACAA,EAAQge,sBAAwB,EAChChe,EAAQie,iBAAmB,KAMnC9B,EAAIK,SAASgC,EAAiBnB,GAE9Bl6B,EAAQq7B,gBAAkBA,IAG1BzoB,IAAI1S,OAAO,2BAA2B,UAAU,UAAU,SAAS,cAAc,YAAY,8BAA+B,SAASy4B,EAAU34B,EAASC,GACxJ,YAEA,IAAI+4B,GAAML,EAAS,iBACfW,EAAQX,EAAS,eAAeW,MAChCuE,EAAelF,EAAS,eAAemF,SAEvCA,EAAW99B,EAAQ89B,SAAW,SAASC,GACnCA,IACA39B,KAAK49B,mBAAqB,GAAIvmB,QAC1BrX,KAAK49B,mBAAmBC,OAAOhnB,QAAQ,YAAa,IAAM8mB,EAAajuB,QAE3E1P,KAAK89B,kBAAoB,GAAIzmB,QACzBrX,KAAK89B,kBAAkBD,OAAOhnB,QAAQ,YAAa,IAAM8mB,EAAahuB,OAIlFipB,GAAIK,SAASyE,EAAUD,GAEvB,WAEIz9B,KAAK49B,mBAAqB,8BAC1B59B,KAAK89B,kBAAoB,kCACzB99B,KAAK+9B,yBAA0B,uBAC/B/9B,KAAKg+B,yBAA2B,2BAChCh+B,KAAKi+B,cAAgB,4BACrBj+B,KAAKk+B,mBAAqBl+B,KAAKm+B,cAC/Bn+B,KAAKm+B,cAAgB,SAASjD,EAASkD,EAAW7E,GAC9C,GAAIxD,GAAOmF,EAAQ1B,QAAQD,EAE3B,IAAIv5B,KAAK+9B,yBAAyBpnB,KAAKof,KAC9B/1B,KAAKi+B,cAActnB,KAAKof,KAAU/1B,KAAKg+B,yBAAyBrnB,KAAKof,GACtE,MAAO,EAGf,IAAIsI,GAAKr+B,KAAKk+B,mBAAmBhD,EAASkD,EAAW7E,EAErD,QAAK8E,GAAMr+B,KAAKi+B,cAActnB,KAAKof,GACxB,QAEJsI,GAGXr+B,KAAKs+B,mBAAqB,SAASpD,EAASkD,EAAW7E,EAAKgF,GACxD,GAAIxI,GAAOmF,EAAQ1B,QAAQD,EAE3B,IAAIv5B,KAAKi+B,cAActnB,KAAKof,GACxB,MAAO/1B,MAAKw+B,sBAAsBtD,EAASnF,EAAMwD,EAErD,IAAI3iB,GAAQmf,EAAKnf,MAAM5W,KAAK49B,mBAC5B,IAAIhnB,EAAO,CACP,GAAI5R,GAAI4R,EAAMyB,KAEd,IAAIzB,EAAM,GACN,MAAO5W,MAAKy+B,oBAAoBvD,EAAStkB,EAAM,GAAI2iB,EAAKv0B,EAE5D,IAAImG,GAAQ+vB,EAAQwD,oBAAoBnF,EAAKv0B,EAAI4R,EAAM,GAAG1U,OAAQ,EASlE,OAPIiJ,KAAUA,EAAMkxB,gBACZkC,EACApzB,EAAQnL,KAAK2+B,gBAAgBzD,EAAS3B,GAClB,OAAb6E,IACPjzB,EAAQ,OAGTA,EAGX,GAAkB,cAAdizB,EAAJ,CAGA,GAAIxnB,GAAQmf,EAAKnf,MAAM5W,KAAK89B,kBAC5B,IAAIlnB,EAAO,CACP,GAAI5R,GAAI4R,EAAMyB,MAAQzB,EAAM,GAAG1U,MAE/B,OAAI0U,GAAM,GACC5W,KAAK4+B,oBAAoB1D,EAAStkB,EAAM,GAAI2iB,EAAKv0B,GAErDk2B,EAAQwD,oBAAoBnF,EAAKv0B,EAAG,OAInDhF,KAAK2+B,gBAAkB,SAASzD,EAAS3B,GACrC,GAAIxD,GAAOmF,EAAQ1B,QAAQD,GACvBsF,EAAc9I,EAAKvvB,OAAO,MAC1Bs4B,EAAWvF,EACXwF,EAAchJ,EAAK7zB,MACvBq3B,IAAY,CAGZ,KAFA,GAAIyF,GAASzF,EACT0F,EAAS/D,EAAQgE,cACZ3F,EAAM0F,GAAQ,CACnBlJ,EAAOmF,EAAQ1B,QAAQD,EACvB,IAAIK,GAAS7D,EAAKvvB,OAAO,KACzB,IAAe,KAAXozB,EAAJ,CAEA,GAAKiF,EAAcjF,EACf,KACJ,IAAIuF,GAAWn/B,KAAKs+B,mBAAmBpD,EAAS,MAAO3B,EAEvD,IAAI4F,EAAU,CACV,GAAIA,EAASzvB,MAAM6pB,KAAOuF,EACtB,KACG,IAAIK,EAAS9C,cAChB9C,EAAM4F,EAASxvB,IAAI4pB,QAChB,IAAIsF,GAAejF,EACtB,MAGRoF,EAASzF,GAGb,MAAO,IAAIL,GAAM4F,EAAUC,EAAaC,EAAQ9D,EAAQ1B,QAAQwF,GAAQ98B,SAE5ElC,KAAKw+B,sBAAwB,SAAStD,EAASnF,EAAMwD,GAOjD,IANA,GAAIwF,GAAchJ,EAAKvvB,OAAO,QAC1By4B,EAAS/D,EAAQgE,YACjBJ,EAAWvF,EAEXxe,EAAK,uCACLqkB,EAAQ,IACH7F,EAAM0F,GAAQ,CACnBlJ,EAAOmF,EAAQ1B,QAAQD,EACvB,IAAI/4B,GAAIua,EAAGC,KAAK+a,EAChB,IAAKv1B,IACDA,EAAE,GAAI4+B,IACLA,KAEAA,GAAO,MAGhB,GAAIJ,GAASzF,CACb,OAAIyF,GAASF,EACF,GAAI5F,GAAM4F,EAAUC,EAAaC,EAAQjJ,EAAK7zB,QADzD,SAKL3B,KAAKm9B,EAAS/6B,aAIjB6P,IAAI1S,OAAO,iBAAiB,UAAU,UAAU,SAAS,cAAc,gBAAgB,gCAAgC,kCAAkC,4BAA4B,0BAA0B,4BAA6B,SAASy4B,EAAU34B,EAASC,GACxQ,YAEA,IAAI+4B,GAAML,EAAS,cACf8G,EAAW9G,EAAS,UAAU+G,KAC9BC,EAAiBhH,EAAS,0BAA0BO,mBACpDK,EAAuBZ,EAAS,4BAA4BY,qBAC5D8B,EAAkB1C,EAAS,sBAAsB0C,gBACjDuE,EAAiBjH,EAAS,oBAAoBmF,SAC9C+B,EAAelH,EAAS,2BAA2BkH,aAEnDH,EAAO,WACPt/B,KAAKu/B,eAAiBA,EACtBv/B,KAAK0/B,SAAW,GAAIvG,GACpBn5B,KAAK2/B,WAAa,GAAI1E,GACtBj7B,KAAK4/B,aAAe,GAAIJ,GAE5B5G,GAAIK,SAASqG,EAAMD,GAEnB,WAEIr/B,KAAK6/B,kBAAoB,SAASrK,EAAOO,EAAM+J,GAC3C,GAAIlG,GAAS55B,KAAK65B,WAAW9D,EAE7B,IAAa,SAATP,EAAkB,CAClB,GAAI5e,GAAQmf,EAAKnf,MAAM,kBACnBA,KACAgjB,GAAUkG,GAIlB,MAAOlG,IAGX55B,KAAKo5B,aAAe,SAAS5D,EAAOO,EAAMhuB,GACtC,MAAO/H,MAAK0/B,SAAStG,aAAarD,EAAMhuB,IAG5C/H,KAAKq5B,YAAc,SAAS7D,EAAO8D,EAAKC,GACpCv5B,KAAK0/B,SAASrG,YAAYC,EAAKC,IAGnCv5B,KAAK+/B,aAAe,SAAS7E,GACzB,GAAI8E,GAAS,GAAIP,IAAc,OAAQv/B,EAAoB,IAAK,aAWhE,OAVA8/B,GAAOC,iBAAiB/E,EAAQgF,eAEhCF,EAAOxrB,GAAG,WAAY,SAASnS,GAC3B64B,EAAQiF,eAAe99B,EAAEsB,QAG7Bq8B,EAAOxrB,GAAG,YAAa,WACnB0mB,EAAQkF,qBAGLJ,GAIXhgC,KAAKqgC,IAAM,iBACZ9/B,KAAK++B,EAAK38B,WAEb/C,EAAQ0/B,KAAOA,KAMV,SAASz/B,EAAQD,EAASM,GAE/BsS,IAAI1S,OAAO,qBAAqB,UAAU,UAAU,SAAS,cAAc,eAAe,gBAAgB,4BAA4B,gBAAiB,SAASy4B,EAAU34B,EAASC,GACnL,YAEA,IAAI6F,GAAM6yB,EAAS,cACfyB,EAAOzB,EAAS,eAChBhsB,EAAQgsB,EAAS,gBACjB+H,EAAe,8nGA8IfC,EAAchI,EAAS,4BAA4BgI,YACnDC,EAAUjI,EAAS,cAEvB7yB,GAAIizB,gBAAgB2H,EAAc,gBAElC,IAAIhR,GAAO,mqCAkBHzY,QAAQ,QAAS,KAErBvR,EAAY,SAASqG,EAAQR,EAAOs1B,GACpC,GAAItQ,GAAMzqB,EAAIgH,cAAc,MAC5ByjB,GAAI3a,UAAY8Z,EAChBtvB,KAAKia,QAAUkW,EAAItW,WAEnB7Z,KAAK0gC,QACL1gC,KAAK2gC,UAAUh1B,KAGnB,WACI3L,KAAK2gC,UAAY,SAASh1B,GACtBA,EAAOjE,UAAY1H,KACnB2L,EAAO/K,UAAU6G,YAAYzH,KAAKia,SAClCja,KAAK2L,OAASA,GAGlB3L,KAAK4gC,cAAgB,SAASC,GAC1B7gC,KAAK0H,UAAYm5B,EAAG74B,cAAc,oBAClChI,KAAK8gC,WAAaD,EAAG74B,cAAc,qBACnChI,KAAK+gC,cAAgBF,EAAG74B,cAAc,uBACtChI,KAAKghC,aAAeH,EAAG74B,cAAc,6BACrChI,KAAKihC,oBAAsBJ,EAAG74B,cAAc,gCAC5ChI,KAAKkhC,gBAAkBL,EAAG74B,cAAc,6BACxChI,KAAKmhC,YAAcnhC,KAAK0H,UAAUM,cAAc,qBAChDhI,KAAKohC,aAAephC,KAAK8gC,WAAW94B,cAAc,sBAGtDhI,KAAK0gC,MAAQ,WACT,GAAIG,GAAK7gC,KAAKia,OAEdja,MAAK4gC,cAAcC,EAEnB,IAAIQ,GAAQrhC,IACZuM,GAAM+0B,YAAYT,EAAI,YAAa,SAASx+B,GACxCgK,WAAW,WACPg1B,EAAME,YAAYz5B,SACnB,GACHyE,EAAMmF,gBAAgBrP,KAE1BkK,EAAM+0B,YAAYT,EAAI,QAAS,SAASx+B,GACpC,GAAIm/B,GAAIn/B,EAAEwK,QAAUxK,EAAEkqB,WAClB7jB,EAAS84B,EAAEC,aAAa,SACxB/4B,IAAU24B,EAAM34B,GAChB24B,EAAM34B,KACD24B,EAAMK,aAAaztB,SAASvL,IACjC24B,EAAMK,aAAaztB,SAASvL,GAAQsS,KAAKqmB,GAC7C90B,EAAMmF,gBAAgBrP,KAG1BkK,EAAMo1B,sBAAsBd,EAAI,SAASx+B,EAAGu/B,EAAQzwB,GAChD,GAAI0wB,GAAYrB,EAAQsB,gBAAgB3wB,GACpC4wB,EAAUV,EAAMK,aAAaM,eAAeJ,EAAQC,EACpDE,IAAWA,EAAQ/mB,OACnB+mB,EAAQ/mB,KAAKqmB,GACb90B,EAAM01B,UAAU5/B,MAIxBrC,KAAKkiC,UAAYlI,EAAKmI,YAAY,WAC9Bd,EAAMe,MAAK,GAAO,KAGtB71B,EAAM+0B,YAAYthC,KAAKmhC,YAAa,QAAS,WACzCE,EAAMa,UAAUG,SAAS,MAE7B91B,EAAM+0B,YAAYthC,KAAKmhC,YAAa,QAAS,WACzCE,EAAME,YAAcF,EAAMF,YAC1BE,EAAMF,YAAY/5B,OAASi6B,EAAMhkB,cAErC9Q,EAAM+0B,YAAYthC,KAAKohC,aAAc,QAAS,WAC1CC,EAAME,YAAcF,EAAMD,aAC1BC,EAAMF,YAAY/5B,OAASi6B,EAAMhkB,eAGzCrd,KAAKsiC,kBAAoB,GAAI/B,KACzBrsB,QAAS,MACTzQ,KAAM,iBACNuX,KAAM,SAASrP,GACXA,EAAOjE,UAAUoa,WAGzB9hB,KAAK0hC,aAAe,GAAInB,GACxBvgC,KAAK0hC,aAAaa,UACdC,mBAAoB,SAAS3B,GACzB,GAAI4B,GAAY5B,EAAG4B,WAAa5B,EAAG4B,SACnC5B,GAAGC,WAAWxtB,MAAMwQ,QAAU2e,EAAY,GAAK,OAC/C5B,EAAGM,YAAYr5B,SAEnB46B,0BAA2B,SAAS7B,GAChCA,EAAGC,WAAWxtB,MAAMwQ,QAAU,GAC9B+c,EAAGO,aAAat5B,SAEpB66B,mBAAoB,SAAS9B,GACzBA,EAAG+B,YAEPC,+BAAgC,SAAShC,GACrCA,EAAGiC,YAEPC,IAAO,SAASlC,GACZx0B,WAAW,WAAaw0B,EAAG/e,UAE/BkhB,OAAU,SAASnC,GACXA,EAAGU,aAAeV,EAAGO,cACrBP,EAAGhqB,UACPgqB,EAAG+B,YAEPK,eAAgB,SAASpC,GACjBA,EAAGU,aAAeV,EAAGO,cACrBP,EAAGhqB,UACPgqB,EAAGiC,YAEPI,aAAc,SAASrC,GACfA,EAAGU,aAAeV,EAAGO,cACrBP,EAAGsC,aACPtC,EAAGuC,WAEPC,IAAO,SAASxC,IACXA,EAAGU,aAAeV,EAAGO,aAAeP,EAAGM,YAAcN,EAAGO,cAAct5B,WAI/E9H,KAAK0hC,aAAa4B,cACd7/B,KAAM,mBACNyQ,SAAUqvB,IAAK,cAAeC,IAAK,yBACnCxoB,KAAM,SAAS6lB,GACXA,EAAGG,aAAahY,SAAW6X,EAAGG,aAAahY,QAC3C6X,EAAG4C,kBAGPhgC,KAAM,sBACNyQ,SAAUqvB,IAAK,cAAeC,IAAK,yBACnCxoB,KAAM,SAAS6lB,GACXA,EAAGI,oBAAoBjY,SAAW6X,EAAGI,oBAAoBjY,QACzD6X,EAAG4C,kBAGPhgC,KAAM,mBACNyQ,SAAUqvB,IAAK,cAAeC,IAAK,yBACnCxoB,KAAM,SAAS6lB,GACXA,EAAGK,gBAAgBlY,SAAW6X,EAAGK,gBAAgBlY,QACjD6X,EAAG4C,mBAIXzjC,KAAKyjC,aAAe,WAChB/9B,EAAIg+B,YAAY1jC,KAAKghC,aAAc,UAAWhhC,KAAKghC,aAAahY,SAChEtjB,EAAIg+B,YAAY1jC,KAAKkhC,gBAAiB,UAAWlhC,KAAKkhC,gBAAgBlY,SACtEtjB,EAAIg+B,YAAY1jC,KAAKihC,oBAAqB,UAAWjhC,KAAKihC,oBAAoBjY,SAC9EhpB,KAAKoiC,MAAK,GAAO,IAGrBpiC,KAAKqd,UAAY,SAAStC,GACtB/a,KAAK2L,OAAOuvB,QAAQ7d,UAAUtC,GAAM/a,KAAK2L,OAAOg4B,QAAQC,SAAS7oB,IACjE/a,KAAK2L,OAAOk4B,SAASC,qBAEzB9jC,KAAKoiC,KAAO,SAAS2B,EAAaC,EAAWC,GACzC,GAAI94B,GAAQnL,KAAK2L,OAAOy2B,KAAKpiC,KAAKmhC,YAAY/5B,OAC1C28B,YAAaA,EACbC,UAAWA,EACXE,MAAM,EACNC,OAAQnkC,KAAKghC,aAAahY,QAC1Bob,cAAepkC,KAAKihC,oBAAoBjY,QACxCqb,UAAWrkC,KAAKkhC,gBAAgBlY,QAChCib,cAAeA,IAEfK,GAAWn5B,GAASnL,KAAKmhC,YAAY/5B,KACzC1B,GAAIg+B,YAAY1jC,KAAK0H,UAAW,cAAe48B,GAC/CtkC,KAAK2L,OAAO44B,MAAM,iBAAmB3tB,OAAQ0tB,IAC7CtkC,KAAKqd,aAETrd,KAAK4iC,SAAW,WACZ5iC,KAAKoiC,MAAK,GAAM,IAEpBpiC,KAAK8iC,SAAW,WACZ9iC,KAAKoiC,MAAK,GAAM,IAEpBpiC,KAAKojC,QAAU,WACX,GAAIj4B,GAAQnL,KAAK2L,OAAOy3B,QAAQpjC,KAAKmhC,YAAY/5B,OAC7C+8B,OAAQnkC,KAAKghC,aAAahY,QAC1Bob,cAAepkC,KAAKihC,oBAAoBjY,QACxCqb,UAAWrkC,KAAKkhC,gBAAgBlY,UAEhCsb,GAAWn5B,GAASnL,KAAKmhC,YAAY/5B,KACzC1B,GAAIg+B,YAAY1jC,KAAK0H,UAAW,cAAe48B,GAC/CtkC,KAAK2L,OAAO44B,MAAM,iBAAmB3tB,OAAQ0tB,IAC7CtkC,KAAKqd,YACLrd,KAAK8hB,QAET9hB,KAAK6W,QAAU,WACN7W,KAAK2L,OAAO64B,eACbxkC,KAAK2L,OAAOkL,QAAQ7W,KAAKohC,aAAah6B,QAE9CpH,KAAKykC,mBAAqB,WACjBzkC,KAAK2L,OAAO64B,gBACbxkC,KAAK2L,OAAOkL,QAAQ7W,KAAKohC,aAAah6B,OACtCpH,KAAK4iC,aAGb5iC,KAAKmjC,WAAa,WACTnjC,KAAK2L,OAAO64B,eACbxkC,KAAK2L,OAAOw3B,WAAWnjC,KAAKohC,aAAah6B,QAGjDpH,KAAK8hB,KAAO,WACR9hB,KAAKia,QAAQ3G,MAAMwQ,QAAU,OAC7B9jB,KAAK2L,OAAO+4B,WAAWC,sBAAsB3kC,KAAKsiC,mBAClDtiC,KAAK2L,OAAO7D,SAEhB9H,KAAKuS,KAAO,SAASnL,EAAOq7B,GACxBziC,KAAKia,QAAQ3G,MAAMwQ,QAAU,GAC7B9jB,KAAK8gC,WAAWxtB,MAAMwQ,QAAU2e,EAAY,GAAK,OAEjDziC,KAAKyiC,UAAYA,EAEbr7B,IACApH,KAAKmhC,YAAY/5B,MAAQA,GAE7BpH,KAAKoiC,MAAK,GAAO,GAAO,GAExBpiC,KAAKmhC,YAAYr5B,QACjB9H,KAAKmhC,YAAYj2B,SAEjBlL,KAAK2L,OAAO+4B,WAAWE,mBAAmB5kC,KAAKsiC,oBAGnDtiC,KAAK6kC,UAAY,WACb,GAAIC,GAAKr4B,SAASs4B,aAClB,OAAOD,IAAM9kC,KAAKmhC,aAAe2D,GAAM9kC,KAAKohC,gBAEjD7gC,KAAK+E,EAAU3C,WAElB/C,EAAQ0F,UAAYA,EAEpB1F,EAAQolC,OAAS,SAASr5B,EAAQ82B,GAC9B,GAAI5B,GAAKl1B,EAAOjE,WAAa,GAAIpC,GAAUqG,EAC3Ck1B,GAAGtuB,KAAK5G,EAAOuvB,QAAQG,eAAgBoH,MAI3B,WACIjwB,IAAI+lB,UAAU,qBAAsB,kBAMnD,SAAS14B,EAAQD,EAASM,GAE/BL,EAAOD,QAAQS,GAAK,uBACpBR,EAAOD,QAAQqlC,IAAM"} \ No newline at end of file +{"version":3,"file":"jsoneditor-minimalist.map","sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","e","code","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","_delete","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","ajv","allErrors","verbose","validateSchema","compile","validate","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","Node","modeswitcher","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","search","hasOwnProperty","_debouncedValidate","debounce","bind","focusNode","domFocus","Function","content","table","params","field","value","node","_setRoot","recurse","expand","appendChild","searchBox","blur","getValue","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","valid","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","reduce","all","findParents","parent","child","message","type","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","margin","interval","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","modeBox","_onKeyDown","_startDragDistance","_updateDragDistance","getNodeFromTarget","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","Array","first","startPath","getPath","endPath","startChild","endChild","childs","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","ctrlKey","shiftKey","handled","selectContentEditable","previous","next","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","push","click","onDuplicate","onRemove","close","show","ace","MAX_ERRORS","indentation","Number","_ace","theme","aceEditor","textarea","clientWidth","buttonFormat","format","buttonCompact","compact","editorDom","style","edit","$blockScrolling","Infinity","setTheme","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","defineProperty","poweredBy","createTextNode","href","open","on","spellcheck","destroy","resize","force","sanitize","escapeUnicode","escapeUnicodeChars","originalOnChange","setValue","validationErrors","marginBottom","paddingBottom","doValidate","limit","hidden","innerHTML","join","jsonlint","jsonString","jsString","curr","charAt","prev","lastNonWhitespace","chars","pp","skipBlockComment","skipComment","parseString","quote","parseKey","specialValues","key","regexp","test","match","replace","charCodeAt","toString","a","b","object","String","Boolean","RegExp","isUrlRegex","isUrl","obj","getAbsoluteLeft","elem","rect","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","split","removeClassName","index","splice","stripFormatting","divElement","childNodes","iMax","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","setStart","setEnd","getInnerText","element","buffer","flush","nodeValue","hasChildNodes","innerText","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","re","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","insideRect","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","oldSelection","newSelection","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","prevElem","searchFieldActive","searchValueActive","updateDom","_clearDelay","forceSearch","resultCount","createMenuItems","list","domItems","item","separator","li","domItem","button","hide","submenu","divIcon","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","contentRect","anchorHeight","offsetHeight","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","targetIndex","prevButton","nextButton","expanded","setField","fieldEditable","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","appendNodeFactory","_updateEditability","path","getFieldsPath","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","fit","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","currentIndex","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","str","undoDiff","redoDiff","domValue","classNames","isEmpty","count","checkbox","tdCheckbox","checked","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","isDraggedNode","some","n","_createDomField","isFirst","domTree","marginLeft","contentEditable","_escapeHTML","_updateDomIndexes","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","offsetX","onKeyDown","nextNode","nextDom","nextDom2","altKey","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","_onSort","order","firstDom","lastDom","lastChild","TYPE_TITLES","auto","array","string","titles","lower","num","numFloat","isNaN","htmlEscaped","html","escapedText","_escapeJSON","escaped","createModeSwitcher","current","switchMode","availableModes","form","view","currentMode","currentTitle","box","div","position","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_",2,4,6,8,10,11,14,17,18,21,22,23,24,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$",3,5,7,9,12,13,15,16,1,19,20,25,"defaultActions","parseError","hash","popStack","stack","vstack","lstack","lex","token","self","lexer","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","lines","unput","less","pastInput","past","upcomingInput","pre","tempMatch","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","trAppend","tdAppend","domText","paddingLeft","acequire","isDark","cssClass","cssText","importCssString","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","row","getLine","column","openBracePos","findMatchingBracket","indent","$getIndent","Behaviour","TokenIterator","lang","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","session","getCursorPosition","getSelectionRange","getTextRange","getWrapBehavioursEnabled","isSaneInsertion","inMultiSelectMode","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","stringRepeat","clearMaybeInsertedClosing","next_indent","getTabString","isMultiLine","leftChar","getTokenAt","rightToken","pair","stringBefore","stringAfter","wordRe","$mode","tokenRe","isWordBefore","isWordAfter","iterator","$matchTokenType","getCurrentToken","iterator2","stepForward","getCurrentTokenRow","types","bracket","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","searchboxCss","HashHandler","keyUtil","showReplaceForm","$init","setEditor","$initElements","sb","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","find","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","$syncOptions","setCssClass","$search","$options","renderer","updateBackMarkers","skipCurrent","backwards","preventScroll","wrap","regExp","caseSensitive","wholeWord","noMatch","_emit","getReadOnly","replaceAndFindNext","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","el","activeElement","Search","src"],"mappings":"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"} \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index 9134120..7c949d5 100644 --- a/dist/jsoneditor-minimalist.min.js +++ b/dist/jsoneditor-minimalist.min.js @@ -24,11 +24,11 @@ * Copyright (c) 2011-2016 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.1.4 - * @date 2016-02-13 + * @version 5.1.5 + * @date 2016-02-15 */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=l.getInternetExplorerVersion();if(-1!=o&&9>o)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ace","theme","ajv","schema","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation"];Object.keys(t).forEach(function(e){-1===r.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,n)}var o;try{o=n(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(r){}var s=n(1),a=n(2),l=n(3);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.prototype._create=function(e,t,n){this.container=e,this.options=t||{},this.json=n||{};var i=this.options.mode||"tree";this.setMode(i)},i.prototype._delete=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=l.parse(e)},i.prototype.getText=function(){return JSON.stringify(this.json)},i.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},i.prototype.getName=function(){return this.options&&this.options.name},i.prototype.setMode=function(e){var t,n,o=this.container,r=l.extend({},this.options),s=r.mode;r.mode=e;var a=i.modes[e];if(!a)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==a.data;if(n=this.getName(),t=this[c?"getText":"get"](),this._delete(),l.clear(this),l.extend(this,a.mixin),this.create(o,r),this.setName(n),this[c?"setText":"set"](t),"function"==typeof a.load)try{a.load.call(this)}catch(d){console.error(d)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(d){console.error(d)}}catch(d){this._onError(d)}},i.prototype.getMode=function(){return this.options.mode},i.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},i.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(n){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate())}else this.validateSchema=null,this.options.schema=null,this.validate()},i.prototype.validate=function(){},i.registerMode=function(e){var t,n;if(l.isArray(e))for(t=0;te&&n.scrollTop>0?this.autoScrollStep=(i+s-e)/3:e>r-s&&o+n.scrollTop3?(n.scrollTop+=o/3,i.animateCallback=t,i.animateTimeout=setTimeout(a,50)):(t&&t(!0),n.scrollTop=s,delete i.animateTimeout,delete i.animateCallback)};a()}else t&&t(!1)},d._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var n=t.target;e(t),"BUTTON"==n.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var n=document.createElement("button");n.className="jsoneditor-expand-all",n.title="Expand all fields",n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");if(i.title="Collapse all fields",i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i),this.history){var o=document.createElement("button");o.className="jsoneditor-undo jsoneditor-separator",o.title="Undo last action (Ctrl+Z)",o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=l.create(this,this.options.modes,this.options.mode);this.menu.appendChild(a),this.dom.modeBox=a}this.options.search&&(this.searchBox=new r(this,this.menu))},d._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},d._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},d._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(u=e.target),"mousedown"==e.type&&this._startDragDistance(e),("mousemove"==e.type||"mouseup"==e.type||"click"==e.type)&&this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},d._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},d._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,n=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+n*n),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},d._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var n=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},d._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var n=this.multiselection.start,i=this.multiselection.end||this.multiselection.start;n&&i&&(this.multiselection.nodes=this._findTopLevelNodes(n,i),this.select(this.multiselection.nodes))}},d._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},d.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},d.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},d._findTopLevelNodes=function(e,t){for(var n=e.getPath(),i=t.getPath(),o=0;o0){var r=n.length>l;if(r){n=n.slice(0,l);var a=this.validateSchema.errors.length-l;n.push("("+a+" more errors...)")}var c=document.createElement("div");c.innerHTML=''+n.map(function(e){var t;return t="string"==typeof e?'":"",''+t+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=c,this.frame.appendChild(c);var d=c.clientHeight;this.content.style.marginBottom=-d+"px",this.content.style.paddingBottom=d+"px"}if(this.aceEditor){var h=!1;this.aceEditor.resize(h)}},e.exports=[{mode:"text",mixin:a,data:"text",load:a.format},{mode:"code",mixin:a,data:"text",load:a.format}]},function(e,t,n){var i=n(10);t.parse=function(e){try{return JSON.parse(e)}catch(n){throw t.validate(e),n}},t.sanitize=function(e){function t(){return e.charAt(d)}function n(){return e.charAt(d+1)}function i(){return e.charAt(d-1)}function o(){for(var e=c.length-1;e>=0;){var t=c[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&" "!==t)return t;e--}return""}function r(){for(d+=2;di;i++){var r=n[i];r.style&&r.removeAttribute("style");var s=r.attributes;if(s)for(var a=s.length-1;a>=0;a--){var l=s[a];l.specified===!0&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,n;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),n=window.getSelection(),n.removeAllRanges(),n.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,n;window.getSelection&&document.createRange&&(n=document.createRange(),n.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(n))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){var n=window.getSelection();if(n){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,n){var i=void 0==n;if(i&&(n={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return n.flush()+e.nodeValue;if(e.hasChildNodes()){for(var o=e.childNodes,r="",s=0,a=o.length;a>s;s++){var l=o[s];if("DIV"==l.nodeName||"P"==l.nodeName){var c=o[s-1],d=c?c.nodeName:void 0;d&&"DIV"!=d&&"P"!=d&&"BR"!=d&&(r+="\n",n.flush()),r+=t.getInnerText(l,n),n.set("\n")}else"BR"==l.nodeName?(r+=n.flush(),n.set("\n")):r+=t.getInnerText(l,n)}return r}return"P"==e.nodeName&&-1!=t.getInternetExplorerVersion()?n.flush():""},t.getInternetExplorerVersion=function(){if(-1==r){var e=-1;if("Microsoft Internet Explorer"==navigator.appName){var t=navigator.userAgent,n=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");null!=n.exec(t)&&(e=parseFloat(RegExp.$1))}r=e}return r},t.isFirefox=function(){return-1!=navigator.userAgent.indexOf("Firefox")};var r=-1;t.addEventListener=function(e,n,i,o){if(e.addEventListener)return void 0===o&&(o=!1),"mousewheel"===n&&t.isFirefox()&&(n="DOMMouseScroll"),e.addEventListener(n,i,o),i;if(e.attachEvent){var r=function(){return i.call(e,window.event)};return e.attachEvent("on"+n,r),r}},t.removeEventListener=function(e,n,i,o){e.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===n&&t.isFirefox()&&(n="DOMMouseScroll"),e.removeEventListener(n,i,o)):e.detachEvent&&e.detachEvent("on"+n,i)},t.parsePath=function s(e){var t,n;if(0===e.length)return[];var i=e.match(/^\.(\w+)/);if(i)t=i[1],n=e.substr(t.length+1);else{if("["!==e[0])throw new SyntaxError("Failed to parse path");var o=e.indexOf("]");if(-1===o)throw new SyntaxError("Character ] expected in path");if(1===o)throw new SyntaxError("Index expected after [");t=JSON.parse(e.substring(1,o)),n=e.substr(o+1)}return[t].concat(s(n))},t.improveSchemaError=function(e){if("enum"===e.keyword&&Array.isArray(e.schema)){var t=e.schema;if(t){if(t=t.map(function(e){return JSON.stringify(e)}),t.length>5){var n=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(n)}e.message="should be equal to one of: "+t.join(", ")}}return e},t.insideRect=function(e,t,n){var i=void 0!==n?n:0;return t.left-i>=e.left&&t.right+i<=e.right&&t.top-i>=e.top&&t.bottom+i<=e.bottom},t.debounce=function(e,t,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||e.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var n=t.length,i=0,o=e.length,r=t.length;t.charAt(i)===e.charAt(i)&&n>i;)i++;for(;t.charAt(r-1)===e.charAt(o-1)&&r>i&&o>0;)r--,o--;return{start:i,end:r}}},function(e,t,n){function i(){this.locked=!1}i.prototype.highlight=function(e){this.locked||(this.node!=e&&(this.node&&this.node.setHighlight(!1),this.node=e,this.node.setHighlight(!0)),this._cancelUnhighlight())},i.prototype.unhighlight=function(){if(!this.locked){var e=this;this.node&&(this._cancelUnhighlight(),this.unhighlightTimer=setTimeout(function(){e.node.setHighlight(!1),e.node=void 0,e.unhighlightTimer=void 0},0))}},i.prototype._cancelUnhighlight=function(){this.unhighlightTimer&&(clearTimeout(this.unhighlightTimer),this.unhighlightTimer=void 0)},i.prototype.lock=function(){this.locked=!0},i.prototype.unlock=function(){this.locked=!1},e.exports=i},function(e,t,n){function i(e){this.editor=e,this.clear(),this.actions={editField:{undo:function(e){e.node.updateField(e.oldValue)},redo:function(e){e.node.updateField(e.newValue)}},editValue:{undo:function(e){e.node.updateValue(e.oldValue)},redo:function(e){e.node.updateValue(e.newValue)}},changeType:{undo:function(e){e.node.changeType(e.oldType)},redo:function(e){e.node.changeType(e.newType)}},appendNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.appendChild(t)})}},insertBeforeNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.insertBefore(t,e.beforeNode)})}},insertAfterNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(n){e.parent.insertAfter(e.node,t),t=n})}},removeNodes:{undo:function(e){var t=e.parent,n=t.childs[e.index]||t.append;e.nodes.forEach(function(e){t.insertBefore(e,n)})},redo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})}},duplicateNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(n){e.parent.insertAfter(n,t),t=n})}},moveNodes:{undo:function(e){e.nodes.forEach(function(t){e.oldBeforeNode.parent.moveBefore(t,e.oldBeforeNode)})},redo:function(e){e.nodes.forEach(function(t){e.newBeforeNode.parent.moveBefore(t,e.newBeforeNode)})}},sort:{undo:function(e){var t=e.node;t.hideChilds(),t.sort=e.oldSort,t.childs=e.oldChilds,t.showChilds()},redo:function(e){var t=e.node;t.hideChilds(),t.sort=e.newSort,t.childs=e.newChilds,t.showChilds()}}}}n(3);i.prototype.onChange=function(){},i.prototype.add=function(e,t){this.index++,this.history[this.index]={action:e,params:t,timestamp:new Date},this.index=0},i.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;0>n&&(n=t),this._setActiveResult(n,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node,i=this.activeResult.elem;"field"==i?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var o=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?o.searchFieldActive=!0:o.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],o.updateDom(),o.scrollTo(function(){t&&o.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!=this.lastText||e)if(this.lastText=n,this.results=this.editor.search(n),this._setActiveResult(void 0),void 0!=n){var i=this.results.length;switch(i){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=i+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},e.exports=i},function(e,t,n){function i(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(r),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.className=o.className,s.button=l,o.title&&(l.title=o.title),o.click&&(l.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),a.appendChild(l),o.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(o.text));var d;if(o.click){l.className+=" jsoneditor-default";var h=document.createElement("button");s.buttonExpand=h,h.className="jsoneditor-expand",h.innerHTML='
',a.appendChild(h),o.submenuTitle&&(h.title=o.submenuTitle),d=h}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),d=l}d.onclick=function(e){e.preventDefault(),i._onExpandItem(s),d.focus()};var p=[];s.subItems=p;var f=document.createElement("ul");s.ul=f,f.className="jsoneditor-menu",f.style.height="0",a.appendChild(f),n(f,p,o.submenu)}else l.innerHTML='
'+o.text;t.push(s)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var s=document.createElement("div");s.className="jsoneditor-contextmenu",o.menu=s,r.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),o.list=a,o.items=[];var l=document.createElement("button");o.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),n(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var o=n(3);i.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},i.visibleMenu=void 0,i.prototype.show=function(e,t){this.hide();var n=!0;if(t){var r=e.getBoundingClientRect(),s=t.getBoundingClientRect();r.bottom+this.maxHeights.top&&(n=!1)}if(n){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,d=this.dom.list;this.eventListeners.mousedown=o.addEventListener(window,"mousedown",function(e){var t=e.target;t==d||c._isChildOf(t,d)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),i.visibleMenu&&i.visibleMenu.hide(),i.visibleMenu=this},i.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(window,e,t),delete this.eventListeners[e]}i.visibleMenu==this&&(i.visibleMenu=void 0)},i.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",o.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){t.expandedItem==e&&(r.style.height=24*r.childNodes.length+"px",r.style.padding="5px 10px")},0),o.addClassName(r.parentNode,"jsoneditor-selected"),this.expandedItem=e}},i.prototype._onKeyDown=function(e){var t,n,i,r,s=e.target,a=e.which,l=!1;27==a?(this.selection&&o.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),n=t.indexOf(s),0==n&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),n=t.indexOf(s),n==t.length-1&&(t[0].focus(),l=!0)):37==a?("jsoneditor-expand"==s.className&&(t=this._getVisibleButtons(),n=t.indexOf(s),i=t[n-1],i&&i.focus()),l=!0):38==a?(t=this._getVisibleButtons(),n=t.indexOf(s),i=t[n-1],i&&"jsoneditor-expand"==i.className&&(i=t[n-2]),i||(i=t[t.length-1]),i&&i.focus(),l=!0):39==a?(t=this._getVisibleButtons(),n=t.indexOf(s),r=t[n+1],r&&"jsoneditor-expand"==r.className&&r.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),n=t.indexOf(s),r=t[n+1],r&&"jsoneditor-expand"==r.className&&(r=t[n+2]),r||(r=t[0]),r&&(r.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},i.prototype._isChildOf=function(e,t){for(var n=e.parentNode;n;){if(n==t)return!0;n=n.parentNode}return!1},e.exports=i},function(e,t,n){function i(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null)),this._debouncedOnChangeValue=s.debounce(this._onChangeValue.bind(this),i.prototype.DEBOUNCE_INTERVAL),this._debouncedOnChangeField=s.debounce(this._onChangeField.bind(this),i.prototype.DEBOUNCE_INTERVAL)}var o=n(7),r=n(12),s=n(3);i.prototype.DEBOUNCE_INTERVAL=150,i.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,("tree"===this.editor.options.mode||"form"===this.editor.options.mode)&&"function"==typeof this.editor.options.onEditable)){var e=this.editor.options.onEditable({field:this.field,value:this.value,path:this.getFieldsPath()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},i.prototype.getFieldsPath=function(){for(var e=this,t=[];e;){var n=void 0!=e.field?e.field:e.index;void 0!==n&&t.unshift(n),e=e.parent}return t},i.prototype.findNode=function(e){for(var t=s.parsePath(e),n=this;n&&t.length>0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.getDom(),this.error=e;var n=this.dom.tdError;if(e){n||(n=document.createElement("td"),this.dom.tdError=n,this.dom.tdValue.parentNode.appendChild(n));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var o=document.createElement("button");for(o.className="jsoneditor-schema-error",o.appendChild(i),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;ts;s++)n=e[s],void 0===n||n instanceof Function||(o=new i(this.editor,{value:n}),this.appendChild(o));this.value=""}else if("object"==this.type){this.childs=[];for(var l in e)e.hasOwnProperty(l)&&(n=e[l],void 0===n||n instanceof Function||(o=new i(this.editor,{field:l,value:n}),this.appendChild(o)));this.value=""}else this.childs=void 0,this.value=e;this.previousValue=this.value},i.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},i.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},i.prototype.getPath=function(){var e=this.parent?this.parent.getPath():[];return e.push(this),e},i.prototype.clone=function(){var e=new i(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.value=this.value,e.valueInnerText=this.valueInnerText,e.expanded=this.expanded,this.childs){var t=[];this.childs.forEach(function(n){var i=n.clone();i.setParent(e),t.push(i)}),e.childs=t}else e.childs=void 0;return e},i.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="jsoneditor-expanded"),this.showChilds(),e!==!1&&this.childs.forEach(function(t){t.expand(e)}))},i.prototype.collapse=function(e){this.childs&&(this.hideChilds(),e!==!1&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="jsoneditor-collapsed"),this.expanded=!1)},i.prototype.showChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.dom.tr,n=t?t.parentNode:void 0;if(n){var i=this.getAppend(),o=t.nextSibling;o?n.insertBefore(i,o):n.appendChild(i),this.childs.forEach(function(e){n.insertBefore(e.getDom(),i),e.showChilds()})}}},i.prototype.hide=function(){var e=this.dom.tr,t=e?e.parentNode:void 0;t&&t.removeChild(e),this.hideChilds()},i.prototype.hideChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.getAppend();t.parentNode&&t.parentNode.removeChild(t),this.childs.forEach(function(e){e.hide()})}},i.prototype.appendChild=function(e){if(this._hasChilds()){if(e.setParent(this),e.fieldEditable="object"==this.type,"array"==this.type&&(e.index=this.childs.length),this.childs.push(e),this.expanded){var t=e.getDom(),n=this.getAppend(),i=n?n.parentNode:void 0;n&&i&&i.insertBefore(t,n),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},i.prototype.moveBefore=function(e,t){if(this._hasChilds()){var n=this.dom.tr?this.dom.tr.parentNode:void 0;if(n){var i=document.createElement("tr");i.style.height=n.clientHeight+"px",n.appendChild(i)}e.parent&&e.parent.removeChild(e),t instanceof a?this.appendChild(e):this.insertBefore(e,t),n&&n.removeChild(i)}},i.prototype.moveTo=function(e,t){if(e.parent==this){var n=this.childs.indexOf(e);t>n&&t++}var i=this.childs[t]||this.append;this.moveBefore(e,i)},i.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(t==this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var n=this.childs.indexOf(t);if(-1==n)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(n,0,e)}if(this.expanded){var i=e.getDom(),o=t.getDom(),r=o?o.parentNode:void 0;o&&r&&r.insertBefore(i,o),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},i.prototype.insertAfter=function(e,t){if(this._hasChilds()){var n=this.childs.indexOf(t),i=this.childs[n+1];i?this.insertBefore(e,i):this.appendChild(e)}},i.prototype.search=function(e){var t,n=[],i=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!=this.field){var o=String(this.field).toLowerCase();t=o.indexOf(i),-1!=t&&(this.searchField=!0,n.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds()){if(this.childs){var r=[];this.childs.forEach(function(t){r=r.concat(t.search(e))}),n=n.concat(r)}if(void 0!=i){var s=!1;0==r.length?this.collapse(s):this.expand(s)}}else{if(void 0!=this.value){var a=String(this.value).toLowerCase();t=a.indexOf(i),-1!=t&&(this.searchValue=!0,n.push({node:this,elem:"value"}))}this._updateDomValue()}return n},i.prototype.scrollTo=function(e){if(!this.dom.tr||!this.dom.tr.parentNode)for(var t=this.parent,n=!1;t;)t.expand(n),t=t.parent;this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},i.focusElement=void 0,i.prototype.focus=function(e){if(i.focusElement=e,this.dom.tr&&this.dom.tr.parentNode){var t=this.dom;switch(e){case"drag":t.drag?t.drag.focus():t.menu.focus();break;case"menu":t.menu.focus();break;case"expand":this._hasChilds()?t.expand.focus():t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.menu.focus();break;case"field":t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):this._hasChilds()?t.expand.focus():t.menu.focus();break;case"value":default:t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):this._hasChilds()?t.expand.focus():t.menu.focus()}}},i.select=function(e){setTimeout(function(){s.selectContentEditable(e)},0)},i.prototype.blur=function(){this._getDomValue(!1),this._getDomField(!1)},i.prototype.containsNode=function(e){if(this==e)return!0;var t=this.childs;if(t)for(var n=0,i=t.length;i>n;n++)if(t[n].containsNode(e))return!0;return!1},i.prototype._move=function(e,t){if(e!=t){if(e.containsNode(this))throw new Error("Cannot move a field into a child of itself");e.parent&&e.parent.removeChild(e);var n=e.clone();e.clearDom(),t?this.insertBefore(n,t):this.appendChild(n)}},i.prototype.removeChild=function(e){if(this.childs){var t=this.childs.indexOf(e);if(-1!=t){e.hide(),delete e.searchField,delete e.searchValue;var n=this.childs.splice(t,1)[0];return n.parent=null,this.updateDom({updateIndexes:!0}),n}}return void 0},i.prototype._remove=function(e){this.removeChild(e)},i.prototype.changeType=function(e){var t=this.type;if(t!=e){if("string"!=e&&"auto"!=e||"string"!=t&&"auto"!=t){var n,i=this.dom.tr?this.dom.tr.parentNode:void 0;n=this.expanded?this.getAppend():this.getDom();var o=n&&n.parentNode?n.nextSibling:void 0;this.hide(),this.clearDom(),this.type=e,"object"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),delete e.index,e.fieldEditable=!0,void 0==e.field&&(e.field="")}),("string"==t||"auto"==t)&&(this.expanded=!0)):"array"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),e.fieldEditable=!1,e.index=t}),("string"==t||"auto"==t)&&(this.expanded=!0)):this.expanded=!1,i&&(o?i.insertBefore(this.getDom(),o):i.appendChild(this.getDom())),this.showChilds()}else this.type=e;("auto"==e||"string"==e)&&("string"==e?this.value=String(this.value):this.value=this._stringCast(String(this.value)),this.focus()),this.updateDom({updateIndexes:!0})}},i.prototype._getDomValue=function(e){if(this.dom.value&&"array"!=this.type&&"object"!=this.type&&(this.valueInnerText=s.getInnerText(this.dom.value)),void 0!=this.valueInnerText)try{var t;if("string"==this.type)t=this._unescapeHTML(this.valueInnerText);else{var n=this._unescapeHTML(this.valueInnerText);t=this._stringCast(n)}t!==this.value&&(this.value=t,this._debouncedOnChangeValue())}catch(i){if(this.value=void 0,e!==!0)throw i}},i.prototype._onChangeValue=function(){var e=this.editor.getSelection();if(e.range){var t=s.textDiff(String(this.value),String(this.previousValue));e.range.startOffset=t.start,e.range.endOffset=t.end}var n=this.editor.getSelection();if(n.range){var i=s.textDiff(String(this.previousValue),String(this.value));n.range.startOffset=i.start,n.range.endOffset=i.end}this.editor._onAction("editValue",{node:this,oldValue:this.previousValue,newValue:this.value,oldSelection:e,newSelection:n}),this.previousValue=this.value},i.prototype._onChangeField=function(){var e=this.editor.getSelection();if(e.range){var t=s.textDiff(this.field,this.previousField);e.range.startOffset=t.start,e.range.endOffset=t.end}var n=this.editor.getSelection();if(n.range){var i=s.textDiff(this.previousField,this.field);n.range.startOffset=i.start,n.range.endOffset=i.end}this.editor._onAction("editField",{node:this,oldValue:this.previousField,newValue:this.field,oldSelection:e,newSelection:n}),this.previousField=this.field},i.prototype._updateDomValue=function(){var e=this.dom.value;if(e){var t=["jsoneditor-value"],n=this.value,i="auto"==this.type?s.type(n):this.type,o="string"==i&&s.isUrl(n);t.push("jsoneditor-"+i),o&&t.push("jsoneditor-url");var r=""==String(this.value)&&"array"!=this.type&&"object"!=this.type;if(r&&t.push("jsoneditor-empty"),this.searchValueActive&&t.push("jsoneditor-highlight-active"),this.searchValue&&t.push("jsoneditor-highlight"),e.className=t.join(" "),"array"==i||"object"==i){var a=this.childs?this.childs.length:0;e.title=this.type+" containing "+a+" items"}else o&&this.editable.value?e.title="Ctrl+Click or Ctrl+Enter to open url in new window":e.title="";"boolean"===i?(this.dom.checkbox||(this.dom.checkbox=document.createElement("input"),this.dom.checkbox.type="checkbox",this.dom.tdCheckbox=document.createElement("td"),this.dom.tdCheckbox.className="jsoneditor-tree",this.dom.tdCheckbox.appendChild(this.dom.checkbox),this.dom.tdValue.parentNode.insertBefore(this.dom.tdCheckbox,this.dom.tdValue)),this.dom.checkbox.checked=this.value):this.dom.tdCheckbox&&(this.dom.tdCheckbox.parentNode.removeChild(this.dom.tdCheckbox),delete this.dom.tdCheckbox,delete this.dom.checkbox),s.stripFormatting(e)}},i.prototype._updateDomField=function(){var e=this.dom.field;if(e){var t=""==String(this.field)&&"array"!=this.parent.type;t?s.addClassName(e,"jsoneditor-empty"):s.removeClassName(e,"jsoneditor-empty"),this.searchFieldActive?s.addClassName(e,"jsoneditor-highlight-active"):s.removeClassName(e,"jsoneditor-highlight-active"),this.searchField?s.addClassName(e,"jsoneditor-highlight"):s.removeClassName(e,"jsoneditor-highlight"),s.stripFormatting(e)}},i.prototype._getDomField=function(e){if(this.dom.field&&this.fieldEditable&&(this.fieldInnerText=s.getInnerText(this.dom.field)),void 0!=this.fieldInnerText)try{var t=this._unescapeHTML(this.fieldInnerText);t!==this.field&&(this.field=t,this._debouncedOnChangeField())}catch(n){if(this.field=void 0,e!==!0)throw n}},i.prototype.validate=function(){var e=[];if("object"===this.type){for(var t={},n=[],i=0;i0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var i=0;i0&&(e=e.concat(r))}return e},i.prototype.clearDom=function(){this.dom={}},i.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var n=document.createElement("button");e.drag=n,n.className="jsoneditor-dragarea",n.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");e.menu=o,o.className="jsoneditor-contextmenu",o.title="Click to open the actions menu (Ctrl+M)",i.appendChild(e.menu),e.tr.appendChild(i)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],o=e[e.length-1],r=i.getNodeFromTarget(t.target),a=o._nextSibling(),l=n.editor,c=s.getAbsoluteTop(r.dom.tr)-s.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=s.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=s.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:a,mouseX:t.pageX,offsetY:c,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,l,c,d,h,u,p,f,m,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(n=E.dom.tr,p=s.getAbsoluteTop(n),g=n.offsetHeight,p>w){o=n;do o=o.previousSibling,h=i.getNodeFromTarget(o),f=o?s.getAbsoluteTop(o):0;while(o&&f>w);h&&!h.parent&&(h=void 0),h||(d=n.parentNode.firstChild,o=d?d.nextSibling:void 0,h=i.getNodeFromTarget(o),h==E&&(h=void 0)),h&&(o=h.dom.tr,f=o?s.getAbsoluteTop(o):0,w>f+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(c=C.expanded&&C.append?C.append.getDom():C.dom.tr,l=c?c.nextSibling:void 0){m=s.getAbsoluteTop(l),r=l;do u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?s.getAbsoluteTop(r.nextSibling):0,y=r?v-m:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27)),r=r.nextSibling;while(r&&w>p+y);if(u&&u.parent){var j=x-b.drag.mouseX,S=Math.round(j/24/2),k=b.drag.level+S,N=u.getLevel();for(o=u.dom.tr.previousSibling;k>N&&o;){h=i.getNodeFromTarget(o);var A=e.some(function(e){return e===h||h._isChildOf(e)});if(A);else{if(!(h instanceof a))break;var O=h.parent.childs;if(O.length==e.length&&O[e.length-1]==C)break;u=i.getNodeFromTarget(o),N=u.getLevel()}o=o.previousSibling}c.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),_=!0)}}}_&&(b.drag.mouseX=x,b.drag.level=E.getLevel()),b.startAutoScroll(w),t.preventDefault()}},i.onDragEnd=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n=e[0],o=n.editor,r=n.parent,a=r.childs.indexOf(n),l=r.childs[a+e.length]||r.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:o.drag.oldSelection,newSelection:o.getSelection(),oldBeforeNode:o.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&o._onAction("moveNodes",c),document.body.style.cursor=o.drag.oldCursor,o.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&o.highlighter.unhighlight()}),delete o.drag,o.mousemove&&(s.removeEventListener(window,"mousemove",o.mousemove),delete o.mousemove),o.mouseup&&(s.removeEventListener(window,"mouseup",o.mouseup),delete o.mouseup),o.stopAutoScroll(),t.preventDefault()}},i.prototype._isChildOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},i.prototype._createDomField=function(){return document.createElement("div")},i.prototype.setHighlight=function(e){this.dom.tr&&(e?s.addClassName(this.dom.tr,"jsoneditor-highlight"):s.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},i.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?s.addClassName(this.dom.tr,"jsoneditor-selected"):s.removeClassName(this.dom.tr,"jsoneditor-selected"),t?s.addClassName(this.dom.tr,"jsoneditor-first"):s.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},i.prototype.updateValue=function(e){this.value=e,this.updateDom()},i.prototype.updateField=function(e){this.field=e,this.updateDom()},i.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var n=this.dom.field;if(n){this.fieldEditable?(n.contentEditable=this.editable.field,n.spellcheck=!1,n.className="jsoneditor-field"):n.className="jsoneditor-readonly";var i;i=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",n.innerHTML=this._escapeHTML(i)}var o=this.dom.value;if(o){var r=this.childs?this.childs.length:0;"array"==this.type?(o.innerHTML="["+r+"]",s.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(o.innerHTML="{"+r+"}",s.addClassName(this.dom.tr,"jsoneditor-expandable")):(o.innerHTML=this._escapeHTML(this.value),s.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&e.updateIndexes===!0&&this._updateDomIndexes(),e&&e.recurse===!0&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},i.prototype._updateDomIndexes=function(){var e=this.dom.value,t=this.childs;e&&t&&("array"==this.type?t.forEach(function(e,t){e.index=t;var n=e.dom.field;n&&(n.innerHTML=t)}):"object"==this.type&&t.forEach(function(e){void 0!=e.index&&(delete e.index,void 0==e.field&&(e.field=""))}))},i.prototype._createDomValue=function(){var e;return"array"==this.type?(e=document.createElement("div"),e.innerHTML="[...]"):"object"==this.type?(e=document.createElement("div"),e.innerHTML="{...}"):!this.editable.value&&s.isUrl(this.value)?(e=document.createElement("a"),e.href=this.value,e.target="_blank",e.innerHTML=this._escapeHTML(this.value)):(e=document.createElement("div"),e.contentEditable=this.editable.value,e.spellcheck=!1,e.innerHTML=this._escapeHTML(this.value)),e},i.prototype._createDomExpandButton=function(){var e=document.createElement("button");return this._hasChilds()?(e.className=this.expanded?"jsoneditor-expanded":"jsoneditor-collapsed",e.title="Click to expand/collapse this field (Ctrl+E). \nCtrl+Click to expand/collapse including all childs."):(e.className="jsoneditor-invisible",e.title=""),e},i.prototype._createDomTree=function(){var e=this.dom,t=document.createElement("table"),n=document.createElement("tbody");t.style.borderCollapse="collapse",t.className="jsoneditor-values",t.appendChild(n);var i=document.createElement("tr");n.appendChild(i);var o=document.createElement("td");o.className="jsoneditor-tree",i.appendChild(o),e.expand=this._createDomExpandButton(),o.appendChild(e.expand),e.tdExpand=o;var r=document.createElement("td");r.className="jsoneditor-tree",i.appendChild(r),e.field=this._createDomField(),r.appendChild(e.field),e.tdField=r;var s=document.createElement("td");s.className="jsoneditor-tree",i.appendChild(s),"object"!=this.type&&"array"!=this.type&&(s.appendChild(document.createTextNode(":")),s.className="jsoneditor-separator"),e.tdSeparator=s;var a=document.createElement("td");return a.className="jsoneditor-tree",i.appendChild(a),e.value=this._createDomValue(),a.appendChild(e.value),e.tdValue=a,t},i.prototype.onEvent=function(e){var t,n=e.type,i=e.target||e.srcElement,o=this.dom,r=this,a=this._hasChilds();if((i==o.drag||i==o.menu)&&("mouseover"==n?this.editor.highlighter.highlight(this):"mouseout"==n&&this.editor.highlighter.unhighlight()),"click"==n&&i==o.menu){var l=r.editor.highlighter;l.highlight(r),l.lock(),s.addClassName(o.menu,"jsoneditor-selected"),this.showContextMenu(o.menu,function(){s.removeClassName(o.menu,"jsoneditor-selected"),l.unlock(),l.unhighlight()})}if("click"==n&&(i==o.expand||("view"===r.editor.options.mode||"form"===r.editor.options.mode)&&"DIV"===i.nodeName)&&a){var c=e.ctrlKey;this._onExpand(c)}"change"==n&&i==o.checkbox&&(this.dom.value.innerHTML=!this.value,this._getDomValue());var d=o.value;if(i==d)switch(n){case"focus":t=this;break;case"blur":case"change":this._getDomValue(!0),this._updateDomValue(),this.value&&(d.innerHTML=this._escapeHTML(this.value));break;case"input":this._getDomValue(!0),this._updateDomValue();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"click":(e.ctrlKey||!this.editable.value)&&s.isUrl(this.value)&&window.open(this.value,"_blank"); +this.dom.table=i,i.className="jsoneditor-search",t.appendChild(i);var o=document.createElement("tbody");this.dom.tbody=o,i.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){n._onDelayedSearch(e)},u.onchange=function(e){n._onSearch()},u.onkeydown=function(e){n._onKeyDown(e)},u.onkeyup=function(e){n._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){n.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var f=document.createElement("button");f.title="Previous result (Shift+Enter)",f.className="jsoneditor-previous",f.onclick=function(){n.previous()},s=document.createElement("td"),s.appendChild(f),r.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;0>n&&(n=t),this._setActiveResult(n,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node,i=this.activeResult.elem;"field"==i?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var o=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?o.searchFieldActive=!0:o.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],o.updateDom(),o.scrollTo(function(){t&&o.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!=this.lastText||e)if(this.lastText=n,this.results=this.editor.search(n),this._setActiveResult(void 0),void 0!=n){var i=this.results.length;switch(i){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=i+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},e.exports=i},function(e,t,n){function i(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(r),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.className=o.className,s.button=l,o.title&&(l.title=o.title),o.click&&(l.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),a.appendChild(l),o.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(o.text));var d;if(o.click){l.className+=" jsoneditor-default";var h=document.createElement("button");s.buttonExpand=h,h.className="jsoneditor-expand",h.innerHTML='
',a.appendChild(h),o.submenuTitle&&(h.title=o.submenuTitle),d=h}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),d=l}d.onclick=function(e){e.preventDefault(),i._onExpandItem(s),d.focus()};var p=[];s.subItems=p;var f=document.createElement("ul");s.ul=f,f.className="jsoneditor-menu",f.style.height="0",a.appendChild(f),n(f,p,o.submenu)}else l.innerHTML='
'+o.text;t.push(s)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var s=document.createElement("div");s.className="jsoneditor-contextmenu",o.menu=s,r.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),o.list=a,o.items=[];var l=document.createElement("button");o.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),n(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var o=n(3);i.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},i.visibleMenu=void 0,i.prototype.show=function(e,t){this.hide();var n=!0;if(t){var r=e.getBoundingClientRect(),s=t.getBoundingClientRect();r.bottom+this.maxHeights.top&&(n=!1)}if(n){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,d=this.dom.list;this.eventListeners.mousedown=o.addEventListener(window,"mousedown",function(e){var t=e.target;t==d||c._isChildOf(t,d)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),i.visibleMenu&&i.visibleMenu.hide(),i.visibleMenu=this},i.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(window,e,t),delete this.eventListeners[e]}i.visibleMenu==this&&(i.visibleMenu=void 0)},i.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",o.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){t.expandedItem==e&&(r.style.height=24*r.childNodes.length+"px",r.style.padding="5px 10px")},0),o.addClassName(r.parentNode,"jsoneditor-selected"),this.expandedItem=e}},i.prototype._onKeyDown=function(e){var t,n,i,r,s=e.target,a=e.which,l=!1;27==a?(this.selection&&o.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),n=t.indexOf(s),0==n&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),n=t.indexOf(s),n==t.length-1&&(t[0].focus(),l=!0)):37==a?("jsoneditor-expand"==s.className&&(t=this._getVisibleButtons(),n=t.indexOf(s),i=t[n-1],i&&i.focus()),l=!0):38==a?(t=this._getVisibleButtons(),n=t.indexOf(s),i=t[n-1],i&&"jsoneditor-expand"==i.className&&(i=t[n-2]),i||(i=t[t.length-1]),i&&i.focus(),l=!0):39==a?(t=this._getVisibleButtons(),n=t.indexOf(s),r=t[n+1],r&&"jsoneditor-expand"==r.className&&r.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),n=t.indexOf(s),r=t[n+1],r&&"jsoneditor-expand"==r.className&&(r=t[n+2]),r||(r=t[0]),r&&(r.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},i.prototype._isChildOf=function(e,t){for(var n=e.parentNode;n;){if(n==t)return!0;n=n.parentNode}return!1},e.exports=i},function(e,t,n){function i(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null)),this._debouncedOnChangeValue=s.debounce(this._onChangeValue.bind(this),i.prototype.DEBOUNCE_INTERVAL),this._debouncedOnChangeField=s.debounce(this._onChangeField.bind(this),i.prototype.DEBOUNCE_INTERVAL)}var o=n(7),r=n(12),s=n(3);i.prototype.DEBOUNCE_INTERVAL=150,i.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,("tree"===this.editor.options.mode||"form"===this.editor.options.mode)&&"function"==typeof this.editor.options.onEditable)){var e=this.editor.options.onEditable({field:this.field,value:this.value,path:this.getFieldsPath()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},i.prototype.getFieldsPath=function(){for(var e=this,t=[];e;){var n=void 0!=e.field?e.field:e.index;void 0!==n&&t.unshift(n),e=e.parent}return t},i.prototype.findNode=function(e){for(var t=s.parsePath(e),n=this;n&&t.length>0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.getDom(),this.error=e;var n=this.dom.tdError;if(e){n||(n=document.createElement("td"),this.dom.tdError=n,this.dom.tdValue.parentNode.appendChild(n));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var o=document.createElement("button");for(o.className="jsoneditor-schema-error",o.appendChild(i),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;ts;s++)n=e[s],void 0===n||n instanceof Function||(o=new i(this.editor,{value:n}),this.appendChild(o));this.value=""}else if("object"==this.type){this.childs=[];for(var l in e)e.hasOwnProperty(l)&&(n=e[l],void 0===n||n instanceof Function||(o=new i(this.editor,{field:l,value:n}),this.appendChild(o)));this.value=""}else this.childs=void 0,this.value=e;this.previousValue=this.value},i.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},i.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},i.prototype.getPath=function(){var e=this.parent?this.parent.getPath():[];return e.push(this),e},i.prototype.clone=function(){var e=new i(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.value=this.value,e.valueInnerText=this.valueInnerText,e.expanded=this.expanded,this.childs){var t=[];this.childs.forEach(function(n){var i=n.clone();i.setParent(e),t.push(i)}),e.childs=t}else e.childs=void 0;return e},i.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="jsoneditor-expanded"),this.showChilds(),e!==!1&&this.childs.forEach(function(t){t.expand(e)}))},i.prototype.collapse=function(e){this.childs&&(this.hideChilds(),e!==!1&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="jsoneditor-collapsed"),this.expanded=!1)},i.prototype.showChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.dom.tr,n=t?t.parentNode:void 0;if(n){var i=this.getAppend(),o=t.nextSibling;o?n.insertBefore(i,o):n.appendChild(i),this.childs.forEach(function(e){n.insertBefore(e.getDom(),i),e.showChilds()})}}},i.prototype.hide=function(){var e=this.dom.tr,t=e?e.parentNode:void 0;t&&t.removeChild(e),this.hideChilds()},i.prototype.hideChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.getAppend();t.parentNode&&t.parentNode.removeChild(t),this.childs.forEach(function(e){e.hide()})}},i.prototype.appendChild=function(e){if(this._hasChilds()){if(e.setParent(this),e.fieldEditable="object"==this.type,"array"==this.type&&(e.index=this.childs.length),this.childs.push(e),this.expanded){var t=e.getDom(),n=this.getAppend(),i=n?n.parentNode:void 0;n&&i&&i.insertBefore(t,n),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},i.prototype.moveBefore=function(e,t){if(this._hasChilds()){var n=this.dom.tr?this.dom.tr.parentNode:void 0;if(n){var i=document.createElement("tr");i.style.height=n.clientHeight+"px",n.appendChild(i)}e.parent&&e.parent.removeChild(e),t instanceof a?this.appendChild(e):this.insertBefore(e,t),n&&n.removeChild(i)}},i.prototype.moveTo=function(e,t){if(e.parent==this){var n=this.childs.indexOf(e);t>n&&t++}var i=this.childs[t]||this.append;this.moveBefore(e,i)},i.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(t==this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var n=this.childs.indexOf(t);if(-1==n)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(n,0,e)}if(this.expanded){var i=e.getDom(),o=t.getDom(),r=o?o.parentNode:void 0;o&&r&&r.insertBefore(i,o),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},i.prototype.insertAfter=function(e,t){if(this._hasChilds()){var n=this.childs.indexOf(t),i=this.childs[n+1];i?this.insertBefore(e,i):this.appendChild(e)}},i.prototype.search=function(e){var t,n=[],i=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!=this.field){var o=String(this.field).toLowerCase();t=o.indexOf(i),-1!=t&&(this.searchField=!0,n.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds()){if(this.childs){var r=[];this.childs.forEach(function(t){r=r.concat(t.search(e))}),n=n.concat(r)}if(void 0!=i){var s=!1;0==r.length?this.collapse(s):this.expand(s)}}else{if(void 0!=this.value){var a=String(this.value).toLowerCase();t=a.indexOf(i),-1!=t&&(this.searchValue=!0,n.push({node:this,elem:"value"}))}this._updateDomValue()}return n},i.prototype.scrollTo=function(e){if(!this.dom.tr||!this.dom.tr.parentNode)for(var t=this.parent,n=!1;t;)t.expand(n),t=t.parent;this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},i.focusElement=void 0,i.prototype.focus=function(e){if(i.focusElement=e,this.dom.tr&&this.dom.tr.parentNode){var t=this.dom;switch(e){case"drag":t.drag?t.drag.focus():t.menu.focus();break;case"menu":t.menu.focus();break;case"expand":this._hasChilds()?t.expand.focus():t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.menu.focus();break;case"field":t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):this._hasChilds()?t.expand.focus():t.menu.focus();break;case"value":default:t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):this._hasChilds()?t.expand.focus():t.menu.focus()}}},i.select=function(e){setTimeout(function(){s.selectContentEditable(e)},0)},i.prototype.blur=function(){this._getDomValue(!1),this._getDomField(!1)},i.prototype.containsNode=function(e){if(this==e)return!0;var t=this.childs;if(t)for(var n=0,i=t.length;i>n;n++)if(t[n].containsNode(e))return!0;return!1},i.prototype._move=function(e,t){if(e!=t){if(e.containsNode(this))throw new Error("Cannot move a field into a child of itself");e.parent&&e.parent.removeChild(e);var n=e.clone();e.clearDom(),t?this.insertBefore(n,t):this.appendChild(n)}},i.prototype.removeChild=function(e){if(this.childs){var t=this.childs.indexOf(e);if(-1!=t){e.hide(),delete e.searchField,delete e.searchValue;var n=this.childs.splice(t,1)[0];return n.parent=null,this.updateDom({updateIndexes:!0}),n}}return void 0},i.prototype._remove=function(e){this.removeChild(e)},i.prototype.changeType=function(e){var t=this.type;if(t!=e){if("string"!=e&&"auto"!=e||"string"!=t&&"auto"!=t){var n,i=this.dom.tr?this.dom.tr.parentNode:void 0;n=this.expanded?this.getAppend():this.getDom();var o=n&&n.parentNode?n.nextSibling:void 0;this.hide(),this.clearDom(),this.type=e,"object"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),delete e.index,e.fieldEditable=!0,void 0==e.field&&(e.field="")}),("string"==t||"auto"==t)&&(this.expanded=!0)):"array"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),e.fieldEditable=!1,e.index=t}),("string"==t||"auto"==t)&&(this.expanded=!0)):this.expanded=!1,i&&(o?i.insertBefore(this.getDom(),o):i.appendChild(this.getDom())),this.showChilds()}else this.type=e;("auto"==e||"string"==e)&&("string"==e?this.value=String(this.value):this.value=this._stringCast(String(this.value)),this.focus()),this.updateDom({updateIndexes:!0})}},i.prototype._getDomValue=function(e){if(this.dom.value&&"array"!=this.type&&"object"!=this.type&&(this.valueInnerText=s.getInnerText(this.dom.value)),void 0!=this.valueInnerText)try{var t;if("string"==this.type)t=this._unescapeHTML(this.valueInnerText);else{var n=this._unescapeHTML(this.valueInnerText);t=this._stringCast(n)}t!==this.value&&(this.value=t,this._debouncedOnChangeValue())}catch(i){if(this.value=void 0,e!==!0)throw i}},i.prototype._onChangeValue=function(){var e=this.editor.getSelection();if(e.range){var t=s.textDiff(String(this.value),String(this.previousValue));e.range.startOffset=t.start,e.range.endOffset=t.end}var n=this.editor.getSelection();if(n.range){var i=s.textDiff(String(this.previousValue),String(this.value));n.range.startOffset=i.start,n.range.endOffset=i.end}this.editor._onAction("editValue",{node:this,oldValue:this.previousValue,newValue:this.value,oldSelection:e,newSelection:n}),this.previousValue=this.value},i.prototype._onChangeField=function(){var e=this.editor.getSelection();if(e.range){var t=s.textDiff(this.field,this.previousField);e.range.startOffset=t.start,e.range.endOffset=t.end}var n=this.editor.getSelection();if(n.range){var i=s.textDiff(this.previousField,this.field);n.range.startOffset=i.start,n.range.endOffset=i.end}this.editor._onAction("editField",{node:this,oldValue:this.previousField,newValue:this.field,oldSelection:e,newSelection:n}),this.previousField=this.field},i.prototype._updateDomValue=function(){var e=this.dom.value;if(e){var t=["jsoneditor-value"],n=this.value,i="auto"==this.type?s.type(n):this.type,o="string"==i&&s.isUrl(n);t.push("jsoneditor-"+i),o&&t.push("jsoneditor-url");var r=""==String(this.value)&&"array"!=this.type&&"object"!=this.type;if(r&&t.push("jsoneditor-empty"),this.searchValueActive&&t.push("jsoneditor-highlight-active"),this.searchValue&&t.push("jsoneditor-highlight"),e.className=t.join(" "),"array"==i||"object"==i){var a=this.childs?this.childs.length:0;e.title=this.type+" containing "+a+" items"}else o&&this.editable.value?e.title="Ctrl+Click or Ctrl+Enter to open url in new window":e.title="";"boolean"===i&&this.editable.value?(this.dom.checkbox||(this.dom.checkbox=document.createElement("input"),this.dom.checkbox.type="checkbox",this.dom.tdCheckbox=document.createElement("td"),this.dom.tdCheckbox.className="jsoneditor-tree",this.dom.tdCheckbox.appendChild(this.dom.checkbox),this.dom.tdValue.parentNode.insertBefore(this.dom.tdCheckbox,this.dom.tdValue)),this.dom.checkbox.checked=this.value):this.dom.tdCheckbox&&(this.dom.tdCheckbox.parentNode.removeChild(this.dom.tdCheckbox),delete this.dom.tdCheckbox,delete this.dom.checkbox),s.stripFormatting(e)}},i.prototype._updateDomField=function(){var e=this.dom.field;if(e){var t=""==String(this.field)&&"array"!=this.parent.type;t?s.addClassName(e,"jsoneditor-empty"):s.removeClassName(e,"jsoneditor-empty"),this.searchFieldActive?s.addClassName(e,"jsoneditor-highlight-active"):s.removeClassName(e,"jsoneditor-highlight-active"),this.searchField?s.addClassName(e,"jsoneditor-highlight"):s.removeClassName(e,"jsoneditor-highlight"),s.stripFormatting(e)}},i.prototype._getDomField=function(e){if(this.dom.field&&this.fieldEditable&&(this.fieldInnerText=s.getInnerText(this.dom.field)),void 0!=this.fieldInnerText)try{var t=this._unescapeHTML(this.fieldInnerText);t!==this.field&&(this.field=t,this._debouncedOnChangeField())}catch(n){if(this.field=void 0,e!==!0)throw n}},i.prototype.validate=function(){var e=[];if("object"===this.type){for(var t={},n=[],i=0;i0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var i=0;i0&&(e=e.concat(r))}return e},i.prototype.clearDom=function(){this.dom={}},i.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var n=document.createElement("button");e.drag=n,n.className="jsoneditor-dragarea",n.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");e.menu=o,o.className="jsoneditor-contextmenu",o.title="Click to open the actions menu (Ctrl+M)",i.appendChild(e.menu),e.tr.appendChild(i)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],o=e[e.length-1],r=i.getNodeFromTarget(t.target),a=o._nextSibling(),l=n.editor,c=s.getAbsoluteTop(r.dom.tr)-s.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=s.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=s.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:a,mouseX:t.pageX,offsetY:c,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,l,c,d,h,u,p,f,m,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(n=E.dom.tr,p=s.getAbsoluteTop(n),g=n.offsetHeight,p>w){o=n;do o=o.previousSibling,h=i.getNodeFromTarget(o),f=o?s.getAbsoluteTop(o):0;while(o&&f>w);h&&!h.parent&&(h=void 0),h||(d=n.parentNode.firstChild,o=d?d.nextSibling:void 0,h=i.getNodeFromTarget(o),h==E&&(h=void 0)),h&&(o=h.dom.tr,f=o?s.getAbsoluteTop(o):0,w>f+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(c=C.expanded&&C.append?C.append.getDom():C.dom.tr,l=c?c.nextSibling:void 0){m=s.getAbsoluteTop(l),r=l;do u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?s.getAbsoluteTop(r.nextSibling):0,y=r?v-m:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27)),r=r.nextSibling;while(r&&w>p+y);if(u&&u.parent){var j=x-b.drag.mouseX,S=Math.round(j/24/2),k=b.drag.level+S,N=u.getLevel();for(o=u.dom.tr.previousSibling;k>N&&o;){h=i.getNodeFromTarget(o);var A=e.some(function(e){return e===h||h._isChildOf(e)});if(A);else{if(!(h instanceof a))break;var O=h.parent.childs;if(O.length==e.length&&O[e.length-1]==C)break;u=i.getNodeFromTarget(o),N=u.getLevel()}o=o.previousSibling}c.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),_=!0)}}}_&&(b.drag.mouseX=x,b.drag.level=E.getLevel()),b.startAutoScroll(w),t.preventDefault()}},i.onDragEnd=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n=e[0],o=n.editor,r=n.parent,a=r.childs.indexOf(n),l=r.childs[a+e.length]||r.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:o.drag.oldSelection,newSelection:o.getSelection(),oldBeforeNode:o.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&o._onAction("moveNodes",c),document.body.style.cursor=o.drag.oldCursor,o.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&o.highlighter.unhighlight()}),delete o.drag,o.mousemove&&(s.removeEventListener(window,"mousemove",o.mousemove),delete o.mousemove),o.mouseup&&(s.removeEventListener(window,"mouseup",o.mouseup),delete o.mouseup),o.stopAutoScroll(),t.preventDefault()}},i.prototype._isChildOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},i.prototype._createDomField=function(){return document.createElement("div")},i.prototype.setHighlight=function(e){this.dom.tr&&(e?s.addClassName(this.dom.tr,"jsoneditor-highlight"):s.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},i.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?s.addClassName(this.dom.tr,"jsoneditor-selected"):s.removeClassName(this.dom.tr,"jsoneditor-selected"),t?s.addClassName(this.dom.tr,"jsoneditor-first"):s.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},i.prototype.updateValue=function(e){this.value=e,this.updateDom()},i.prototype.updateField=function(e){this.field=e,this.updateDom()},i.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var n=this.dom.field;if(n){this.fieldEditable?(n.contentEditable=this.editable.field,n.spellcheck=!1,n.className="jsoneditor-field"):n.className="jsoneditor-readonly";var i;i=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",n.innerHTML=this._escapeHTML(i)}var o=this.dom.value;if(o){var r=this.childs?this.childs.length:0;"array"==this.type?(o.innerHTML="["+r+"]",s.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(o.innerHTML="{"+r+"}",s.addClassName(this.dom.tr,"jsoneditor-expandable")):(o.innerHTML=this._escapeHTML(this.value),s.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&e.updateIndexes===!0&&this._updateDomIndexes(),e&&e.recurse===!0&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},i.prototype._updateDomIndexes=function(){var e=this.dom.value,t=this.childs;e&&t&&("array"==this.type?t.forEach(function(e,t){e.index=t;var n=e.dom.field;n&&(n.innerHTML=t)}):"object"==this.type&&t.forEach(function(e){void 0!=e.index&&(delete e.index,void 0==e.field&&(e.field=""))}))},i.prototype._createDomValue=function(){var e;return"array"==this.type?(e=document.createElement("div"),e.innerHTML="[...]"):"object"==this.type?(e=document.createElement("div"),e.innerHTML="{...}"):!this.editable.value&&s.isUrl(this.value)?(e=document.createElement("a"),e.href=this.value,e.target="_blank",e.innerHTML=this._escapeHTML(this.value)):(e=document.createElement("div"),e.contentEditable=this.editable.value,e.spellcheck=!1,e.innerHTML=this._escapeHTML(this.value)),e},i.prototype._createDomExpandButton=function(){var e=document.createElement("button");return this._hasChilds()?(e.className=this.expanded?"jsoneditor-expanded":"jsoneditor-collapsed",e.title="Click to expand/collapse this field (Ctrl+E). \nCtrl+Click to expand/collapse including all childs."):(e.className="jsoneditor-invisible",e.title=""),e},i.prototype._createDomTree=function(){var e=this.dom,t=document.createElement("table"),n=document.createElement("tbody");t.style.borderCollapse="collapse",t.className="jsoneditor-values",t.appendChild(n);var i=document.createElement("tr");n.appendChild(i);var o=document.createElement("td");o.className="jsoneditor-tree",i.appendChild(o),e.expand=this._createDomExpandButton(),o.appendChild(e.expand),e.tdExpand=o;var r=document.createElement("td");r.className="jsoneditor-tree",i.appendChild(r),e.field=this._createDomField(),r.appendChild(e.field),e.tdField=r;var s=document.createElement("td");s.className="jsoneditor-tree",i.appendChild(s),"object"!=this.type&&"array"!=this.type&&(s.appendChild(document.createTextNode(":")),s.className="jsoneditor-separator"),e.tdSeparator=s;var a=document.createElement("td");return a.className="jsoneditor-tree",i.appendChild(a),e.value=this._createDomValue(),a.appendChild(e.value),e.tdValue=a,t},i.prototype.onEvent=function(e){var t,n=e.type,i=e.target||e.srcElement,o=this.dom,r=this,a=this._hasChilds();if((i==o.drag||i==o.menu)&&("mouseover"==n?this.editor.highlighter.highlight(this):"mouseout"==n&&this.editor.highlighter.unhighlight()),"click"==n&&i==o.menu){var l=r.editor.highlighter;l.highlight(r),l.lock(),s.addClassName(o.menu,"jsoneditor-selected"),this.showContextMenu(o.menu,function(){s.removeClassName(o.menu,"jsoneditor-selected"),l.unlock(),l.unhighlight()})}if("click"==n&&(i==o.expand||("view"===r.editor.options.mode||"form"===r.editor.options.mode)&&"DIV"===i.nodeName)&&a){var c=e.ctrlKey;this._onExpand(c)}"change"==n&&i==o.checkbox&&(this.dom.value.innerHTML=!this.value,this._getDomValue());var d=o.value;if(i==d)switch(n){case"focus":t=this;break;case"blur":case"change":this._getDomValue(!0),this._updateDomValue(),this.value&&(d.innerHTML=this._escapeHTML(this.value));break;case"input":this._getDomValue(!0),this._updateDomValue();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"click":(e.ctrlKey||!this.editable.value)&&s.isUrl(this.value)&&window.open(this.value,"_blank"); break;case"keyup":this._getDomValue(!0),this._updateDomValue();break;case"cut":case"paste":setTimeout(function(){r._getDomValue(!0),r._updateDomValue()},1)}var h=o.field;if(i==h)switch(n){case"focus":t=this;break;case"blur":case"change":this._getDomField(!0),this._updateDomField(),this.field&&(h.innerHTML=this._escapeHTML(this.field));break;case"input":this._getDomField(!0),this._updateDomField();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"keyup":this._getDomField(!0),this._updateDomField();break;case"cut":case"paste":setTimeout(function(){r._getDomField(!0),r._updateDomField()},1)}var u=o.tree;if(i==u.parentNode&&"click"==n&&!e.hasMoved){var p=void 0!=e.offsetX?e.offsetX<24*(this.getLevel()+1):e.pageX0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)(!this.editable.value||e.ctrlKey)&&s.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var E=e.ctrlKey;this._onExpand(E),p.focus(),v=!0}}}else if(68==u)f&&y&&(i.onDuplicate(b),v=!0);else if(69==u)f&&(this._onExpand(m),p.focus(),v=!0);else if(77==u&&y)f&&(this.showContextMenu(p),v=!0);else if(46==u&&y)f&&(i.onRemove(b),v=!0);else if(45==u&&y)f&&!m?(this._onInsertBefore(),v=!0):f&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var C=this._lastNode();C&&C.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var j=this._firstNode();j&&j.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(p);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&y){if(x.expanded){var k=x.getAppend();o=k?k.nextSibling:void 0}else{var N=x.getDom();o=N.nextSibling}o&&(n=i.getNodeFromTarget(o),r=o.nextSibling,T=i.getNodeFromTarget(r),n&&n instanceof a&&1!=x.parent.childs.length&&T&&T.parent&&(l=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){T.parent.moveBefore(e,T)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:T,oldSelection:l,newSelection:this.editor.getSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(p))),v=!0):!g&&f&&m&&y?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),t.focus("field")),v=!0):g&&m&&y&&(t=w._previousNode(),t&&t.parent&&(l=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:t,oldSelection:l,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!m){var A=this._nextElement(p);A&&this.focus(this._getElementName(A)),v=!0}else if(g&&m&&y){N=w.getDom();var O=N.previousSibling;O&&(t=i.getNodeFromTarget(O),t&&t.parent&&t instanceof a&&!t.isVisible()&&(l=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:t,oldSelection:l,newSelection:this.editor.getSelection()})))}}else if(40==u)if(g&&!m)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(p))),v=!0;else if(!g&&f&&m&&y)n=this._nextNode(),n&&(h=this.editor.multiselection,h.start=h.start||this,h.end=n,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),n.focus("field")),v=!0;else if(g&&m&&y){n=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode();var T=n&&(n._nextNode()||n.parent.append);T&&T.parent&&(l=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){T.parent.moveBefore(e,T)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:T,oldSelection:l,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},i.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,n=t.parentNode,i=n.scrollTop;n.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(n.appendChild(t),n.scrollTop=i)},i.onRemove=function(e){if(!Array.isArray(e))return i.onRemove([e]);if(e&&e.length>0){var t=e[0],n=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getSelection();i.blurNodes(e);var a=o.getSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:n,index:r,oldSelection:s,newSelection:a})}},i.onDuplicate=function(e){if(!Array.isArray(e))return i.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],n=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return n.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:n,oldSelection:r,newSelection:l})}},i.prototype._onInsertBefore=function(e,t,n){var o=this.editor.getSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],beforeNode:this,parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onInsertAfter=function(e,t,n){var o=this.editor.getSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],afterNode:this,parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onAppend=function(e,t,n){var o=this.editor.getSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[r],parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var n=this.editor.getSelection();this.changeType(e);var i=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype._onSort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,n="array"==this.type?"value":"field";this.hideChilds();var i=this.childs,o=this.sort;this.childs=this.childs.concat(),this.childs.sort(function(e,i){return e[n]>i[n]?t:e[n]/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return this.editor.options.escapeUnicode===!0&&(i=s.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"',n=s.parse(t);return n.replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;n2&&E.push("'"+this.terminals_[w]+"'");var j="";j=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+E.join(", ")+", got '"+this.terminals_[m]+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(j,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:f,expected:E})}if(3==h){if(m==p)throw new Error(j||"Parsing halted.");d=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,f=this.lexer.yylloc,m=n()}for(;;){if(u.toString()in a[v])break;if(0==v)throw new Error(j||"Parsing halted.");t(1),v=o[o.length-1]}g=m,m=u,v=o[o.length-1],y=a[v]&&a[v][u],h=3}if(y[0]instanceof Array&&y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+m);switch(y[0]){case 1:o.push(m),r.push(this.lexer.yytext),s.push(this.lexer.yylloc),o.push(y[1]),m=null,g?(m=g,g=null):(d=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,f=this.lexer.yylloc,h>0&&h--);break;case 2:if(x=this.productions_[y[1]][1],C.$=r[r.length-x],C._$={first_line:s[s.length-(x||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(x||1)].first_column,last_column:s[s.length-1].last_column},b=this.performAction.call(C,l,d,c,this.yy,y[1],r,s),"undefined"!=typeof b)return b;x&&(o=o.slice(0,-1*x*2),r=r.slice(0,-1*x),s=s.slice(0,-1*x)),o.push(this.productions_[y[1]][0]),r.push(C.$),s.push(C._$),_=a[o[o.length-2]][o[o.length-1]],o.push(_);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,i,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=n,i=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?e:void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return"undefined"!=typeof e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=i,t.parse=i.parse.bind(i)},function(e,t,n){var i=n(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}());n(14),n(15),n(13),e.exports=i},function(e,t,n){function i(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,this.editable.field){e.tdDrag=document.createElement("td");var n=document.createElement("td");e.tdMenu=n;var i=document.createElement("button");i.className="jsoneditor-contextmenu",i.title="Click to open the actions menu (Ctrl+M)",e.menu=i,n.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="(empty)",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var n=e.text;n&&(n.innerHTML="(empty "+this.parent.type+")");var i=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&i.appendChild(e.tdDrag),e.tdMenu&&i.appendChild(e.tdMenu),i.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&i.removeChild(e.tdDrag),e.tdMenu&&i.removeChild(e.tdMenu),i.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,n){var i=this,o=e.TYPE_TITLES,s=[{text:"Append",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){i._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}]}],a=new r(s,{close:n});a.show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,n=e.target||e.srcElement,i=this.dom,r=i.menu;if(n==r&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&n==i.menu){var s=this.editor.highlighter;s.highlight(this.parent),s.lock(),o.addClassName(i.menu,"jsoneditor-selected"),this.showContextMenu(i.menu,function(){o.removeClassName(i.menu,"jsoneditor-selected"),s.unlock(),s.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=n(3),r=n(7);e.exports=i},function(e,t,n){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter { background: #ebebeb; color: #333 } .ace-jsoneditor.ace_editor { font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif; line-height: 1.3; } .ace-jsoneditor .ace_print-margin { width: 1px; background: #e8e8e8 } .ace-jsoneditor .ace_scroller { background-color: #FFFFFF } .ace-jsoneditor .ace_text-layer { color: gray } .ace-jsoneditor .ace_variable { color: #1a1a1a } .ace-jsoneditor .ace_cursor { border-left: 2px solid #000000 } .ace-jsoneditor .ace_overwrite-cursors .ace_cursor { border-left: 0px; border-bottom: 1px solid #000000 } .ace-jsoneditor .ace_marker-layer .ace_selection { background: lightgray } .ace-jsoneditor.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px #FFFFFF; border-radius: 2px } .ace-jsoneditor .ace_marker-layer .ace_step { background: rgb(255, 255, 0) } .ace-jsoneditor .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #BFBFBF } .ace-jsoneditor .ace_marker-layer .ace_active-line { background: #FFFBD1 } .ace-jsoneditor .ace_gutter-active-line { background-color : #dcdcdc } .ace-jsoneditor .ace_marker-layer .ace_selected-word { border: 1px solid lightgray } .ace-jsoneditor .ace_invisible { color: #BFBFBF } .ace-jsoneditor .ace_keyword, .ace-jsoneditor .ace_meta, .ace-jsoneditor .ace_support.ace_constant.ace_property-value { color: #AF956F } .ace-jsoneditor .ace_keyword.ace_operator { color: #484848 } .ace-jsoneditor .ace_keyword.ace_other.ace_unit { color: #96DC5F } .ace-jsoneditor .ace_constant.ace_language { color: darkorange } .ace-jsoneditor .ace_constant.ace_numeric { color: red } .ace-jsoneditor .ace_constant.ace_character.ace_entity { color: #BF78CC } .ace-jsoneditor .ace_invalid { color: #FFFFFF; background-color: #FF002A; } .ace-jsoneditor .ace_fold { background-color: #AF956F; border-color: #000000 } .ace-jsoneditor .ace_storage, .ace-jsoneditor .ace_support.ace_class, .ace-jsoneditor .ace_support.ace_function, .ace-jsoneditor .ace_support.ace_other, .ace-jsoneditor .ace_support.ace_type { color: #C52727 } .ace-jsoneditor .ace_string { color: green } .ace-jsoneditor .ace_comment { color: #BCC8BA } .ace-jsoneditor .ace_entity.ace_name.ace_tag, .ace-jsoneditor .ace_entity.ace_other.ace_attribute-name { color: #606060 } .ace-jsoneditor .ace_markup.ace_underline { text-decoration: underline } .ace-jsoneditor .ace_indent-guide { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y }';var i=e("../lib/dom");i.importCssString(t.cssText,t.cssClass)})},function(e,t,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};i.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),o=n.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new i(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var i,o=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],d={},h=function(e){var t=-1;return e.multiSelect&&(t=e.selection.index,d.rangeCount!=e.multiSelect.rangeCount&&(d={rangeCount:e.multiSelect.rangeCount})),d[t]?i=d[t]:void(i=d[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""})},u=function(e,t,n,i){var o=e.end.row-e.start.row;return{text:n+t+i,selection:[0,e.start.column+1,o,e.end.column+(o?0:1)]}},p=function(){this.add("braces","insertion",function(e,t,n,o,r){var s=n.getCursorPosition(),l=o.doc.getLine(s.row);if("{"==r){h(n);var c=n.getSelectionRange(),d=o.doc.getTextRange(c);if(""!==d&&"{"!==d&&n.getWrapBehavioursEnabled())return u(c,d,"{","}");if(p.isSaneInsertion(n,o))return/[\]\}\)]/.test(l[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(n,o,"{"),{text:"{",selection:[1,1]})}else if("}"==r){h(n);var f=l.substring(s.column,s.column+1);if("}"==f){var m=o.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(null!==m&&p.isAutoInsertedClosing(s,l,r))return p.popAutoInsertedClosing(), {text:"",selection:[1,1]}}}else{if("\n"==r||"\r\n"==r){h(n);var g="";p.isMaybeInsertedClosing(s,l)&&(g=a.stringRepeat("}",i.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var f=l.substring(s.column,s.column+1);if("}"===f){var v=o.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!v)return null;var y=this.$getIndent(o.getLine(v.row))}else{if(!g)return void p.clearMaybeInsertedClosing();var y=this.$getIndent(l)}var b=y+o.getTabString();return{text:"\n"+b+"\n"+y+g,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,o,r){var s=o.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){h(n);var a=o.doc.getLine(r.start.row),l=a.substring(r.end.column,r.end.column+1);if("}"==l)return r.end.column++,r;i.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,i,o){if("("==o){h(n);var r=n.getSelectionRange(),s=i.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return u(r,s,"(",")");if(p.isSaneInsertion(n,i))return p.recordAutoInsert(n,i,")"),{text:"()",selection:[1,1]}}else if(")"==o){h(n);var a=n.getCursorPosition(),l=i.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var d=i.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==d&&p.isAutoInsertedClosing(a,l,o))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,i,o){var r=i.doc.getTextRange(o);if(!o.isMultiLine()&&"("==r){h(n);var s=i.doc.getLine(o.start.row),a=s.substring(o.start.column+1,o.start.column+2);if(")"==a)return o.end.column++,o}}),this.add("brackets","insertion",function(e,t,n,i,o){if("["==o){h(n);var r=n.getSelectionRange(),s=i.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return u(r,s,"[","]");if(p.isSaneInsertion(n,i))return p.recordAutoInsert(n,i,"]"),{text:"[]",selection:[1,1]}}else if("]"==o){h(n);var a=n.getCursorPosition(),l=i.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var d=i.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==d&&p.isAutoInsertedClosing(a,l,o))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,i,o){var r=i.doc.getTextRange(o);if(!o.isMultiLine()&&"["==r){h(n);var s=i.doc.getLine(o.start.row),a=s.substring(o.start.column+1,o.start.column+2);if("]"==a)return o.end.column++,o}}),this.add("string_dquotes","insertion",function(e,t,n,i,o){if('"'==o||"'"==o){h(n);var r=o,s=n.getSelectionRange(),a=i.doc.getTextRange(s);if(""!==a&&"'"!==a&&'"'!=a&&n.getWrapBehavioursEnabled())return u(s,a,r,r);if(!a){var l=n.getCursorPosition(),c=i.doc.getLine(l.row),d=c.substring(l.column-1,l.column),p=c.substring(l.column,l.column+1),f=i.getTokenAt(l.row,l.column),m=i.getTokenAt(l.row,l.column+1);if("\\"==d&&f&&/escape/.test(f.type))return null;var g,v=f&&/string|escape/.test(f.type),y=!m||/string|escape/.test(m.type);if(p==r)g=v!==y;else{if(v&&!y)return null;if(v&&y)return null;var b=i.$mode.tokenRe;b.lastIndex=0;var w=b.test(d);b.lastIndex=0;var x=b.test(d);if(w||x)return null;if(p&&!/[\s;,.})\]\\]/.test(p))return null;g=!0}return{text:g?r+r:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,i,o){var r=i.doc.getTextRange(o);if(!o.isMultiLine()&&('"'==r||"'"==r)){h(n);var s=i.doc.getLine(o.start.row),a=s.substring(o.start.column+1,o.start.column+2);if(a==r)return o.end.column++,o}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),i=new s(t,n.row,n.column);if(!this.$matchTokenType(i.getCurrentToken()||"text",l)){var o=new s(t,n.row,n.column+1);if(!this.$matchTokenType(o.getCurrentToken()||"text",l))return!1}return i.stepForward(),i.getCurrentTokenRow()!==n.row||this.$matchTokenType(i.getCurrentToken()||"text",c)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var o=e.getCursorPosition(),r=t.doc.getLine(o.row);this.isAutoInsertedClosing(o,r,i.autoInsertedLineEnd[0])||(i.autoInsertedBrackets=0),i.autoInsertedRow=o.row,i.autoInsertedLineEnd=n+r.substr(o.column),i.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var o=e.getCursorPosition(),r=t.doc.getLine(o.row);this.isMaybeInsertedClosing(o,r)||(i.maybeInsertedBrackets=0),i.maybeInsertedRow=o.row,i.maybeInsertedLineStart=r.substr(0,o.column)+n,i.maybeInsertedLineEnd=r.substr(o.column),i.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return i.autoInsertedBrackets>0&&e.row===i.autoInsertedRow&&n===i.autoInsertedLineEnd[0]&&t.substr(e.column)===i.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return i.maybeInsertedBrackets>0&&e.row===i.maybeInsertedRow&&t.substr(e.column)===i.maybeInsertedLineEnd&&t.substr(0,e.column)==i.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){i.autoInsertedLineEnd=i.autoInsertedLineEnd.substr(1),i.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){i&&(i.maybeInsertedBrackets=0,i.maybeInsertedRow=-1)},o.inherits(p,r),t.CstyleBehaviour=p}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var i=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};i.inherits(s,r),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(i)?"start":o},this.getFoldWidgetRange=function(e,t,n,i){var o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,s);var a=e.getCommentFoldRange(n,s+r[0].length,1);return a&&!a.isMultiLine()&&(i?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],n,s):e.getCommentFoldRange(n,s,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),i=n.search(/\S/),r=t,s=n.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(i==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns?new o(s,i,d,t.length):void 0}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,i){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new d(["ace"],n(16),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t,n){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=" .ace_search { background-color: #ddd; border: 1px solid #cbcbcb; border-top: 0 none; max-width: 325px; overflow: hidden; margin: 0; padding: 4px; padding-right: 6px; padding-bottom: 0; position: absolute; top: 0px; z-index: 99; white-space: normal; } .ace_search.left { border-left: 0 none; border-radius: 0px 0px 5px 0px; left: 0; } .ace_search.right { border-radius: 0px 0px 0px 5px; border-right: 0 none; right: 0; } .ace_search_form, .ace_replace_form { border-radius: 3px; border: 1px solid #cbcbcb; float: left; margin-bottom: 4px; overflow: hidden; } .ace_search_form.ace_nomatch { outline: 1px solid red; } .ace_search_field { background-color: white; border-right: 1px solid #cbcbcb; border: 0 none; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; float: left; height: 22px; outline: 0; padding: 0 7px; width: 214px; margin: 0; } .ace_searchbtn, .ace_replacebtn { background: #fff; border: 0 none; border-left: 1px solid #dcdcdc; cursor: pointer; float: left; height: 22px; margin: 0; position: relative; } .ace_searchbtn:last-child, .ace_replacebtn:last-child { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .ace_searchbtn:disabled { background: none; cursor: default; } .ace_searchbtn { background-position: 50% 50%; background-repeat: no-repeat; width: 27px; } .ace_searchbtn.prev { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); } .ace_searchbtn.next { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); } .ace_searchbtn_close { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0; border-radius: 50%; border: 0 none; color: #656565; cursor: pointer; float: right; font: 16px/16px Arial; height: 14px; margin: 5px 1px 9px 5px; padding: 0; text-align: center; width: 14px; } .ace_searchbtn_close:hover { background-color: #656565; background-position: 50% 100%; color: white; } .ace_replacebtn.prev { width: 54px } .ace_replacebtn.next { width: 27px } .ace_button { margin-left: 2px; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -o-user-select: none; -ms-user-select: none; user-select: none; overflow: hidden; opacity: 0.7; border: 1px solid rgba(100,100,100,0.23); padding: 1px; -moz-box-sizing: border-box; box-sizing: border-box; color: black; } .ace_button:hover { background-color: #eee; opacity:1; } .ace_button:active { background-color: #ddd; } .ace_button.checked { border-color: #3399ff; opacity:1; } .ace_search_options{ margin-bottom: 3px; text-align: right; -webkit-user-select: none; -moz-user-select: none; -o-user-select: none; -ms-user-select: none; user-select: none; }",a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys");i.importCssString(s,"ace_searchbox");var c=''.replace(/>\s+/g,">"),d=function(e,t,n){var o=i.createElement("div");o.innerHTML=c,this.element=o.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var n=e.target||e.srcElement,i=n.getAttribute("action");i&&t[i]?t[i]():t.$searchBarKb.commands[i]&&t.$searchBarKb.commands[i].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,n,i){var o=l.keyCodeToString(i),s=t.$searchBarKb.findKeyCommand(n,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new a,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceBox.style.display="",e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){i.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),i.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),i.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n}),r=!o&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(d.prototype),t.SearchBox=d,t.Search=function(e,t){var n=e.searchBox||new d(e);n.show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t,n){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}var cons=obj.constructor;if(cons===RegExp)return obj;copy=cons();for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:" "},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=" \\n \\f\\r   ᠎              \\u2028\\u2029";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'; }])}); diff --git a/dist/jsoneditor.js b/dist/jsoneditor.js index d385bea..2f75263 100644 --- a/dist/jsoneditor.js +++ b/dist/jsoneditor.js @@ -24,8 +24,8 @@ * Copyright (c) 2011-2016 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.1.4 - * @date 2016-02-13 + * @version 5.1.5 + * @date 2016-02-15 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -85,7 +85,7 @@ return /******/ (function(modules) { // webpackBootstrap var Ajv; try { - Ajv = __webpack_require__(10); + Ajv = __webpack_require__(4); } catch (err) { // no problem... when we need Ajv we will throw a neat exception @@ -460,12 +460,12 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ function(module, exports, __webpack_require__) { - var Highlighter = __webpack_require__(4); - var History = __webpack_require__(5); - var SearchBox = __webpack_require__(6); - var ContextMenu = __webpack_require__(7); - var Node = __webpack_require__(8); - var modeswitcher = __webpack_require__(9); + var Highlighter = __webpack_require__(6); + var History = __webpack_require__(7); + var SearchBox = __webpack_require__(8); + var ContextMenu = __webpack_require__(9); + var Node = __webpack_require__(10); + var modeswitcher = __webpack_require__(5); var util = __webpack_require__(3); // create a mixin with the functions for tree mode @@ -1624,7 +1624,7 @@ return /******/ (function(modules) { // webpackBootstrap // failed to load ace, no problem, we will fall back to plain text } - var modeswitcher = __webpack_require__(9); + var modeswitcher = __webpack_require__(5); var util = __webpack_require__(3); // create a mixin with the functions for text mode @@ -2865,6 +2865,448 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 4 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var compileSchema = __webpack_require__(23) + , resolve = __webpack_require__(13) + , Cache = __webpack_require__(14) + , SchemaObject = __webpack_require__(15) + , stableStringify = __webpack_require__(24) + , formats = __webpack_require__(16) + , rules = __webpack_require__(17) + , v5 = __webpack_require__(18); + + module.exports = Ajv; + + Ajv.prototype.compileAsync = __webpack_require__(19); + Ajv.prototype.addKeyword = __webpack_require__(20); + + var META_SCHEMA_ID = 'http://json-schema.org/draft-04/schema'; + var SCHEMA_URI_FORMAT = /^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i; + function SCHEMA_URI_FORMAT_FUNC(str) { + return SCHEMA_URI_FORMAT.test(str); + } + + /** + * Creates validator instance. + * Usage: `Ajv(opts)` + * @param {Object} opts optional options + * @return {Object} ajv instance + */ + function Ajv(opts) { + if (!(this instanceof Ajv)) return new Ajv(opts); + var self = this; + + this.opts = opts || {}; + this._schemas = {}; + this._refs = {}; + this._formats = formats(this.opts.format); + this._cache = this.opts.cache || new Cache; + this._loadingSchemas = {}; + this.RULES = rules(); + + // this is done on purpose, so that methods are bound to the instance + // (without using bind) so that they can be used without the instance + this.validate = validate; + this.compile = compile; + this.addSchema = addSchema; + this.addMetaSchema = addMetaSchema; + this.validateSchema = validateSchema; + this.getSchema = getSchema; + this.removeSchema = removeSchema; + this.addFormat = addFormat; + this.errorsText = errorsText; + + this._addSchema = _addSchema; + this._compile = _compile; + + addInitialSchemas(); + if (this.opts.formats) addInitialFormats(); + + if (this.opts.errorDataPath == 'property') + this.opts._errorDataPathProperty = true; + + if (this.opts.v5) v5.enable(this); + + this.opts.loopRequired = this.opts.loopRequired || Infinity; + + + /** + * Validate data using schema + * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize. + * @param {String|Object} schemaKeyRef key, ref or schema object + * @param {Any} data to be validated + * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`). + */ + function validate(schemaKeyRef, data) { + var v; + if (typeof schemaKeyRef == 'string') { + v = getSchema(schemaKeyRef); + if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"'); + } else { + var schemaObj = _addSchema(schemaKeyRef); + v = schemaObj.validate || _compile(schemaObj); + } + + var valid = v(data); + self.errors = v.errors; + return valid; + } + + + /** + * Create validating function for passed schema. + * @param {String|Object} schema + * @return {Function} validating function + */ + function compile(schema) { + var schemaObj = _addSchema(schema); + return schemaObj.validate || _compile(schemaObj); + } + + + /** + * Adds schema to the instance. + * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` will be ignored. + * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. + */ + function addSchema(schema, key, _skipValidation, _meta) { + if (Array.isArray(schema)){ + for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used. + * @param {Object} opts optional options with properties `separator` and `dataVar`. + * @return {String} + */ + function errorsText(errors, opts) { + errors = errors || self.errors; + if (!errors) return 'No errors'; + opts = opts || {}; + var separator = opts.separator || ', '; + var dataVar = opts.dataVar || 'data'; + + var text = ''; + for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used. - * @param {Object} opts optional options with properties `separator` and `dataVar`. - * @return {String} - */ - function errorsText(errors, opts) { - errors = errors || self.errors; - if (!errors) return 'No errors'; - opts = opts || {}; - var separator = opts.separator || ', '; - var dataVar = opts.dataVar || 'data'; - - var text = ''; - for (var i=0; i - * @version 5.1.4 - * @date 2016-02-13 + * @version 5.1.5 + * @date 2016-02-15 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=l.getInternetExplorerVersion();if(-1!=r&&9>r)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ace","theme","ajv","schema","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(10)}catch(o){}var s=i(1),a=i(2),l=i(3);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype._delete=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=l.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=l.extend({},this.options),s=o.mode;o.mode=e;var a=n.modes[e];if(!a)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==a.data;if(i=this.getName(),t=this[c?"getText":"get"](),this._delete(),l.clear(this),l.extend(this,a.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof a.load)try{a.load.call(this)}catch(h){console.error(h)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(h){console.error(h)}}catch(h){this._onError(h)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(i){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate())}else this.validateSchema=null,this.options.schema=null,this.validate()},n.prototype.validate=function(){},n.registerMode=function(e){var t,i;if(l.isArray(e))for(t=0;te&&i.scrollTop>0?this.autoScrollStep=(n+s-e)/3:e>o-s&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},h._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.className="jsoneditor-expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.title="Collapse all fields",n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.className="jsoneditor-undo jsoneditor-separator",r.title="Undo last action (Ctrl+Z)",r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=l.create(this,this.options.modes,this.options.mode);this.menu.appendChild(a),this.dom.modeBox=a}this.options.search&&(this.searchBox=new o(this,this.menu))},h._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},h._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},h._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(u=e.target),"mousedown"==e.type&&this._startDragDistance(e),("mousemove"==e.type||"mouseup"==e.type||"click"==e.type)&&this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},h._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},h._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},h._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},h._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},h._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},h.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},h.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},h._findTopLevelNodes=function(e,t){for(var i=e.getPath(),n=t.getPath(),r=0;r0){var o=i.length>l;if(o){i=i.slice(0,l);var a=this.validateSchema.errors.length-l;i.push("("+a+" more errors...)")}var c=document.createElement("div");c.innerHTML=''+i.map(function(e){var t;return t="string"==typeof e?'":"",''+t+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=c,this.frame.appendChild(c);var h=c.clientHeight;this.content.style.marginBottom=-h+"px",this.content.style.paddingBottom=h+"px"}if(this.aceEditor){var d=!1;this.aceEditor.resize(d)}},e.exports=[{mode:"text",mixin:a,data:"text",load:a.format},{mode:"code",mixin:a,data:"text",load:a.format}]},function(e,t,i){var n=i(12);t.parse=function(e){try{return JSON.parse(e)}catch(i){throw t.validate(e),i}},t.sanitize=function(e){function t(){return e.charAt(h)}function i(){return e.charAt(h+1)}function n(){return e.charAt(h-1)}function r(){for(var e=c.length-1;e>=0;){var t=c[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&" "!==t)return t;e--}return""}function o(){for(h+=2;hn;n++){var o=i[n];o.style&&o.removeAttribute("style");var s=o.attributes;if(s)for(var a=s.length-1;a>=0;a--){var l=s[a];l.specified===!0&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){var i=window.getSelection();if(i){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,i){var n=void 0==i;if(n&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var r=e.childNodes,o="",s=0,a=r.length;a>s;s++){var l=r[s];if("DIV"==l.nodeName||"P"==l.nodeName){var c=r[s-1],h=c?c.nodeName:void 0;h&&"DIV"!=h&&"P"!=h&&"BR"!=h&&(o+="\n",i.flush()),o+=t.getInnerText(l,i),i.set("\n")}else"BR"==l.nodeName?(o+=i.flush(),i.set("\n")):o+=t.getInnerText(l,i)}return o}return"P"==e.nodeName&&-1!=t.getInternetExplorerVersion()?i.flush():""},t.getInternetExplorerVersion=function(){if(-1==o){var e=-1;if("Microsoft Internet Explorer"==navigator.appName){var t=navigator.userAgent,i=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");null!=i.exec(t)&&(e=parseFloat(RegExp.$1))}o=e}return o},t.isFirefox=function(){return-1!=navigator.userAgent.indexOf("Firefox")};var o=-1;t.addEventListener=function(e,i,n,r){if(e.addEventListener)return void 0===r&&(r=!1),"mousewheel"===i&&t.isFirefox()&&(i="DOMMouseScroll"),e.addEventListener(i,n,r),n;if(e.attachEvent){var o=function(){return n.call(e,window.event)};return e.attachEvent("on"+i,o),o}},t.removeEventListener=function(e,i,n,r){e.removeEventListener?(void 0===r&&(r=!1),"mousewheel"===i&&t.isFirefox()&&(i="DOMMouseScroll"),e.removeEventListener(i,n,r)):e.detachEvent&&e.detachEvent("on"+i,n)},t.parsePath=function s(e){var t,i;if(0===e.length)return[];var n=e.match(/^\.(\w+)/);if(n)t=n[1],i=e.substr(t.length+1);else{if("["!==e[0])throw new SyntaxError("Failed to parse path");var r=e.indexOf("]");if(-1===r)throw new SyntaxError("Character ] expected in path");if(1===r)throw new SyntaxError("Index expected after [");t=JSON.parse(e.substring(1,r)),i=e.substr(r+1)}return[t].concat(s(i))},t.improveSchemaError=function(e){if("enum"===e.keyword&&Array.isArray(e.schema)){var t=e.schema;if(t){if(t=t.map(function(e){return JSON.stringify(e)}),t.length>5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&i>n;)n++;for(;t.charAt(o-1)===e.charAt(r-1)&&o>n&&r>0;)o--,r--;return{start:n,end:o}}},function(e,t,i){function n(){this.locked=!1}n.prototype.highlight=function(e){this.locked||(this.node!=e&&(this.node&&this.node.setHighlight(!1),this.node=e,this.node.setHighlight(!0)),this._cancelUnhighlight())},n.prototype.unhighlight=function(){if(!this.locked){var e=this;this.node&&(this._cancelUnhighlight(),this.unhighlightTimer=setTimeout(function(){e.node.setHighlight(!1),e.node=void 0,e.unhighlightTimer=void 0},0))}},n.prototype._cancelUnhighlight=function(){this.unhighlightTimer&&(clearTimeout(this.unhighlightTimer),this.unhighlightTimer=void 0)},n.prototype.lock=function(){this.locked=!0},n.prototype.unlock=function(){this.locked=!1},e.exports=n},function(e,t,i){function n(e){this.editor=e,this.clear(),this.actions={editField:{undo:function(e){e.node.updateField(e.oldValue)},redo:function(e){e.node.updateField(e.newValue)}},editValue:{undo:function(e){e.node.updateValue(e.oldValue)},redo:function(e){e.node.updateValue(e.newValue)}},changeType:{undo:function(e){e.node.changeType(e.oldType)},redo:function(e){e.node.changeType(e.newType)}},appendNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.appendChild(t)})}},insertBeforeNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.insertBefore(t,e.beforeNode)})}},insertAfterNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(i){e.parent.insertAfter(e.node,t),t=i})}},removeNodes:{undo:function(e){var t=e.parent,i=t.childs[e.index]||t.append;e.nodes.forEach(function(e){t.insertBefore(e,i)})},redo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})}},duplicateNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(i){e.parent.insertAfter(i,t),t=i})}},moveNodes:{undo:function(e){e.nodes.forEach(function(t){e.oldBeforeNode.parent.moveBefore(t,e.oldBeforeNode)})},redo:function(e){e.nodes.forEach(function(t){e.newBeforeNode.parent.moveBefore(t,e.newBeforeNode)})}},sort:{undo:function(e){var t=e.node;t.hideChilds(),t.sort=e.oldSort,t.childs=e.oldChilds,t.showChilds()},redo:function(e){var t=e.node;t.hideChilds(),t.sort=e.newSort,t.childs=e.newChilds,t.showChilds()}}}}i(3);n.prototype.onChange=function(){},n.prototype.add=function(e,t){this.index++,this.history[this.index]={action:e,params:t,timestamp:new Date},this.index=0},n.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;0>i&&(i=t),this._setActiveResult(i,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node,n=this.activeResult.elem;"field"==n?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var r=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?r.searchFieldActive=!0:r.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],r.updateDom(),r.scrollTo(function(){t&&r.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},e.exports=n},function(e,t,i){function n(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(o),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.className=r.className,s.button=l,r.title&&(l.title=r.title),r.click&&(l.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),a.appendChild(l),r.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(r.text));var h;if(r.click){l.className+=" jsoneditor-default";var d=document.createElement("button");s.buttonExpand=d,d.className="jsoneditor-expand",d.innerHTML='
',a.appendChild(d),r.submenuTitle&&(d.title=r.submenuTitle),h=d}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),h=l}h.onclick=function(e){e.preventDefault(),n._onExpandItem(s),h.focus()};var f=[];s.subItems=f;var p=document.createElement("ul");s.ul=p,p.className="jsoneditor-menu",p.style.height="0",a.appendChild(p),i(p,f,r.submenu)}else l.innerHTML='
'+r.text;t.push(s)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var s=document.createElement("div");s.className="jsoneditor-contextmenu",r.menu=s,o.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),r.list=a,r.items=[];var l=document.createElement("button");r.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),i(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var r=i(3);n.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},n.visibleMenu=void 0,n.prototype.show=function(e,t){this.hide();var i=!0;if(t){var o=e.getBoundingClientRect(),s=t.getBoundingClientRect();o.bottom+this.maxHeights.top&&(i=!1)}if(i){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,h=this.dom.list;this.eventListeners.mousedown=r.addEventListener(window,"mousedown",function(e){var t=e.target;t==h||c._isChildOf(t,h)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(window,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",r.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){t.expandedItem==e&&(o.style.height=24*o.childNodes.length+"px",o.style.padding="5px 10px")},0),r.addClassName(o.parentNode,"jsoneditor-selected"),this.expandedItem=e}},n.prototype._onKeyDown=function(e){var t,i,n,o,s=e.target,a=e.which,l=!1;27==a?(this.selection&&r.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),i=t.indexOf(s),0==i&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),i=t.indexOf(s),i==t.length-1&&(t[0].focus(),l=!0)):37==a?("jsoneditor-expand"==s.className&&(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&n.focus()),l=!0):38==a?(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&"jsoneditor-expand"==n.className&&(n=t[i-2]),n||(n=t[t.length-1]),n&&n.focus(),l=!0):39==a?(t=this._getVisibleButtons(),i=t.indexOf(s),o=t[i+1],o&&"jsoneditor-expand"==o.className&&o.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),i=t.indexOf(s),o=t[i+1],o&&"jsoneditor-expand"==o.className&&(o=t[i+2]),o||(o=t[0]),o&&(o.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},n.prototype._isChildOf=function(e,t){for(var i=e.parentNode;i;){if(i==t)return!0;i=i.parentNode}return!1},e.exports=n},function(e,t,i){function n(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null)),this._debouncedOnChangeValue=s.debounce(this._onChangeValue.bind(this),n.prototype.DEBOUNCE_INTERVAL),this._debouncedOnChangeField=s.debounce(this._onChangeField.bind(this),n.prototype.DEBOUNCE_INTERVAL)}var r=i(7),o=i(13),s=i(3);n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,("tree"===this.editor.options.mode||"form"===this.editor.options.mode)&&"function"==typeof this.editor.options.onEditable)){var e=this.editor.options.onEditable({field:this.field,value:this.value,path:this.getFieldsPath()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},n.prototype.getFieldsPath=function(){for(var e=this,t=[];e;){var i=void 0!=e.field?e.field:e.index;void 0!==i&&t.unshift(i),e=e.parent}return t},n.prototype.findNode=function(e){for(var t=s.parsePath(e),i=this;i&&t.length>0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var r=document.createElement("button");for(r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;ts;s++)i=e[s],void 0===i||i instanceof Function||(r=new n(this.editor,{value:i}),this.appendChild(r));this.value=""}else if("object"==this.type){this.childs=[];for(var l in e)e.hasOwnProperty(l)&&(i=e[l],void 0===i||i instanceof Function||(r=new n(this.editor,{field:l,value:i}),this.appendChild(r)));this.value=""}else this.childs=void 0,this.value=e;this.previousValue=this.value},n.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},n.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},n.prototype.getPath=function(){var e=this.parent?this.parent.getPath():[];return e.push(this),e},n.prototype.clone=function(){var e=new n(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.value=this.value,e.valueInnerText=this.valueInnerText,e.expanded=this.expanded,this.childs){var t=[];this.childs.forEach(function(i){var n=i.clone();n.setParent(e),t.push(n)}),e.childs=t}else e.childs=void 0;return e},n.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="jsoneditor-expanded"),this.showChilds(),e!==!1&&this.childs.forEach(function(t){t.expand(e)}))},n.prototype.collapse=function(e){this.childs&&(this.hideChilds(),e!==!1&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="jsoneditor-collapsed"),this.expanded=!1)},n.prototype.showChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.dom.tr,i=t?t.parentNode:void 0;if(i){var n=this.getAppend(),r=t.nextSibling;r?i.insertBefore(n,r):i.appendChild(n),this.childs.forEach(function(e){i.insertBefore(e.getDom(),n),e.showChilds()})}}},n.prototype.hide=function(){var e=this.dom.tr,t=e?e.parentNode:void 0;t&&t.removeChild(e),this.hideChilds()},n.prototype.hideChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.getAppend();t.parentNode&&t.parentNode.removeChild(t),this.childs.forEach(function(e){e.hide()})}},n.prototype.appendChild=function(e){if(this._hasChilds()){if(e.setParent(this),e.fieldEditable="object"==this.type,"array"==this.type&&(e.index=this.childs.length),this.childs.push(e),this.expanded){var t=e.getDom(),i=this.getAppend(),n=i?i.parentNode:void 0;i&&n&&n.insertBefore(t,i),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.moveBefore=function(e,t){if(this._hasChilds()){var i=this.dom.tr?this.dom.tr.parentNode:void 0;if(i){var n=document.createElement("tr");n.style.height=i.clientHeight+"px",i.appendChild(n)}e.parent&&e.parent.removeChild(e),t instanceof a?this.appendChild(e):this.insertBefore(e,t),i&&i.removeChild(n)}},n.prototype.moveTo=function(e,t){if(e.parent==this){var i=this.childs.indexOf(e);t>i&&t++}var n=this.childs[t]||this.append;this.moveBefore(e,n)},n.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(t==this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var i=this.childs.indexOf(t);if(-1==i)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(i,0,e)}if(this.expanded){var n=e.getDom(),r=t.getDom(),o=r?r.parentNode:void 0;r&&o&&o.insertBefore(n,r),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.insertAfter=function(e,t){if(this._hasChilds()){var i=this.childs.indexOf(t),n=this.childs[i+1];n?this.insertBefore(e,n):this.appendChild(e)}},n.prototype.search=function(e){var t,i=[],n=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!=this.field){var r=String(this.field).toLowerCase();t=r.indexOf(n),-1!=t&&(this.searchField=!0,i.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds()){if(this.childs){var o=[];this.childs.forEach(function(t){o=o.concat(t.search(e))}),i=i.concat(o)}if(void 0!=n){var s=!1;0==o.length?this.collapse(s):this.expand(s)}}else{if(void 0!=this.value){var a=String(this.value).toLowerCase();t=a.indexOf(n),-1!=t&&(this.searchValue=!0,i.push({node:this,elem:"value"}))}this._updateDomValue()}return i},n.prototype.scrollTo=function(e){if(!this.dom.tr||!this.dom.tr.parentNode)for(var t=this.parent,i=!1;t;)t.expand(i),t=t.parent;this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},n.focusElement=void 0,n.prototype.focus=function(e){if(n.focusElement=e,this.dom.tr&&this.dom.tr.parentNode){var t=this.dom;switch(e){case"drag":t.drag?t.drag.focus():t.menu.focus();break;case"menu":t.menu.focus();break;case"expand":this._hasChilds()?t.expand.focus():t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.menu.focus();break;case"field":t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):this._hasChilds()?t.expand.focus():t.menu.focus();break;case"value":default:t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):this._hasChilds()?t.expand.focus():t.menu.focus()}}},n.select=function(e){setTimeout(function(){s.selectContentEditable(e)},0)},n.prototype.blur=function(){this._getDomValue(!1),this._getDomField(!1)},n.prototype.containsNode=function(e){if(this==e)return!0;var t=this.childs;if(t)for(var i=0,n=t.length;n>i;i++)if(t[i].containsNode(e))return!0;return!1},n.prototype._move=function(e,t){if(e!=t){if(e.containsNode(this))throw new Error("Cannot move a field into a child of itself");e.parent&&e.parent.removeChild(e);var i=e.clone();e.clearDom(),t?this.insertBefore(i,t):this.appendChild(i)}},n.prototype.removeChild=function(e){if(this.childs){var t=this.childs.indexOf(e);if(-1!=t){e.hide(),delete e.searchField,delete e.searchValue;var i=this.childs.splice(t,1)[0];return i.parent=null,this.updateDom({updateIndexes:!0}),i}}return void 0},n.prototype._remove=function(e){this.removeChild(e)},n.prototype.changeType=function(e){var t=this.type;if(t!=e){if("string"!=e&&"auto"!=e||"string"!=t&&"auto"!=t){var i,n=this.dom.tr?this.dom.tr.parentNode:void 0;i=this.expanded?this.getAppend():this.getDom();var r=i&&i.parentNode?i.nextSibling:void 0;this.hide(),this.clearDom(),this.type=e,"object"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),delete e.index,e.fieldEditable=!0,void 0==e.field&&(e.field="")}),("string"==t||"auto"==t)&&(this.expanded=!0)):"array"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),e.fieldEditable=!1,e.index=t}),("string"==t||"auto"==t)&&(this.expanded=!0)):this.expanded=!1,n&&(r?n.insertBefore(this.getDom(),r):n.appendChild(this.getDom())),this.showChilds()}else this.type=e;("auto"==e||"string"==e)&&("string"==e?this.value=String(this.value):this.value=this._stringCast(String(this.value)),this.focus()),this.updateDom({updateIndexes:!0})}},n.prototype._getDomValue=function(e){if(this.dom.value&&"array"!=this.type&&"object"!=this.type&&(this.valueInnerText=s.getInnerText(this.dom.value)),void 0!=this.valueInnerText)try{var t;if("string"==this.type)t=this._unescapeHTML(this.valueInnerText);else{var i=this._unescapeHTML(this.valueInnerText);t=this._stringCast(i)}t!==this.value&&(this.value=t,this._debouncedOnChangeValue())}catch(n){if(this.value=void 0,e!==!0)throw n}},n.prototype._onChangeValue=function(){var e=this.editor.getSelection();if(e.range){var t=s.textDiff(String(this.value),String(this.previousValue));e.range.startOffset=t.start,e.range.endOffset=t.end}var i=this.editor.getSelection();if(i.range){var n=s.textDiff(String(this.previousValue),String(this.value));i.range.startOffset=n.start,i.range.endOffset=n.end}this.editor._onAction("editValue",{node:this,oldValue:this.previousValue,newValue:this.value,oldSelection:e,newSelection:i}),this.previousValue=this.value},n.prototype._onChangeField=function(){var e=this.editor.getSelection();if(e.range){var t=s.textDiff(this.field,this.previousField);e.range.startOffset=t.start,e.range.endOffset=t.end}var i=this.editor.getSelection();if(i.range){var n=s.textDiff(this.previousField,this.field);i.range.startOffset=n.start,i.range.endOffset=n.end}this.editor._onAction("editField",{node:this,oldValue:this.previousField,newValue:this.field,oldSelection:e,newSelection:i}),this.previousField=this.field},n.prototype._updateDomValue=function(){var e=this.dom.value;if(e){var t=["jsoneditor-value"],i=this.value,n="auto"==this.type?s.type(i):this.type,r="string"==n&&s.isUrl(i);t.push("jsoneditor-"+n),r&&t.push("jsoneditor-url");var o=""==String(this.value)&&"array"!=this.type&&"object"!=this.type;if(o&&t.push("jsoneditor-empty"),this.searchValueActive&&t.push("jsoneditor-highlight-active"),this.searchValue&&t.push("jsoneditor-highlight"),e.className=t.join(" "),"array"==n||"object"==n){var a=this.childs?this.childs.length:0;e.title=this.type+" containing "+a+" items"}else r&&this.editable.value?e.title="Ctrl+Click or Ctrl+Enter to open url in new window":e.title="";"boolean"===n?(this.dom.checkbox||(this.dom.checkbox=document.createElement("input"),this.dom.checkbox.type="checkbox",this.dom.tdCheckbox=document.createElement("td"),this.dom.tdCheckbox.className="jsoneditor-tree",this.dom.tdCheckbox.appendChild(this.dom.checkbox),this.dom.tdValue.parentNode.insertBefore(this.dom.tdCheckbox,this.dom.tdValue)),this.dom.checkbox.checked=this.value):this.dom.tdCheckbox&&(this.dom.tdCheckbox.parentNode.removeChild(this.dom.tdCheckbox),delete this.dom.tdCheckbox,delete this.dom.checkbox),s.stripFormatting(e)}},n.prototype._updateDomField=function(){var e=this.dom.field;if(e){var t=""==String(this.field)&&"array"!=this.parent.type;t?s.addClassName(e,"jsoneditor-empty"):s.removeClassName(e,"jsoneditor-empty"),this.searchFieldActive?s.addClassName(e,"jsoneditor-highlight-active"):s.removeClassName(e,"jsoneditor-highlight-active"),this.searchField?s.addClassName(e,"jsoneditor-highlight"):s.removeClassName(e,"jsoneditor-highlight"),s.stripFormatting(e)}},n.prototype._getDomField=function(e){if(this.dom.field&&this.fieldEditable&&(this.fieldInnerText=s.getInnerText(this.dom.field)),void 0!=this.fieldInnerText)try{var t=this._unescapeHTML(this.fieldInnerText);t!==this.field&&(this.field=t,this._debouncedOnChangeField())}catch(i){if(this.field=void 0,e!==!0)throw i}},n.prototype.validate=function(){var e=[];if("object"===this.type){for(var t={},i=[],n=0;n0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");e.drag=i,i.className="jsoneditor-dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");e.menu=r,r.className="jsoneditor-contextmenu",r.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),a=r._nextSibling(),l=i.editor,c=s.getAbsoluteTop(o.dom.tr)-s.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=s.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=s.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:a,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,l,c,h,d,u,f,p,g,m,v,w,A=e[0].editor,y=t.pageY-A.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=s.getAbsoluteTop(i),m=i.offsetHeight,f>y){r=i;do r=r.previousSibling,d=n.getNodeFromTarget(r),p=r?s.getAbsoluteTop(r):0;while(r&&p>y);d&&!d.parent&&(d=void 0),d||(h=i.parentNode.firstChild,r=h?h.nextSibling:void 0,d=n.getNodeFromTarget(r),d==b&&(d=void 0)),d&&(r=d.dom.tr,p=r?s.getAbsoluteTop(r):0,y>p+m&&(d=void 0)),d&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}else{var F=e[e.length-1];if(c=F.expanded&&F.append?F.append.getDom():F.dom.tr,l=c?c.nextSibling:void 0){g=s.getAbsoluteTop(l),o=l;do u=n.getNodeFromTarget(o),o&&(v=o.nextSibling?s.getAbsoluteTop(o.nextSibling):0,w=o?v-g:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling;while(o&&y>f+w);if(u&&u.parent){var x=C-A.drag.mouseX,S=Math.round(x/24/2),$=A.drag.level+S,D=u.getLevel();for(r=u.dom.tr.previousSibling;$>D&&r;){d=n.getNodeFromTarget(r);var k=e.some(function(e){return e===d||d._isChildOf(e)});if(k);else{if(!(d instanceof a))break;var B=d.parent.childs;if(B.length==e.length&&B[e.length-1]==F)break;u=n.getNodeFromTarget(r),D=u.getLevel()}r=r.previousSibling}c.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}}}E&&(A.drag.mouseX=C,A.drag.level=b.getLevel()),A.startAutoScroll(y),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,a=o.childs.indexOf(i),l=o.childs[a+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(s.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(s.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype._isChildOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},n.prototype._createDomField=function(){return document.createElement("div")},n.prototype.setHighlight=function(e){this.dom.tr&&(e?s.addClassName(this.dom.tr,"jsoneditor-highlight"):s.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},n.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?s.addClassName(this.dom.tr,"jsoneditor-selected"):s.removeClassName(this.dom.tr,"jsoneditor-selected"),t?s.addClassName(this.dom.tr,"jsoneditor-first"):s.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},n.prototype.updateValue=function(e){this.value=e,this.updateDom()},n.prototype.updateField=function(e){this.field=e,this.updateDom()},n.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var i=this.dom.field;if(i){this.fieldEditable?(i.contentEditable=this.editable.field,i.spellcheck=!1,i.className="jsoneditor-field"):i.className="jsoneditor-readonly";var n;n=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",i.innerHTML=this._escapeHTML(n)}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",s.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",s.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),s.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&e.updateIndexes===!0&&this._updateDomIndexes(),e&&e.recurse===!0&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateDomIndexes=function(){var e=this.dom.value,t=this.childs;e&&t&&("array"==this.type?t.forEach(function(e,t){e.index=t;var i=e.dom.field;i&&(i.innerHTML=t)}):"object"==this.type&&t.forEach(function(e){void 0!=e.index&&(delete e.index,void 0==e.field&&(e.field=""))}))},n.prototype._createDomValue=function(){var e;return"array"==this.type?(e=document.createElement("div"),e.innerHTML="[...]"):"object"==this.type?(e=document.createElement("div"),e.innerHTML="{...}"):!this.editable.value&&s.isUrl(this.value)?(e=document.createElement("a"),e.href=this.value,e.target="_blank",e.innerHTML=this._escapeHTML(this.value)):(e=document.createElement("div"),e.contentEditable=this.editable.value,e.spellcheck=!1,e.innerHTML=this._escapeHTML(this.value)),e},n.prototype._createDomExpandButton=function(){var e=document.createElement("button");return this._hasChilds()?(e.className=this.expanded?"jsoneditor-expanded":"jsoneditor-collapsed",e.title="Click to expand/collapse this field (Ctrl+E). \nCtrl+Click to expand/collapse including all childs."):(e.className="jsoneditor-invisible",e.title=""),e},n.prototype._createDomTree=function(){var e=this.dom,t=document.createElement("table"),i=document.createElement("tbody");t.style.borderCollapse="collapse",t.className="jsoneditor-values",t.appendChild(i);var n=document.createElement("tr");i.appendChild(n);var r=document.createElement("td");r.className="jsoneditor-tree",n.appendChild(r),e.expand=this._createDomExpandButton(),r.appendChild(e.expand),e.tdExpand=r;var o=document.createElement("td");o.className="jsoneditor-tree",n.appendChild(o),e.field=this._createDomField(),o.appendChild(e.field),e.tdField=o;var s=document.createElement("td");s.className="jsoneditor-tree",n.appendChild(s),"object"!=this.type&&"array"!=this.type&&(s.appendChild(document.createTextNode(":")),s.className="jsoneditor-separator"),e.tdSeparator=s;var a=document.createElement("td");return a.className="jsoneditor-tree",n.appendChild(a),e.value=this._createDomValue(),a.appendChild(e.value),e.tdValue=a,t},n.prototype.onEvent=function(e){var t,i=e.type,n=e.target||e.srcElement,r=this.dom,o=this,a=this._hasChilds();if((n==r.drag||n==r.menu)&&("mouseover"==i?this.editor.highlighter.highlight(this):"mouseout"==i&&this.editor.highlighter.unhighlight()),"click"==i&&n==r.menu){var l=o.editor.highlighter;l.highlight(o),l.lock(),s.addClassName(r.menu,"jsoneditor-selected"),this.showContextMenu(r.menu,function(){s.removeClassName(r.menu,"jsoneditor-selected"),l.unlock(),l.unhighlight()})}if("click"==i&&(n==r.expand||("view"===o.editor.options.mode||"form"===o.editor.options.mode)&&"DIV"===n.nodeName)&&a){var c=e.ctrlKey;this._onExpand(c)}"change"==i&&n==r.checkbox&&(this.dom.value.innerHTML=!this.value,this._getDomValue());var h=r.value;if(n==h)switch(i){case"focus":t=this;break;case"blur":case"change":this._getDomValue(!0),this._updateDomValue(),this.value&&(h.innerHTML=this._escapeHTML(this.value));break;case"input":this._getDomValue(!0),this._updateDomValue();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"click":(e.ctrlKey||!this.editable.value)&&s.isUrl(this.value)&&window.open(this.value,"_blank");break;case"keyup":this._getDomValue(!0),this._updateDomValue(); -break;case"cut":case"paste":setTimeout(function(){o._getDomValue(!0),o._updateDomValue()},1)}var d=r.field;if(n==d)switch(i){case"focus":t=this;break;case"blur":case"change":this._getDomField(!0),this._updateDomField(),this.field&&(d.innerHTML=this._escapeHTML(this.field));break;case"input":this._getDomField(!0),this._updateDomField();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"keyup":this._getDomField(!0),this._updateDomField();break;case"cut":case"paste":setTimeout(function(){o._getDomField(!0),o._updateDomField()},1)}var u=r.tree;if(n==u.parentNode&&"click"==i&&!e.hasMoved){var f=void 0!=e.offsetX?e.offsetX<24*(this.getLevel()+1):e.pageX0?this.editor.multiselection.nodes:[this],y=A[0],C=A[A.length-1];if(13==u){if(f==this.dom.value)(!this.editable.value||e.ctrlKey)&&s.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var E=this._hasChilds();if(E){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==u)p&&w&&(n.onDuplicate(A),v=!0);else if(69==u)p&&(this._onExpand(g),f.focus(),v=!0);else if(77==u&&w)p&&(this.showContextMenu(f),v=!0);else if(46==u&&w)p&&(n.onRemove(A),v=!0);else if(45==u&&w)p&&!g?(this._onInsertBefore(),v=!0):p&&g&&(this._onInsertAfter(),v=!0);else if(35==u){if(m){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==u){if(m){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==u){if(m&&!g){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(m&&g&&w){if(C.expanded){var $=C.getAppend();r=$?$.nextSibling:void 0}else{var D=C.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof a&&1!=C.parent.childs.length&&_&&_.parent&&(l=this.editor.getSelection(),c=C._nextSibling(),A.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:A,oldBeforeNode:c,newBeforeNode:_,oldSelection:l,newSelection:this.editor.getSelection()})))}}else if(38==u)m&&!g?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!m&&p&&g&&w?(t=this._previousNode(),t&&(d=this.editor.multiselection,d.start=d.start||this,d.end=t,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),t.focus("field")),v=!0):m&&g&&w&&(t=y._previousNode(),t&&t.parent&&(l=this.editor.getSelection(),c=C._nextSibling(),A.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:A,oldBeforeNode:c,newBeforeNode:t,oldSelection:l,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(m&&!g){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(m&&g&&w){D=y.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B),t&&t.parent&&t instanceof a&&!t.isVisible()&&(l=this.editor.getSelection(),c=C._nextSibling(),A.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:A,oldBeforeNode:c,newBeforeNode:t,oldSelection:l,newSelection:this.editor.getSelection()})))}}else if(40==u)if(m&&!g)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!m&&p&&g&&w)i=this._nextNode(),i&&(d=this.editor.multiselection,d.start=d.start||this,d.end=i,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),i.focus("field")),v=!0;else if(m&&g&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(l=this.editor.getSelection(),c=C._nextSibling(),A.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:A,oldBeforeNode:c,newBeforeNode:_,oldSelection:l,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=r.getSelection();n.blurNodes(e);var a=r.getSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype._onSort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,r=this.sort;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return e[i]>n[i]?t:e[i]/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return this.editor.options.escapeUnicode===!0&&(n=s.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"',i=s.parse(t);return i.replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;i2&&b.push("'"+this.terminals_[y]+"'");var x="";x=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+this.terminals_[g]+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[g]||g,line:this.lexer.yylineno,loc:p,expected:b})}if(3==d){if(g==f)throw new Error(x||"Parsing halted.");h=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,p=this.lexer.yylloc,g=i()}for(;;){if(u.toString()in a[v])break;if(0==v)throw new Error(x||"Parsing halted.");t(1),v=r[r.length-1]}m=g,g=u,v=r[r.length-1],w=a[v]&&a[v][u],d=3}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+g);switch(w[0]){case 1:r.push(g),o.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(w[1]),g=null,m?(g=m,m=null):(h=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,p=this.lexer.yylloc,d>0&&d--);break;case 2:if(C=this.productions_[w[1]][1],F.$=o[o.length-C],F._$={first_line:s[s.length-(C||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(C||1)].first_column,last_column:s[s.length-1].last_column},A=this.performAction.call(F,l,h,c,this.yy,w[1],o,s),"undefined"!=typeof A)return A;C&&(r=r.slice(0,-1*C*2),o=o.slice(0,-1*C),s=s.slice(0,-1*C)),r.push(this.productions_[w[1]][0]),o.push(F.$),s.push(F._$),E=a[r[r.length-2]][r[r.length-1]],r.push(E);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?e:void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return"undefined"!=typeof e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t,i){function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,this.editable.field){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var r=document.createElement("td"),o=document.createElement("div");return o.innerHTML="(empty)",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,r=e.TYPE_TITLES,s=[{text:"Append",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}]}],a=new o(s,{close:i});a.show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom,o=n.menu;if(i==o&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var s=this.editor.highlighter;s.highlight(this.parent),s.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),s.unlock(),s.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(3),o=i(7);e.exports=n},function(e,t,i){"use strict";function n(e,t,i){var o=this._refs[i];if("string"==typeof o){if(!this._refs[o])return n.call(this,e,t,o);o=this._refs[o]}if(o=o||this._schemas[i],o instanceof w)return a(o.schema,this.opts.inlineRefs)?o.schema:o.validate||this._compile(o);var s,l,c,h=r.call(this,t,i);return h&&(s=h.schema,t=h.root,c=h.baseId),s instanceof w?l=s.validate||e.call(this,s.schema,t,void 0,c):s&&(l=a(s,this.opts.inlineRefs)?s:e.call(this,s,t,void 0,c)),l}function r(e,t){var i=g.parse(t,!1,!0),n=d(i),r=h(e.schema.id);if(n!==r){var a=u(n),l=this._refs[a];if("string"==typeof l)return o.call(this,e,l,i);if(l instanceof w)l.validate||this._compile(l),e=l;else if(l=this._schemas[a],l instanceof w){if(l.validate||this._compile(l),a==u(t))return{schema:l,root:e,baseId:r};e=l}if(!e.schema)return;r=h(e.schema.id)}return s.call(this,i,r,e.schema,e)}function o(e,t,i){var n=r.call(this,e,t);if(n){var o=n.schema,a=n.baseId;return e=n.root,o.id&&(a=f(a,o.id)),s.call(this,i,a,o,e)}}function s(e,t,i,n){if(e.hash=e.hash||"","#/"==e.hash.slice(0,2)){for(var o=e.hash.split("/"),s=1;s=1&&12>=i&&n>=1&&n<=g[i]}function o(e,t){var i=e.match(m);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return 23>=n&&59>=r&&59>=o&&(!t||s)}function s(e){var t=e.split(E);return r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&v.test(e)}function l(e){return b.test(e)&&w.test(e)}function c(e){try{return new RegExp(e),!0}catch(t){return!1}}function h(e,t){return e&&t?e>t?1:t>e?-1:e===t?0:void 0:void 0}function d(e,t){return e&&t&&(e=e.match(m),t=t.match(m),e&&t)?(e=e[1]+e[2]+e[3]+(e[4]||""),t=t[1]+t[2]+t[3]+(t[4]||""),e>t?1:t>e?-1:e===t?0:void 0):void 0}function u(e,t){if(e&&t){e=e.split(E),t=t.split(E);var i=h(e[0],t[0]);if(void 0!==i)return i||d(e[1],t[1])}}var f=i(30),p=/^\d\d\d\d-(\d\d)-(\d\d)$/,g=[0,31,29,31,30,31,30,31,31,30,31,30,31],m=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,v=/^[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i,w=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,A=/^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,y=/^(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)+)*(?:\/)?$/i,C=/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?)$/;e.exports=n,n.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:v,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:A,"json-pointer":y,"relative-json-pointer":C},n.full={date:r,time:o,"date-time":s,uri:l,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:A,"json-pointer":y,"relative-json-pointer":C},n.compare={date:h,time:d,"date-time":u};var E=/t|\s/i,b=/\/|\:/},function(e,t,i){"use strict";var n=i(31),r=i(30);e.exports=function(){var e=[{type:"number",rules:["maximum","minimum","multipleOf"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","properties"]},{rules:["$ref","enum","not","anyOf","oneOf","allOf"]}];return e.all=["type","additionalProperties","patternProperties"],e.keywords=["additionalItems","$schema","id","title","description","default"],e.types=["number","integer","string","array","object","boolean","null"],e.forEach(function(t){t.rules=t.rules.map(function(t){return e.all.push(t),{keyword:t,code:n[t]}})}),e.keywords=r.toHash(e.all.concat(e.keywords)),e.all=r.toHash(e.all),e.types=r.toHash(e.types),e}},function(e,t,i){"use strict";function n(e){if(e.opts.meta!==!1){var t=i(32);e.addMetaSchema(t,o)}e.addKeyword("constant",{inline:i(33),statements:!0,errors:"full"}),e.addKeyword("contains",{type:"array",macro:r});var n=i(34);e.addKeyword("formatMaximum",{type:"string",inline:n,statements:!0,errors:"full"}),e.addKeyword("formatMinimum",{type:"string",inline:n,statements:!0,errors:"full"}),e.addKeyword("exclusiveFormatMaximum"),e.addKeyword("exclusiveFormatMinimum"),e.addKeyword("patternGroups"),e.addKeyword("switch",{inline:i(35),statements:!0,errors:"full"})}function r(e){return{not:{items:{not:e}}}}var o="https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json";e.exports={enable:n,META_SCHEMA_ID:o}},function(e,t,i){"use strict";e.exports=function(e,t){function i(e,t,n){function o(n){function o(n,o){if(n)t(n);else{if(!r._refs[s]&&!r._schemas[s])try{r.addSchema(o,s)}catch(a){return void t(a)}i(e,t)}}var s=n.missingSchema;if(r._refs[s]||r._schemas[s])return t(new Error("Schema "+s+" is loaded but"+n.missingRef+"cannot be resolved"));var a=r._loadingSchemas[s];a?"function"==typeof a?r._loadingSchemas[s]=[a,o]:a[a.length]=o:(r._loadingSchemas[s]=o,r.opts.loadSchema(s,function(e,t){var i=r._loadingSchemas[s];if(delete r._loadingSchemas[s],"function"==typeof i)i(e,t);else for(var n=0;na;a++)r(s[a]);for(a=0;l>a;a++)i(e,s[a],t)}else s&&r(s),i(e,s,t)}this.RULES.keywords[e]=!0,this.RULES.all[e]=!0}},function(e,t,i){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter { background: #ebebeb; color: #333 } .ace-jsoneditor.ace_editor { font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif; line-height: 1.3; } .ace-jsoneditor .ace_print-margin { width: 1px; background: #e8e8e8 } .ace-jsoneditor .ace_scroller { background-color: #FFFFFF } .ace-jsoneditor .ace_text-layer { color: gray } .ace-jsoneditor .ace_variable { color: #1a1a1a } .ace-jsoneditor .ace_cursor { border-left: 2px solid #000000 } .ace-jsoneditor .ace_overwrite-cursors .ace_cursor { border-left: 0px; border-bottom: 1px solid #000000 } .ace-jsoneditor .ace_marker-layer .ace_selection { background: lightgray } .ace-jsoneditor.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px #FFFFFF; border-radius: 2px } .ace-jsoneditor .ace_marker-layer .ace_step { background: rgb(255, 255, 0) } .ace-jsoneditor .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #BFBFBF } .ace-jsoneditor .ace_marker-layer .ace_active-line { background: #FFFBD1 } .ace-jsoneditor .ace_gutter-active-line { background-color : #dcdcdc } .ace-jsoneditor .ace_marker-layer .ace_selected-word { border: 1px solid lightgray } .ace-jsoneditor .ace_invisible { color: #BFBFBF } .ace-jsoneditor .ace_keyword, .ace-jsoneditor .ace_meta, .ace-jsoneditor .ace_support.ace_constant.ace_property-value { color: #AF956F } .ace-jsoneditor .ace_keyword.ace_operator { color: #484848 } .ace-jsoneditor .ace_keyword.ace_other.ace_unit { color: #96DC5F } .ace-jsoneditor .ace_constant.ace_language { color: darkorange } .ace-jsoneditor .ace_constant.ace_numeric { color: red } .ace-jsoneditor .ace_constant.ace_character.ace_entity { color: #BF78CC } .ace-jsoneditor .ace_invalid { color: #FFFFFF; background-color: #FF002A; } .ace-jsoneditor .ace_fold { background-color: #AF956F; border-color: #000000 } .ace-jsoneditor .ace_storage, .ace-jsoneditor .ace_support.ace_class, .ace-jsoneditor .ace_support.ace_function, .ace-jsoneditor .ace_support.ace_other, .ace-jsoneditor .ace_support.ace_type { color: #C52727 } .ace-jsoneditor .ace_string { color: green } .ace-jsoneditor .ace_comment { color: #BCC8BA } .ace-jsoneditor .ace_entity.ace_name.ace_tag, .ace-jsoneditor .ace_entity.ace_other.ace_attribute-name { color: #606060 } .ace-jsoneditor .ace_markup.ace_underline { text-decoration: underline } .ace-jsoneditor .ace_indent-guide { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y }';var n=e("../lib/dom");n.importCssString(t.cssText,t.cssClass)})},function(module,exports,__webpack_require__){"use strict";function compile(schema,root,localRefs,baseId){function localCompile(_schema,_root,localRefs,baseId){var isRoot=!_root||_root&&_root.schema==_schema;if(_root.schema!=root.schema)return compile.call(self,_schema,_root,localRefs,baseId);var validateCode=validateGenerator({isTop:!0,schema:_schema,isRoot:isRoot,baseId:baseId,root:_root,schemaPath:"",errSchemaPath:"#",errorPath:'""',RULES:RULES,validate:validateGenerator,util:util,resolve:resolve,resolveRef:resolveRef,usePattern:usePattern,useDefault:useDefault,useCustomRule:useCustomRule,opts:self.opts,formats:formats,self:self});if(validateCode=vars(refVal,refValCode)+vars(patterns,patternCode)+vars(defaults,defaultCode)+vars(customRules,customRuleCode)+validateCode,self.opts.beautify){var opts=self.opts.beautify===!0?{indent_size:2}:self.opts.beautify;beautify?validateCode=beautify(validateCode,opts):console.error('"npm install js-beautify" to use beautify option')}var validate;try{eval(validateCode),refVal[0]=validate}catch(e){throw console.log("Error compiling schema, function code:",validateCode),e}return validate.schema=_schema,validate.errors=null,validate.refs=refs,validate.refVal=refVal,validate.root=isRoot?validate:_root,validate}function resolveRef(e,t,i){t=resolve.url(e,t);var n,r,o=refs[t];if(void 0!==o)return n=refVal[o],r="refVal["+o+"]",resolvedRef(n,r);if(!i){var s=root.refs[t];if(void 0!==s)return n=root.refVal[s],r=addLocalRef(t,n),resolvedRef(n,r)}r=addLocalRef(t);var a=resolve.call(self,localCompile,root,t);if(!a){var l=localRefs&&localRefs[t];l&&(a=resolve.inlineRef(l,self.opts.inlineRefs)?l:compile.call(self,l,root,localRefs,e))}return a?(replaceLocalRef(t,a),resolvedRef(a,r)):void 0}function addLocalRef(e,t){var i=refVal.length;return refVal[i]=t,refs[e]=i,"refVal"+i}function replaceLocalRef(e,t){var i=refs[e];refVal[i]=t}function resolvedRef(e,t){return"object"==typeof e?{schema:e,code:t}:t}function usePattern(e){var t=patternsHash[e];return void 0===t&&(t=patternsHash[e]=patterns.length,patterns[t]=e),"pattern"+t}function useDefault(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return util.toQuotedString(e);case"object":if(null===e)return"null";var t=stableStringify(e),i=defaultsHash[t];return void 0===i&&(i=defaultsHash[t]=defaults.length,defaults[i]=e),"default"+i}}function useCustomRule(e,t,i,n){var r,o=e.definition.compile,s=e.definition.inline,a=e.definition.macro;o?r=o.call(self,t,i):a?(r=a.call(self,t,i),self.opts.validateSchema!==!1&&self.validateSchema(r,!0)):r=s?s.call(self,n,e.keyword,t,i):e.definition.validate;var l=customRules.length;return customRules[l]=r,{code:"customRule"+l,validate:r}}var self=this,refVal=[void 0],refs={},patterns=[],patternsHash={},defaults=[],defaultsHash={},customRules=[],customRulesHash={};root=root||{schema:schema,refVal:refVal,refs:refs};var formats=this._formats,RULES=this.RULES;return localCompile(schema,root,localRefs,baseId)}function patternCode(e,t){return"var pattern"+e+" = new RegExp("+util.toQuotedString(t[e])+");"}function defaultCode(e){return"var default"+e+" = defaults["+e+"];"}function refValCode(e,t){return t[e]?"var refVal"+e+" = refVal["+e+"];":""}function customRuleCode(e){return"var customRule"+e+" = customRules["+e+"];"}function vars(e,t){if(!e.length)return"";for(var i="",n=0;ns;++s){var c=a(e,t[s]);if(void 0==c&&o.original)return;r.push(c)}return i&&i.apply(null,r)||!0}},o=function(e,t){var i=r("",e,t);return void 0==i&&o.original?o.original.apply(this,arguments):i},s=function(e,t){if(-1!==t.indexOf("!")){var i=t.split("!");return s(e,i[0])+"!"+s(e,i[1])}if("."==t.charAt(0)){var n=e.split("/").slice(0,-1).join("/");for(t=n+"/"+t;-1!==t.indexOf(".")&&r!=t;){var r=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},a=function(e,t){t=s(e,t);var i=n.modules[t];if(!i){if(i=n.payloads[t],"function"==typeof i){var o={},a={id:t,uri:"",exports:o,packaged:!0},l=function(e,i){return r(t,e,i)},c=i(l,o,a);o=c||a.exports,n.modules[t]=o,delete n.payloads[t]}i=n.modules[t]=o||i}return i};e(t)}}(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,i){"use strict";function n(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function r(e,t,i){if(Array.prototype.indexOf)return e.indexOf(t,i);for(var n=i||0;n1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-(1/0)&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,d=Function.prototype.call,u=Array.prototype,f=Object.prototype,p=u.slice,g=d.bind(f.toString),m=d.bind(f.hasOwnProperty);if((h=m(f,"__defineGetter__"))&&(s=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];return i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),t+1==i.length,t+1==i.length?!0:void 0}()){var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(p.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:0>e&&(e=Math.max(i+e,0)),i>e+t||(t=i-e);var n=this.slice(e,e+t),r=p.call(arguments,2),o=r.length;if(e===i)o&&this.push.apply(this,r);else{var s=Math.min(t,i-e),a=e+s,l=a+o-s,c=i-a,h=i-s;if(a>l)for(var d=0;c>d;++d)this[l+d]=this[a+d];else if(l>a)for(d=c;d--;)this[l+d]=this[a+d];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;o>d;++d)this[e+d]=r[d]}return n};Array.isArray||(Array.isArray=function(e){return"[object Array]"==g(e)});var w=Object("a"),A="a"!=w[0]||!(0 in w);if(Array.prototype.forEach||(Array.prototype.forEach=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=arguments[1],r=-1,o=i.length>>>0;if("[object Function]"!=g(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var s=0;n>s;s++)s in i&&(r[s]=e.call(o,i[s],s,t));return r}),Array.prototype.filter||(Array.prototype.filter=function(e){var t,i=M(this),n=A&&"[object String]"==g(this)?this.split(""):i,r=n.length>>>0,o=[],s=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var a=0;r>a;a++)a in n&&(t=n[a],e.call(s,t,a,i)&&o.push(t));return o}),Array.prototype.every||(Array.prototype.every=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var o=0;n>o;o++)if(o in i&&!e.call(r,i[o],o,t))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var o=0;n>o;o++)if(o in i&&e.call(r,i[o],o,t))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;n>o;o++)o in i&&(r=e.call(void 0,r,i[o],o,t));return r}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do o in this&&(r=e.call(void 0,r,i[o],o,t));while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=A&&"[object String]"==g(this)?this.split(""):M(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);i>n;n++)if(n in t&&t[n]===e)return n;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(e){var t=A&&"[object String]"==g(this)?this.split(""):M(this),i=t.length>>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(y+e);if(m(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var C;C=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=C();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var E=r({}),b="undefined"==typeof document||r(document.createElement("div"));if(!E||!b)var F=Object.defineProperty}if(!Object.defineProperty||F){var x="Property description must be an object: ",S="Object.defineProperty called on non-object: ",$="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(S+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError(x+i);if(F)try{return F.call(Object,e,t,i)}catch(n){}if(m(i,"value"))if(h&&(l(e,t)||c(e,t))){var r=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=r}else e[t]=i.value;else{if(!h)throw new TypeError($);m(i,"get")&&s(e,t,i.get),m(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)m(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(D){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";m(e,t);)t+="?";e[t]=!0;var i=m(e,t);return delete e[t],i}),!Object.keys){var k=!0,B=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],_=B.length;for(var L in{toString:null})k=!1;Object.keys=function O(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var O=[];for(var t in e)m(e,t)&&O.push(t);if(k)for(var i=0,n=_;n>i;i++){var r=B[i];m(e,r)&&O.push(r)}return O}}Date.now||(Date.now=function(){return(new Date).getTime()});var R=" \n \f\r   ᠎              \u2028\u2029\ufeff";if(!String.prototype.trim||R.trim()){R="["+R+"]";var T=new RegExp("^"+R+R+"*"),P=new RegExp(R+R+"*$");String.prototype.trim=function(){return String(this).replace(T,"").replace(P,"")}}var M=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,i){"use strict";e("./regexp"),e("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function(e,t,i){"use strict";var n="http://www.w3.org/1999/xhtml";return t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||n,e):document.createElement(e)},t.hasCssClass=function(e,t){var i=(e.className||"").split(/\s+/g);return-1!==i.indexOf(t)},t.addCssClass=function(e,i){t.hasCssClass(e,i)||(e.className+=" "+i)},t.removeCssClass=function(e,t){for(var i=e.className.split(/\s+/g);;){var n=i.indexOf(t);if(-1==n)break;i.splice(n,1)}e.className=i.join(" ")},t.toggleCssClass=function(e,t){for(var i=e.className.split(/\s+/g),n=!0;;){var r=i.indexOf(t);if(-1==r)break;n=!1,i.splice(r,1)}return n&&i.push(t),e.className=i.join(" "),n},t.setCssClass=function(e,i,n){n?t.addCssClass(e,i):t.removeCssClass(e,i)},t.hasCssString=function(e,t){var i,n=0;if(t=t||document,t.createStyleSheet&&(i=t.styleSheets)){for(;n=0?(r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]:(r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isTouchPad=r.indexOf("TouchPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(a.OSKey&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;50>h&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&93>=i&&(i=-1),!n&&13===i){var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS?e(t,n,i):!1}function r(){a=Object.create(null),a.count=0,a.lastT=0}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){return e.removeEventListener?e.removeEventListener(t,i,!1):void(e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i))},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){if("ontouchmove"in e){var n,r;t.addListener(e,"touchstart",function(e){var t=e.changedTouches[0];n=t.clientX,r=t.clientY}),t.addListener(e,"touchmove",function(e){var t=1,o=e.changedTouches[0];e.wheelX=-(o.clientX-n)/t,e.wheelY=-(o.clientY-r)/t,n=o.clientX,r=o.clientY,i(e)})}},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){var o,a,l,c=0,h={2:"dblclick",3:"tripleclick",4:"quadclick"};t.addListener(e,"mousedown",function(e){if(0!==t.getButton(e)?c=0:e.detail>1?(c++,c>4&&(c=1)):c=1,s.isIE){var d=Math.abs(e.clientX-o)>5||Math.abs(e.clientY-a)>5;(!l||d)&&(c=1),l&&clearTimeout(l),l=setTimeout(function(){l=null},i[c-1]||600),1==c&&(o=e.clientX,a=e.clientY)}if(e._clicks=c,n[r]("mousedown",e),c>4)c=0;else if(c>1)return n[r](h[c],e)}),s.isOldIE&&t.addListener(e,"dblclick",function(e){c=2,l&&clearTimeout(l),l=setTimeout(function(){l=null},i[c-1]||600),n[r]("mousedown",e),n[r](h[c],e)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){var t=e.keyCode;a[t]=(a[t]||0)+1,91==t||92==t?a.OSKey=!0:a.OSKey&&e.timeStamp-a.lastT>200&&1==a.count&&r(),1==a[t]&&a.count++,a.lastT=e.timeStamp;var o=n(i,e,t);return c=e.defaultPrevented,o}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){var t=e.keyCode;a[t]?a.count=Math.max(a.count-1,0):r(),(91==t||92==t)&&(a.OSKey=!1),a[t]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){var h=1;t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-"+h;t.addListener(i,"message",function r(o){o.data==n&&(t.stopPropagation(o),t.removeListener(i,"message",r),e())}),i.postMessage(n,"*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var n=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(r,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;n>i;i++)e[i]&&"object"==typeof e[i]?t[i]=this.copyObject(e[i]):t[i]=e[i];return t},t.deepCopy=function o(e){if("object"!=typeof e||!e)return e;var t;if(Array.isArray(e)){t=[];for(var i=0;ii?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"),0);(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),s=o.isEmpty();return n.$blockScrolling++,s&&n.selection.moveToPosition(i),n.$blockScrolling--,void n.textInput.onContextMenu(e.domEvent)}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&0>=a)t=this.$clickSelection.end,(r.end.row!=n.row||r.end.column!=n.column)&&(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,(r.start.row!=n.row||r.start.column!=n.column)&&(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>s||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor,r=n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);return r||200>i?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor,r=n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);return r||200>i?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();var o=s.session.getLength();if(t==o){var a=s.renderer.pixelToScreenCoordinates(0,d.y).row,h=d.$pos;if(a>s.session.documentToScreenRow(h.row,h.column))return i()}if(u!=r)if(u=r.text.join("
"),c.setHtml(u),c.show(),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(d);else{var f=d.domEvent.target,p=f.getBoundingClientRect(),g=c.getElement().style;g.left=p.right+"px",g.top=p.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),u&&(c.hide(),u=null,s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){var i=l.getRegion(t);if("foldWidgets"!=i){var n=t.getDocumentPosition().row,r=s.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;return o.hasCssClass(s,"ace_fold-widget")?i():(u&&e.$tooltipFollowsMouse&&n(r),d=r,void(h||(h=setTimeout(function(){h=null,d&&!e.isMousePressed?t():i()},50))))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!D||n||o)m.$blockScrolling+=1,m.moveCursorToPosition(e),m.$blockScrolling-=1,D=i,k={x:y,y:C};else{var s=r(k.x,k.y,y,C);s>h?D=null:i-D>=c&&(m.renderer.scrollCursorIntoView(),D=null)}}function i(e,t){var i=Date.now(),n=m.renderer.layerConfig.lineHeight,r=m.renderer.layerConfig.characterWidth,o=m.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:C-o.top,bottom:o.bottom-C}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};2>=a/r&&(h.column+=s.x.left=c/n&&(h.row+=s.y.top=l&&m.renderer.scrollCursorIntoView(h):$=i:$=null}function n(){var e=F;F=m.renderer.screenToTextCoordinates(y,C),t(F,e),i(F,e)}function d(){b=m.selection.toOrientedRange(),A=m.session.addMarker(b,"ace_selection",m.getSelectionStyle()),m.clearSelection(),m.isFocused()&&m.renderer.$cursorLayer.setBlinking(!1),clearInterval(E),n(),E=setInterval(n,20),_=0,s.addListener(document,"mousemove",f)}function u(){clearInterval(E),m.session.removeMarker(A),A=null,m.$blockScrolling+=1,m.selection.fromOrientedRange(b),m.$blockScrolling-=1,m.isFocused()&&!S&&m.renderer.$cursorLayer.setBlinking(!m.getReadOnly()),b=null,F=null,_=0,$=null,D=null,s.removeListener(document,"mousemove",f)}function f(){null==L&&(L=setTimeout(function(){null!=L&&A&&u()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function g(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,r="uninitialized";try{r=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var m=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var w=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];w.forEach(function(t){e[t]=this[t]},this),m.addEventListener("mousedown",this.onMouseDown.bind(e));var A,y,C,E,b,F,x,S,$,D,k,B=m.container,_=0;this.onDragStart=function(e){if(this.cancelDrag||!B.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}b=m.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=m.getReadOnly()?"copy":"copyMove",a.isOpera&&(m.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&m.container.removeChild(v),i.clearData(),i.setData("Text",m.session.getTextRange()),S=!0,this.setState("drag")},this.onDragEnd=function(e){if(B.draggable=!1,S=!1,this.setState(null),!m.getReadOnly()){var t=e.dataTransfer.dropEffect;x||"move"!=t||m.session.remove(m.getSelectionRange()),m.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){return!m.getReadOnly()&&p(e.dataTransfer)?(y=e.clientX,C=e.clientY,A||d(),_++,e.dataTransfer.dropEffect=x=g(e),s.preventDefault(e)):void 0},this.onDragOver=function(e){return!m.getReadOnly()&&p(e.dataTransfer)?(y=e.clientX,C=e.clientY,A||(d(),_++),null!==L&&(L=null),e.dataTransfer.dropEffect=x=g(e),s.preventDefault(e)):void 0},this.onDragLeave=function(e){return _--,0>=_&&A?(u(),x=null,s.preventDefault(e)):void 0},this.onDrop=function(e){if(F){var t=e.dataTransfer;if(S)switch(x){case"move":b=b.contains(F.row,F.column)?{start:F,end:F}:m.moveText(b,F);break;case"copy":b=m.moveText(b,F,!0)}else{var i=t.getData("Text");b={start:F,end:m.session.insert(F,i)},m.focus(),x=null}return u(),s.preventDefault(e)}},s.addListener(B,"dragstart",this.onDragStart.bind(e)),s.addListener(B,"dragend",this.onDragEnd.bind(e)),s.addListener(B,"dragenter",this.onDragEnter.bind(e)),s.addListener(B,"dragover",this.onDragOver.bind(e)),s.addListener(B,"dragleave",this.onDragLeave.bind(e)),s.addListener(B,"drop",this.onDrop.bind(e));var L=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5; -(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var i=a.isWin?"default":"move";e.renderer.setCursorStyle(i),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton(),r=e.domEvent.detail||1;if(1===r&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in o&&(o.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;var s=t.container;s.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){(i||!r.readyState||"loaded"==r.readyState||"complete"==r.readyState)&&(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;sv;v++){var A=m[v];0===A.name.indexOf("data-ace-")&&(s[o(A.name.replace(/^data-ace-/,""))]=A.value)}var y=g.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);y&&(a=y[1])}}a&&(s.base=s.base||a,s.packaged=!0),s.basePath=s.base,s.workerPath=s.workerPath||s.base,s.modePath=s.modePath||s.base,s.themePath=s.themePath||s.base,delete s.base;for(var C in s)"undefined"!=typeof s[C]&&t.set(C,s[C])}function o(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var s=e("./lib/lang"),a=(e("./lib/oop"),e("./lib/net")),l=e("./lib/app_config").AppConfig;n.exports=t=new l;var c=function(){return this||"undefined"!=typeof window&&window}(),h={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!h.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return h[e]},t.set=function(e,t){if(!h.hasOwnProperty(e))throw new Error("Unknown config key: "+e);h[e]=t},t.all=function(){return s.copyObject(h)},t.moduleUrl=function(e,t){if(h.$moduleUrls[e])return h.$moduleUrls[e];var i=e.split("/");t=t||i[i.length-2]||"";var n="snippets"==t?"/":"-",r=i[i.length-1];if("worker"==t&&"-"==n){var o=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");r=r.replace(o,"")}(!r||r==t)&&i.length>1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(s){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var l=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};return t.get("packaged")?void a.loadScript(t.moduleUrl(i,o),l):l()}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){document.hasFocus&&document.hasFocus()||window.focus(),e.focus(),e.isFocused()||window.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener(a,[400,300,250],this,"onMouseEvent"),e.renderer.scrollBarV&&(n.addMultiMouseDownListener(e.renderer.scrollBarV.inner,[400,300,250],this,"onMouseEvent"),n.addMultiMouseDownListener(e.renderer.scrollBarH.inner,[400,300,250],this,"onMouseEvent"),r.isIE&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i))),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",function(t){return e.focus(),n.preventDefault(t)}),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;o.setCursorStyle(!r.isEmpty()&&r.insideStart(n.row,n.column)?"default":"")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,r=e.session;r.foldWidgets&&r.foldWidgets[n]&&e.session.onFoldWidgetClick(n,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,r=e.session,o=r.getParentFoldRangeData(n,!0),s=o.range||o.firstRange;if(s){n=s.start.row;var a=r.getFoldAt(n,r.getLine(n).length,1);a?r.removeFold(a):(r.addFold("...",s),e.renderer.scrollCursorIntoView({row:s.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1==t?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&(o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n),!(o&&o.command&&(s="null"==o.command?!0:a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s))););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return 0==this.compare(e,t)?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return 0==this.compare(e,t)?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if("undefined"==typeof t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,t===!0?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(t.column-i,t.column).split(" ").length-1==i?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e,t=this.lead.row,i=this.lead.column,n=this.doc.getLine(t),r=n.substring(i);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var o=this.session.getFoldAt(t,i,1);return o?void this.moveCursorTo(o.end.row,o.end.column):((e=this.session.nonTokenRe.exec(r))&&(i+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(i)),i>=n.length?(this.moveCursorTo(t,n.length),this.moveCursorRight(),void(t=i?(this.moveCursorTo(t,0),this.moveCursorLeft(),void(t>0&&this.moveCursorWordLeft())):((o=this.session.tokenRe.exec(s))&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),void this.moveCursorTo(t,i))},this.$shortWordEndIndex=function(e){var t,i,n=0,r=/\s/,o=this.session.tokenRe;if(o.lastIndex=0,t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(i=e[n])&&r.test(i);)n++;if(1>n)for(o.lastIndex=0;(i=e[n])&&!o.test(i);)if(o.lastIndex=0,n++,r.test(i)){if(n>2){n--;break}for(;(i=e[n])&&r.test(i);)n++;if(n>2)break}}return o.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do e++,n=this.doc.getLine(e);while(o>e&&/^\s*$/.test(n));/^\s+/.test(n)||(n=""),t=0}var s=this.$shortWordEndIndex(n);this.moveCursorTo(e,t+s)},this.moveCursorShortWordLeft=function(){var e,t=this.lead.row,i=this.lead.column;if(e=this.session.getFoldAt(t,i,-1))return this.moveCursorTo(e.start.row,e.start.column);var n=this.session.getLine(t).substring(0,i);if(0===i){do t--,n=this.doc.getLine(t);while(t>0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column);var n=this.session.screenToDocumentPosition(i.row+e,i.column);0!==e&&0===t&&n.row===this.lead.row&&n.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[n.row]&&(n.row>0||e>0)&&n.row++,this.moveCursorTo(n.row,n.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e.call(null,this);var i=this.getCursor();return s.fromPoints(t,i)}catch(n){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?c.onMatch=this.$applyToken:c.onMatch=c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;o>r;r++)t[r]&&(n[n.length]={type:i[r],value:t[r]});return n},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";for(var i=[],n=this.tokenArray,r=0,o=n.length;o>r;r++)t[r+1]&&(i[i.length]={type:n[r],value:t[r+1]});return i; -},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(-1!=e.indexOf("(?=")){var i=0,n=!1,r={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,o,s,a,l){return n?n="]"!=a:a?n=!0:s?(i==r.stack&&(r.end=l+1,r.stack=-1),i--):o&&(i++,1!=o.length&&(r.stack=i,r.start=l)),e}),null!=r.end&&/^\)*$/.test(e.substr(r.end))&&(e=e.substring(0,r.start)+e.substr(r.end))}return"^"!=e.charAt(0)&&(e="^"+e),"$"!=e.charAt(e.length-1)&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&"string"!=typeof t){var i=t.slice(0);t=i[0],"#tmp"===t&&(i.shift(),t=i.shift())}else var i=[];var n=t||"start",o=this.states[n];o||(n="start",o=this.states[n]);var s=this.matchMappings[n],a=this.regExps[n];a.lastIndex=0;for(var l,c=[],h=0,d=0,u={type:null,value:""};l=a.exec(e);){var f=s.defaultToken,p=null,g=l[0],m=a.lastIndex;if(m-g.length>h){var v=e.substring(h,m-g.length);u.type==f?u.value+=v:(u.type&&c.push(u),u={type:f,value:v})}for(var w=0;wr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start; -if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(n.prototype),t.TokenIterator=n}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour").Behaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r,this.$behaviour=new o};(function(){this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules,this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;n>=t;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},g=f+" ",m=function(e,t){(!s||/\S/.test(e))&&(w(e,c,c)?o.insertInLine({row:t,column:c},g):o.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,A=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),y=new RegExp("(?:"+a.escapeRegExp(A)+")\\s*$"),m=function(e,t){v(e,t)||(!s||/\S/.test(e))&&(o.insertInLine({row:t,column:e.length},A),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(y))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;ri&&(c=i),l&&!v(e,t)&&(l=!1)):C>e.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),d&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:m)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),d=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var u,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var g=a.getCurrentTokenRow(),m=a.getCurrentTokenColumn()+p;u=new c(g,m,g,m+r.start.length);break}h=a.stepBackward()}for(var a=new l(t,n.row,n.column),h=a.getCurrentToken();h&&/comment/.test(h.type);){var p=h.value.indexOf(r.end);if(-1!=p){var g=a.getCurrentTokenRow(),m=a.getCurrentTokenColumn()+p;f=new c(g,m,g,m+r.end.length);break}h=a.stepForward()}f&&t.remove(f),u&&(t.remove(u),o=u.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==o&&(d.start.column+=s),d.end.row==o&&(d.end.column+=s),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;to;o++)if("string"==typeof r[o].token)/keyword|support|storage/.test(r[o].token)&&i.push(r[o].regex);else if("object"==typeof r[o].token)for(var a=0,l=r[o].token.length;l>a;a++)if(/keyword|support|storage/.test(r[o].token[a])){var n=r[o].regex.match(/\(.+?\)/g)[a];i.push(n.substr(1,n.length-2))}this.completionKeywords=i}return e?i.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,i,n){var r=this.$keywordList||this.$createKeywordList();return r.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(h.prototype),t.Mode=h}),ace.define("ace/apply_delta",["require","exports","module"],function(e,t,i){"use strict";t.applyDelta=function(e,t,i){var n=t.start.row,r=t.start.column,o=e[n]||"";switch(t.action){case"insert":var s=t.lines;if(1===s.length)e[n]=o.substring(0,r)+t.lines[0]+o.substring(r);else{var a=[n,1].concat(t.lines);e.splice.apply(e,a),e[n]=o.substring(0,r)+e[n],e[n+t.lines.length-1]+=o.substring(r)}break;case"remove":var l=t.end.column,c=t.end.row;n===c?e[n]=o.substring(0,r)+o.substring(l):e.splice(n,c-n+1,o.substring(0,r)+e[c].substring(l))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=t.Anchor=function(e,t,i){this.$onChange=this.onChange.bind(this),this.attach(e),"undefined"==typeof i?this.setPosition(t.row,t.column):this.setPosition(t,i)};(function(){function e(e,t,i){var n=i?e.column<=t.column:e.columnthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):0>e?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),0>t&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:0>e?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var i;return i=t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;o>r;r++)if(e-=i[r].length+n,0>e)return{row:r,column:e+i[r].length+n};return{row:o-1,column:i[o-1].length}},this.positionToIndex=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=0,o=Math.min(e.row,i.length),s=t||0;o>s;++s)r+=i[s].length+n;return r+e.column}}).call(l.prototype),t.Document=l}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var i=this;this.$worker=function(){if(i.running){for(var e=new Date,t=i.currentLine,n=-1,r=i.doc,o=t;i.lines[t];)t++;var s=r.getLength(),a=0;for(i.running=!1;s>t;){i.$tokenizeRow(t),n=t;do t++;while(i.lines[t]);if(a++,a%5===0&&new Date-e>20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,n>=o&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;a>=l;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;ce)return{row:n.start.row,column:n.start.column+e};if(e-=n.placeholder.length,0>e)return n.start;t=n.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(n.prototype),t.FoldLine=n}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("./range").Range,r=n.comparePoints,o=function(){this.ranges=[]};(function(){this.comparePoints=r,this.pointIndex=function(e,t,i){for(var n=this.ranges,o=i||0;o0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);0>i&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return 0>n?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.call(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);return t>=0?this.ranges.splice(t,1):void 0},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;os||(0!=s||i.isEmpty()||n.isEmpty())&&(r(i.end,n.end)<0&&(i.end.row=n.end.row,i.end.column=n.end.column),t.splice(o,1),e.push(n),n=i,o--)}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);return t>=0?this.ranges[t]:void 0},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown&&(n=-n-1);var r=this.pointIndex({row:t,column:0},n);0>r&&(r=-r-1);for(var o=[],s=n;r>s;s++)o.push(i[s]);return o},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(e){if("insert"==e.action)var t=e.start,i=e.end;else var i=e.start,t=e.end;for(var n=t.row,r=i.row,o=r-n,s=-t.column+i.column,a=this.ranges,l=0,c=a.length;c>l;l++){var h=a[l];if(!(h.end.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&c-1>l&&h.end.column>h.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&c>l)for(;c>l;l++){var h=a[l];h.start.row+=o,h.end.row+=o}}}).call(o.prototype),t.RangeList=o}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t,i){"use strict";function n(e,t){e.row-=t.row,0==e.row&&(e.column-=t.column)}function r(e,t){n(e.start,t),n(e.end,t)}function o(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row}function s(e,t){o(e.start,t),o(e.end,t)}var a=(e("../range").Range,e("../range_list").RangeList),l=e("../lib/oop"),c=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};l.inherits(c,a),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new c(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(!this.range.isEqual(e)){if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);r(e,this.start);for(var t=e.start.row,i=e.start.column,n=0,o=-1;n=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){t>a&&(a>=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(c>a||a==c&&h-2>=l))throw new Error("The range has to be at least 2 characters width");var d=this.getFoldAt(a,l,1),u=this.getFoldAt(c,h,-1);if(d&&u==d)return d.addSubFold(i);d&&!d.range.isStart(a,l)&&this.removeFold(d),u&&!u.range.isEnd(c,h)&&this.removeFold(u);var f=this.getFoldsInRange(i.range);f.length>0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);return n.length?n:void 0},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(n>t)){if(t==n){if(r>i)return;a=Math.max(r,a)}s+=null!=e?e:o.getLine(t).substring(a,i)}},t,i),s},this.getDisplayLine=function(e,t,i,n){var r=this.getFoldLine(e);if(r)return this.getFoldDisplayLine(r,e,t,i,n);var o;return o=this.doc.getLine(e),o.substring(n||0,t||o.length)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var i=t.folds.map(function(e){return e.clone()});return new o(e,i)})},this.toggleFold=function(e){var t,i,n=this.selection,r=n.getRange();if(r.isEmpty()){var o=r.start;if(t=this.getFoldAt(o.row,o.column))return void this.expandFold(t);(i=this.findMatchingBracket(o))?1==r.comparePoint(i)?r.end=i:(r.start=i,r.start.column++,r.end.column--):(i=this.findMatchingBracket({row:o.row,column:o.column+1}))?(1==r.comparePoint(i)?r.end=i:r.start=i,r.start.column++):r=this.getCommentFoldRange(o.row,o.column)||r}else{var s=this.getFoldsInRange(r);if(e&&s.length)return void this.expandFolds(s);1==s.length&&(t=s[0])}if(t||(t=this.getFoldAt(r.start.row,r.start.column)),t&&t.range.toString()==r.toString())return void this.expandFold(t);var a="...";if(!r.isMultiLine()){if(a=this.getTextRange(r),a.length<4)return;a=a.trim().substring(0,2)+".."}this.addFold(a,r)},this.getCommentFoldRange=function(e,t,i){var n=new a(this,e,t),o=n.getCurrentToken();if(o&&/^comment|string/.test(o.type)){var s=new r,l=new RegExp(o.type.replace(/\..*/,"\\."));if(1!=i){do o=n.stepBackward();while(o&&l.test(o.type)); -n.stepForward()}if(s.start.row=n.getCurrentTokenRow(),s.start.column=n.getCurrentTokenColumn()+2,n=new a(this,e,t),-1!=i){do o=n.stepForward();while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return s.end.row=n.getCurrentTokenRow(),s.end.column=n.getCurrentTokenColumn()+o.value.length-2,s}},this.foldAll=function(e,t,i){void 0==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength(),e=e||0;for(var r=e;t>r;r++)if(null==n[r]&&(n[r]=this.getFoldWidget(r)),"start"==n[r]){var o=this.getFoldWidgetRange(r);if(o&&o.isMultiLine()&&o.end.row<=t&&o.start.row>=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(a){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},n=this.$toggleFoldWidget(e,i);if(!n){var r=t.target||t.srcElement;r&&/ace_fold-widget/.test(r.className)&&(r.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return void(t.children||t.all?this.removeFold(o):this.expandFold(o));var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1),o&&s.isEqual(o.range)))return void this.removeFold(o);if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(o-=1,0==o)return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do a=s.stepBackward();while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;h>l;){var d=c.charAt(l);if(d==n){if(o-=1,0==o)return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else d==e&&(o+=1);l+=1}do a=s.stepForward();while(a&&!i.test(a.type));if(null==a)break;l=0}return null}}}var r=e("../token_iterator").TokenIterator,o=e("../range").Range;t.BracketMatch=n}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/lang"),o=e("./config"),s=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,l=e("./mode/text").Mode,c=e("./range").Range,h=e("./document").Document,d=e("./background_tokenizer").BackgroundTokenizer,u=e("./search_highlight").SearchHighlight,f=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),"object"==typeof e&&e.getLine||(e=new h(e)),this.setDocument(e),this.selection=new a(this),o.resetOptions(this),this.setMode(t),o._signal("session",this)};(function(){function e(e){return 4352>e?!1:e>=4352&&4447>=e||e>=4515&&4519>=e||e>=4602&&4607>=e||e>=9001&&9002>=e||e>=11904&&11929>=e||e>=11931&&12019>=e||e>=12032&&12245>=e||e>=12272&&12283>=e||e>=12288&&12350>=e||e>=12353&&12438>=e||e>=12441&&12543>=e||e>=12549&&12589>=e||e>=12593&&12686>=e||e>=12688&&12730>=e||e>=12736&&12771>=e||e>=12784&&12830>=e||e>=12832&&12871>=e||e>=12880&&13054>=e||e>=13056&&19903>=e||e>=19968&&42124>=e||e>=42128&&42182>=e||e>=43360&&43388>=e||e>=44032&&55203>=e||e>=55216&&55238>=e||e>=55243&&55291>=e||e>=63744&&64255>=e||e>=65040&&65049>=e||e>=65072&&65106>=e||e>=65108&&65126>=e||e>=65128&&65131>=e||e>=65281&&65376>=e||e>=65504&&65510>=e}n.implement(this,s),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;n>=i;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(o>t))return r;n=r-1}}return i-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);this.$fromUndo||!this.$undoManager||e.ignore||(this.$deltasDoc.push(e),t&&0!=t.length&&this.$deltasFold.push({action:"removeFolds",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var i,n=this.bgTokenizer.getTokens(e),r=0;if(null==t)o=n.length-1,r=this.getLine(e).length;else for(var o=0;o=t));o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do o--;while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;a>l;l++){if(l>s){if(l=o.end.row+1,l>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,h=o.start,s=h.row-l.row,a=h.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;t>=n;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new c(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;n>s&&" "==o.charAt(s);++s);n>s&&" "==o.charAt(s)?(i.start.column=s,i.end.column=s+1):(i.start.column=0,i.end.column=s),this.remove(i)}},this.$moveLines=function(e,t,i){if(e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t),0>i){var n=this.getRowFoldStart(e+i);if(0>n)return 0;var r=n-e}else if(i>0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new c(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return 0>t?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),0>e)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)&&(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1?(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),d=0;if(h){var g=h.range.compareInside(n.row,n.column);0==g?(h=h.split(n.row,n.column),h&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column))):-1==g&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var i,n,r=this.doc.getAllLines(),o=this.getTabSize(),s=this.$wrapData,l=this.$wrapLimit,c=e;for(t=Math.min(t,r.length-1);t>=c;)n=this.getFoldLine(c,n),n?(i=[],n.walk(function(e,t,n,o){var s;if(null!=e){s=this.$getDisplayTokens(e,i.length),s[0]=a;for(var l=1;lt-A;){var y=c+t-A;if(e[y-1]>=p&&e[y]>=p)o(y);else if(e[y]!=a&&e[y]!=h){for(var C=Math.max(y-(t-(t>>2)),c-1);y>C&&e[y]C&&e[y]C&&e[y]==f;)y--}else for(;y>C&&e[y]C?o(++y):(y=c+t,e[y]==i&&y--,o(y-A))}else{for(y;y!=c-1&&e[y]!=a;y--);if(y>c){o(y);continue}for(y=c+t;yc;c++)s.push(m)}else 32==l?s.push(p):l>39&&48>l||l>57&&64>l?s.push(f):l>=4352&&e(l)?s.push(t,i):s.push(t)}return s},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?2:1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]e)return{row:0,column:0};var i,n,r=0,o=0,s=0,a=0,l=this.$screenRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var s=l[c],r=this.$docRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getLength()-1,f=this.getNextFoldLine(r),p=f?f.start.row:1/0;e>=s&&(a=this.getRowLength(r),!(s+a>e||r>=u));)s+=a,r++,r>p&&(r=f.end.row+1,f=this.getNextFoldLine(r,f),p=f?f.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(s));if(f&&f.start.row<=r)i=this.getFoldDisplayLine(f),r=f.start.row;else{if(e>=s+a||r>u)return{row:u,column:this.getLine(u).length};i=this.getLine(r),f=null}var g=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){var v=Math.floor(e-s);n=m[v],v>0&&m.length&&(g=m.indent,o=m[v-1]||m[m.length-1],i=i.substring(o))}}return o+=this.$getStringScreenWidth(i,t-g)[1],this.$useWrapMode&&o>=n&&(o=n-1),f?f.idxToPosition(o):{row:r,column:o}},this.documentToScreenPosition=function(e,t){if("undefined"==typeof t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;o=this.getFoldAt(e,t,1),o&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getNextFoldLine(a),f=u?u.start.row:1/0;e>a;){if(a>=f){if(s=u.end.row+1,s>e)break;u=this.getNextFoldLine(s,u),f=u?u.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var g=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){for(var v=0;p.length>=m[v];)n++,v++;p=p.substring(m[v-1]||0,p.length),g=v>0?m.indent:0}}return{row:n,column:g+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;i>n;){var s=this.$wrapData[n];e+=s?s.length+1:1,n++,n>o&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(f.prototype),e("./edit_session/folding").Folding.call(f.prototype),e("./edit_session/bracket_match").BracketMatch.call(f.prototype),o.defineOptions(f.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e="auto"==e?"text"!=this.$mode.type:"text"!=e,e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e); -},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=f}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=e("./lib/oop"),o=e("./range").Range,s=function(){this.$options={}};(function(){this.set=function(e){return r.mixin(this.$options,e),this},this.getOptions=function(){return n.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r){if(e.start)n=e;else{var s=e.offset+(r||0);if(n=new o(i,s,i,s+e.length),!e.length&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))return n=null,!1}return!0}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,r=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=r.length-c;e:for(var d=a.offset||0;h>=d;d++){for(var u=0;c>u;u++)if(-1==r[d+u].search(a[u]))continue e;var f=r[d],p=r[d+c-1],g=f.length-f.match(a[0])[0].length,m=p.match(a[c-1])[0].length;l&&l.end.row===d&&l.end.column>g||(s.push(l=new o(d,g,d+c-1,m)),c>2&&(d=d+c-2))}}else for(var v=0;vv&&s[v].start.columnv&&s[u].end.column>C&&s[u].end.row==i.end.row;)u--;for(s=s.slice(v,u+1),v=0,u=s.length;u>v;v++)s[v].start.row+=i.start.row,s[v].end.row+=i.start.row}return s},this.replace=function(e,t){var i=this.$options,n=this.$assembleRegExp(i);if(i.$isMultiLine)return t;if(n){var r=n.exec(e);if(!r||r[0].length!=e.length)return null;if(t=e.replace(n,t),i.preserveCase){t=t.split("");for(var o=Math.min(e.length,e.length);o--;){var s=e[o];s&&s.toLowerCase()!=s?t[o]=t[o].toUpperCase():t[o]=t[o].toLowerCase()}t=t.join("")}return t}},this.$matchIterator=function(e,t){var i=this.$assembleRegExp(t);if(!i)return!1;var r;if(t.$isMultiLine)var s=i.length,a=function(t,n,a){var l=t.search(i[0]);if(-1!=l){for(var c=1;s>c;c++)if(t=e.getLine(n+c),-1==t.search(i[c]))return;var h=t.match(i[s-1])[0].length,d=new o(n,l,n+s-1,h);return 1==i.offset?(d.start.row--,d.start.column=Number.MAX_VALUE):a&&(d.start.column+=a),r(d)?!0:void 0}};else if(t.backwards)var a=function(e,t,o){for(var s=n.getMatchOffsets(e,i),a=s.length-1;a>=0;a--)if(r(s[a],t,o))return!0};else var a=function(e,t,o){for(var s=n.getMatchOffsets(e,i),a=0;a=s;n--)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=a,s=o.row;n>=s;n--)if(i(e.getLine(n),n))return}}:function(i){var n=o.row,r=e.getLine(n).substr(o.column);if(!i(r,n,o.column)){for(n+=1;a>=n;n++)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=s,a=o.row;a>=n;n++)if(i(e.getLine(n),n))return}};return{forEach:l}}}).call(s.prototype),t.Search=s}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){return"object"==typeof e&&(void 0==i&&(i=e.position),e=e[this.platform]),e?"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this):void 0},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=n||i.isDefault?-100:e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(0>n)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),r.returnValue===!1?!1:!0},this.toggleRecording=function(e){return this.$inReplay?void 0:(e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0))},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","Ctrl-E"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Ctrl-Shift-E"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){return e.selection.isEmpty()?void e.remove("left"):!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.removeEventListener("changeCursor",this.$onCursorChange),i.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange), -this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value){do a=r,r=n.stepForward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0)}else{do r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=s);n.stepForward()}if(!r)return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);var l=n.getCurrentTokenRow(),c=n.getCurrentTokenColumn(),h=new f(l,c,l,c+r.value.length);t.$tagHighlight&&0!==h.compareRange(t.$backMarkers[t.$tagHighlight].range)&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),h&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(h,"ace_bracket","text"))}}},50)}},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},this.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,i=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,i,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(v.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||o>=n&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){var a=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s});return a}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if(" "==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&this.selection.setSelectionRange(2==o.selection.length?new f(r.row,c+o.selection[0],r.row,c+o.selection[1]):new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3])),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var n=new f(0,0,0,0),r=e.first;r<=e.last;r++){var o=t.getLine(r);n.start.row=r,n.end.row=r,n.end.column=o.length,t.replace(n,i[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){var o={value:r[0],start:r.index,end:r.index+r[0].length};return o}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),e*=s!==o.end&&s>i?Math.pow(10,o.end-i-1):Math.pow(10,o.end-i),l+=e,l/=Math.pow(10,a);var c=l.toFixed(a),h=new f(t,o.start,t,o.end);this.session.replace(h,c),this.moveCursorTo(t,Math.max(o.start+1,i+c.length-o.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,i=e.getRange(),n=e.isBackwards();if(i.isEmpty()){var r=i.start.row;t.duplicateLines(r,r)}else{var o=n?i.start:i.end,s=t.insert(o,t.getTextRange(i),!1);i.start=o,i.end=s,e.setSelectionRange(i,n)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,i){return this.session.moveText(e,t,i)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var i,n,r=this.selection;if(!r.inMultiSelectMode||this.inVirtualSelectionMode){var o=r.toOrientedRange();i=this.$getSelectedRows(o),n=this.session.$moveLines(i.first,i.last,t?0:e),t&&-1==e&&(n=0),o.moveBy(n,0),r.fromOrientedRange(o)}else{var s=r.rangeList.ranges;r.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,h=0;c>h;h++){var d=h;s[h].moveBy(a,0),i=this.$getSelectedRows(s[h]);for(var u=i.first,f=i.last;++hf+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);h>=d;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):t===!1&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0?!0:o.topwindow.innerHeight?!1:null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.removeEventListener("changeSelection",o),this.renderer.removeEventListener("afterRender",a),this.renderer.removeEventListener("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}).call(A.prototype),v.defineOptions(A.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=A}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(g=o.end.row+1,o=t.getNextFoldLine(g,o),s=o?o.start.row:1/0),g>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var m="ace_gutter-cell ";l[g]&&(m+=l[g]),c[g]&&(m+=c[g]),this.$annotations[g]&&(m+=this.$annotations[g].className),f.element.className!=m&&(f.element.className=m);var v=t.getRowLength(g)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[g];null==w&&(w=a[g]=t.getFoldWidget(g))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var m="ace_fold-widget ace_"+w;m+="start"==w&&g==s&&gi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+r.start.column*e.characterWidth;n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,d=0,u=0,f=a.getScreenLastRowColumn(h),p=new n(h,i.start.column,h,u);c>=h;h++)p.start.row=p.end.row=h,p.start.column=h==l?i.start.column:a.getRowWrapIndent(h),p.end.column=f,d=u,u=f,f=c>h+1?a.getScreenLastRowColumn(h+1):h==c?0:i.end.column,this.drawSingleLineMarker(t,p,r+(h==l?" ace_start":"")+" ace_br"+e(h==l||h==l+1&&i.start.column,u>d,u>f,h==c),o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o=this.$padding,s=n.lineHeight,a=this.$getTop(t.start.row,n),l=o+t.start.column*n.characterWidth;r=r||"",e.push("
"),a=this.$getTop(t.end.row,n);var c=t.end.column*n.characterWidth;if(e.push("
"),s=(t.end.row-t.start.row-1)*n.lineHeight,!(0>=s)){a=this.$getTop(t.start.row+1,n);var h=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;return this.EOL_CHAR!=e?(this.EOL_CHAR=e,!0):void 0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;e+1>i;i++)t.push(this.showInvisibles?""+o.stringRepeat(this.TAB_CHAR,i)+"":o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings[" "]=""+l+""}},this.updateLines=function(e,t,i){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;n>a;a++){var l=this.session.getFoldLine(a);if(l){if(l.containsRow(n)){n=l.start.row;break}a=l.end.row}s++}for(var a=n,l=this.session.getNextFoldLine(a),c=l?l.start.row:1/0;;){if(a>c&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var d=[];this.$renderLine(d,a,!this.$useLineGroups(),a==c?l:!1),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=d.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a?s:!1),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s?o:!1),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,a=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if(" "==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},l=n.replace(s,a);if(this.$textToken[i.type])e.push(l);else{var c="ace_"+i.type.replace(/\./g," ace_"),h="";"fold"==i.type&&(h=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",l,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return 0>=n||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):" "==t[0]?(e.push(o.stringRepeat(this.$tabStrings[" "],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;i>o&&ni?{type:e[n].type,value:s.substring(0,i-o)}:e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e),n=this.$padding+i.column*this.config.characterWidth,r=(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:n,top:r}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;(void 0===t||0===t.length)&&(t=[{cursor:null}]);for(var i=0,r=t.length;r>i;i++){var o=this.getPixelPosition(t[i].cursor,!0);if(!((o.top>e.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e,t){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&1>t?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var i={height:e.height,width:e.width/l}}else var i={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===i.width||0===i.height?null:i},this.$measureCharWidth=function(e){this.$main.innerHTML=o.stringRepeat(e,l);var t=this.$main.getBoundingClientRect();return t.width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,g=e("./lib/event_emitter").EventEmitter,m='.ace_editor { position: relative; overflow: hidden; font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace; direction: ltr; } .ace_scroller { position: absolute; overflow: hidden; top: 0; bottom: 0; background-color: inherit; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; cursor: text; } .ace_content { position: absolute; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; min-width: 100%; } .ace_dragging .ace_scroller:before{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; content: \'\'; background: rgba(250, 250, 250, 0.01); z-index: 1000; } .ace_dragging.ace_dark .ace_scroller:before{ background: rgba(0, 0, 0, 0.01); } .ace_selecting, .ace_selecting * { cursor: text !important; } .ace_gutter { position: absolute; overflow : hidden; width: auto; top: 0; bottom: 0; left: 0; cursor: default; z-index: 4; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; } .ace_gutter-active-line { position: absolute; left: 0; right: 0; } .ace_scroller.ace_scroll-left { box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; } .ace_gutter-cell { padding-left: 19px; padding-right: 6px; background-repeat: no-repeat; } .ace_gutter-cell.ace_error { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: 2px center; } .ace_gutter-cell.ace_warning { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); background-position: 2px center; } .ace_gutter-cell.ace_info { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); background-position: 2px center; } .ace_dark .ace_gutter-cell.ace_info { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); } .ace_scrollbar { position: absolute; right: 0; bottom: 0; z-index: 6; } .ace_scrollbar-inner { position: absolute; cursor: text; left: 0; top: 0; } .ace_scrollbar-v{ overflow-x: hidden; overflow-y: scroll; top: 0; } .ace_scrollbar-h { overflow-x: scroll; overflow-y: hidden; left: 0; } .ace_print-margin { position: absolute; height: 100%; } .ace_text-input { position: absolute; z-index: 0; width: 0.5em; height: 1em; opacity: 0; background: transparent; -moz-appearance: none; appearance: none; border: none; resize: none; outline: none; overflow: hidden; font: inherit; padding: 0 1px; margin: 0 -1px; text-indent: -1em; -ms-user-select: text; -moz-user-select: text; -webkit-user-select: text; user-select: text; white-space: pre!important; } .ace_text-input.ace_composition { background: inherit; color: inherit; z-index: 1000; opacity: 1; text-indent: 0; } .ace_layer { z-index: 1; position: absolute; overflow: hidden; word-wrap: normal; white-space: pre; height: 100%; width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; pointer-events: none; } .ace_gutter-layer { position: relative; width: auto; text-align: right; pointer-events: auto; } .ace_text-layer { font: inherit !important; } .ace_cjk { display: inline-block; text-align: center; } .ace_cursor-layer { z-index: 4; } .ace_cursor { z-index: 4; position: absolute; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; border-left: 2px solid; transform: translatez(0); } .ace_slim-cursors .ace_cursor { border-left-width: 1px; } .ace_overwrite-cursors .ace_cursor { border-left-width: 0; border-bottom: 1px solid; } .ace_hidden-cursors .ace_cursor { opacity: 0.2; } .ace_smooth-blinking .ace_cursor { -webkit-transition: opacity 0.18s; transition: opacity 0.18s; } .ace_editor.ace_multiselect .ace_cursor { border-left-width: 1px; } .ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { position: absolute; z-index: 3; } .ace_marker-layer .ace_selection { position: absolute; z-index: 5; } .ace_marker-layer .ace_bracket { position: absolute; z-index: 6; } .ace_marker-layer .ace_active-line { position: absolute; z-index: 2; } .ace_marker-layer .ace_selected-word { position: absolute; z-index: 4; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } .ace_line .ace_fold { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; display: inline-block; height: 11px; margin-top: -2px; vertical-align: middle; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); background-repeat: no-repeat, repeat-x; background-position: center center, top left; color: transparent; border: 1px solid black; border-radius: 2px; cursor: pointer; pointer-events: auto; } .ace_dark .ace_fold { } .ace_fold:hover{ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); } .ace_tooltip { background-color: #FFF; background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1)); background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1)); border: 1px solid gray; border-radius: 1px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); color: black; max-width: 100%; padding: 3px 4px; position: fixed; z-index: 999999; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; cursor: default; white-space: pre; word-wrap: break-word; line-height: normal; font-style: normal; font-weight: normal; letter-spacing: normal; pointer-events: none; } .ace_folding-enabled > .ace_gutter-cell { padding-right: 13px; } .ace_fold-widget { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0 -12px 0 1px; display: none; width: 11px; vertical-align: top; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: center; border-radius: 3px; border: 1px solid transparent; cursor: pointer; } .ace_folding-enabled .ace_fold-widget { display: inline-block; } .ace_fold-widget.ace_end { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); } .ace_fold-widget.ace_closed { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); } .ace_fold-widget:hover { border: 1px solid rgba(0, 0, 0, 0.3); background-color: rgba(255, 255, 255, 0.2); box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); } .ace_fold-widget:active { border: 1px solid rgba(0, 0, 0, 0.4); background-color: rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); } .ace_dark .ace_fold-widget { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); } .ace_dark .ace_fold-widget.ace_end { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); } .ace_dark .ace_fold-widget.ace_closed { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); } .ace_dark .ace_fold-widget:hover { box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); background-color: rgba(255, 255, 255, 0.1); } .ace_dark .ace_fold-widget:active { box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); } .ace_fold-widget.ace_invalid { background-color: #FFB4B4; border-color: #DE5555; } .ace_fade-fold-widgets .ace_fold-widget { -webkit-transition: opacity 0.4s ease 0.05s; transition: opacity 0.4s ease 0.05s; opacity: 0; } .ace_fade-fold-widgets:hover .ace_fold-widget { -webkit-transition: opacity 0.05s ease 0.05s; transition: opacity 0.05s ease 0.05s; opacity:1; } .ace_underline { text-decoration: underline; } .ace_bold { font-weight: bold; } .ace_nobold .ace_bold { font-weight: normal; } .ace_italic { font-style: italic; } .ace_error-marker { background-color: rgba(255, 0, 0,0.2); position: absolute; z-index: 9; } .ace_highlight-marker { background-color: rgba(255, 255, 0,0.2); position: absolute; z-index: 8; } .ace_br1 {border-top-left-radius : 3px;} .ace_br2 {border-top-right-radius : 3px;} .ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} .ace_br4 {border-bottom-right-radius: 3px;} .ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} .ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} .ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} .ace_br8 {border-bottom-left-radius : 3px;} .ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} .ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} .ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} '; +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=l.getInternetExplorerVersion();if(-1!=r&&9>r)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ace","theme","ajv","schema","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(4)}catch(o){}var s=i(1),a=i(2),l=i(3);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype._delete=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=l.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=l.extend({},this.options),s=o.mode;o.mode=e;var a=n.modes[e];if(!a)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==a.data;if(i=this.getName(),t=this[c?"getText":"get"](),this._delete(),l.clear(this),l.extend(this,a.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof a.load)try{a.load.call(this)}catch(h){console.error(h)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(h){console.error(h)}}catch(h){this._onError(h)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(i){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate())}else this.validateSchema=null,this.options.schema=null,this.validate()},n.prototype.validate=function(){},n.registerMode=function(e){var t,i;if(l.isArray(e))for(t=0;te&&i.scrollTop>0?this.autoScrollStep=(n+s-e)/3:e>o-s&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},h._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.className="jsoneditor-expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.title="Collapse all fields",n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.className="jsoneditor-undo jsoneditor-separator",r.title="Undo last action (Ctrl+Z)",r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=l.create(this,this.options.modes,this.options.mode);this.menu.appendChild(a),this.dom.modeBox=a}this.options.search&&(this.searchBox=new o(this,this.menu))},h._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},h._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},h._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(u=e.target),"mousedown"==e.type&&this._startDragDistance(e),("mousemove"==e.type||"mouseup"==e.type||"click"==e.type)&&this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},h._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},h._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},h._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},h._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},h._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},h.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},h.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},h._findTopLevelNodes=function(e,t){for(var i=e.getPath(),n=t.getPath(),r=0;r0){var o=i.length>l;if(o){i=i.slice(0,l);var a=this.validateSchema.errors.length-l;i.push("("+a+" more errors...)")}var c=document.createElement("div");c.innerHTML=''+i.map(function(e){var t;return t="string"==typeof e?'":"",''+t+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=c,this.frame.appendChild(c);var h=c.clientHeight;this.content.style.marginBottom=-h+"px",this.content.style.paddingBottom=h+"px"}if(this.aceEditor){var d=!1;this.aceEditor.resize(d)}},e.exports=[{mode:"text",mixin:a,data:"text",load:a.format},{mode:"code",mixin:a,data:"text",load:a.format}]},function(e,t,i){var n=i(12);t.parse=function(e){try{return JSON.parse(e)}catch(i){throw t.validate(e),i}},t.sanitize=function(e){function t(){return e.charAt(h)}function i(){return e.charAt(h+1)}function n(){return e.charAt(h-1)}function r(){for(var e=c.length-1;e>=0;){var t=c[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&" "!==t)return t;e--}return""}function o(){for(h+=2;hn;n++){var o=i[n];o.style&&o.removeAttribute("style");var s=o.attributes;if(s)for(var a=s.length-1;a>=0;a--){var l=s[a];l.specified===!0&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){var i=window.getSelection();if(i){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,i){var n=void 0==i;if(n&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var r=e.childNodes,o="",s=0,a=r.length;a>s;s++){var l=r[s];if("DIV"==l.nodeName||"P"==l.nodeName){var c=r[s-1],h=c?c.nodeName:void 0;h&&"DIV"!=h&&"P"!=h&&"BR"!=h&&(o+="\n",i.flush()),o+=t.getInnerText(l,i),i.set("\n")}else"BR"==l.nodeName?(o+=i.flush(),i.set("\n")):o+=t.getInnerText(l,i)}return o}return"P"==e.nodeName&&-1!=t.getInternetExplorerVersion()?i.flush():""},t.getInternetExplorerVersion=function(){if(-1==o){var e=-1;if("Microsoft Internet Explorer"==navigator.appName){var t=navigator.userAgent,i=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");null!=i.exec(t)&&(e=parseFloat(RegExp.$1))}o=e}return o},t.isFirefox=function(){return-1!=navigator.userAgent.indexOf("Firefox")};var o=-1;t.addEventListener=function(e,i,n,r){if(e.addEventListener)return void 0===r&&(r=!1),"mousewheel"===i&&t.isFirefox()&&(i="DOMMouseScroll"),e.addEventListener(i,n,r),n;if(e.attachEvent){var o=function(){return n.call(e,window.event)};return e.attachEvent("on"+i,o),o}},t.removeEventListener=function(e,i,n,r){e.removeEventListener?(void 0===r&&(r=!1),"mousewheel"===i&&t.isFirefox()&&(i="DOMMouseScroll"),e.removeEventListener(i,n,r)):e.detachEvent&&e.detachEvent("on"+i,n)},t.parsePath=function s(e){var t,i;if(0===e.length)return[];var n=e.match(/^\.(\w+)/);if(n)t=n[1],i=e.substr(t.length+1);else{if("["!==e[0])throw new SyntaxError("Failed to parse path");var r=e.indexOf("]");if(-1===r)throw new SyntaxError("Character ] expected in path");if(1===r)throw new SyntaxError("Index expected after [");t=JSON.parse(e.substring(1,r)),i=e.substr(r+1)}return[t].concat(s(i))},t.improveSchemaError=function(e){if("enum"===e.keyword&&Array.isArray(e.schema)){var t=e.schema;if(t){if(t=t.map(function(e){return JSON.stringify(e)}),t.length>5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&i>n;)n++;for(;t.charAt(o-1)===e.charAt(r-1)&&o>n&&r>0;)o--,r--;return{start:n,end:o}}},function(e,t,i){"use strict";function n(e){return p.test(e)}function r(e){function t(e,t){var i;if("string"==typeof e){if(i=A(e),!i)throw new Error('no schema with key or ref "'+e+'"')}else{var n=E(e);i=n.validate||b(n)}var r=i(t);return k.errors=i.errors,r}function g(e){var t=E(e);return t.validate||b(t)}function m(e,t,i,n){if(Array.isArray(e))for(var r=0;r=0},n.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;0>i&&(i=t),this._setActiveResult(i,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node,n=this.activeResult.elem;"field"==n?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var r=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?r.searchFieldActive=!0:r.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],r.updateDom(),r.scrollTo(function(){t&&r.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},e.exports=n},function(e,t,i){function n(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(o),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.className=r.className,s.button=l,r.title&&(l.title=r.title),r.click&&(l.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),a.appendChild(l),r.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(r.text));var h;if(r.click){l.className+=" jsoneditor-default";var d=document.createElement("button");s.buttonExpand=d,d.className="jsoneditor-expand",d.innerHTML='
',a.appendChild(d),r.submenuTitle&&(d.title=r.submenuTitle),h=d}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),h=l}h.onclick=function(e){e.preventDefault(),n._onExpandItem(s),h.focus()};var f=[];s.subItems=f;var p=document.createElement("ul");s.ul=p,p.className="jsoneditor-menu",p.style.height="0",a.appendChild(p),i(p,f,r.submenu)}else l.innerHTML='
'+r.text;t.push(s)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var s=document.createElement("div");s.className="jsoneditor-contextmenu",r.menu=s,o.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),r.list=a,r.items=[];var l=document.createElement("button");r.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),i(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var r=i(3);n.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},n.visibleMenu=void 0,n.prototype.show=function(e,t){this.hide();var i=!0;if(t){var o=e.getBoundingClientRect(),s=t.getBoundingClientRect();o.bottom+this.maxHeights.top&&(i=!1)}if(i){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,h=this.dom.list;this.eventListeners.mousedown=r.addEventListener(window,"mousedown",function(e){var t=e.target;t==h||c._isChildOf(t,h)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(window,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",r.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){t.expandedItem==e&&(o.style.height=24*o.childNodes.length+"px",o.style.padding="5px 10px")},0),r.addClassName(o.parentNode,"jsoneditor-selected"),this.expandedItem=e}},n.prototype._onKeyDown=function(e){var t,i,n,o,s=e.target,a=e.which,l=!1;27==a?(this.selection&&r.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),i=t.indexOf(s),0==i&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),i=t.indexOf(s),i==t.length-1&&(t[0].focus(),l=!0)):37==a?("jsoneditor-expand"==s.className&&(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&n.focus()),l=!0):38==a?(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&"jsoneditor-expand"==n.className&&(n=t[i-2]),n||(n=t[t.length-1]),n&&n.focus(),l=!0):39==a?(t=this._getVisibleButtons(),i=t.indexOf(s),o=t[i+1],o&&"jsoneditor-expand"==o.className&&o.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),i=t.indexOf(s),o=t[i+1],o&&"jsoneditor-expand"==o.className&&(o=t[i+2]),o||(o=t[0]),o&&(o.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},n.prototype._isChildOf=function(e,t){for(var i=e.parentNode;i;){if(i==t)return!0;i=i.parentNode}return!1},e.exports=n},function(e,t,i){function n(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null)),this._debouncedOnChangeValue=s.debounce(this._onChangeValue.bind(this),n.prototype.DEBOUNCE_INTERVAL),this._debouncedOnChangeField=s.debounce(this._onChangeField.bind(this),n.prototype.DEBOUNCE_INTERVAL)}var r=i(9),o=i(21),s=i(3);n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,("tree"===this.editor.options.mode||"form"===this.editor.options.mode)&&"function"==typeof this.editor.options.onEditable)){var e=this.editor.options.onEditable({field:this.field,value:this.value,path:this.getFieldsPath()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},n.prototype.getFieldsPath=function(){for(var e=this,t=[];e;){var i=void 0!=e.field?e.field:e.index;void 0!==i&&t.unshift(i),e=e.parent}return t},n.prototype.findNode=function(e){for(var t=s.parsePath(e),i=this;i&&t.length>0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var r=document.createElement("button");for(r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;ts;s++)i=e[s],void 0===i||i instanceof Function||(r=new n(this.editor,{value:i}),this.appendChild(r));this.value=""}else if("object"==this.type){this.childs=[];for(var l in e)e.hasOwnProperty(l)&&(i=e[l],void 0===i||i instanceof Function||(r=new n(this.editor,{field:l,value:i}),this.appendChild(r)));this.value=""}else this.childs=void 0,this.value=e;this.previousValue=this.value},n.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},n.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},n.prototype.getPath=function(){var e=this.parent?this.parent.getPath():[];return e.push(this),e},n.prototype.clone=function(){var e=new n(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.value=this.value,e.valueInnerText=this.valueInnerText,e.expanded=this.expanded,this.childs){var t=[];this.childs.forEach(function(i){var n=i.clone();n.setParent(e),t.push(n)}),e.childs=t}else e.childs=void 0;return e},n.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="jsoneditor-expanded"),this.showChilds(),e!==!1&&this.childs.forEach(function(t){t.expand(e)}))},n.prototype.collapse=function(e){this.childs&&(this.hideChilds(),e!==!1&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="jsoneditor-collapsed"),this.expanded=!1)},n.prototype.showChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.dom.tr,i=t?t.parentNode:void 0;if(i){var n=this.getAppend(),r=t.nextSibling;r?i.insertBefore(n,r):i.appendChild(n),this.childs.forEach(function(e){i.insertBefore(e.getDom(),n),e.showChilds()})}}},n.prototype.hide=function(){var e=this.dom.tr,t=e?e.parentNode:void 0;t&&t.removeChild(e),this.hideChilds()},n.prototype.hideChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.getAppend();t.parentNode&&t.parentNode.removeChild(t),this.childs.forEach(function(e){e.hide()})}},n.prototype.appendChild=function(e){if(this._hasChilds()){if(e.setParent(this),e.fieldEditable="object"==this.type,"array"==this.type&&(e.index=this.childs.length),this.childs.push(e),this.expanded){var t=e.getDom(),i=this.getAppend(),n=i?i.parentNode:void 0;i&&n&&n.insertBefore(t,i),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.moveBefore=function(e,t){if(this._hasChilds()){var i=this.dom.tr?this.dom.tr.parentNode:void 0;if(i){var n=document.createElement("tr");n.style.height=i.clientHeight+"px",i.appendChild(n)}e.parent&&e.parent.removeChild(e),t instanceof a?this.appendChild(e):this.insertBefore(e,t),i&&i.removeChild(n)}},n.prototype.moveTo=function(e,t){if(e.parent==this){var i=this.childs.indexOf(e);t>i&&t++}var n=this.childs[t]||this.append;this.moveBefore(e,n)},n.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(t==this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var i=this.childs.indexOf(t);if(-1==i)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(i,0,e)}if(this.expanded){var n=e.getDom(),r=t.getDom(),o=r?r.parentNode:void 0;r&&o&&o.insertBefore(n,r),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.insertAfter=function(e,t){if(this._hasChilds()){var i=this.childs.indexOf(t),n=this.childs[i+1];n?this.insertBefore(e,n):this.appendChild(e)}},n.prototype.search=function(e){var t,i=[],n=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!=this.field){var r=String(this.field).toLowerCase();t=r.indexOf(n),-1!=t&&(this.searchField=!0,i.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds()){if(this.childs){var o=[];this.childs.forEach(function(t){o=o.concat(t.search(e))}),i=i.concat(o)}if(void 0!=n){var s=!1;0==o.length?this.collapse(s):this.expand(s)}}else{if(void 0!=this.value){var a=String(this.value).toLowerCase();t=a.indexOf(n),-1!=t&&(this.searchValue=!0,i.push({node:this,elem:"value"}))}this._updateDomValue()}return i},n.prototype.scrollTo=function(e){if(!this.dom.tr||!this.dom.tr.parentNode)for(var t=this.parent,i=!1;t;)t.expand(i),t=t.parent;this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},n.focusElement=void 0,n.prototype.focus=function(e){if(n.focusElement=e,this.dom.tr&&this.dom.tr.parentNode){var t=this.dom;switch(e){case"drag":t.drag?t.drag.focus():t.menu.focus();break;case"menu":t.menu.focus();break;case"expand":this._hasChilds()?t.expand.focus():t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.menu.focus();break;case"field":t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):this._hasChilds()?t.expand.focus():t.menu.focus();break;case"value":default:t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):this._hasChilds()?t.expand.focus():t.menu.focus()}}},n.select=function(e){setTimeout(function(){s.selectContentEditable(e)},0)},n.prototype.blur=function(){this._getDomValue(!1),this._getDomField(!1)},n.prototype.containsNode=function(e){if(this==e)return!0;var t=this.childs;if(t)for(var i=0,n=t.length;n>i;i++)if(t[i].containsNode(e))return!0;return!1},n.prototype._move=function(e,t){if(e!=t){if(e.containsNode(this))throw new Error("Cannot move a field into a child of itself");e.parent&&e.parent.removeChild(e);var i=e.clone();e.clearDom(),t?this.insertBefore(i,t):this.appendChild(i)}},n.prototype.removeChild=function(e){if(this.childs){var t=this.childs.indexOf(e);if(-1!=t){e.hide(),delete e.searchField,delete e.searchValue;var i=this.childs.splice(t,1)[0];return i.parent=null,this.updateDom({updateIndexes:!0}),i}}return void 0},n.prototype._remove=function(e){this.removeChild(e)},n.prototype.changeType=function(e){var t=this.type;if(t!=e){if("string"!=e&&"auto"!=e||"string"!=t&&"auto"!=t){var i,n=this.dom.tr?this.dom.tr.parentNode:void 0;i=this.expanded?this.getAppend():this.getDom();var r=i&&i.parentNode?i.nextSibling:void 0;this.hide(),this.clearDom(),this.type=e,"object"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),delete e.index,e.fieldEditable=!0,void 0==e.field&&(e.field="")}),("string"==t||"auto"==t)&&(this.expanded=!0)):"array"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),e.fieldEditable=!1,e.index=t}),("string"==t||"auto"==t)&&(this.expanded=!0)):this.expanded=!1,n&&(r?n.insertBefore(this.getDom(),r):n.appendChild(this.getDom())),this.showChilds()}else this.type=e;("auto"==e||"string"==e)&&("string"==e?this.value=String(this.value):this.value=this._stringCast(String(this.value)),this.focus()),this.updateDom({updateIndexes:!0})}},n.prototype._getDomValue=function(e){if(this.dom.value&&"array"!=this.type&&"object"!=this.type&&(this.valueInnerText=s.getInnerText(this.dom.value)),void 0!=this.valueInnerText)try{var t;if("string"==this.type)t=this._unescapeHTML(this.valueInnerText);else{var i=this._unescapeHTML(this.valueInnerText);t=this._stringCast(i)}t!==this.value&&(this.value=t,this._debouncedOnChangeValue())}catch(n){if(this.value=void 0,e!==!0)throw n}},n.prototype._onChangeValue=function(){var e=this.editor.getSelection();if(e.range){var t=s.textDiff(String(this.value),String(this.previousValue));e.range.startOffset=t.start,e.range.endOffset=t.end}var i=this.editor.getSelection();if(i.range){var n=s.textDiff(String(this.previousValue),String(this.value));i.range.startOffset=n.start,i.range.endOffset=n.end}this.editor._onAction("editValue",{node:this,oldValue:this.previousValue,newValue:this.value,oldSelection:e,newSelection:i}),this.previousValue=this.value},n.prototype._onChangeField=function(){var e=this.editor.getSelection();if(e.range){var t=s.textDiff(this.field,this.previousField);e.range.startOffset=t.start,e.range.endOffset=t.end}var i=this.editor.getSelection();if(i.range){var n=s.textDiff(this.previousField,this.field);i.range.startOffset=n.start,i.range.endOffset=n.end}this.editor._onAction("editField",{node:this,oldValue:this.previousField,newValue:this.field,oldSelection:e,newSelection:i}),this.previousField=this.field},n.prototype._updateDomValue=function(){var e=this.dom.value;if(e){var t=["jsoneditor-value"],i=this.value,n="auto"==this.type?s.type(i):this.type,r="string"==n&&s.isUrl(i);t.push("jsoneditor-"+n),r&&t.push("jsoneditor-url");var o=""==String(this.value)&&"array"!=this.type&&"object"!=this.type;if(o&&t.push("jsoneditor-empty"),this.searchValueActive&&t.push("jsoneditor-highlight-active"),this.searchValue&&t.push("jsoneditor-highlight"),e.className=t.join(" "),"array"==n||"object"==n){var a=this.childs?this.childs.length:0;e.title=this.type+" containing "+a+" items"}else r&&this.editable.value?e.title="Ctrl+Click or Ctrl+Enter to open url in new window":e.title="";"boolean"===n&&this.editable.value?(this.dom.checkbox||(this.dom.checkbox=document.createElement("input"),this.dom.checkbox.type="checkbox",this.dom.tdCheckbox=document.createElement("td"),this.dom.tdCheckbox.className="jsoneditor-tree",this.dom.tdCheckbox.appendChild(this.dom.checkbox),this.dom.tdValue.parentNode.insertBefore(this.dom.tdCheckbox,this.dom.tdValue)),this.dom.checkbox.checked=this.value):this.dom.tdCheckbox&&(this.dom.tdCheckbox.parentNode.removeChild(this.dom.tdCheckbox),delete this.dom.tdCheckbox,delete this.dom.checkbox),s.stripFormatting(e)}},n.prototype._updateDomField=function(){var e=this.dom.field;if(e){var t=""==String(this.field)&&"array"!=this.parent.type;t?s.addClassName(e,"jsoneditor-empty"):s.removeClassName(e,"jsoneditor-empty"),this.searchFieldActive?s.addClassName(e,"jsoneditor-highlight-active"):s.removeClassName(e,"jsoneditor-highlight-active"),this.searchField?s.addClassName(e,"jsoneditor-highlight"):s.removeClassName(e,"jsoneditor-highlight"),s.stripFormatting(e)}},n.prototype._getDomField=function(e){if(this.dom.field&&this.fieldEditable&&(this.fieldInnerText=s.getInnerText(this.dom.field)),void 0!=this.fieldInnerText)try{var t=this._unescapeHTML(this.fieldInnerText);t!==this.field&&(this.field=t,this._debouncedOnChangeField())}catch(i){if(this.field=void 0,e!==!0)throw i}},n.prototype.validate=function(){var e=[];if("object"===this.type){for(var t={},i=[],n=0;n0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");e.drag=i,i.className="jsoneditor-dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");e.menu=r,r.className="jsoneditor-contextmenu",r.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),a=r._nextSibling(),l=i.editor,c=s.getAbsoluteTop(o.dom.tr)-s.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=s.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=s.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:a,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,l,c,h,d,u,f,p,g,m,v,w,A=e[0].editor,y=t.pageY-A.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=s.getAbsoluteTop(i),m=i.offsetHeight,f>y){r=i;do r=r.previousSibling,d=n.getNodeFromTarget(r),p=r?s.getAbsoluteTop(r):0;while(r&&p>y);d&&!d.parent&&(d=void 0),d||(h=i.parentNode.firstChild,r=h?h.nextSibling:void 0,d=n.getNodeFromTarget(r),d==b&&(d=void 0)),d&&(r=d.dom.tr,p=r?s.getAbsoluteTop(r):0,y>p+m&&(d=void 0)),d&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}else{var F=e[e.length-1];if(c=F.expanded&&F.append?F.append.getDom():F.dom.tr,l=c?c.nextSibling:void 0){g=s.getAbsoluteTop(l),o=l;do u=n.getNodeFromTarget(o),o&&(v=o.nextSibling?s.getAbsoluteTop(o.nextSibling):0,w=o?v-g:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling;while(o&&y>f+w);if(u&&u.parent){var x=C-A.drag.mouseX,S=Math.round(x/24/2),$=A.drag.level+S,D=u.getLevel();for(r=u.dom.tr.previousSibling;$>D&&r;){d=n.getNodeFromTarget(r);var k=e.some(function(e){return e===d||d._isChildOf(e)});if(k);else{if(!(d instanceof a))break;var B=d.parent.childs;if(B.length==e.length&&B[e.length-1]==F)break;u=n.getNodeFromTarget(r),D=u.getLevel()}r=r.previousSibling}c.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}}}E&&(A.drag.mouseX=C,A.drag.level=b.getLevel()),A.startAutoScroll(y),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,a=o.childs.indexOf(i),l=o.childs[a+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(s.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(s.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype._isChildOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},n.prototype._createDomField=function(){return document.createElement("div")},n.prototype.setHighlight=function(e){this.dom.tr&&(e?s.addClassName(this.dom.tr,"jsoneditor-highlight"):s.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},n.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?s.addClassName(this.dom.tr,"jsoneditor-selected"):s.removeClassName(this.dom.tr,"jsoneditor-selected"),t?s.addClassName(this.dom.tr,"jsoneditor-first"):s.removeClassName(this.dom.tr,"jsoneditor-first"), +this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},n.prototype.updateValue=function(e){this.value=e,this.updateDom()},n.prototype.updateField=function(e){this.field=e,this.updateDom()},n.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var i=this.dom.field;if(i){this.fieldEditable?(i.contentEditable=this.editable.field,i.spellcheck=!1,i.className="jsoneditor-field"):i.className="jsoneditor-readonly";var n;n=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",i.innerHTML=this._escapeHTML(n)}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",s.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",s.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),s.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&e.updateIndexes===!0&&this._updateDomIndexes(),e&&e.recurse===!0&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateDomIndexes=function(){var e=this.dom.value,t=this.childs;e&&t&&("array"==this.type?t.forEach(function(e,t){e.index=t;var i=e.dom.field;i&&(i.innerHTML=t)}):"object"==this.type&&t.forEach(function(e){void 0!=e.index&&(delete e.index,void 0==e.field&&(e.field=""))}))},n.prototype._createDomValue=function(){var e;return"array"==this.type?(e=document.createElement("div"),e.innerHTML="[...]"):"object"==this.type?(e=document.createElement("div"),e.innerHTML="{...}"):!this.editable.value&&s.isUrl(this.value)?(e=document.createElement("a"),e.href=this.value,e.target="_blank",e.innerHTML=this._escapeHTML(this.value)):(e=document.createElement("div"),e.contentEditable=this.editable.value,e.spellcheck=!1,e.innerHTML=this._escapeHTML(this.value)),e},n.prototype._createDomExpandButton=function(){var e=document.createElement("button");return this._hasChilds()?(e.className=this.expanded?"jsoneditor-expanded":"jsoneditor-collapsed",e.title="Click to expand/collapse this field (Ctrl+E). \nCtrl+Click to expand/collapse including all childs."):(e.className="jsoneditor-invisible",e.title=""),e},n.prototype._createDomTree=function(){var e=this.dom,t=document.createElement("table"),i=document.createElement("tbody");t.style.borderCollapse="collapse",t.className="jsoneditor-values",t.appendChild(i);var n=document.createElement("tr");i.appendChild(n);var r=document.createElement("td");r.className="jsoneditor-tree",n.appendChild(r),e.expand=this._createDomExpandButton(),r.appendChild(e.expand),e.tdExpand=r;var o=document.createElement("td");o.className="jsoneditor-tree",n.appendChild(o),e.field=this._createDomField(),o.appendChild(e.field),e.tdField=o;var s=document.createElement("td");s.className="jsoneditor-tree",n.appendChild(s),"object"!=this.type&&"array"!=this.type&&(s.appendChild(document.createTextNode(":")),s.className="jsoneditor-separator"),e.tdSeparator=s;var a=document.createElement("td");return a.className="jsoneditor-tree",n.appendChild(a),e.value=this._createDomValue(),a.appendChild(e.value),e.tdValue=a,t},n.prototype.onEvent=function(e){var t,i=e.type,n=e.target||e.srcElement,r=this.dom,o=this,a=this._hasChilds();if((n==r.drag||n==r.menu)&&("mouseover"==i?this.editor.highlighter.highlight(this):"mouseout"==i&&this.editor.highlighter.unhighlight()),"click"==i&&n==r.menu){var l=o.editor.highlighter;l.highlight(o),l.lock(),s.addClassName(r.menu,"jsoneditor-selected"),this.showContextMenu(r.menu,function(){s.removeClassName(r.menu,"jsoneditor-selected"),l.unlock(),l.unhighlight()})}if("click"==i&&(n==r.expand||("view"===o.editor.options.mode||"form"===o.editor.options.mode)&&"DIV"===n.nodeName)&&a){var c=e.ctrlKey;this._onExpand(c)}"change"==i&&n==r.checkbox&&(this.dom.value.innerHTML=!this.value,this._getDomValue());var h=r.value;if(n==h)switch(i){case"focus":t=this;break;case"blur":case"change":this._getDomValue(!0),this._updateDomValue(),this.value&&(h.innerHTML=this._escapeHTML(this.value));break;case"input":this._getDomValue(!0),this._updateDomValue();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"click":(e.ctrlKey||!this.editable.value)&&s.isUrl(this.value)&&window.open(this.value,"_blank");break;case"keyup":this._getDomValue(!0),this._updateDomValue();break;case"cut":case"paste":setTimeout(function(){o._getDomValue(!0),o._updateDomValue()},1)}var d=r.field;if(n==d)switch(i){case"focus":t=this;break;case"blur":case"change":this._getDomField(!0),this._updateDomField(),this.field&&(d.innerHTML=this._escapeHTML(this.field));break;case"input":this._getDomField(!0),this._updateDomField();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"keyup":this._getDomField(!0),this._updateDomField();break;case"cut":case"paste":setTimeout(function(){o._getDomField(!0),o._updateDomField()},1)}var u=r.tree;if(n==u.parentNode&&"click"==i&&!e.hasMoved){var f=void 0!=e.offsetX?e.offsetX<24*(this.getLevel()+1):e.pageX0?this.editor.multiselection.nodes:[this],y=A[0],C=A[A.length-1];if(13==u){if(f==this.dom.value)(!this.editable.value||e.ctrlKey)&&s.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var E=this._hasChilds();if(E){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==u)p&&w&&(n.onDuplicate(A),v=!0);else if(69==u)p&&(this._onExpand(g),f.focus(),v=!0);else if(77==u&&w)p&&(this.showContextMenu(f),v=!0);else if(46==u&&w)p&&(n.onRemove(A),v=!0);else if(45==u&&w)p&&!g?(this._onInsertBefore(),v=!0):p&&g&&(this._onInsertAfter(),v=!0);else if(35==u){if(m){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==u){if(m){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==u){if(m&&!g){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(m&&g&&w){if(C.expanded){var $=C.getAppend();r=$?$.nextSibling:void 0}else{var D=C.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof a&&1!=C.parent.childs.length&&_&&_.parent&&(l=this.editor.getSelection(),c=C._nextSibling(),A.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:A,oldBeforeNode:c,newBeforeNode:_,oldSelection:l,newSelection:this.editor.getSelection()})))}}else if(38==u)m&&!g?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!m&&p&&g&&w?(t=this._previousNode(),t&&(d=this.editor.multiselection,d.start=d.start||this,d.end=t,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),t.focus("field")),v=!0):m&&g&&w&&(t=y._previousNode(),t&&t.parent&&(l=this.editor.getSelection(),c=C._nextSibling(),A.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:A,oldBeforeNode:c,newBeforeNode:t,oldSelection:l,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(m&&!g){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(m&&g&&w){D=y.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B),t&&t.parent&&t instanceof a&&!t.isVisible()&&(l=this.editor.getSelection(),c=C._nextSibling(),A.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:A,oldBeforeNode:c,newBeforeNode:t,oldSelection:l,newSelection:this.editor.getSelection()})))}}else if(40==u)if(m&&!g)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!m&&p&&g&&w)i=this._nextNode(),i&&(d=this.editor.multiselection,d.start=d.start||this,d.end=i,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),i.focus("field")),v=!0;else if(m&&g&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(l=this.editor.getSelection(),c=C._nextSibling(),A.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:A,oldBeforeNode:c,newBeforeNode:_,oldSelection:l,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=r.getSelection();n.blurNodes(e);var a=r.getSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype._onSort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,r=this.sort;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return e[i]>n[i]?t:e[i]/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return this.editor.options.escapeUnicode===!0&&(n=s.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"',i=s.parse(t);return i.replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;i2&&b.push("'"+this.terminals_[y]+"'");var x="";x=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+this.terminals_[g]+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[g]||g,line:this.lexer.yylineno,loc:p,expected:b})}if(3==d){if(g==f)throw new Error(x||"Parsing halted.");h=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,p=this.lexer.yylloc,g=i()}for(;;){if(u.toString()in a[v])break;if(0==v)throw new Error(x||"Parsing halted.");t(1),v=r[r.length-1]}m=g,g=u,v=r[r.length-1],w=a[v]&&a[v][u],d=3}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+g);switch(w[0]){case 1:r.push(g),o.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(w[1]),g=null,m?(g=m,m=null):(h=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,p=this.lexer.yylloc,d>0&&d--);break;case 2:if(C=this.productions_[w[1]][1],F.$=o[o.length-C],F._$={first_line:s[s.length-(C||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(C||1)].first_column,last_column:s[s.length-1].last_column},A=this.performAction.call(F,l,h,c,this.yy,w[1],o,s),"undefined"!=typeof A)return A;C&&(r=r.slice(0,-1*C*2),o=o.slice(0,-1*C),s=s.slice(0,-1*C)),r.push(this.productions_[w[1]][0]),o.push(F.$),s.push(F._$),E=a[r[r.length-2]][r[r.length-1]],r.push(E);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?e:void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return"undefined"!=typeof e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t,i){"use strict";function n(e,t,i){var o=this._refs[i];if("string"==typeof o){if(!this._refs[o])return n.call(this,e,t,o);o=this._refs[o]}if(o=o||this._schemas[i],o instanceof w)return a(o.schema,this.opts.inlineRefs)?o.schema:o.validate||this._compile(o);var s,l,c,h=r.call(this,t,i);return h&&(s=h.schema,t=h.root,c=h.baseId),s instanceof w?l=s.validate||e.call(this,s.schema,t,void 0,c):s&&(l=a(s,this.opts.inlineRefs)?s:e.call(this,s,t,void 0,c)),l}function r(e,t){var i=g.parse(t,!1,!0),n=d(i),r=h(e.schema.id);if(n!==r){var a=u(n),l=this._refs[a];if("string"==typeof l)return o.call(this,e,l,i);if(l instanceof w)l.validate||this._compile(l),e=l;else if(l=this._schemas[a],l instanceof w){if(l.validate||this._compile(l),a==u(t))return{schema:l,root:e,baseId:r};e=l}if(!e.schema)return;r=h(e.schema.id)}return s.call(this,i,r,e.schema,e)}function o(e,t,i){var n=r.call(this,e,t);if(n){var o=n.schema,a=n.baseId;return e=n.root,o.id&&(a=f(a,o.id)),s.call(this,i,a,o,e)}}function s(e,t,i,n){if(e.hash=e.hash||"","#/"==e.hash.slice(0,2)){for(var o=e.hash.split("/"),s=1;s=1&&12>=i&&n>=1&&n<=g[i]}function o(e,t){var i=e.match(m);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return 23>=n&&59>=r&&59>=o&&(!t||s)}function s(e){var t=e.split(E);return r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&v.test(e)}function l(e){return b.test(e)&&w.test(e)}function c(e){try{return new RegExp(e),!0}catch(t){return!1}}function h(e,t){return e&&t?e>t?1:t>e?-1:e===t?0:void 0:void 0}function d(e,t){return e&&t&&(e=e.match(m),t=t.match(m),e&&t)?(e=e[1]+e[2]+e[3]+(e[4]||""),t=t[1]+t[2]+t[3]+(t[4]||""),e>t?1:t>e?-1:e===t?0:void 0):void 0}function u(e,t){if(e&&t){e=e.split(E),t=t.split(E);var i=h(e[0],t[0]);if(void 0!==i)return i||d(e[1],t[1])}}var f=i(30),p=/^\d\d\d\d-(\d\d)-(\d\d)$/,g=[0,31,29,31,30,31,30,31,31,30,31,30,31],m=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,v=/^[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i,w=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,A=/^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,y=/^(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)+)*(?:\/)?$/i,C=/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?)$/; +e.exports=n,n.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:v,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:A,"json-pointer":y,"relative-json-pointer":C},n.full={date:r,time:o,"date-time":s,uri:l,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:A,"json-pointer":y,"relative-json-pointer":C},n.compare={date:h,time:d,"date-time":u};var E=/t|\s/i,b=/\/|\:/},function(e,t,i){"use strict";var n=i(31),r=i(30);e.exports=function(){var e=[{type:"number",rules:["maximum","minimum","multipleOf"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","properties"]},{rules:["$ref","enum","not","anyOf","oneOf","allOf"]}];return e.all=["type","additionalProperties","patternProperties"],e.keywords=["additionalItems","$schema","id","title","description","default"],e.types=["number","integer","string","array","object","boolean","null"],e.forEach(function(t){t.rules=t.rules.map(function(t){return e.all.push(t),{keyword:t,code:n[t]}})}),e.keywords=r.toHash(e.all.concat(e.keywords)),e.all=r.toHash(e.all),e.types=r.toHash(e.types),e}},function(e,t,i){"use strict";function n(e){if(e.opts.meta!==!1){var t=i(32);e.addMetaSchema(t,o)}e.addKeyword("constant",{inline:i(33),statements:!0,errors:"full"}),e.addKeyword("contains",{type:"array",macro:r});var n=i(34);e.addKeyword("formatMaximum",{type:"string",inline:n,statements:!0,errors:"full"}),e.addKeyword("formatMinimum",{type:"string",inline:n,statements:!0,errors:"full"}),e.addKeyword("exclusiveFormatMaximum"),e.addKeyword("exclusiveFormatMinimum"),e.addKeyword("patternGroups"),e.addKeyword("switch",{inline:i(35),statements:!0,errors:"full"})}function r(e){return{not:{items:{not:e}}}}var o="https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json";e.exports={enable:n,META_SCHEMA_ID:o}},function(e,t,i){"use strict";e.exports=function(e,t){function i(e,t,n){function o(n){function o(n,o){if(n)t(n);else{if(!r._refs[s]&&!r._schemas[s])try{r.addSchema(o,s)}catch(a){return void t(a)}i(e,t)}}var s=n.missingSchema;if(r._refs[s]||r._schemas[s])return t(new Error("Schema "+s+" is loaded but"+n.missingRef+"cannot be resolved"));var a=r._loadingSchemas[s];a?"function"==typeof a?r._loadingSchemas[s]=[a,o]:a[a.length]=o:(r._loadingSchemas[s]=o,r.opts.loadSchema(s,function(e,t){var i=r._loadingSchemas[s];if(delete r._loadingSchemas[s],"function"==typeof i)i(e,t);else for(var n=0;na;a++)r(s[a]);for(a=0;l>a;a++)i(e,s[a],t)}else s&&r(s),i(e,s,t)}this.RULES.keywords[e]=!0,this.RULES.all[e]=!0}},function(e,t,i){function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,this.editable.field){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var r=document.createElement("td"),o=document.createElement("div");return o.innerHTML="(empty)",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,r=e.TYPE_TITLES,s=[{text:"Append",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}]}],a=new o(s,{close:i});a.show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom,o=n.menu;if(i==o&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var s=this.editor.highlighter;s.highlight(this.parent),s.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),s.unlock(),s.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(3),o=i(9);e.exports=n},function(e,t,i){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter { background: #ebebeb; color: #333 } .ace-jsoneditor.ace_editor { font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif; line-height: 1.3; } .ace-jsoneditor .ace_print-margin { width: 1px; background: #e8e8e8 } .ace-jsoneditor .ace_scroller { background-color: #FFFFFF } .ace-jsoneditor .ace_text-layer { color: gray } .ace-jsoneditor .ace_variable { color: #1a1a1a } .ace-jsoneditor .ace_cursor { border-left: 2px solid #000000 } .ace-jsoneditor .ace_overwrite-cursors .ace_cursor { border-left: 0px; border-bottom: 1px solid #000000 } .ace-jsoneditor .ace_marker-layer .ace_selection { background: lightgray } .ace-jsoneditor.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px #FFFFFF; border-radius: 2px } .ace-jsoneditor .ace_marker-layer .ace_step { background: rgb(255, 255, 0) } .ace-jsoneditor .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #BFBFBF } .ace-jsoneditor .ace_marker-layer .ace_active-line { background: #FFFBD1 } .ace-jsoneditor .ace_gutter-active-line { background-color : #dcdcdc } .ace-jsoneditor .ace_marker-layer .ace_selected-word { border: 1px solid lightgray } .ace-jsoneditor .ace_invisible { color: #BFBFBF } .ace-jsoneditor .ace_keyword, .ace-jsoneditor .ace_meta, .ace-jsoneditor .ace_support.ace_constant.ace_property-value { color: #AF956F } .ace-jsoneditor .ace_keyword.ace_operator { color: #484848 } .ace-jsoneditor .ace_keyword.ace_other.ace_unit { color: #96DC5F } .ace-jsoneditor .ace_constant.ace_language { color: darkorange } .ace-jsoneditor .ace_constant.ace_numeric { color: red } .ace-jsoneditor .ace_constant.ace_character.ace_entity { color: #BF78CC } .ace-jsoneditor .ace_invalid { color: #FFFFFF; background-color: #FF002A; } .ace-jsoneditor .ace_fold { background-color: #AF956F; border-color: #000000 } .ace-jsoneditor .ace_storage, .ace-jsoneditor .ace_support.ace_class, .ace-jsoneditor .ace_support.ace_function, .ace-jsoneditor .ace_support.ace_other, .ace-jsoneditor .ace_support.ace_type { color: #C52727 } .ace-jsoneditor .ace_string { color: green } .ace-jsoneditor .ace_comment { color: #BCC8BA } .ace-jsoneditor .ace_entity.ace_name.ace_tag, .ace-jsoneditor .ace_entity.ace_other.ace_attribute-name { color: #606060 } .ace-jsoneditor .ace_markup.ace_underline { text-decoration: underline } .ace-jsoneditor .ace_indent-guide { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y }';var n=e("../lib/dom");n.importCssString(t.cssText,t.cssClass)})},function(module,exports,__webpack_require__){"use strict";function compile(schema,root,localRefs,baseId){function localCompile(_schema,_root,localRefs,baseId){var isRoot=!_root||_root&&_root.schema==_schema;if(_root.schema!=root.schema)return compile.call(self,_schema,_root,localRefs,baseId);var validateCode=validateGenerator({isTop:!0,schema:_schema,isRoot:isRoot,baseId:baseId,root:_root,schemaPath:"",errSchemaPath:"#",errorPath:'""',RULES:RULES,validate:validateGenerator,util:util,resolve:resolve,resolveRef:resolveRef,usePattern:usePattern,useDefault:useDefault,useCustomRule:useCustomRule,opts:self.opts,formats:formats,self:self});if(validateCode=vars(refVal,refValCode)+vars(patterns,patternCode)+vars(defaults,defaultCode)+vars(customRules,customRuleCode)+validateCode,self.opts.beautify){var opts=self.opts.beautify===!0?{indent_size:2}:self.opts.beautify;beautify?validateCode=beautify(validateCode,opts):console.error('"npm install js-beautify" to use beautify option')}var validate;try{eval(validateCode),refVal[0]=validate}catch(e){throw console.log("Error compiling schema, function code:",validateCode),e}return validate.schema=_schema,validate.errors=null,validate.refs=refs,validate.refVal=refVal,validate.root=isRoot?validate:_root,validate}function resolveRef(e,t,i){t=resolve.url(e,t);var n,r,o=refs[t];if(void 0!==o)return n=refVal[o],r="refVal["+o+"]",resolvedRef(n,r);if(!i){var s=root.refs[t];if(void 0!==s)return n=root.refVal[s],r=addLocalRef(t,n),resolvedRef(n,r)}r=addLocalRef(t);var a=resolve.call(self,localCompile,root,t);if(!a){var l=localRefs&&localRefs[t];l&&(a=resolve.inlineRef(l,self.opts.inlineRefs)?l:compile.call(self,l,root,localRefs,e))}return a?(replaceLocalRef(t,a),resolvedRef(a,r)):void 0}function addLocalRef(e,t){var i=refVal.length;return refVal[i]=t,refs[e]=i,"refVal"+i}function replaceLocalRef(e,t){var i=refs[e];refVal[i]=t}function resolvedRef(e,t){return"object"==typeof e?{schema:e,code:t}:t}function usePattern(e){var t=patternsHash[e];return void 0===t&&(t=patternsHash[e]=patterns.length,patterns[t]=e),"pattern"+t}function useDefault(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return util.toQuotedString(e);case"object":if(null===e)return"null";var t=stableStringify(e),i=defaultsHash[t];return void 0===i&&(i=defaultsHash[t]=defaults.length,defaults[i]=e),"default"+i}}function useCustomRule(e,t,i,n){var r,o=e.definition.compile,s=e.definition.inline,a=e.definition.macro;o?r=o.call(self,t,i):a?(r=a.call(self,t,i),self.opts.validateSchema!==!1&&self.validateSchema(r,!0)):r=s?s.call(self,n,e.keyword,t,i):e.definition.validate;var l=customRules.length;return customRules[l]=r,{code:"customRule"+l,validate:r}}var self=this,refVal=[void 0],refs={},patterns=[],patternsHash={},defaults=[],defaultsHash={},customRules=[],customRulesHash={};root=root||{schema:schema,refVal:refVal,refs:refs};var formats=this._formats,RULES=this.RULES;return localCompile(schema,root,localRefs,baseId)}function patternCode(e,t){return"var pattern"+e+" = new RegExp("+util.toQuotedString(t[e])+");"}function defaultCode(e){return"var default"+e+" = defaults["+e+"];"}function refValCode(e,t){return t[e]?"var refVal"+e+" = refVal["+e+"];":""}function customRuleCode(e){return"var customRule"+e+" = customRules["+e+"];"}function vars(e,t){if(!e.length)return"";for(var i="",n=0;ns;++s){var c=a(e,t[s]);if(void 0==c&&o.original)return;r.push(c)}return i&&i.apply(null,r)||!0}},o=function(e,t){var i=r("",e,t);return void 0==i&&o.original?o.original.apply(this,arguments):i},s=function(e,t){if(-1!==t.indexOf("!")){var i=t.split("!");return s(e,i[0])+"!"+s(e,i[1])}if("."==t.charAt(0)){var n=e.split("/").slice(0,-1).join("/");for(t=n+"/"+t;-1!==t.indexOf(".")&&r!=t;){var r=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},a=function(e,t){t=s(e,t);var i=n.modules[t];if(!i){if(i=n.payloads[t],"function"==typeof i){var o={},a={id:t,uri:"",exports:o,packaged:!0},l=function(e,i){return r(t,e,i)},c=i(l,o,a);o=c||a.exports,n.modules[t]=o,delete n.payloads[t]}i=n.modules[t]=o||i}return i};e(t)}}(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,i){"use strict";function n(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function r(e,t,i){if(Array.prototype.indexOf)return e.indexOf(t,i);for(var n=i||0;n1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-(1/0)&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,d=Function.prototype.call,u=Array.prototype,f=Object.prototype,p=u.slice,g=d.bind(f.toString),m=d.bind(f.hasOwnProperty);if((h=m(f,"__defineGetter__"))&&(s=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];return i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),t+1==i.length,t+1==i.length?!0:void 0}()){var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(p.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:0>e&&(e=Math.max(i+e,0)),i>e+t||(t=i-e);var n=this.slice(e,e+t),r=p.call(arguments,2),o=r.length;if(e===i)o&&this.push.apply(this,r);else{var s=Math.min(t,i-e),a=e+s,l=a+o-s,c=i-a,h=i-s;if(a>l)for(var d=0;c>d;++d)this[l+d]=this[a+d];else if(l>a)for(d=c;d--;)this[l+d]=this[a+d];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;o>d;++d)this[e+d]=r[d]}return n};Array.isArray||(Array.isArray=function(e){return"[object Array]"==g(e)});var w=Object("a"),A="a"!=w[0]||!(0 in w);if(Array.prototype.forEach||(Array.prototype.forEach=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=arguments[1],r=-1,o=i.length>>>0;if("[object Function]"!=g(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var s=0;n>s;s++)s in i&&(r[s]=e.call(o,i[s],s,t));return r}),Array.prototype.filter||(Array.prototype.filter=function(e){var t,i=M(this),n=A&&"[object String]"==g(this)?this.split(""):i,r=n.length>>>0,o=[],s=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var a=0;r>a;a++)a in n&&(t=n[a],e.call(s,t,a,i)&&o.push(t));return o}),Array.prototype.every||(Array.prototype.every=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var o=0;n>o;o++)if(o in i&&!e.call(r,i[o],o,t))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var o=0;n>o;o++)if(o in i&&e.call(r,i[o],o,t))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;n>o;o++)o in i&&(r=e.call(void 0,r,i[o],o,t));return r}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(e){var t=M(this),i=A&&"[object String]"==g(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do o in this&&(r=e.call(void 0,r,i[o],o,t));while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=A&&"[object String]"==g(this)?this.split(""):M(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);i>n;n++)if(n in t&&t[n]===e)return n;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(e){var t=A&&"[object String]"==g(this)?this.split(""):M(this),i=t.length>>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(y+e);if(m(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var C;C=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=C();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var E=r({}),b="undefined"==typeof document||r(document.createElement("div"));if(!E||!b)var F=Object.defineProperty}if(!Object.defineProperty||F){var x="Property description must be an object: ",S="Object.defineProperty called on non-object: ",$="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(S+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError(x+i);if(F)try{return F.call(Object,e,t,i)}catch(n){}if(m(i,"value"))if(h&&(l(e,t)||c(e,t))){var r=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=r}else e[t]=i.value;else{if(!h)throw new TypeError($);m(i,"get")&&s(e,t,i.get),m(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)m(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(D){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";m(e,t);)t+="?";e[t]=!0;var i=m(e,t);return delete e[t],i}),!Object.keys){var k=!0,B=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],_=B.length;for(var L in{toString:null})k=!1;Object.keys=function O(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var O=[];for(var t in e)m(e,t)&&O.push(t);if(k)for(var i=0,n=_;n>i;i++){var r=B[i];m(e,r)&&O.push(r)}return O}}Date.now||(Date.now=function(){return(new Date).getTime()});var R=" \n \f\r   ᠎              \u2028\u2029\ufeff";if(!String.prototype.trim||R.trim()){R="["+R+"]";var T=new RegExp("^"+R+R+"*"),P=new RegExp(R+R+"*$");String.prototype.trim=function(){return String(this).replace(T,"").replace(P,"")}}var M=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,i){"use strict";e("./regexp"),e("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function(e,t,i){"use strict";var n="http://www.w3.org/1999/xhtml";return t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||n,e):document.createElement(e)},t.hasCssClass=function(e,t){var i=(e.className||"").split(/\s+/g);return-1!==i.indexOf(t)},t.addCssClass=function(e,i){t.hasCssClass(e,i)||(e.className+=" "+i)},t.removeCssClass=function(e,t){for(var i=e.className.split(/\s+/g);;){var n=i.indexOf(t);if(-1==n)break;i.splice(n,1)}e.className=i.join(" ")},t.toggleCssClass=function(e,t){for(var i=e.className.split(/\s+/g),n=!0;;){var r=i.indexOf(t);if(-1==r)break;n=!1,i.splice(r,1)}return n&&i.push(t),e.className=i.join(" "),n},t.setCssClass=function(e,i,n){n?t.addCssClass(e,i):t.removeCssClass(e,i)},t.hasCssString=function(e,t){var i,n=0;if(t=t||document,t.createStyleSheet&&(i=t.styleSheets)){for(;n=0?(r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]:(r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isTouchPad=r.indexOf("TouchPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(a.OSKey&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;50>h&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&93>=i&&(i=-1),!n&&13===i){var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS?e(t,n,i):!1}function r(){a=Object.create(null),a.count=0,a.lastT=0}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){return e.removeEventListener?e.removeEventListener(t,i,!1):void(e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i))},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){if("ontouchmove"in e){var n,r;t.addListener(e,"touchstart",function(e){var t=e.changedTouches[0];n=t.clientX,r=t.clientY}),t.addListener(e,"touchmove",function(e){var t=1,o=e.changedTouches[0];e.wheelX=-(o.clientX-n)/t,e.wheelY=-(o.clientY-r)/t,n=o.clientX,r=o.clientY,i(e)})}},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){var o,a,l,c=0,h={2:"dblclick",3:"tripleclick",4:"quadclick"};t.addListener(e,"mousedown",function(e){if(0!==t.getButton(e)?c=0:e.detail>1?(c++,c>4&&(c=1)):c=1,s.isIE){var d=Math.abs(e.clientX-o)>5||Math.abs(e.clientY-a)>5;(!l||d)&&(c=1),l&&clearTimeout(l),l=setTimeout(function(){l=null},i[c-1]||600),1==c&&(o=e.clientX,a=e.clientY)}if(e._clicks=c,n[r]("mousedown",e),c>4)c=0;else if(c>1)return n[r](h[c],e)}),s.isOldIE&&t.addListener(e,"dblclick",function(e){c=2,l&&clearTimeout(l),l=setTimeout(function(){l=null},i[c-1]||600),n[r]("mousedown",e),n[r](h[c],e)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){var t=e.keyCode;a[t]=(a[t]||0)+1,91==t||92==t?a.OSKey=!0:a.OSKey&&e.timeStamp-a.lastT>200&&1==a.count&&r(),1==a[t]&&a.count++,a.lastT=e.timeStamp;var o=n(i,e,t);return c=e.defaultPrevented,o}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){var t=e.keyCode;a[t]?a.count=Math.max(a.count-1,0):r(),(91==t||92==t)&&(a.OSKey=!1),a[t]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){var h=1;t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-"+h;t.addListener(i,"message",function r(o){o.data==n&&(t.stopPropagation(o),t.removeListener(i,"message",r),e())}),i.postMessage(n,"*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var n=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(r,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;n>i;i++)e[i]&&"object"==typeof e[i]?t[i]=this.copyObject(e[i]):t[i]=e[i];return t},t.deepCopy=function o(e){if("object"!=typeof e||!e)return e;var t;if(Array.isArray(e)){t=[];for(var i=0;ii?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"),0);(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),s=o.isEmpty();return n.$blockScrolling++,s&&n.selection.moveToPosition(i),n.$blockScrolling--,void n.textInput.onContextMenu(e.domEvent)}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&0>=a)t=this.$clickSelection.end,(r.end.row!=n.row||r.end.column!=n.column)&&(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,(r.start.row!=n.row||r.start.column!=n.column)&&(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>s||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor,r=n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);return r||200>i?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor,r=n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);return r||200>i?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();var o=s.session.getLength();if(t==o){var a=s.renderer.pixelToScreenCoordinates(0,d.y).row,h=d.$pos;if(a>s.session.documentToScreenRow(h.row,h.column))return i()}if(u!=r)if(u=r.text.join("
"),c.setHtml(u),c.show(),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(d);else{var f=d.domEvent.target,p=f.getBoundingClientRect(),g=c.getElement().style;g.left=p.right+"px",g.top=p.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),u&&(c.hide(),u=null,s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){var i=l.getRegion(t);if("foldWidgets"!=i){var n=t.getDocumentPosition().row,r=s.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;return o.hasCssClass(s,"ace_fold-widget")?i():(u&&e.$tooltipFollowsMouse&&n(r),d=r,void(h||(h=setTimeout(function(){h=null,d&&!e.isMousePressed?t():i()},50))))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!D||n||o)m.$blockScrolling+=1,m.moveCursorToPosition(e),m.$blockScrolling-=1,D=i,k={x:y,y:C};else{var s=r(k.x,k.y,y,C);s>h?D=null:i-D>=c&&(m.renderer.scrollCursorIntoView(),D=null)}}function i(e,t){var i=Date.now(),n=m.renderer.layerConfig.lineHeight,r=m.renderer.layerConfig.characterWidth,o=m.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:C-o.top,bottom:o.bottom-C}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};2>=a/r&&(h.column+=s.x.left=c/n&&(h.row+=s.y.top=l&&m.renderer.scrollCursorIntoView(h):$=i:$=null}function n(){var e=F;F=m.renderer.screenToTextCoordinates(y,C),t(F,e),i(F,e)}function d(){b=m.selection.toOrientedRange(),A=m.session.addMarker(b,"ace_selection",m.getSelectionStyle()),m.clearSelection(),m.isFocused()&&m.renderer.$cursorLayer.setBlinking(!1),clearInterval(E),n(),E=setInterval(n,20),_=0,s.addListener(document,"mousemove",f)}function u(){clearInterval(E),m.session.removeMarker(A),A=null,m.$blockScrolling+=1,m.selection.fromOrientedRange(b),m.$blockScrolling-=1,m.isFocused()&&!S&&m.renderer.$cursorLayer.setBlinking(!m.getReadOnly()),b=null,F=null,_=0,$=null,D=null,s.removeListener(document,"mousemove",f)}function f(){null==L&&(L=setTimeout(function(){null!=L&&A&&u()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function g(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,r="uninitialized";try{r=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var m=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var w=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];w.forEach(function(t){e[t]=this[t]},this),m.addEventListener("mousedown",this.onMouseDown.bind(e));var A,y,C,E,b,F,x,S,$,D,k,B=m.container,_=0;this.onDragStart=function(e){if(this.cancelDrag||!B.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}b=m.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=m.getReadOnly()?"copy":"copyMove",a.isOpera&&(m.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&m.container.removeChild(v),i.clearData(),i.setData("Text",m.session.getTextRange()),S=!0,this.setState("drag")},this.onDragEnd=function(e){if(B.draggable=!1,S=!1,this.setState(null),!m.getReadOnly()){var t=e.dataTransfer.dropEffect;x||"move"!=t||m.session.remove(m.getSelectionRange()),m.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){return!m.getReadOnly()&&p(e.dataTransfer)?(y=e.clientX,C=e.clientY,A||d(),_++,e.dataTransfer.dropEffect=x=g(e),s.preventDefault(e)):void 0},this.onDragOver=function(e){return!m.getReadOnly()&&p(e.dataTransfer)?(y=e.clientX,C=e.clientY,A||(d(),_++),null!==L&&(L=null),e.dataTransfer.dropEffect=x=g(e),s.preventDefault(e)):void 0},this.onDragLeave=function(e){return _--,0>=_&&A?(u(),x=null,s.preventDefault(e)):void 0},this.onDrop=function(e){if(F){var t=e.dataTransfer;if(S)switch(x){case"move":b=b.contains(F.row,F.column)?{start:F,end:F}:m.moveText(b,F);break;case"copy":b=m.moveText(b,F,!0)}else{var i=t.getData("Text");b={start:F,end:m.session.insert(F,i)},m.focus(),x=null}return u(),s.preventDefault(e)}},s.addListener(B,"dragstart",this.onDragStart.bind(e)),s.addListener(B,"dragend",this.onDragEnd.bind(e)),s.addListener(B,"dragenter",this.onDragEnter.bind(e)),s.addListener(B,"dragover",this.onDragOver.bind(e)),s.addListener(B,"dragleave",this.onDragLeave.bind(e)),s.addListener(B,"drop",this.onDrop.bind(e));var L=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var i=a.isWin?"default":"move";e.renderer.setCursorStyle(i),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){ +var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton(),r=e.domEvent.detail||1;if(1===r&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in o&&(o.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;var s=t.container;s.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){(i||!r.readyState||"loaded"==r.readyState||"complete"==r.readyState)&&(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;sv;v++){var A=m[v];0===A.name.indexOf("data-ace-")&&(s[o(A.name.replace(/^data-ace-/,""))]=A.value)}var y=g.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);y&&(a=y[1])}}a&&(s.base=s.base||a,s.packaged=!0),s.basePath=s.base,s.workerPath=s.workerPath||s.base,s.modePath=s.modePath||s.base,s.themePath=s.themePath||s.base,delete s.base;for(var C in s)"undefined"!=typeof s[C]&&t.set(C,s[C])}function o(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var s=e("./lib/lang"),a=(e("./lib/oop"),e("./lib/net")),l=e("./lib/app_config").AppConfig;n.exports=t=new l;var c=function(){return this||"undefined"!=typeof window&&window}(),h={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!h.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return h[e]},t.set=function(e,t){if(!h.hasOwnProperty(e))throw new Error("Unknown config key: "+e);h[e]=t},t.all=function(){return s.copyObject(h)},t.moduleUrl=function(e,t){if(h.$moduleUrls[e])return h.$moduleUrls[e];var i=e.split("/");t=t||i[i.length-2]||"";var n="snippets"==t?"/":"-",r=i[i.length-1];if("worker"==t&&"-"==n){var o=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");r=r.replace(o,"")}(!r||r==t)&&i.length>1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(s){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var l=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};return t.get("packaged")?void a.loadScript(t.moduleUrl(i,o),l):l()}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){document.hasFocus&&document.hasFocus()||window.focus(),e.focus(),e.isFocused()||window.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener(a,[400,300,250],this,"onMouseEvent"),e.renderer.scrollBarV&&(n.addMultiMouseDownListener(e.renderer.scrollBarV.inner,[400,300,250],this,"onMouseEvent"),n.addMultiMouseDownListener(e.renderer.scrollBarH.inner,[400,300,250],this,"onMouseEvent"),r.isIE&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i))),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",function(t){return e.focus(),n.preventDefault(t)}),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;o.setCursorStyle(!r.isEmpty()&&r.insideStart(n.row,n.column)?"default":"")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,r=e.session;r.foldWidgets&&r.foldWidgets[n]&&e.session.onFoldWidgetClick(n,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,r=e.session,o=r.getParentFoldRangeData(n,!0),s=o.range||o.firstRange;if(s){n=s.start.row;var a=r.getFoldAt(n,r.getLine(n).length,1);a?r.removeFold(a):(r.addFold("...",s),e.renderer.scrollCursorIntoView({row:s.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1==t?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&(o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n),!(o&&o.command&&(s="null"==o.command?!0:a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s))););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return 0==this.compare(e,t)?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return 0==this.compare(e,t)?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if("undefined"==typeof t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,t===!0?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(t.column-i,t.column).split(" ").length-1==i?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e,t=this.lead.row,i=this.lead.column,n=this.doc.getLine(t),r=n.substring(i);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var o=this.session.getFoldAt(t,i,1);return o?void this.moveCursorTo(o.end.row,o.end.column):((e=this.session.nonTokenRe.exec(r))&&(i+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(i)),i>=n.length?(this.moveCursorTo(t,n.length),this.moveCursorRight(),void(t=i?(this.moveCursorTo(t,0),this.moveCursorLeft(),void(t>0&&this.moveCursorWordLeft())):((o=this.session.tokenRe.exec(s))&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),void this.moveCursorTo(t,i))},this.$shortWordEndIndex=function(e){var t,i,n=0,r=/\s/,o=this.session.tokenRe;if(o.lastIndex=0,t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(i=e[n])&&r.test(i);)n++;if(1>n)for(o.lastIndex=0;(i=e[n])&&!o.test(i);)if(o.lastIndex=0,n++,r.test(i)){if(n>2){n--;break}for(;(i=e[n])&&r.test(i);)n++;if(n>2)break}}return o.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do e++,n=this.doc.getLine(e);while(o>e&&/^\s*$/.test(n));/^\s+/.test(n)||(n=""),t=0}var s=this.$shortWordEndIndex(n);this.moveCursorTo(e,t+s)},this.moveCursorShortWordLeft=function(){var e,t=this.lead.row,i=this.lead.column;if(e=this.session.getFoldAt(t,i,-1))return this.moveCursorTo(e.start.row,e.start.column);var n=this.session.getLine(t).substring(0,i);if(0===i){do t--,n=this.doc.getLine(t);while(t>0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column);var n=this.session.screenToDocumentPosition(i.row+e,i.column);0!==e&&0===t&&n.row===this.lead.row&&n.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[n.row]&&(n.row>0||e>0)&&n.row++,this.moveCursorTo(n.row,n.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e.call(null,this);var i=this.getCursor();return s.fromPoints(t,i)}catch(n){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?c.onMatch=this.$applyToken:c.onMatch=c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;o>r;r++)t[r]&&(n[n.length]={type:i[r],value:t[r]});return n},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";for(var i=[],n=this.tokenArray,r=0,o=n.length;o>r;r++)t[r+1]&&(i[i.length]={type:n[r],value:t[r+1]});return i},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(-1!=e.indexOf("(?=")){var i=0,n=!1,r={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,o,s,a,l){return n?n="]"!=a:a?n=!0:s?(i==r.stack&&(r.end=l+1,r.stack=-1),i--):o&&(i++,1!=o.length&&(r.stack=i,r.start=l)),e}),null!=r.end&&/^\)*$/.test(e.substr(r.end))&&(e=e.substring(0,r.start)+e.substr(r.end))}return"^"!=e.charAt(0)&&(e="^"+e),"$"!=e.charAt(e.length-1)&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&"string"!=typeof t){var i=t.slice(0);t=i[0],"#tmp"===t&&(i.shift(),t=i.shift())}else var i=[];var n=t||"start",o=this.states[n];o||(n="start",o=this.states[n]);var s=this.matchMappings[n],a=this.regExps[n]; +a.lastIndex=0;for(var l,c=[],h=0,d=0,u={type:null,value:""};l=a.exec(e);){var f=s.defaultToken,p=null,g=l[0],m=a.lastIndex;if(m-g.length>h){var v=e.substring(h,m-g.length);u.type==f?u.value+=v:(u.type&&c.push(u),u={type:f,value:v})}for(var w=0;wr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(n.prototype),t.TokenIterator=n}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour").Behaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r,this.$behaviour=new o};(function(){this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"), +this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules,this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;n>=t;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},g=f+" ",m=function(e,t){(!s||/\S/.test(e))&&(w(e,c,c)?o.insertInLine({row:t,column:c},g):o.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,A=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),y=new RegExp("(?:"+a.escapeRegExp(A)+")\\s*$"),m=function(e,t){v(e,t)||(!s||/\S/.test(e))&&(o.insertInLine({row:t,column:e.length},A),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(y))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;ri&&(c=i),l&&!v(e,t)&&(l=!1)):C>e.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),d&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:m)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),d=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var u,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var g=a.getCurrentTokenRow(),m=a.getCurrentTokenColumn()+p;u=new c(g,m,g,m+r.start.length);break}h=a.stepBackward()}for(var a=new l(t,n.row,n.column),h=a.getCurrentToken();h&&/comment/.test(h.type);){var p=h.value.indexOf(r.end);if(-1!=p){var g=a.getCurrentTokenRow(),m=a.getCurrentTokenColumn()+p;f=new c(g,m,g,m+r.end.length);break}h=a.stepForward()}f&&t.remove(f),u&&(t.remove(u),o=u.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==o&&(d.start.column+=s),d.end.row==o&&(d.end.column+=s),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;to;o++)if("string"==typeof r[o].token)/keyword|support|storage/.test(r[o].token)&&i.push(r[o].regex);else if("object"==typeof r[o].token)for(var a=0,l=r[o].token.length;l>a;a++)if(/keyword|support|storage/.test(r[o].token[a])){var n=r[o].regex.match(/\(.+?\)/g)[a];i.push(n.substr(1,n.length-2))}this.completionKeywords=i}return e?i.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,i,n){var r=this.$keywordList||this.$createKeywordList();return r.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(h.prototype),t.Mode=h}),ace.define("ace/apply_delta",["require","exports","module"],function(e,t,i){"use strict";t.applyDelta=function(e,t,i){var n=t.start.row,r=t.start.column,o=e[n]||"";switch(t.action){case"insert":var s=t.lines;if(1===s.length)e[n]=o.substring(0,r)+t.lines[0]+o.substring(r);else{var a=[n,1].concat(t.lines);e.splice.apply(e,a),e[n]=o.substring(0,r)+e[n],e[n+t.lines.length-1]+=o.substring(r)}break;case"remove":var l=t.end.column,c=t.end.row;n===c?e[n]=o.substring(0,r)+o.substring(l):e.splice(n,c-n+1,o.substring(0,r)+e[c].substring(l))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=t.Anchor=function(e,t,i){this.$onChange=this.onChange.bind(this),this.attach(e),"undefined"==typeof i?this.setPosition(t.row,t.column):this.setPosition(t,i)};(function(){function e(e,t,i){var n=i?e.column<=t.column:e.columnthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):0>e?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),0>t&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:0>e?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var i;return i=t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;o>r;r++)if(e-=i[r].length+n,0>e)return{row:r,column:e+i[r].length+n};return{row:o-1,column:i[o-1].length}},this.positionToIndex=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=0,o=Math.min(e.row,i.length),s=t||0;o>s;++s)r+=i[s].length+n;return r+e.column}}).call(l.prototype),t.Document=l}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var i=this;this.$worker=function(){if(i.running){for(var e=new Date,t=i.currentLine,n=-1,r=i.doc,o=t;i.lines[t];)t++;var s=r.getLength(),a=0;for(i.running=!1;s>t;){i.$tokenizeRow(t),n=t;do t++;while(i.lines[t]);if(a++,a%5===0&&new Date-e>20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,n>=o&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;a>=l;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;ce)return{row:n.start.row,column:n.start.column+e};if(e-=n.placeholder.length,0>e)return n.start;t=n.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(n.prototype),t.FoldLine=n}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("./range").Range,r=n.comparePoints,o=function(){this.ranges=[]};(function(){this.comparePoints=r,this.pointIndex=function(e,t,i){for(var n=this.ranges,o=i||0;o0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);0>i&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return 0>n?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.call(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);return t>=0?this.ranges.splice(t,1):void 0},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;os||(0!=s||i.isEmpty()||n.isEmpty())&&(r(i.end,n.end)<0&&(i.end.row=n.end.row,i.end.column=n.end.column),t.splice(o,1),e.push(n),n=i,o--)}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);return t>=0?this.ranges[t]:void 0},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown&&(n=-n-1);var r=this.pointIndex({row:t,column:0},n);0>r&&(r=-r-1);for(var o=[],s=n;r>s;s++)o.push(i[s]);return o},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(e){if("insert"==e.action)var t=e.start,i=e.end;else var i=e.start,t=e.end;for(var n=t.row,r=i.row,o=r-n,s=-t.column+i.column,a=this.ranges,l=0,c=a.length;c>l;l++){var h=a[l];if(!(h.end.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&c-1>l&&h.end.column>h.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&c>l)for(;c>l;l++){var h=a[l];h.start.row+=o,h.end.row+=o}}}).call(o.prototype),t.RangeList=o}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t,i){"use strict";function n(e,t){e.row-=t.row,0==e.row&&(e.column-=t.column)}function r(e,t){n(e.start,t),n(e.end,t)}function o(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row}function s(e,t){o(e.start,t),o(e.end,t)}var a=(e("../range").Range,e("../range_list").RangeList),l=e("../lib/oop"),c=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};l.inherits(c,a),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new c(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(!this.range.isEqual(e)){if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);r(e,this.start);for(var t=e.start.row,i=e.start.column,n=0,o=-1;n=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){t>a&&(a>=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(c>a||a==c&&h-2>=l))throw new Error("The range has to be at least 2 characters width");var d=this.getFoldAt(a,l,1),u=this.getFoldAt(c,h,-1);if(d&&u==d)return d.addSubFold(i);d&&!d.range.isStart(a,l)&&this.removeFold(d),u&&!u.range.isEnd(c,h)&&this.removeFold(u);var f=this.getFoldsInRange(i.range);f.length>0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);return n.length?n:void 0},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(n>t)){if(t==n){if(r>i)return;a=Math.max(r,a)}s+=null!=e?e:o.getLine(t).substring(a,i)}},t,i),s},this.getDisplayLine=function(e,t,i,n){var r=this.getFoldLine(e);if(r)return this.getFoldDisplayLine(r,e,t,i,n);var o;return o=this.doc.getLine(e),o.substring(n||0,t||o.length)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var i=t.folds.map(function(e){return e.clone()});return new o(e,i)})},this.toggleFold=function(e){var t,i,n=this.selection,r=n.getRange();if(r.isEmpty()){var o=r.start;if(t=this.getFoldAt(o.row,o.column))return void this.expandFold(t);(i=this.findMatchingBracket(o))?1==r.comparePoint(i)?r.end=i:(r.start=i,r.start.column++,r.end.column--):(i=this.findMatchingBracket({row:o.row,column:o.column+1}))?(1==r.comparePoint(i)?r.end=i:r.start=i,r.start.column++):r=this.getCommentFoldRange(o.row,o.column)||r}else{var s=this.getFoldsInRange(r);if(e&&s.length)return void this.expandFolds(s);1==s.length&&(t=s[0])}if(t||(t=this.getFoldAt(r.start.row,r.start.column)),t&&t.range.toString()==r.toString())return void this.expandFold(t);var a="...";if(!r.isMultiLine()){if(a=this.getTextRange(r),a.length<4)return;a=a.trim().substring(0,2)+".."}this.addFold(a,r)},this.getCommentFoldRange=function(e,t,i){var n=new a(this,e,t),o=n.getCurrentToken();if(o&&/^comment|string/.test(o.type)){var s=new r,l=new RegExp(o.type.replace(/\..*/,"\\."));if(1!=i){do o=n.stepBackward();while(o&&l.test(o.type));n.stepForward()}if(s.start.row=n.getCurrentTokenRow(),s.start.column=n.getCurrentTokenColumn()+2,n=new a(this,e,t),-1!=i){do o=n.stepForward();while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return s.end.row=n.getCurrentTokenRow(),s.end.column=n.getCurrentTokenColumn()+o.value.length-2,s}},this.foldAll=function(e,t,i){void 0==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength(),e=e||0;for(var r=e;t>r;r++)if(null==n[r]&&(n[r]=this.getFoldWidget(r)),"start"==n[r]){var o=this.getFoldWidgetRange(r);if(o&&o.isMultiLine()&&o.end.row<=t&&o.start.row>=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(a){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]"); +if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},n=this.$toggleFoldWidget(e,i);if(!n){var r=t.target||t.srcElement;r&&/ace_fold-widget/.test(r.className)&&(r.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return void(t.children||t.all?this.removeFold(o):this.expandFold(o));var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1),o&&s.isEqual(o.range)))return void this.removeFold(o);if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(o-=1,0==o)return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do a=s.stepBackward();while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;h>l;){var d=c.charAt(l);if(d==n){if(o-=1,0==o)return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else d==e&&(o+=1);l+=1}do a=s.stepForward();while(a&&!i.test(a.type));if(null==a)break;l=0}return null}}}var r=e("../token_iterator").TokenIterator,o=e("../range").Range;t.BracketMatch=n}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/lang"),o=e("./config"),s=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,l=e("./mode/text").Mode,c=e("./range").Range,h=e("./document").Document,d=e("./background_tokenizer").BackgroundTokenizer,u=e("./search_highlight").SearchHighlight,f=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),"object"==typeof e&&e.getLine||(e=new h(e)),this.setDocument(e),this.selection=new a(this),o.resetOptions(this),this.setMode(t),o._signal("session",this)};(function(){function e(e){return 4352>e?!1:e>=4352&&4447>=e||e>=4515&&4519>=e||e>=4602&&4607>=e||e>=9001&&9002>=e||e>=11904&&11929>=e||e>=11931&&12019>=e||e>=12032&&12245>=e||e>=12272&&12283>=e||e>=12288&&12350>=e||e>=12353&&12438>=e||e>=12441&&12543>=e||e>=12549&&12589>=e||e>=12593&&12686>=e||e>=12688&&12730>=e||e>=12736&&12771>=e||e>=12784&&12830>=e||e>=12832&&12871>=e||e>=12880&&13054>=e||e>=13056&&19903>=e||e>=19968&&42124>=e||e>=42128&&42182>=e||e>=43360&&43388>=e||e>=44032&&55203>=e||e>=55216&&55238>=e||e>=55243&&55291>=e||e>=63744&&64255>=e||e>=65040&&65049>=e||e>=65072&&65106>=e||e>=65108&&65126>=e||e>=65128&&65131>=e||e>=65281&&65376>=e||e>=65504&&65510>=e}n.implement(this,s),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;n>=i;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(o>t))return r;n=r-1}}return i-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);this.$fromUndo||!this.$undoManager||e.ignore||(this.$deltasDoc.push(e),t&&0!=t.length&&this.$deltasFold.push({action:"removeFolds",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var i,n=this.bgTokenizer.getTokens(e),r=0;if(null==t)o=n.length-1,r=this.getLine(e).length;else for(var o=0;o=t));o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do o--;while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;a>l;l++){if(l>s){if(l=o.end.row+1,l>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,h=o.start,s=h.row-l.row,a=h.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;t>=n;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new c(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;n>s&&" "==o.charAt(s);++s);n>s&&" "==o.charAt(s)?(i.start.column=s,i.end.column=s+1):(i.start.column=0,i.end.column=s),this.remove(i)}},this.$moveLines=function(e,t,i){if(e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t),0>i){var n=this.getRowFoldStart(e+i);if(0>n)return 0;var r=n-e}else if(i>0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new c(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return 0>t?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),0>e)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)&&(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1?(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),d=0;if(h){var g=h.range.compareInside(n.row,n.column);0==g?(h=h.split(n.row,n.column),h&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column))):-1==g&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var i,n,r=this.doc.getAllLines(),o=this.getTabSize(),s=this.$wrapData,l=this.$wrapLimit,c=e;for(t=Math.min(t,r.length-1);t>=c;)n=this.getFoldLine(c,n),n?(i=[],n.walk(function(e,t,n,o){var s;if(null!=e){s=this.$getDisplayTokens(e,i.length),s[0]=a;for(var l=1;lt-A;){var y=c+t-A;if(e[y-1]>=p&&e[y]>=p)o(y);else if(e[y]!=a&&e[y]!=h){for(var C=Math.max(y-(t-(t>>2)),c-1);y>C&&e[y]C&&e[y]C&&e[y]==f;)y--}else for(;y>C&&e[y]C?o(++y):(y=c+t,e[y]==i&&y--,o(y-A))}else{for(y;y!=c-1&&e[y]!=a;y--);if(y>c){o(y);continue}for(y=c+t;yc;c++)s.push(m)}else 32==l?s.push(p):l>39&&48>l||l>57&&64>l?s.push(f):l>=4352&&e(l)?s.push(t,i):s.push(t)}return s},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?2:1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]e)return{row:0,column:0};var i,n,r=0,o=0,s=0,a=0,l=this.$screenRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var s=l[c],r=this.$docRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getLength()-1,f=this.getNextFoldLine(r),p=f?f.start.row:1/0;e>=s&&(a=this.getRowLength(r),!(s+a>e||r>=u));)s+=a,r++,r>p&&(r=f.end.row+1,f=this.getNextFoldLine(r,f),p=f?f.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(s));if(f&&f.start.row<=r)i=this.getFoldDisplayLine(f),r=f.start.row;else{if(e>=s+a||r>u)return{row:u,column:this.getLine(u).length};i=this.getLine(r),f=null}var g=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){var v=Math.floor(e-s);n=m[v],v>0&&m.length&&(g=m.indent,o=m[v-1]||m[m.length-1],i=i.substring(o))}}return o+=this.$getStringScreenWidth(i,t-g)[1],this.$useWrapMode&&o>=n&&(o=n-1),f?f.idxToPosition(o):{row:r,column:o}},this.documentToScreenPosition=function(e,t){if("undefined"==typeof t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;o=this.getFoldAt(e,t,1),o&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getNextFoldLine(a),f=u?u.start.row:1/0;e>a;){if(a>=f){if(s=u.end.row+1,s>e)break;u=this.getNextFoldLine(s,u),f=u?u.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var g=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){for(var v=0;p.length>=m[v];)n++,v++;p=p.substring(m[v-1]||0,p.length),g=v>0?m.indent:0}}return{row:n,column:g+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;i>n;){var s=this.$wrapData[n];e+=s?s.length+1:1,n++,n>o&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(f.prototype),e("./edit_session/folding").Folding.call(f.prototype),e("./edit_session/bracket_match").BracketMatch.call(f.prototype),o.defineOptions(f.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e="auto"==e?"text"!=this.$mode.type:"text"!=e,e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=f}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=e("./lib/oop"),o=e("./range").Range,s=function(){this.$options={}};(function(){this.set=function(e){return r.mixin(this.$options,e),this},this.getOptions=function(){return n.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r){if(e.start)n=e;else{var s=e.offset+(r||0);if(n=new o(i,s,i,s+e.length),!e.length&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))return n=null,!1}return!0}),n},this.findAll=function(e){ +var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,r=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=r.length-c;e:for(var d=a.offset||0;h>=d;d++){for(var u=0;c>u;u++)if(-1==r[d+u].search(a[u]))continue e;var f=r[d],p=r[d+c-1],g=f.length-f.match(a[0])[0].length,m=p.match(a[c-1])[0].length;l&&l.end.row===d&&l.end.column>g||(s.push(l=new o(d,g,d+c-1,m)),c>2&&(d=d+c-2))}}else for(var v=0;vv&&s[v].start.columnv&&s[u].end.column>C&&s[u].end.row==i.end.row;)u--;for(s=s.slice(v,u+1),v=0,u=s.length;u>v;v++)s[v].start.row+=i.start.row,s[v].end.row+=i.start.row}return s},this.replace=function(e,t){var i=this.$options,n=this.$assembleRegExp(i);if(i.$isMultiLine)return t;if(n){var r=n.exec(e);if(!r||r[0].length!=e.length)return null;if(t=e.replace(n,t),i.preserveCase){t=t.split("");for(var o=Math.min(e.length,e.length);o--;){var s=e[o];s&&s.toLowerCase()!=s?t[o]=t[o].toUpperCase():t[o]=t[o].toLowerCase()}t=t.join("")}return t}},this.$matchIterator=function(e,t){var i=this.$assembleRegExp(t);if(!i)return!1;var r;if(t.$isMultiLine)var s=i.length,a=function(t,n,a){var l=t.search(i[0]);if(-1!=l){for(var c=1;s>c;c++)if(t=e.getLine(n+c),-1==t.search(i[c]))return;var h=t.match(i[s-1])[0].length,d=new o(n,l,n+s-1,h);return 1==i.offset?(d.start.row--,d.start.column=Number.MAX_VALUE):a&&(d.start.column+=a),r(d)?!0:void 0}};else if(t.backwards)var a=function(e,t,o){for(var s=n.getMatchOffsets(e,i),a=s.length-1;a>=0;a--)if(r(s[a],t,o))return!0};else var a=function(e,t,o){for(var s=n.getMatchOffsets(e,i),a=0;a=s;n--)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=a,s=o.row;n>=s;n--)if(i(e.getLine(n),n))return}}:function(i){var n=o.row,r=e.getLine(n).substr(o.column);if(!i(r,n,o.column)){for(n+=1;a>=n;n++)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=s,a=o.row;a>=n;n++)if(i(e.getLine(n),n))return}};return{forEach:l}}}).call(s.prototype),t.Search=s}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){return"object"==typeof e&&(void 0==i&&(i=e.position),e=e[this.platform]),e?"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this):void 0},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=n||i.isDefault?-100:e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(0>n)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),r.returnValue===!1?!1:!0},this.toggleRecording=function(e){return this.$inReplay?void 0:(e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0))},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","Ctrl-E"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Ctrl-Shift-E"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){return e.selection.isEmpty()?void e.remove("left"):!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.removeEventListener("changeCursor",this.$onCursorChange),i.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){ +return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value){do a=r,r=n.stepForward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0)}else{do r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=s);n.stepForward()}if(!r)return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);var l=n.getCurrentTokenRow(),c=n.getCurrentTokenColumn(),h=new f(l,c,l,c+r.value.length);t.$tagHighlight&&0!==h.compareRange(t.$backMarkers[t.$tagHighlight].range)&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),h&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(h,"ace_bracket","text"))}}},50)}},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},this.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,i=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,i,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(v.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||o>=n&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){var a=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s});return a}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if(" "==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&this.selection.setSelectionRange(2==o.selection.length?new f(r.row,c+o.selection[0],r.row,c+o.selection[1]):new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3])),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var n=new f(0,0,0,0),r=e.first;r<=e.last;r++){var o=t.getLine(r);n.start.row=r,n.end.row=r,n.end.column=o.length,t.replace(n,i[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){var o={value:r[0],start:r.index,end:r.index+r[0].length};return o}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),e*=s!==o.end&&s>i?Math.pow(10,o.end-i-1):Math.pow(10,o.end-i),l+=e,l/=Math.pow(10,a);var c=l.toFixed(a),h=new f(t,o.start,t,o.end);this.session.replace(h,c),this.moveCursorTo(t,Math.max(o.start+1,i+c.length-o.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,i=e.getRange(),n=e.isBackwards();if(i.isEmpty()){var r=i.start.row;t.duplicateLines(r,r)}else{var o=n?i.start:i.end,s=t.insert(o,t.getTextRange(i),!1);i.start=o,i.end=s,e.setSelectionRange(i,n)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,i){return this.session.moveText(e,t,i)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var i,n,r=this.selection;if(!r.inMultiSelectMode||this.inVirtualSelectionMode){var o=r.toOrientedRange();i=this.$getSelectedRows(o),n=this.session.$moveLines(i.first,i.last,t?0:e),t&&-1==e&&(n=0),o.moveBy(n,0),r.fromOrientedRange(o)}else{var s=r.rangeList.ranges;r.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,h=0;c>h;h++){var d=h;s[h].moveBy(a,0),i=this.$getSelectedRows(s[h]);for(var u=i.first,f=i.last;++hf+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);h>=d;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):t===!1&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0?!0:o.topwindow.innerHeight?!1:null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.removeEventListener("changeSelection",o),this.renderer.removeEventListener("afterRender",a),this.renderer.removeEventListener("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}).call(A.prototype),v.defineOptions(A.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=A}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(g=o.end.row+1,o=t.getNextFoldLine(g,o),s=o?o.start.row:1/0),g>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f); +var m="ace_gutter-cell ";l[g]&&(m+=l[g]),c[g]&&(m+=c[g]),this.$annotations[g]&&(m+=this.$annotations[g].className),f.element.className!=m&&(f.element.className=m);var v=t.getRowLength(g)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[g];null==w&&(w=a[g]=t.getFoldWidget(g))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var m="ace_fold-widget ace_"+w;m+="start"==w&&g==s&&gi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+r.start.column*e.characterWidth;n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,d=0,u=0,f=a.getScreenLastRowColumn(h),p=new n(h,i.start.column,h,u);c>=h;h++)p.start.row=p.end.row=h,p.start.column=h==l?i.start.column:a.getRowWrapIndent(h),p.end.column=f,d=u,u=f,f=c>h+1?a.getScreenLastRowColumn(h+1):h==c?0:i.end.column,this.drawSingleLineMarker(t,p,r+(h==l?" ace_start":"")+" ace_br"+e(h==l||h==l+1&&i.start.column,u>d,u>f,h==c),o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o=this.$padding,s=n.lineHeight,a=this.$getTop(t.start.row,n),l=o+t.start.column*n.characterWidth;r=r||"",e.push("
"),a=this.$getTop(t.end.row,n);var c=t.end.column*n.characterWidth;if(e.push("
"),s=(t.end.row-t.start.row-1)*n.lineHeight,!(0>=s)){a=this.$getTop(t.start.row+1,n);var h=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;return this.EOL_CHAR!=e?(this.EOL_CHAR=e,!0):void 0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;e+1>i;i++)t.push(this.showInvisibles?""+o.stringRepeat(this.TAB_CHAR,i)+"":o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings[" "]=""+l+""}},this.updateLines=function(e,t,i){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;n>a;a++){var l=this.session.getFoldLine(a);if(l){if(l.containsRow(n)){n=l.start.row;break}a=l.end.row}s++}for(var a=n,l=this.session.getNextFoldLine(a),c=l?l.start.row:1/0;;){if(a>c&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var d=[];this.$renderLine(d,a,!this.$useLineGroups(),a==c?l:!1),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=d.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a?s:!1),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s?o:!1),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,a=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if(" "==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},l=n.replace(s,a);if(this.$textToken[i.type])e.push(l);else{var c="ace_"+i.type.replace(/\./g," ace_"),h="";"fold"==i.type&&(h=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",l,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return 0>=n||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):" "==t[0]?(e.push(o.stringRepeat(this.$tabStrings[" "],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;i>o&&ni?{type:e[n].type,value:s.substring(0,i-o)}:e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e),n=this.$padding+i.column*this.config.characterWidth,r=(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:n,top:r}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;(void 0===t||0===t.length)&&(t=[{cursor:null}]);for(var i=0,r=t.length;r>i;i++){var o=this.getPixelPosition(t[i].cursor,!0);if(!((o.top>e.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e,t){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&1>t?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var i={height:e.height,width:e.width/l}}else var i={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===i.width||0===i.height?null:i},this.$measureCharWidth=function(e){this.$main.innerHTML=o.stringRepeat(e,l);var t=this.$main.getBoundingClientRect();return t.width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,g=e("./lib/event_emitter").EventEmitter,m='.ace_editor { position: relative; overflow: hidden; font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace; direction: ltr; } .ace_scroller { position: absolute; overflow: hidden; top: 0; bottom: 0; background-color: inherit; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; cursor: text; } .ace_content { position: absolute; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; min-width: 100%; } .ace_dragging .ace_scroller:before{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; content: \'\'; background: rgba(250, 250, 250, 0.01); z-index: 1000; } .ace_dragging.ace_dark .ace_scroller:before{ background: rgba(0, 0, 0, 0.01); } .ace_selecting, .ace_selecting * { cursor: text !important; } .ace_gutter { position: absolute; overflow : hidden; width: auto; top: 0; bottom: 0; left: 0; cursor: default; z-index: 4; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; } .ace_gutter-active-line { position: absolute; left: 0; right: 0; } .ace_scroller.ace_scroll-left { box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; } .ace_gutter-cell { padding-left: 19px; padding-right: 6px; background-repeat: no-repeat; } .ace_gutter-cell.ace_error { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: 2px center; } .ace_gutter-cell.ace_warning { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); background-position: 2px center; } .ace_gutter-cell.ace_info { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); background-position: 2px center; } .ace_dark .ace_gutter-cell.ace_info { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); } .ace_scrollbar { position: absolute; right: 0; bottom: 0; z-index: 6; } .ace_scrollbar-inner { position: absolute; cursor: text; left: 0; top: 0; } .ace_scrollbar-v{ overflow-x: hidden; overflow-y: scroll; top: 0; } .ace_scrollbar-h { overflow-x: scroll; overflow-y: hidden; left: 0; } .ace_print-margin { position: absolute; height: 100%; } .ace_text-input { position: absolute; z-index: 0; width: 0.5em; height: 1em; opacity: 0; background: transparent; -moz-appearance: none; appearance: none; border: none; resize: none; outline: none; overflow: hidden; font: inherit; padding: 0 1px; margin: 0 -1px; text-indent: -1em; -ms-user-select: text; -moz-user-select: text; -webkit-user-select: text; user-select: text; white-space: pre!important; } .ace_text-input.ace_composition { background: inherit; color: inherit; z-index: 1000; opacity: 1; text-indent: 0; } .ace_layer { z-index: 1; position: absolute; overflow: hidden; word-wrap: normal; white-space: pre; height: 100%; width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; pointer-events: none; } .ace_gutter-layer { position: relative; width: auto; text-align: right; pointer-events: auto; } .ace_text-layer { font: inherit !important; } .ace_cjk { display: inline-block; text-align: center; } .ace_cursor-layer { z-index: 4; } .ace_cursor { z-index: 4; position: absolute; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; border-left: 2px solid; transform: translatez(0); } .ace_slim-cursors .ace_cursor { border-left-width: 1px; } .ace_overwrite-cursors .ace_cursor { border-left-width: 0; border-bottom: 1px solid; } .ace_hidden-cursors .ace_cursor { opacity: 0.2; } .ace_smooth-blinking .ace_cursor { -webkit-transition: opacity 0.18s; transition: opacity 0.18s; } .ace_editor.ace_multiselect .ace_cursor { border-left-width: 1px; } .ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { position: absolute; z-index: 3; } .ace_marker-layer .ace_selection { position: absolute; z-index: 5; } .ace_marker-layer .ace_bracket { position: absolute; z-index: 6; } .ace_marker-layer .ace_active-line { position: absolute; z-index: 2; } .ace_marker-layer .ace_selected-word { position: absolute; z-index: 4; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } .ace_line .ace_fold { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; display: inline-block; height: 11px; margin-top: -2px; vertical-align: middle; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); background-repeat: no-repeat, repeat-x; background-position: center center, top left; color: transparent; border: 1px solid black; border-radius: 2px; cursor: pointer; pointer-events: auto; } .ace_dark .ace_fold { } .ace_fold:hover{ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); } .ace_tooltip { background-color: #FFF; background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1)); background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1)); border: 1px solid gray; border-radius: 1px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); color: black; max-width: 100%; padding: 3px 4px; position: fixed; z-index: 999999; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; cursor: default; white-space: pre; word-wrap: break-word; line-height: normal; font-style: normal; font-weight: normal; letter-spacing: normal; pointer-events: none; } .ace_folding-enabled > .ace_gutter-cell { padding-right: 13px; } .ace_fold-widget { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0 -12px 0 1px; display: none; width: 11px; vertical-align: top; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: center; border-radius: 3px; border: 1px solid transparent; cursor: pointer; } .ace_folding-enabled .ace_fold-widget { display: inline-block; } .ace_fold-widget.ace_end { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); } .ace_fold-widget.ace_closed { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); } .ace_fold-widget:hover { border: 1px solid rgba(0, 0, 0, 0.3); background-color: rgba(255, 255, 255, 0.2); box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); } .ace_fold-widget:active { border: 1px solid rgba(0, 0, 0, 0.4); background-color: rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); } .ace_dark .ace_fold-widget { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); } .ace_dark .ace_fold-widget.ace_end { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); } .ace_dark .ace_fold-widget.ace_closed { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); } .ace_dark .ace_fold-widget:hover { box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); background-color: rgba(255, 255, 255, 0.1); } .ace_dark .ace_fold-widget:active { box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); } .ace_fold-widget.ace_invalid { background-color: #FFB4B4; border-color: #DE5555; } .ace_fade-fold-widgets .ace_fold-widget { -webkit-transition: opacity 0.4s ease 0.05s; transition: opacity 0.4s ease 0.05s; opacity: 0; } .ace_fade-fold-widgets:hover .ace_fold-widget { -webkit-transition: opacity 0.05s ease 0.05s; transition: opacity 0.05s ease 0.05s; opacity:1; } .ace_underline { text-decoration: underline; } .ace_bold { font-weight: bold; } .ace_nobold .ace_bold { font-weight: normal; } .ace_italic { font-style: italic; } .ace_error-marker { background-color: rgba(255, 0, 0,0.2); position: absolute; z-index: 9; } .ace_highlight-marker { background-color: rgba(255, 255, 0,0.2); position: absolute; z-index: 8; } .ace_br1 {border-top-left-radius : 3px;} .ace_br2 {border-top-right-radius : 3px;} .ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} .ace_br4 {border-bottom-right-radius: 3px;} .ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} .ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} .ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} .ace_br8 {border-bottom-left-radius : 3px;} .ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} .ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} .ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} '; r.importCssString(m,"ace_editor.css");var v=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new u(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container,500),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new f(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,g),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(0>t||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+e},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.max((this.$minLines||1)*this.lineHeight,Math.min(t,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight());var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var g,m,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),A=w+v,y=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),g=e.documentToScreenRow(w,0),m=e.getRowLength(w)*y,A=Math.min(e.screenToDocumentRow(A,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(A)*y+m,c=this.scrollTop-g*y;var E=0;return this.layerConfig.width!=o&&(E=this.CHANGE_H_SCROLL),(a||p)&&(E=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:g,lastRow:A,lineHeight:y,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/y)),height:this.$size.scrollerHeight},E},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;return e>i.lastRow+1||to?(t&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(ri;++i)r.push(o(i/this.STEPS,e,t-e));return r},this.scrollToLine=function(e,t,i,n){var r=this.$cursorLayer.getPixelPosition({row:e,column:0}),o=r.top;t&&(o-=this.$size.scrollerHeight/2);var s=this.scrollTop;this.session.setScrollTop(o),i!==!1&&this.animateScrolling(s,n)},this.animateScrolling=function(e,t){var i=this.scrollTop;if(this.$animatedScroll){var n=this;if(e!=i){if(this.$scrollAnimation){var r=this.$scrollAnimation.steps;if(r.length&&(e=r[0],e==i))return}var o=n.$calcSteps(e,i);this.$scrollAnimation={from:e,to:i,steps:o},clearInterval(this.$timer),n.session.setScrollTop(o.shift()),n.session.$scrollTop=i,this.$timer=setInterval(function(){o.length?(n.session.setScrollTop(o.shift()),n.session.$scrollTop=i):null!=i?(n.session.$scrollTop=-1,n.session.setScrollTop(i),i=null):(n.$timer=clearInterval(n.$timer),n.$scrollAnimation=null,t&&t())},10)}}},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){return 0>t&&this.session.getScrollTop()>=1-this.scrollMargin.top?!0:t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom?!0:0>e&&this.session.getScrollLeft()>=1-this.scrollMargin.left?!0:e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right?!0:void 0},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=(e+this.scrollLeft-i.left-this.$padding)/this.characterWidth,r=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),o=Math.round(n);return{row:r,column:o,side:n-o>0?1:-1}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=Math.round((e+this.scrollLeft-i.left-this.$padding)/this.characterWidth),r=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(r,Math.max(n,0))},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+Math.round(n.column*this.characterWidth),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(i.cssClass){r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(v.prototype),o.defineOptions(v.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){return this.$gutterLineHighlight?(this.$gutterLineHighlight.style.display=e?"":"none",void(this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight())):(this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight))},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=v}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,a=e("../config"),l=function(t,n,r,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),a.get("packaged")||!e.toUrl)o=o||a.moduleUrl(n.id,"worker");else{var s=this.$normalizePath;o=o||s(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach(function(t){l[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{var c=n.src,h=i(59),d=new h([c],{type:"application/javascript"}),u=(window.URL||window.webkitURL).createObjectURL(d);this.$worker=new Worker(u)}catch(f){if(!(f instanceof window.DOMException))throw f;var d=this.$workerBlob(o),p=window.URL||window.webkitURL,g=p.createObjectURL(d);this.$worker=new Worker(g),p.revokeObjectURL(g)}this.$worker.postMessage({init:!0,tlns:l,module:n.id,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return o.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(i){console.error(i.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))},this.$workerBlob=function(e){var t="importScripts('"+o.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(i){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(t),r.getBlob("application/javascript")}}}).call(l.prototype);var c=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(s),l=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){l.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=l.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){l.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],function(e){for(n=new e[i](o);l.messageBuffer.length;)c()})};c.prototype=l.prototype,t.UIWorkerClient=c,t.WorkerClient=l}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;t>i;i++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(s.prototype),t.PlaceHolder=s}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){function n(e,t){return e.row==t.row&&e.column==t.column}function r(e){var t=e.domEvent,i=t.altKey,r=t.shiftKey,a=t.ctrlKey,l=e.getAccelKey(),c=e.getButton();if(a&&s.isMac&&(c=t.button),e.editor.inMultiSelectMode&&2==c)return void e.editor.textInput.onContextMenu(e.domEvent);if(!a&&!i&&!l)return void(0===c&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode());if(0===c){var h,d=e.editor,u=d.selection,f=d.inMultiSelectMode,p=e.getDocumentPosition(),g=u.getCursor(),m=e.inSelection()||u.isEmpty()&&n(p,g),v=e.x,w=e.y,A=function(e){v=e.clientX,w=e.clientY},y=d.session,C=d.renderer.pixelToScreenCoordinates(v,w),E=C;if(d.$mouseHandler.$enableJumpToDef)a&&i||l&&i?h=r?"block":"add":i&&d.$blockSelectEnabled&&(h="block");else if(l&&!i){if(h="add",!f&&r)return}else i&&d.$blockSelectEnabled&&(h="block");if(h&&s.isMac&&t.ctrlKey&&d.$mouseHandler.cancelContextMenu(),"add"==h){if(!f&&m)return;if(!f){var b=u.toOrientedRange();d.addSelectionMarker(b)}var F=u.rangeList.rangeAtPoint(p);d.$blockScrolling++,d.inVirtualSelectionMode=!0,r&&(F=null,b=u.ranges[0]||b,d.removeSelectionMarker(b)),d.once("mouseup",function(){var e=u.toOrientedRange();F&&e.isEmpty()&&n(F.cursor,e.cursor)?u.substractPoint(e.cursor):(r?u.substractPoint(b.cursor):b&&(d.removeSelectionMarker(b),u.addRange(b)),u.addRange(e)),d.$blockScrolling--,d.inVirtualSelectionMode=!1})}else if("block"==h){e.stop(),d.inVirtualSelectionMode=!0;var x,S=[],$=function(){var e=d.renderer.pixelToScreenCoordinates(v,w),t=y.screenToDocumentPosition(e.row,e.column);n(E,e)&&n(t,u.lead)||(E=e,d.$blockScrolling++,d.selection.moveToPosition(t),d.renderer.scrollCursorIntoView(),d.removeSelectionMarkers(S),S=u.rectangularRangeBlock(E,C),d.$mouseHandler.$clickSelection&&1==S.length&&S[0].isEmpty()&&(S[0]=d.$mouseHandler.$clickSelection.clone()),S.forEach(d.addSelectionMarker,d),d.updateSelectionMarkers(),d.$blockScrolling--)};d.$blockScrolling++,f&&!l?u.toSingleRange():!f&&l&&(x=u.toOrientedRange(),d.addSelectionMarker(x)),r?C=y.documentToScreenPosition(u.lead):u.moveToPosition(p),d.$blockScrolling--,E={row:-1,column:-1};var D=function(e){clearInterval(B),d.removeSelectionMarkers(S),S.length||(S=[u.toOrientedRange()]),d.$blockScrolling++,x&&(d.removeSelectionMarker(x),u.toSingleRange(x));for(var t=0;t1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);return t?(this.$onRemoveRange(t),t[0]):void 0},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var d=r+1;o>d;d++)c.push(this.getLineRange(d,!0));h=this.getLineRange(o,!0),h.end.column=i.end.column,c.push(h),c.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),r=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(n,r);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.columns&&(s=0),0>h&&(h=0),h==d&&(i=!0);for(var u=h;d>=u;u++){var f=l.fromPoints(this.session.screenToDocumentPosition(u,s),this.session.screenToDocumentPosition(u,a));if(f.isEmpty()){if(p&&r(f.end,p))break;var p=f.end}f.cursor=o?f.start:f.end,n.push(f)}if(c&&n.reverse(),!i){for(var g=n.length-1;n[g].isEmpty()&&g>0;)g--;if(g>0)for(var m=0;n[m].isEmpty();)m++;for(var v=g;v>=m;v--)n[v].isEmpty()&&n.splice(v,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=s.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,a.mergeOverlappingRanges();var g=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),g&&g.from==g.to&&this.renderer.animateScrolling(g.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;ne?a.unshift(a.pop()):a.push(a.shift());for(var r=n.length;r--;){var o=n[r],s=o.clone();t.replace(o,a[r]),o.start.row=s.start.row,o.start.column=s.start.column}},this.selectMore=function(e,t,i){var r=this.session,o=r.multiSelect,s=o.toOrientedRange();if(!s.isEmpty()||(s=r.getWordRange(s.start.row,s.start.column),s.cursor=-1==e?s.start:s.end,this.multiSelect.addRange(s),!i)){var a=r.getTextRange(s),l=n(r,a,e);l&&(l.cursor=-1==e?l.start:l.end,this.$blockScrolling+=1,this.session.unfold(l),this.multiSelect.addRange(l),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)}},this.alignCursors=function(){var e=this.session,t=e.multiSelect,i=t.ranges,n=-1,r=i.filter(function(e){return e.cursor.row==n?!0:void(n=e.cursor.row)});if(i.length&&r.length!=i.length-1){r.forEach(function(e){t.substractPoint(e.cursor)});var o=0,s=1/0,a=i.map(function(t){var i=t.cursor,n=e.getLine(i.row),r=n.substr(i.column).search(/\S/g);return-1==r&&(r=0),i.column>o&&(o=i.column),s>r&&(s=r),r});i.forEach(function(t,i){var n=t.cursor,r=o-n.column,c=a[i]-s;r>c?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,g=this.session.getLength();do p=this.session.getLine(d);while(/[=:]/.test(p)&&++d0);0>h&&(h=0),d>=g&&(d=g-1)}var m=this.session.removeFullLines(h,d);m=this.$reAlignText(m,f),this.session.insert({row:h,column:0},m.join("\n")+"\n"),f||(c.start.column=0,c.end.column=m[m.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return u.stringRepeat(" ",e)}function n(e){return e[2]?i(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=/\S/,o=e.getLine(t),s=o.search(r);if(-1!=s){for(var a=i||o.length,l=e.getLength(),c=t,h=t;++t=d)break;h=t}}if(h>c){var u=e.getLine(h).length;return new n(c,a,h,u)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);return a?(a.column++,s.column--,n.fromPoints(a,s)):void 0}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter { background: #f0f0f0; color: #333; } .ace-tm .ace_print-margin { width: 1px; background: #e8e8e8; } .ace-tm .ace_fold { background-color: #6B72E6; } .ace-tm { background-color: #FFFFFF; color: black; } .ace-tm .ace_cursor { color: black; } .ace-tm .ace_invisible { color: rgb(191, 191, 191); } .ace-tm .ace_storage, .ace-tm .ace_keyword { color: blue; } .ace-tm .ace_constant { color: rgb(197, 6, 11); } .ace-tm .ace_constant.ace_buildin { color: rgb(88, 72, 246); } .ace-tm .ace_constant.ace_language { color: rgb(88, 92, 246); } .ace-tm .ace_constant.ace_library { color: rgb(6, 150, 14); } .ace-tm .ace_invalid { background-color: rgba(255, 0, 0, 0.1); color: red; } .ace-tm .ace_support.ace_function { color: rgb(60, 76, 114); } .ace-tm .ace_support.ace_constant { color: rgb(6, 150, 14); } .ace-tm .ace_support.ace_type, .ace-tm .ace_support.ace_class { color: rgb(109, 121, 222); } .ace-tm .ace_keyword.ace_operator { color: rgb(104, 118, 135); } .ace-tm .ace_string { color: rgb(3, 106, 7); } .ace-tm .ace_comment { color: rgb(76, 136, 107); } .ace-tm .ace_comment.ace_doc { color: rgb(0, 102, 255); } .ace-tm .ace_comment.ace_doc.ace_tag { color: rgb(128, 159, 191); } .ace-tm .ace_constant.ace_numeric { color: rgb(0, 0, 205); } .ace-tm .ace_variable { color: rgb(49, 132, 149); } .ace-tm .ace_xml-pe { color: rgb(104, 104, 91); } .ace-tm .ace_entity.ace_name.ace_function { color: #0000A2; } .ace-tm .ace_heading { color: rgb(12, 7, 255); } .ace-tm .ace_list { color:rgb(185, 6, 144); } .ace-tm .ace_meta.ace_tag { color:rgb(0, 22, 142); } .ace-tm .ace_string.ace_regex { color: rgb(255, 0, 0) } .ace-tm .ace_marker-layer .ace_selection { background: rgb(181, 213, 255); } .ace-tm.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px white; } .ace-tm .ace_marker-layer .ace_step { background: rgb(252, 255, 0); } .ace-tm .ace_marker-layer .ace_stack { background: rgb(164, 229, 101); } .ace-tm .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192); } .ace-tm .ace_marker-layer .ace_active-line { background: rgba(0, 0, 0, 0.07); } .ace-tm .ace_gutter-active-line { background-color : #dcdcdc; } .ace-tm .ace_marker-layer .ace_selected-word { background: rgb(250, 250, 255); border: 1px solid rgb(200, 200, 250); } .ace-tm .ace_indent-guide { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y; } ';var n=e("../lib/dom");n.importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;o>a;a++)i[a]&&(i[a].hidden=s);i[o]&&(s?i[r]?i[o].hidden=s:i[r]=i[o]:(i[r]==i[o]&&(i[r]=void 0),i[o].hidden=s))}},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(t){var i=e.start.row,n=e.end.row-i;if(0===n);else if("remove"==e.action){var r=t.splice(i+1,n);r.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var o=new Array(n);o.unshift(i,0),t.splice.apply(t,o),this.$updateRows()}}},this.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach(function(e,i){if(e)for(t=!1,e.row=i;e.$oldWidget;)e.$oldWidget.row=i,e=e.$oldWidget}),t&&(this.session.lineWidgets=null)}},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var i=this.editor.renderer;e.html&&!e.el&&(e.el=r.createElement("div"),e.el.innerHTML=e.html),e.el&&(r.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,i.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight||(e.pixelHeight=e.el.offsetHeight),null==e.rowCount&&(e.rowCount=e.pixelHeight/i.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var o=this.session.lineWidgets;e.row!=n.end.row||o[n.start.row]?e.hidden=!0:o[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,i),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var i=this.session.lineWidgets[e.row];if(i==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;i;){if(i.$oldWidget==e){i.$oldWidget=e.$oldWidget;break}i=i.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,i=t&&t[e],n=[];i;)n.push(i),i=i.$oldWidget;return n},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var i=this.session._changedWidgets,n=t.layerConfig;if(i&&i.length){for(var r=1/0,o=0;oa&&(a=0)),s.rowCount!=a&&(s.rowCount=a,s.row0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;o>=s;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;r>=n;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(0>s))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);0>o&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&0>i&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do s=r[o+=i];while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do l[0>i?"unshift":"push"](s),s=r[o+=i];while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range; t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=u.el.appendChild(s.createElement("div")),p=u.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var g=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=g+e.renderer.gutterWidth-5+"px",u.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var m=function(e,t,i){return 0!==t||"esc"!==i&&"return"!==i?void 0:(u.destroy(),{command:"null"})};u.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(m),i.widgetManager.removeLineWidget(u),e.off("changeSelection",u.destroy),e.off("changeSession",u.destroy),e.off("mouseup",u.destroy),e.off("change",u.destroy))},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",u.destroy),e.on("changeSession",u.destroy),e.on("mouseup",u.destroy),e.on("change",u.destroy),e.session.widgetManager.addLineWidget(u),u.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:u.el.offsetHeight})},s.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; } ","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,i){"use strict";e("./lib/fixoldbrowsers");var n=e("./lib/dom"),r=e("./lib/event"),o=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.edit=function(e){if("string"==typeof e){var i=e;if(e=document.getElementById(i),!e)throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=n.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=n.getInnerText(e),e.innerHTML="");var c=t.createEditSession(s),h=new o(new l(e));h.setSession(c);var d={document:c,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),r.addListener(window,"resize",d.onResize),h.on("destroy",function(){r.removeListener(window,"resize",d.onResize),d.editor.container.env=null}),h.container.env=h.env=d,h},t.createEditSession=function(e,t){var i=new s(e,t);return i.setUndoManager(new a),i},t.EditSession=s,t.UndoManager=a,t.version="1.2.2"}),function(){ace.acequire(["ace/ace"],function(e){e&&e.config.init(!0),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})}(),e.exports=window.ace.acequire("ace/ace")},function(e,t,i){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};n.inherits(o,r),t.JsonHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var i=e.getLine(t),r=i.match(/^(\s*\})/);if(!r)return 0;var o=r[1].length,s=e.findMatchingBracket({row:t,column:o});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},d=function(e){var t=-1;return e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t]?n=h[t]:void(n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""})},u=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},f=function(){this.add("braces","insertion",function(e,t,i,r,o){var s=i.getCursorPosition(),l=r.doc.getLine(s.row);if("{"==o){d(i);var c=i.getSelectionRange(),h=r.doc.getTextRange(c);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return u(c,h,"{","}");if(f.isSaneInsertion(i,r))return/[\]\}\)]/.test(l[s.column])||i.inMultiSelectMode?(f.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==o){d(i);var p=l.substring(s.column,s.column+1);if("}"==p){var g=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(null!==g&&f.isAutoInsertedClosing(s,l,o))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==o||"\r\n"==o){d(i);var m="";f.isMaybeInsertedClosing(s,l)&&(m=a.stringRepeat("}",n.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var p=l.substring(s.column,s.column+1);if("}"===p){var v=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!v)return null;var w=this.$getIndent(r.getLine(v.row))}else{if(!m)return void f.clearMaybeInsertedClosing();var w=this.$getIndent(l)}var A=w+r.getTabString();return{text:"\n"+A+"\n"+w+m,selection:[1,A.length,1,A.length]}}f.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){d(i);var a=r.doc.getLine(o.start.row),l=a.substring(o.end.column,o.end.column+1);if("}"==l)return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){d(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return u(o,s,"(",")");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var h=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==h&&f.isAutoInsertedClosing(a,l,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){d(i);var s=n.doc.getLine(r.start.row),a=s.substring(r.start.column+1,r.start.column+2);if(")"==a)return r.end.column++,r}}),this.add("brackets","insertion",function(e,t,i,n,r){if("["==r){d(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return u(o,s,"[","]");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var h=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==h&&f.isAutoInsertedClosing(a,l,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){d(i);var s=n.doc.getLine(r.start.row),a=s.substring(r.start.column+1,r.start.column+2);if("]"==a)return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){if('"'==r||"'"==r){d(i);var o=r,s=i.getSelectionRange(),a=n.doc.getTextRange(s);if(""!==a&&"'"!==a&&'"'!=a&&i.getWrapBehavioursEnabled())return u(s,a,o,o);if(!a){var l=i.getCursorPosition(),c=n.doc.getLine(l.row),h=c.substring(l.column-1,l.column),f=c.substring(l.column,l.column+1),p=n.getTokenAt(l.row,l.column),g=n.getTokenAt(l.row,l.column+1);if("\\"==h&&p&&/escape/.test(p.type))return null;var m,v=p&&/string|escape/.test(p.type),w=!g||/string|escape/.test(g.type);if(f==o)m=v!==w;else{if(v&&!w)return null;if(v&&w)return null;var A=n.$mode.tokenRe;A.lastIndex=0;var y=A.test(h);A.lastIndex=0;var C=A.test(h);if(y||C)return null;if(f&&!/[\s;,.})\]\\]/.test(f))return null;m=!0}return{text:m?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){d(i);var s=n.doc.getLine(r.start.row),a=s.substring(r.start.column+1,r.start.column+2);if(a==o)return r.end.column++,r}})};f.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},f.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},f.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},f.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(f,o),t.CstyleBehaviour=f}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,o),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r=e.getLine(i);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,i);var o=r.match(this.foldingStartMarker);if(o){var s=o.index;if(o[1])return this.openingBracketBlock(e,o[1],i,s);var a=e.getCommentFoldRange(i,s+o[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var o=r.match(this.foldingStopMarker);if(o){var s=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),o=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is?new r(s,n,h,t.length):void 0}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){var r=t.match(/^.*[\{\(\[]\s*$/);r&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new h(["ace"],i(38),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t,i){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/lang"),o=e("../lib/event"),s=" .ace_search { background-color: #ddd; border: 1px solid #cbcbcb; border-top: 0 none; max-width: 325px; overflow: hidden; margin: 0; padding: 4px; padding-right: 6px; padding-bottom: 0; position: absolute; top: 0px; z-index: 99; white-space: normal; } .ace_search.left { border-left: 0 none; border-radius: 0px 0px 5px 0px; left: 0; } .ace_search.right { border-radius: 0px 0px 0px 5px; border-right: 0 none; right: 0; } .ace_search_form, .ace_replace_form { border-radius: 3px; border: 1px solid #cbcbcb; float: left; margin-bottom: 4px; overflow: hidden; } .ace_search_form.ace_nomatch { outline: 1px solid red; } .ace_search_field { background-color: white; border-right: 1px solid #cbcbcb; border: 0 none; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; float: left; height: 22px; outline: 0; padding: 0 7px; width: 214px; margin: 0; } .ace_searchbtn, .ace_replacebtn { background: #fff; border: 0 none; border-left: 1px solid #dcdcdc; cursor: pointer; float: left; height: 22px; margin: 0; position: relative; } .ace_searchbtn:last-child, .ace_replacebtn:last-child { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .ace_searchbtn:disabled { background: none; cursor: default; } .ace_searchbtn { background-position: 50% 50%; background-repeat: no-repeat; width: 27px; } .ace_searchbtn.prev { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); } .ace_searchbtn.next { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); } .ace_searchbtn_close { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0; border-radius: 50%; border: 0 none; color: #656565; cursor: pointer; float: right; font: 16px/16px Arial; height: 14px; margin: 5px 1px 9px 5px; padding: 0; text-align: center; width: 14px; } .ace_searchbtn_close:hover { background-color: #656565; background-position: 50% 100%; color: white; } .ace_replacebtn.prev { width: 54px } .ace_replacebtn.next { width: 27px } .ace_button { margin-left: 2px; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -o-user-select: none; -ms-user-select: none; user-select: none; overflow: hidden; opacity: 0.7; border: 1px solid rgba(100,100,100,0.23); padding: 1px; -moz-box-sizing: border-box; box-sizing: border-box; color: black; } .ace_button:hover { background-color: #eee; opacity:1; } .ace_button:active { background-color: #ddd; } .ace_button.checked { border-color: #3399ff; opacity:1; } .ace_search_options{ margin-bottom: 3px; text-align: right; -webkit-user-select: none; -moz-user-select: none; -o-user-select: none; -ms-user-select: none; user-select: none; }",a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys");n.importCssString(s,"ace_searchbox");var c=''.replace(/>\s+/g,">"),h=function(e,t,i){var r=n.createElement("div");r.innerHTML=c,this.element=r.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;o.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),o.stopPropagation(e)}),o.addListener(e,"click",function(e){var i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),o.stopPropagation(e)}),o.addCommandKeyListener(e,function(e,i,n){var r=l.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,r);s&&s.exec&&(s.exec(t),o.stopEvent(e))}),this.$onChange=r.delayedCall(function(){t.find(!1,!1)}),o.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),o.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),o.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new a,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceBox.style.display="",e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){n.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),n.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),n.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,i){var r=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:i}),o=!r&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(h.prototype),t.SearchBox=h,t.Search=function(e,t){var i=e.searchBox||new h(e);i.show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t,i){e.exports={id:"http://json-schema.org/draft-04/schema#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{"default":0}]},simpleTypes:{"enum":["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},"default":{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:!0},maximum:{type:"number"},exclusiveMaximum:{type:"boolean","default":!1},minimum:{type:"number"},exclusiveMinimum:{type:"boolean","default":!1},maxLength:{$ref:"#/definitions/positiveInteger"},minLength:{$ref:"#/definitions/positiveIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],"default":{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],"default":{}},maxItems:{$ref:"#/definitions/positiveInteger"},minItems:{$ref:"#/definitions/positiveIntegerDefault0"},uniqueItems:{type:"boolean","default":!1},maxProperties:{$ref:"#/definitions/positiveInteger"},minProperties:{$ref:"#/definitions/positiveIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],"default":{}},definitions:{type:"object",additionalProperties:{$ref:"#"},"default":{}},properties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},"enum":{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]},"default":{}}},function(e,t,i){"use strict";e.exports=function n(e,t){if(e===t)return!0;var i,r=Array.isArray(e),o=Array.isArray(t);if(r&&o){if(e.length!=t.length)return!1;for(i=0;ir;)i++,t=e.charCodeAt(r++),t>=55296&&56319>=t&&n>r&&(t=e.charCodeAt(r),56320==(64512&t)&&r++);return i}function h(e,t){t+="[^0-9]";var i=e.match(new RegExp(t,"g"));return i?i.length:0}function d(e,t,i){return t+="([^0-9])",i=i.replace(/\$/g,"$$$$"),e.replace(new RegExp(t,"g"),i+"$1")}function u(e){return e.replace(S,"").replace($,"").replace(D,"if (!($1))")}function f(e){var t=e.match(k);return t&&2===t.length?e.replace(B,"").replace(_,L):e}function p(e,t){for(var i in e)if(t[i])return!0}function g(e){return"'"+l(e)+"'"}function m(e,t,i,n){var r=i?"'/' + "+t+(n?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):n?"'[' + "+t+" + ']'":"'[\\'' + "+t+" + '\\']'";return A(e,r)}function v(e,t,i){var n=g(i?"/"+E(t):a(t));return A(e,n)}function w(e,t,i){var n=e.match(R);if(!n)throw new Error("Invalid relative JSON-pointer: "+e);var r=+n[1],o=n[2];if("#"==o){if(r>=t)throw new Error("Cannot access property/index "+r+" levels up, current level is "+t);return i[t-r]}if(r>t)throw new Error("Cannot access data "+r+" levels up, current level is "+t);for(var s="data"+(t-r||""),l=s,c=o.split("/"),h=0;h