diff --git a/HISTORY.md b/HISTORY.md index 2b4ea7c..cb0705a 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,7 +3,7 @@ https://github.com/josdejong/jsoneditor -## not yet released, version 5.14.0 +## 2018-02-25, version 5.14.0 - Implemented support for translations. Thanks @mariohmol. - Fixed a bug sometimes occurring when dragging items from array to diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index 8d4a181..44c70a5 100644 --- a/dist/jsoneditor-minimalist.js +++ b/dist/jsoneditor-minimalist.js @@ -24,8 +24,8 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.13.3 - * @date 2018-02-09 + * @version 5.14.0 + * @date 2018-02-25 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -94,7 +94,7 @@ return /******/ (function(modules) { // webpackBootstrap } var treemode = __webpack_require__(1); - var textmode = __webpack_require__(14); + var textmode = __webpack_require__(15); var util = __webpack_require__(4); /** @@ -168,7 +168,7 @@ return /******/ (function(modules) { // webpackBootstrap 'ace', 'theme','autocomplete', 'onChange', 'onEditable', 'onError', 'onModeChange', 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', - 'sortObjectKeys', 'navigationBar', 'statusBar' + 'sortObjectKeys', 'navigationBar', 'statusBar', 'languages', 'language' ]; Object.keys(options).forEach(function (option) { @@ -494,11 +494,14 @@ return /******/ (function(modules) { // webpackBootstrap var History = __webpack_require__(3); var SearchBox = __webpack_require__(6); var ContextMenu = __webpack_require__(7); - var TreePath = __webpack_require__(8); - var Node = __webpack_require__(9); - var ModeSwitcher = __webpack_require__(12); + var TreePath = __webpack_require__(9); + var Node = __webpack_require__(10); + var ModeSwitcher = __webpack_require__(13); var util = __webpack_require__(4); - var autocomplete = __webpack_require__(13); + var autocomplete = __webpack_require__(14); + var translate = __webpack_require__(8).translate; + var setLanguages = __webpack_require__(8).setLanguages; + var setLanguage = __webpack_require__(8).setLanguage; // create a mixin with the functions for tree mode var treemode = {}; @@ -621,6 +624,9 @@ return /******/ (function(modules) { // webpackBootstrap // create a debounced validate function this._debouncedValidate = util.debounce(this.validate.bind(this), this.DEBOUNCE_INTERVAL); + + setLanguages(this.options.languages); + setLanguage(this.options.language) }; /** @@ -924,28 +930,35 @@ return /******/ (function(modules) { // webpackBootstrap } } - // display the error in the nodes with a problem - this.errorNodes = duplicateErrors - .concat(schemaErrors) - .reduce(function expandParents (all, entry) { - // expand parents, then merge such that parents come first and - // original entries last - return entry.node - .findParents() - .map(function (parent) { - return { - node: parent, - child: entry.node, - error: { - message: parent.type === 'object' - ? 'Contains invalid properties' // object - : 'Contains invalid items' // array - } - }; - }) - .concat(all, [entry]); - }, []) - // TODO: dedupe the parent nodes + var errorNodes = duplicateErrors.concat(schemaErrors); + var parentPairs = errorNodes + .reduce(function (all, entry) { + return entry.node + .findParents() + .filter(function (parent) { + return !all.some(function (pair) { + return pair[0] === parent; + }); + }) + .map(function (parent) { + return [parent, entry.node]; + }) + .concat(all); + }, []); + + this.errorNodes = parentPairs + .map(function (pair) { + return { + node: pair[0], + child: pair[1], + error: { + message: pair[0].type === 'object' + ? 'Contains invalid properties' // object + : 'Contains invalid items' // array + } + }; + }) + .concat(errorNodes) .map(function setError (entry) { entry.node.setError(entry.error, entry.child); return entry.node; @@ -1184,7 +1197,7 @@ return /******/ (function(modules) { // webpackBootstrap var expandAll = document.createElement('button'); expandAll.type = 'button'; expandAll.className = 'jsoneditor-expand-all'; - expandAll.title = 'Expand all fields'; + expandAll.title = translate('expandAll'); expandAll.onclick = function () { editor.expandAll(); }; @@ -1193,7 +1206,7 @@ return /******/ (function(modules) { // webpackBootstrap // create collapse all button var collapseAll = document.createElement('button'); collapseAll.type = 'button'; - collapseAll.title = 'Collapse all fields'; + collapseAll.title = translate('collapseAll'); collapseAll.className = 'jsoneditor-collapse-all'; collapseAll.onclick = function () { editor.collapseAll(); @@ -1206,7 +1219,7 @@ return /******/ (function(modules) { // webpackBootstrap var undo = document.createElement('button'); undo.type = 'button'; undo.className = 'jsoneditor-undo jsoneditor-separator'; - undo.title = 'Undo last action (Ctrl+Z)'; + undo.title = translate('undo'); undo.onclick = function () { editor._onUndo(); }; @@ -1217,7 +1230,7 @@ return /******/ (function(modules) { // webpackBootstrap var redo = document.createElement('button'); redo.type = 'button'; redo.className = 'jsoneditor-redo'; - redo.title = 'Redo (Ctrl+Shift+Z)'; + redo.title = translate('redo'); redo.onclick = function () { editor._onRedo(); }; @@ -1705,13 +1718,18 @@ return /******/ (function(modules) { // webpackBootstrap setTimeout(function (hnode, element) { if (element.innerText.length > 0) { var result = this.options.autocomplete.getOptions(element.innerText, hnode.getPath(), jsonElementType, hnode.editor); - if (typeof result.then === 'function') { + if (result === null) { + this.autocomplete.hideDropDown(); + } else if (typeof result.then === 'function') { // probably a promise if (result.then(function (obj) { - if (obj.options) + if (obj === null) { + this.autocomplete.hideDropDown(); + } else if (obj.options) { this.autocomplete.show(element, obj.startFrom, obj.options); - else + } else { this.autocomplete.show(element, 0, obj); + } }.bind(this))); } else { // definitely not a promise @@ -1789,8 +1807,8 @@ return /******/ (function(modules) { // webpackBootstrap // create duplicate button items.push({ - text: 'Duplicate', - title: 'Duplicate selected fields (Ctrl+D)', + text: translate('duplicateText'), + title: translate('duplicateTitle'), className: 'jsoneditor-duplicate', click: function () { Node.onDuplicate(editor.multiselection.nodes); @@ -1799,8 +1817,8 @@ return /******/ (function(modules) { // webpackBootstrap // create remove button items.push({ - text: 'Remove', - title: 'Remove selected fields (Ctrl+Del)', + text: translate('remove'), + title: translate('removeTitle'), className: 'jsoneditor-remove', click: function () { Node.onRemove(editor.multiselection.nodes); @@ -3876,6 +3894,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var util = __webpack_require__(4); + var translate = __webpack_require__(8).translate; /** * Node.getRootNode shim @@ -4026,7 +4045,7 @@ return /******/ (function(modules) { // webpackBootstrap else { // no submenu, just a button with clickhandler button.innerHTML = '
' + - '
' + item.text + '
'; + '
' + translate(item.text) + '
'; } domItems.push(domItem); @@ -4364,6 +4383,170 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 8 */ +/***/ function(module, exports) { + + 'use strict'; + + var _locales = ['en', 'pt-BR']; + var _defs = { + en: { + 'array': 'Array', + 'auto': 'Auto', + 'appendText': 'Append', + 'appendTitle': 'Append a new field with type \'auto\' after this field (Ctrl+Shift+Ins)', + 'appendSubmenuTitle': 'Select the type of the field to be appended', + 'appendTitleAuto': 'Append a new field with type \'auto\' (Ctrl+Shift+Ins)', + 'ascending': 'Ascending', + 'ascendingTitle': 'Sort the childs of this ${type} in ascending order', + 'actionsMenu': 'Click to open the actions menu (Ctrl+M)', + 'collapseAll': 'Collapse all fields', + 'descending': 'Descending', + 'descendingTitle': 'Sort the childs of this ${type} in descending order', + 'drag': 'Drag to move this field (Alt+Shift+Arrows)', + 'duplicateKey': 'duplicate key', + 'duplicateText': 'Duplicate', + 'duplicateTitle': 'Duplicate selected fields (Ctrl+D)', + 'duplicateField': 'Duplicate this field (Ctrl+D)', + 'empty': 'empty', + 'expandAll': 'Expand all fields', + 'expandTitle': 'Click to expand/collapse this field (Ctrl+E). \n' + + 'Ctrl+Click to expand/collapse including all childs.', + 'insert': 'Insert', + 'insertTitle': 'Insert a new field with type \'auto\' before this field (Ctrl+Ins)', + 'insertSub': 'Select the type of the field to be inserted', + 'object': 'Object', + 'redo': 'Redo (Ctrl+Shift+Z)', + 'removeText': 'Remove', + 'removeTitle': 'Remove selected fields (Ctrl+Del)', + 'removeField': 'Remove this field (Ctrl+Del)', + 'sort': 'Sort', + 'sortTitle': 'Sort the childs of this ', + 'string': 'String', + 'type': 'Type', + 'typeTitle': 'Change the type of this field', + 'openUrl': 'Ctrl+Click or Ctrl+Enter to open url in new window', + 'undo': 'Undo last action (Ctrl+Z)', + 'validationCannotMove': 'Cannot move a field into a child of itself', + 'autoType': 'Field type "auto". ' + + 'The field type is automatically determined from the value ' + + 'and can be a string, number, boolean, or null.', + 'objectType': 'Field type "object". ' + + 'An object contains an unordered set of key/value pairs.', + 'arrayType': 'Field type "array". ' + + 'An array contains an ordered collection of values.', + 'stringType': 'Field type "string". ' + + 'Field type is not determined from the value, ' + + 'but always returned as string.' + }, + 'pt-BR': { + 'array': 'Lista', + 'auto': 'Automatico', + 'appendText': 'Adicionar', + 'appendTitle': 'Adicionar novo campo com tipo \'auto\' depois deste campo (Ctrl+Shift+Ins)', + 'appendSubmenuTitle': 'Selecione o tipo do campo a ser adicionado', + 'appendTitleAuto': 'Adicionar novo campo com tipo \'auto\' (Ctrl+Shift+Ins)', + 'ascending': 'Ascendente', + 'ascendingTitle': 'Organizar filhor do tipo ${type} em crescente', + 'actionsMenu': 'Clique para abrir o menu de ações (Ctrl+M)', + 'collapseAll': 'Fechar todos campos', + 'descending': 'Descendente', + 'descendingTitle': 'Organizar o filhos do tipo ${type} em decrescente', + 'duplicateKey': 'chave duplicada', + 'drag': 'Arraste para mover este campo (Alt+Shift+Arrows)', + 'duplicateText': 'Duplicar', + 'duplicateTitle': 'Duplicar campos selecionados (Ctrl+D)', + 'duplicateField': 'Duplicar este campo (Ctrl+D)', + 'empty': 'vazio', + 'expandAll': 'Expandir todos campos', + 'expandTitle': 'Clique para expandir/encolher este campo (Ctrl+E). \n' + + 'Ctrl+Click para expandir/encolher incluindo todos os filhos.', + 'insert': 'Inserir', + 'insertTitle': 'Inserir um novo campo do tipo \'auto\' antes deste campo (Ctrl+Ins)', + 'insertSub': 'Selecionar o tipo de campo a ser inserido', + 'object': 'Objeto', + 'redo': 'Refazer (Ctrl+Shift+Z)', + 'removeText': 'Remover', + 'removeTitle': 'Remover campos selecionados (Ctrl+Del)', + 'removeField': 'Remover este campo (Ctrl+Del)', + 'sort': 'Organizar', + 'sortTitle': 'Organizar os filhos deste ', + 'string': 'Texto', + 'type': 'Tipo', + 'typeTitle': 'Mudar o tipo deste campo', + 'openUrl': 'Ctrl+Click ou Ctrl+Enter para abrir link em nova janela', + 'undo': 'Desfazer último ação (Ctrl+Z)', + 'validationCannotMove': 'Não pode mover um campo como filho dele mesmo', + 'autoType': 'Campo do tipo "auto". ' + + 'O tipo do campo é determinao automaticamente a partir do seu valor ' + + 'e pode ser texto, número, verdade/falso ou nulo.', + 'objectType': 'Campo do tipo "objeto". ' + + 'Um objeto contém uma lista de pares com chave e valor.', + 'arrayType': 'Campo do tipo "lista". ' + + 'Uma lista contem uma coleção de valores ordenados.', + 'stringType': 'Campo do tipo "string". ' + + 'Campo do tipo nao é determinado através do seu valor, ' + + 'mas sempre retornara um texto.' + } + }; + + var _defaultLang = 'en'; + var _lang; + var userLang = navigator.language || navigator.userLanguage; + _lang = _locales.find(function (l) { + return l === userLang; + }); + if (!_lang) { + _lang = _defaultLang; + } + + module.exports = { + // supported locales + _locales: _locales, + _defs: _defs, + _lang: _lang, + setLanguage: function (lang) { + if (!lang) { + return; + } + var langFound = _locales.find(function (l) { + return l === lang; + }); + if (langFound) { + _lang = langFound; + } else { + console.error('Language not found'); + } + }, + setLanguages: function (languages) { + if (!languages) { + return; + } + for (var key in languages) { + var langFound = _locales.find(function (l) { + return l === key; + }); + if (!langFound) { + _locales.push(key); + } + _defs[key] = Object.assign({}, _defs[_defaultLang], _defs[key], languages[key]); + } + }, + translate: function (key, data, lang) { + if (!lang) { + lang = _lang; + } + var text = _defs[lang][key]; + if (data) { + for (key in data) { + text = text.replace('${' + key + '}', data[key]); + } + } + return text || key; + } + }; + +/***/ }, +/* 9 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -4475,15 +4658,16 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = TreePath; /***/ }, -/* 9 */ +/* 10 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var naturalSort = __webpack_require__(10); + var naturalSort = __webpack_require__(11); var ContextMenu = __webpack_require__(7); - var appendNodeFactory = __webpack_require__(11); + var appendNodeFactory = __webpack_require__(12); var util = __webpack_require__(4); + var translate = __webpack_require__(8).translate; /** * @constructor Node @@ -5432,7 +5616,7 @@ return /******/ (function(modules) { // webpackBootstrap // check if this node is not a child of the node to be moved here if (node.containsNode(this)) { - throw new Error('Cannot move a field into a child of itself'); + throw new Error(translate('validationCannotMove')); } // remove the original node @@ -5744,7 +5928,7 @@ return /******/ (function(modules) { // webpackBootstrap domValue.title = this.type + ' containing ' + count + ' items'; } else if (isUrl && this.editable.value) { - domValue.title = 'Ctrl+Click or Ctrl+Enter to open url in new window'; + domValue.title = translate('openUrl'); } else { domValue.title = ''; @@ -5931,7 +6115,7 @@ return /******/ (function(modules) { // webpackBootstrap return { node: node, error: { - message: 'duplicate key "' + node.field + '"' + message: translate('duplicateKey') + ' "' + node.field + '"' } } }); @@ -5988,7 +6172,7 @@ return /******/ (function(modules) { // webpackBootstrap domDrag.type = 'button'; dom.drag = domDrag; domDrag.className = 'jsoneditor-dragarea'; - domDrag.title = 'Drag to move this field (Alt+Shift+Arrows)'; + domDrag.title = translate('drag'); tdDrag.appendChild(domDrag); } } @@ -6000,7 +6184,7 @@ return /******/ (function(modules) { // webpackBootstrap menu.type = 'button'; dom.menu = menu; menu.className = 'jsoneditor-contextmenu'; - menu.title = 'Click to open the actions menu (Ctrl+M)'; + menu.title = translate('actionsMenu'); tdMenu.appendChild(dom.menu); dom.tr.appendChild(tdMenu); } @@ -6657,9 +6841,7 @@ return /******/ (function(modules) { // webpackBootstrap expand.type = 'button'; if (this._hasChilds()) { expand.className = this.expanded ? 'jsoneditor-expanded' : 'jsoneditor-collapsed'; - expand.title = - 'Click to expand/collapse this field (Ctrl+E). \n' + - 'Ctrl+Click to expand/collapse including all childs.'; + expand.title = translate('expandTitle'); } else { expand.className = 'jsoneditor-invisible'; @@ -7689,16 +7871,10 @@ return /******/ (function(modules) { // webpackBootstrap // titles with explanation for the different types Node.TYPE_TITLES = { - 'auto': 'Field type "auto". ' + - 'The field type is automatically determined from the value ' + - 'and can be a string, number, boolean, or null.', - 'object': 'Field type "object". ' + - 'An object contains an unordered set of key/value pairs.', - 'array': 'Field type "array". ' + - 'An array contains an ordered collection of values.', - 'string': 'Field type "string". ' + - 'Field type is not determined from the value, ' + - 'but always returned as string.' + 'auto': translate('autoType'), + 'object': translate('objectType'), + 'array': translate('arrayType'), + 'string': translate('stringType') }; Node.prototype.addTemplates = function (menu, append) { @@ -7741,12 +7917,12 @@ return /******/ (function(modules) { // webpackBootstrap if (this.editable.value) { items.push({ - text: 'Type', - title: 'Change the type of this field', + text: translate('type'), + title: translate('typeTitle'), className: 'jsoneditor-type-' + this.type, submenu: [ { - text: 'Auto', + text: translate('auto'), className: 'jsoneditor-type-auto' + (this.type == 'auto' ? ' jsoneditor-selected' : ''), title: titles.auto, @@ -7755,7 +7931,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Array', + text: translate('array'), className: 'jsoneditor-type-array' + (this.type == 'array' ? ' jsoneditor-selected' : ''), title: titles.array, @@ -7764,7 +7940,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Object', + text: translate('object'), className: 'jsoneditor-type-object' + (this.type == 'object' ? ' jsoneditor-selected' : ''), title: titles.object, @@ -7773,7 +7949,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'String', + text: translate('string'), className: 'jsoneditor-type-string' + (this.type == 'string' ? ' jsoneditor-selected' : ''), title: titles.string, @@ -7788,25 +7964,25 @@ return /******/ (function(modules) { // webpackBootstrap if (this._hasChilds()) { var direction = ((this.sortOrder == 'asc') ? 'desc': 'asc'); items.push({ - text: 'Sort', - title: 'Sort the childs of this ' + this.type, + text: translate('sort'), + title: translate('sortTitle') + this.type, className: 'jsoneditor-sort-' + direction, click: function () { node.sort(direction); }, submenu: [ { - text: 'Ascending', + text: translate('ascending'), className: 'jsoneditor-sort-asc', - title: 'Sort the childs of this ' + this.type + ' in ascending order', + title: translate('ascendingTitle' , {type: this.type}), click: function () { node.sort('asc'); } }, { - text: 'Descending', + text: translate('descending'), className: 'jsoneditor-sort-desc', - title: 'Sort the childs of this ' + this.type +' in descending order', + title: translate('descendingTitle' , {type: this.type}), click: function () { node.sort('desc'); } @@ -7828,7 +8004,7 @@ return /******/ (function(modules) { // webpackBootstrap if (node == childs[childs.length - 1]) { var appendSubmenu = [ { - text: 'Auto', + text: translate('auto'), className: 'jsoneditor-type-auto', title: titles.auto, click: function () { @@ -7836,7 +8012,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Array', + text: translate('array'), className: 'jsoneditor-type-array', title: titles.array, click: function () { @@ -7844,7 +8020,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Object', + text: translate('object'), className: 'jsoneditor-type-object', title: titles.object, click: function () { @@ -7852,7 +8028,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'String', + text: translate('string'), className: 'jsoneditor-type-string', title: titles.string, click: function () { @@ -7862,9 +8038,9 @@ return /******/ (function(modules) { // webpackBootstrap ]; node.addTemplates(appendSubmenu, true); items.push({ - text: 'Append', - title: 'Append a new field with type \'auto\' after this field (Ctrl+Shift+Ins)', - submenuTitle: 'Select the type of the field to be appended', + text: translate('appendText'), + title: translate('appendTitle'), + submenuTitle: translate('appendSubmenuTitle'), className: 'jsoneditor-append', click: function () { node._onAppend('', '', 'auto'); @@ -7878,7 +8054,7 @@ return /******/ (function(modules) { // webpackBootstrap // create insert button var insertSubmenu = [ { - text: 'Auto', + text: translate('auto'), className: 'jsoneditor-type-auto', title: titles.auto, click: function () { @@ -7886,7 +8062,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Array', + text: translate('array'), className: 'jsoneditor-type-array', title: titles.array, click: function () { @@ -7894,7 +8070,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Object', + text: translate('object'), className: 'jsoneditor-type-object', title: titles.object, click: function () { @@ -7902,7 +8078,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'String', + text: translate('string'), className: 'jsoneditor-type-string', title: titles.string, click: function () { @@ -7912,9 +8088,9 @@ return /******/ (function(modules) { // webpackBootstrap ]; node.addTemplates(insertSubmenu, false); items.push({ - text: 'Insert', - title: 'Insert a new field with type \'auto\' before this field (Ctrl+Ins)', - submenuTitle: 'Select the type of the field to be inserted', + text: translate('insert'), + title: translate('insertTitle'), + submenuTitle: translate('insertSub'), className: 'jsoneditor-insert', click: function () { node._onInsertBefore('', '', 'auto'); @@ -7925,8 +8101,8 @@ return /******/ (function(modules) { // webpackBootstrap if (this.editable.field) { // create duplicate button items.push({ - text: 'Duplicate', - title: 'Duplicate this field (Ctrl+D)', + text: translate('duplicateText'), + title: translate('duplicateField'), className: 'jsoneditor-duplicate', click: function () { Node.onDuplicate(node); @@ -7935,8 +8111,8 @@ return /******/ (function(modules) { // webpackBootstrap // create remove button items.push({ - text: 'Remove', - title: 'Remove this field (Ctrl+Del)', + text: translate('removeText'), + title: translate('removeField'), className: 'jsoneditor-remove', click: function () { Node.onRemove(node); @@ -8093,7 +8269,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 10 */ +/* 11 */ /***/ function(module, exports) { /* @@ -8144,13 +8320,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 11 */ +/* 12 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(4); var ContextMenu = __webpack_require__(7); + var translate = __webpack_require__(8).translate; /** * A factory function to create an AppendNode, which depends on a Node @@ -8211,7 +8388,7 @@ return /******/ (function(modules) { // webpackBootstrap // a cell for the contents (showing text 'empty') var tdAppend = document.createElement('td'); var domText = document.createElement('div'); - domText.innerHTML = '(empty)'; + domText.innerHTML = '(' + translate('empty') + ')'; domText.className = 'jsoneditor-readonly'; tdAppend.appendChild(domText); dom.td = tdAppend; @@ -8235,7 +8412,7 @@ return /******/ (function(modules) { // webpackBootstrap var domText = dom.text; if (domText) { - domText.innerHTML = '(empty ' + this.parent.type + ')'; + domText.innerHTML = '(' + translate('empty') + ' ' + this.parent.type + ')'; } // attach or detach the contents of the append node: @@ -8285,7 +8462,7 @@ return /******/ (function(modules) { // webpackBootstrap var titles = Node.TYPE_TITLES; var appendSubmenu = [ { - text: 'Auto', + text: translate('auto'), className: 'jsoneditor-type-auto', title: titles.auto, click: function () { @@ -8293,7 +8470,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Array', + text: translate('array'), className: 'jsoneditor-type-array', title: titles.array, click: function () { @@ -8301,7 +8478,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Object', + text: translate('object'), className: 'jsoneditor-type-object', title: titles.object, click: function () { @@ -8309,7 +8486,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'String', + text: translate('string'), className: 'jsoneditor-type-string', title: titles.string, click: function () { @@ -8321,9 +8498,9 @@ return /******/ (function(modules) { // webpackBootstrap var items = [ // create append button { - 'text': 'Append', - 'title': 'Append a new field with type \'auto\' (Ctrl+Shift+Ins)', - 'submenuTitle': 'Select the type of the field to be appended', + 'text': translate('appendText'), + 'title': translate('appendTitleAuto'), + 'submenuTitle': translate('appendSubmenuTitle'), 'className': 'jsoneditor-insert', 'click': function () { node._onAppend('', '', 'auto'); @@ -8381,7 +8558,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 12 */ +/* 13 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -8502,7 +8679,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 13 */ +/* 14 */ /***/ function(module, exports) { 'use strict'; @@ -8889,13 +9066,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = completely; /***/ }, -/* 14 */ +/* 15 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ace = __webpack_require__(15); - var ModeSwitcher = __webpack_require__(12); + var ace = __webpack_require__(16); + var ModeSwitcher = __webpack_require__(13); var util = __webpack_require__(4); // create a mixin with the functions for text mode @@ -8963,7 +9140,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(19); + __webpack_require__(20); } catch (err) { console.error(err); @@ -9563,7 +9740,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 15 */ +/* 16 */ /***/ function(module, exports, __webpack_require__) { var ace @@ -9577,8 +9754,8 @@ return /******/ (function(modules) { // webpackBootstrap ace = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"brace\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())); // load required Ace plugins - __webpack_require__(16); - __webpack_require__(18); + __webpack_require__(17); + __webpack_require__(19); } catch (err) { // failed to load brace (can be minimalist bundle). @@ -9590,7 +9767,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 16 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { @@ -9892,7 +10069,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(17), "JsonWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(18), "JsonWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(e) { @@ -9915,14 +10092,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 17 */ +/* 18 */ /***/ function(module, exports) { module.exports.id = 'ace/mode/json_worker'; module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }, -/* 18 */ +/* 19 */ /***/ function(module, exports) { 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(acequire, exports, module) { @@ -10435,7 +10612,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 19 */ +/* 20 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** @@ -10588,4 +10765,4 @@ return /******/ (function(modules) { // webpackBootstrap /***/ } /******/ ]) }); -; +; \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index 3cbcabb..98e0376 100644 --- a/dist/jsoneditor-minimalist.map +++ b/dist/jsoneditor-minimalist.map @@ -1 +1 @@ -{"version":3,"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","destroy","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","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","navigationBar","hasOwnProperty","debounce","bind","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","reduce","all","findParents","parent","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","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","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","index","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","find","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","Array","first","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","next","key","jsonElementType","hnode","element","innerText","result","getOptions","getPath","then","show","startFrom","hideDropDown","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","click","onDuplicate","onRemove","close","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","splice","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","match","\b","\f","\n","\r","\t","test","pp","specialValues","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","el","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","textTillCaret","row","lastIndexOf","Element","polyfill","item","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","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","str","hash","lex","token","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","separator","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","path","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","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","some","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","foundSchema","allSchemas","patternProperties","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","auto","array","string","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","remove","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","rows","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","aceEditor","textarea","buttonFormat","format","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","Infinity","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfoDisplay","updateDisplay","selectionRange","curserPos","getCursorPosition","selectedText","getSelectedText","column","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","defaultToken","comment","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","getLine","openBracePos","findMatchingBracket","indent","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","src","lang","HashHandler","keyUtil","importCssString","showReplaceForm","div","setSession","$init","setEditor","renderer","scroller","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","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","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","last","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","activeElement","Search","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file +{"version":3,"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","destroy","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","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","navigationBar","hasOwnProperty","debounce","bind","languages","language","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","parentPairs","reduce","all","findParents","parent","some","pair","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","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","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","index","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","find","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","Array","first","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","next","key","jsonElementType","hnode","element","innerText","result","getOptions","getPath","hideDropDown","then","show","startFrom","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","click","onDuplicate","onRemove","close","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","splice","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","match","\b","\f","\n","\r","\t","test","pp","specialValues","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","el","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","textTillCaret","row","lastIndexOf","Element","polyfill","item","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","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","str","hash","lex","token","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","separator","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","array","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","removeText","removeTitle","removeField","sortTitle","string","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","l","lang","langFound","assign","path","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","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","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","foundSchema","allSchemas","patternProperties","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","remove","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","rows","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","aceEditor","textarea","buttonFormat","format","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","Infinity","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfoDisplay","updateDisplay","selectionRange","curserPos","getCursorPosition","selectedText","getSelectedText","column","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","defaultToken","comment","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","getLine","openBracePos","findMatchingBracket","indent","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","src","HashHandler","keyUtil","importCssString","showReplaceForm","div","setSession","$init","setEditor","renderer","scroller","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","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","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","last","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","activeElement","Search","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index abf1928..b8183b4 100644 --- a/dist/jsoneditor-minimalist.min.js +++ b/dist/jsoneditor-minimalist.min.js @@ -24,10 +24,10 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.13.3 - * @date 2018-02-09 + * @version 5.14.0 + * @date 2018-02-25 */ -!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){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)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=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar"];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(e){}var r=n(1),s=n(14),a=n(4);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||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=a.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=a.extend({},this.options),s=r.mode;r.mode=e;var l=i.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(n=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(n),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},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,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){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`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(i+24-e)/3:e>r-24&&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)},u._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,d.addEventListener(this.frame,"focus",e,!0),d.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.type="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.type="button",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.type="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.type="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 l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},u._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},u._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},u._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}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&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},u._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},u._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},u._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},u._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},u._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},u._onMultiSelectStart=function(e){var t=l.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=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},u._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.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))}},u._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},u.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},u.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)})}},u._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var h=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);"function"==typeof n.then?n.then(function(e){e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},u._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},u.showContextMenu=function(e,t){var n=[],i=this;n.push({text:"Duplicate",title:"Duplicate selected fields (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){l.onDuplicate(i.multiselection.nodes)}}),n.push({text:"Remove",title:"Remove selected fields (Ctrl+Del)",className:"jsoneditor-remove",click:function(){l.onRemove(i.multiselection.nodes)}}),new s(n,{close:t}).show(e,this.content)},e.exports=[{mode:"tree",mixin:u,data:"json"},{mode:"view",mixin:u,data:"json"},{mode:"form",mixin:u,data:"json"}]},function(e,t){"use strict";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,n){"use strict";function i(e){this.editor=e,this.history=[],this.index=-1,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(4);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.index=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&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){if(window.getSelection()){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,n){if(void 0==n&&(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 i=e.childNodes,o="",r=0,s=i.length;r5){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"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),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)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){var t,n,i,o,r,s=0,a=0;"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(s=e.selectionStart,a=e.selectionEnd):(n=document.selection.createRange())&&n.parentElement()==e&&(o=e.value.length,t=e.value.replace(/\r\n/g,"\n"),i=e.createTextRange(),i.moveToBookmark(n.getBookmark()),r=e.createTextRange(),r.collapse(!1),i.compareEndPoints("StartToEnd",r)>-1?s=a=o:(s=-i.moveStart("character",-o),s+=t.slice(0,s).split("\n").length-1,i.compareEndPoints("EndToEnd",r)>-1?a=o:(a=-i.moveEnd("character",-o),a+=t.slice(0,a).split("\n").length-1)));var l=e.value.substring(0,a),c=(l.match(/\n/g)||[]).length+1;return{start:s,end:a,col:l.length-l.lastIndexOf("\n"),row:c}},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[m])break;if(0==m)throw new Error(E||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),m=i[i.length-1]}f=p,p=h,m=i[i.length-1],g=s[m]&&s[m][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,f?(p=f,f=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[i[i.length-2]][i[i.length-1]],i.push(w);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];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&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||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 void 0!==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){"use strict";function n(e,t){var n=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var i=document.createElement("table");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.type="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.type="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.type="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)}n.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)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?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 i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.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,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=""},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()},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e){return e.getRootNode&&e.getRootNode()||window}function o(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.type="button",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);var d=document.createElement("div");d.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(o.text)),l.appendChild(d);var h;if(o.click){l.className+=" jsoneditor-default";var u=document.createElement("button");u.type="button",s.buttonExpand=u,u.className="jsoneditor-expand",u.innerHTML='
',a.appendChild(u),o.submenuTitle&&(u.title=o.submenuTitle),h=u}else{var p=document.createElement("div");p.className="jsoneditor-expand",l.appendChild(p),h=l}h.onclick=function(e){e.preventDefault(),i._onExpandItem(s),h.focus()};var f=[];s.subItems=f;var m=document.createElement("ul");s.ul=m,m.className="jsoneditor-menu",m.style.height="0",a.appendChild(m),n(m,f,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");l.type="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 r=n(4);o.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},o.visibleMenu=void 0,o.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(n=!1)}var d=a.left-l.left,h=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+"px",this.dom.menu.style.bottom="0px";this.rootNode=i(e),s.insertBefore(this.dom.root,s.firstChild);var p=this,f=this.dom.list;this.eventListeners.mousedown=r.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==f||p._isChildOf(t,f)||(p.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(this.rootNode,"keydown",function(e){p._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){p.dom.focusButton.focus()},0),o.visibleMenu&&o.visibleMenu.hide(),o.visibleMenu=this},o.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(this.rootNode,e,t),delete this.eventListeners[e]}o.visibleMenu==this&&(o.visibleMenu=void 0)},o.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="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i0;){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.type="button",o.className="jsoneditor-schema-error",o.appendChild(i),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(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");n.type="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");o.type="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),s=o._nextSibling(),l=n.editor,c=a.getAbsoluteTop(r.dom.tr)-a.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,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,s,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=a.getAbsoluteTop(n),g=n.offsetHeight,wf+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,s=c?c.nextSibling:void 0){m=a.getAbsoluteTop(s),r=s;do{u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?a.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 S=x-b.drag.mouseX,j=Math.round(S/24/2),N=b.drag.level+j,k=u.getLevel();for(o=u.dom.tr.previousSibling;k0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?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||a.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 S=this._firstNode();S&&S.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!m){var j=this._previousElement(p);j&&this.focus(this._getElementName(j)),v=!0}else if(g&&m&&y){if(x.expanded){var N=x.getAppend();o=N?N.nextSibling:void 0}else{var k=x.getDom();o=k.nextSibling}o&&(n=i.getNodeFromTarget(o),r=o.nextSibling,A=i.getNodeFromTarget(r),n&&n instanceof l&&1!=x.parent.childs.length&&A&&A.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){A.parent.moveBefore(e,A)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:A,oldSelection:s,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&&(s=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:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!m){var T=this._nextElement(p);T&&this.focus(this._getElementName(T)),v=!0}else if(g&&m&&y){k=w.getDom();var O=k.previousSibling;O&&(t=i.getNodeFromTarget(O))&&t.parent&&t instanceof l&&!t.isVisible()&&(s=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:s,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 A=n&&(n._nextNode()||n.parent.append);A&&A.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){A.parent.moveBefore(e,A)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:A,oldSelection:s,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.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,n="array"==this.type?"value":"field";this.hideChilds();var i=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,i){return t*o(e[n],i[n])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:i,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},i.prototype.getAppend=function(){return this.append||(this.append=new l(this.editor),this.append.setParent(this)),this.append.getDom()},i.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},i.blurNodes=function(e){if(!Array.isArray(e))return void i.blurNodes([e]);var t=e[0],n=t.parent,o=t.getIndex();n.childs[o+e.length]?n.childs[o+e.length].focus():n.childs[o-1]?n.childs[o-1].focus():n.focus()},i.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},i.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.previousSibling,e=i.getNodeFromTarget(n)}while(n&&e instanceof l&&!e.isVisible())}return e},i.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.nextSibling,e=i.getNodeFromTarget(n)}while(n&&e instanceof l&&!e.isVisible())}return e},i.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.firstChild;e=i.getNodeFromTarget(n)}return e},i.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.lastChild;for(e=i.getNodeFromTarget(n);n&&e instanceof l&&!e.isVisible();)n=n.previousSibling,e=i.getNodeFromTarget(n)}return e},i.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},i.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},i.prototype._getElementName=function(e){var t=this.dom;for(var n in t)if(t.hasOwnProperty(n)&&t[n]==e)return n;return null},i.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},i.TYPE_TITLES={auto:'Field type "auto". The field type is automatically determined from the value and can be a string, number, boolean, or null.',object:'Field type "object". An object contains an unordered set of key/value pairs.',array:'Field type "array". An array contains an ordered collection of values.',string:'Field type "string". Field type is not determined from the value, but always returned as string.'},i.prototype.addTemplates=function(e,t){var n=this,i=n.editor.options.templates;if(null!=i){i.length&&e.push({type:"separator"});var o=function(e,t){n._onAppend(e,t)},r=function(e,t){n._onInsertBefore(e,t)};i.forEach(function(n){e.push({text:n.text,className:n.className||"jsoneditor-type-object",title:n.title,click:t?o.bind(this,n.field,n.value):r.bind(this,n.field,n.value)})})}},i.prototype.showContextMenu=function(e,t){var n=this,o=i.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:"Type",title:"Change the type of this field",className:"jsoneditor-type-"+this.type,submenu:[{text:"Auto",className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){n._onChangeType("auto")}},{text:"Array",className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){n._onChangeType("array")}},{text:"Object",className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){n._onChangeType("object")}},{text:"String",className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){n._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:"Sort",title:"Sort the childs of this "+this.type,className:"jsoneditor-sort-"+a,click:function(){n.sort(a)},submenu:[{text:"Ascending",className:"jsoneditor-sort-asc",title:"Sort the childs of this "+this.type+" in ascending order",click:function(){n.sort("asc")}},{text:"Descending",className:"jsoneditor-sort-desc",title:"Sort the childs of this "+this.type+" in descending order",click:function(){n.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=n.parent.childs;if(n==l[l.length-1]){var c=[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(c,!0),s.push({text:"Append",title:"Append a new field with type 'auto' after this field (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-append",click:function(){n._onAppend("","","auto")},submenu:c})}var d=[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onInsertBefore("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){n._onInsertBefore("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){n._onInsertBefore("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){n._onInsertBefore("","","string")}}];n.addTemplates(d,!1),s.push({text:"Insert",title:"Insert a new field with type 'auto' before this field (Ctrl+Ins)",submenuTitle:"Select the type of the field to be inserted",className:"jsoneditor-insert",click:function(){n._onInsertBefore("","","auto")},submenu:d}),this.editable.field&&(s.push({text:"Duplicate",title:"Duplicate this field (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){i.onDuplicate(n)}}),s.push({text:"Remove",title:"Remove this field (Ctrl+Del)",className:"jsoneditor-remove",click:function(){i.onRemove(n)}}))}new r(s,{close:t}).show(e,this.editor.content)},i.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},i.prototype._stringCast=function(e){var t=e.toLowerCase(),n=Number(e),i=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(n)||isNaN(i)?e:n)},i.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=a.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;nm)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){"use strict";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,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var n=document.createElement("td");e.tdMenu=n;var i=document.createElement("button");i.type="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:"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")}}];i.addTemplates(s,!0),new r([{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:s}],{close:n}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,n=e.target||e.srcElement,i=this.dom;if(n==i.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&n==i.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(i.menu,"jsoneditor-selected"),this.showContextMenu(i.menu,function(){o.removeClassName(i.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=n(4),r=n(7);e.exports=i},function(e,t,n){"use strict";function i(e,t,n,i){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){i("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){i("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){i("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){i("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){i("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",h),this.element.addEventListener("keydown",h,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,d.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[f].substring(n.length)+"",i.push(m),t.appendChild(m)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),h=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=d.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=d.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var h="hidden"==s.style.visibility;if(d.hide(),h)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return d.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";var i=n(15),o=n(12),r=n(4),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:i;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{n(19)}catch(e){console.error(e)}var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=r.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var d=document.createElement("button");d.type="button",d.className="jsoneditor-repair",d.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(d),d.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new o(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var h={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(h);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=s.edit(this.editorDom);p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),p.getSession().setMode("ace/mode/json"),p.getSession().setTabSize(this.indentation),p.getSession().setUseSoftTabs(!0),p.getSession().setUseWrapMode(!0),p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var f=document.createElement("a");f.appendChild(document.createTextNode("powered by ace")),f.href="http://ace.ajax.org",f.target="_blank",f.className="jsoneditor-poweredBy",f.onclick=function(){window.open(f.href,f.target)},this.menu.appendChild(f),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var m=document.createElement("textarea");m.className="jsoneditor-text",m.spellcheck=!1,this.content.appendChild(m),this.textarea=m,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),m.onselect=this._onSelect.bind(this),m.onmousedown=this._onMouseDown.bind(this),m.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){r.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var y=document.createElement("span");y.className="jsoneditor-curserinfo-label",y.innerText="Ln:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(y),v.appendChild(b);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Col:";var x=document.createElement("span");x.className="jsoneditor-curserinfo-val",x.innerText="1",v.appendChild(w),v.appendChild(x),this.curserInfoElements.colVal=x,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(_)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this.options.statusBar&&this._updateCursorInfoDisplay()},s._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfoDisplay()},s._onMouseDown=function(e){this._updateCursorInfoDisplay()},s._onBlur=function(e){this._updateCursorInfoDisplay()},s._updateCursorInfoDisplay=function(){function e(){o.curserInfoElements.countVal.innerText!==i&&(o.curserInfoElements.countVal.innerText=i,o.curserInfoElements.countVal.style.display=i?"inline":"none",o.curserInfoElements.countLabel.style.display=i?"inline":"none"),o.curserInfoElements.lnVal.innerText=t,o.curserInfoElements.colVal.innerText=n}var t,n,i,o=this;if(this.options.statusBar)if(this.textarea)setTimeout(function(){var s=r.getInputSelection(o.textarea);t=s.row,n=s.col,s.start!==s.end&&(i=s.end-s.start),e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,n=s.column+1,i=a.length,e()}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=r.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=r.parse(t)}catch(n){t=r.sanitize(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?r.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var n=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=n}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,n=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return r.improveSchemaError(e)}))}if(n.length>0){if(n.length>3){n=n.slice(0,3);var i=this.validateSchema.errors.length-3;n.push("("+i+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+n.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.dom.validationErrorsContainer.appendChild(o);var s=o.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,n){var i;if(window.ace)i=window.ace;else try{i=n(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),n(16),n(18)}catch(e){}e.exports=i},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:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{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:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};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)},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/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)return new o(s,i,d,t.length)}}.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){t.match(/^.*[\{\(\[]\s*$/)&&(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(17),"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){e.exports.id="ace/mode/json_worker", +!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){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)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=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];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(e){}var r=n(1),s=n(15),a=n(4);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||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=a.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=a.extend({},this.options),s=r.mode;r.mode=e;var l=i.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(n=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(n),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},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,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){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`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(i+24-e)/3:e>r-24&&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)},f._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,d.addEventListener(this.frame,"focus",e,!0),d.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.type="button",n.className="jsoneditor-expand-all",n.title=u("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");if(i.type="button",i.title=u("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title=u("undo"),o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),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 l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},f._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},f._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},f._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}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&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},f._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},f._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},f._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},f._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},f._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},f._onMultiSelectStart=function(e){var t=l.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=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},f._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.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))}},f._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},f.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},f.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)})}},f._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var h=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===n?this.autocomplete.hideDropDown():"function"==typeof n.then?n.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},f._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},f.showContextMenu=function(e,t){var n=[],i=this;n.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(i.multiselection.nodes)}}),n.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(i.multiselection.nodes)}}),new s(n,{close:t}).show(e,this.content)},e.exports=[{mode:"tree",mixin:f,data:"json"},{mode:"view",mixin:f,data:"json"},{mode:"form",mixin:f,data:"json"}]},function(e,t){"use strict";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,n){"use strict";function i(e){this.editor=e,this.history=[],this.index=-1,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(4);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.index=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&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){if(window.getSelection()){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,n){if(void 0==n&&(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 i=e.childNodes,o="",r=0,s=i.length;r5){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"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),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)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){var t,n,i,o,r,s=0,a=0;"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(s=e.selectionStart,a=e.selectionEnd):(n=document.selection.createRange())&&n.parentElement()==e&&(o=e.value.length,t=e.value.replace(/\r\n/g,"\n"),i=e.createTextRange(),i.moveToBookmark(n.getBookmark()),r=e.createTextRange(),r.collapse(!1),i.compareEndPoints("StartToEnd",r)>-1?s=a=o:(s=-i.moveStart("character",-o),s+=t.slice(0,s).split("\n").length-1,i.compareEndPoints("EndToEnd",r)>-1?a=o:(a=-i.moveEnd("character",-o),a+=t.slice(0,a).split("\n").length-1)));var l=e.value.substring(0,a),c=(l.match(/\n/g)||[]).length+1;return{start:s,end:a,col:l.length-l.lastIndexOf("\n"),row:c}},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[f])break;if(0==f)throw new Error(E||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),f=i[i.length-1]}m=p,p=h,f=i[i.length-1],g=s[f]&&s[f][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,m?(p=m,m=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[i[i.length-2]][i[i.length-1]],i.push(w);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];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&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||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 void 0!==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){"use strict";function n(e,t){var n=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var i=document.createElement("table");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.type="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.type="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 m=document.createElement("button");m.type="button",m.title="Previous result (Shift+Enter)",m.className="jsoneditor-previous",m.onclick=function(){n.previous()},s=document.createElement("td"),s.appendChild(m),r.appendChild(s)}n.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)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?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 i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.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,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=""},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()},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e){return e.getRootNode&&e.getRootNode()||window}function o(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(r),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=o.className,a.button=c,o.title&&(c.title=o.title),o.click&&(c.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),l.appendChild(c),o.submenu){var d=document.createElement("div");d.className="jsoneditor-icon",c.appendChild(d);var h=document.createElement("div");h.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),h.appendChild(document.createTextNode(o.text)),c.appendChild(h);var u;if(o.click){c.className+=" jsoneditor-default";var p=document.createElement("button");p.type="button",a.buttonExpand=p,p.className="jsoneditor-expand",p.innerHTML='
',l.appendChild(p),o.submenuTitle&&(p.title=o.submenuTitle),u=p}else{var m=document.createElement("div");m.className="jsoneditor-expand",c.appendChild(m),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.focus()};var f=[];a.subItems=f;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),n(g,f,o.submenu)}else c.innerHTML='
'+s(o.text)+"
";t.push(a)}})}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 a=document.createElement("div");a.className="jsoneditor-contextmenu",o.menu=a,r.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),o.list=l,o.items=[];var c=document.createElement("button");c.type="button",o.focusButton=c;var d=document.createElement("li");d.style.overflow="hidden",d.style.height="0",d.appendChild(c),l.appendChild(d),n(l,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 r=n(4),s=n(8).translate;o.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},o.visibleMenu=void 0,o.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(n=!1)}var d=a.left-l.left,h=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+"px",this.dom.menu.style.bottom="0px";this.rootNode=i(e),s.insertBefore(this.dom.root,s.firstChild);var p=this,m=this.dom.list;this.eventListeners.mousedown=r.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==m||p._isChildOf(t,m)||(p.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(this.rootNode,"keydown",function(e){p._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){p.dom.focusButton.focus()},0),o.visibleMenu&&o.visibleMenu.hide(),o.visibleMenu=this},o.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(this.rootNode,e,t),delete this.eventListeners[e]}o.visibleMenu==this&&(o.visibleMenu=void 0)},o.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="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i0;){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.type="button",o.className="jsoneditor-schema-error",o.appendChild(i),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:l("duplicateKey")+' "'+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");n.type="button",e.drag=n,n.className="jsoneditor-dragarea",n.title=l("drag"),t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title=l("actionsMenu"),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),s=o._nextSibling(),l=n.editor,c=a.getAbsoluteTop(r.dom.tr)-a.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,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,s,l,d,h,u,p,m,f,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=a.getAbsoluteTop(n),g=n.offsetHeight,wm+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(l=C.expanded&&C.append?C.append.getDom():C.dom.tr,s=l?l.nextSibling:void 0){f=a.getAbsoluteTop(s),r=s;do{u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?a.getAbsoluteTop(r.nextSibling):0,y=r?v-f: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 S=x-b.drag.mouseX,j=Math.round(S/24/2),N=b.drag.level+j,k=u.getLevel();for(o=u.dom.tr.previousSibling;k0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?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||a.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)m&&y&&(i.onDuplicate(b),v=!0);else if(69==u)m&&(this._onExpand(f),p.focus(),v=!0);else if(77==u&&y)m&&(this.showContextMenu(p),v=!0);else if(46==u&&y)m&&(i.onRemove(b),v=!0);else if(45==u&&y)m&&!f?(this._onInsertBefore(),v=!0):m&&f&&(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 S=this._firstNode();S&&S.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!f){var j=this._previousElement(p);j&&this.focus(this._getElementName(j)),v=!0}else if(g&&f&&y){if(x.expanded){var N=x.getAppend();o=N?N.nextSibling:void 0}else{var k=x.getDom();o=k.nextSibling}o&&(n=i.getNodeFromTarget(o),r=o.nextSibling,A=i.getNodeFromTarget(r),n&&n instanceof c&&1!=x.parent.childs.length&&A&&A.parent&&(s=this.editor.getSelection(),l=x._nextSibling(),b.forEach(function(e){A.parent.moveBefore(e,A)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:A,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==u)g&&!f?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(p))),v=!0):!g&&m&&f&&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&&f&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),l=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:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!f){var T=this._nextElement(p);T&&this.focus(this._getElementName(T)),v=!0}else if(g&&f&&y){k=w.getDom();var O=k.previousSibling;O&&(t=i.getNodeFromTarget(O))&&t.parent&&t instanceof c&&!t.isVisible()&&(s=this.editor.getSelection(),l=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:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==u)if(g&&!f)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(p))),v=!0;else if(!g&&m&&f&&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&&f&&y){n=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode();var A=n&&(n._nextNode()||n.parent.append);A&&A.parent&&(s=this.editor.getSelection(),l=x._nextSibling(),b.forEach(function(e){A.parent.moveBefore(e,A)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:A,oldSelection:s,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.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,n="array"==this.type?"value":"field";this.hideChilds();var i=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,i){return t*o(e[n],i[n])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:i,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},i.prototype.getAppend=function(){return this.append||(this.append=new c(this.editor),this.append.setParent(this)),this.append.getDom()},i.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},i.blurNodes=function(e){if(!Array.isArray(e))return void i.blurNodes([e]);var t=e[0],n=t.parent,o=t.getIndex();n.childs[o+e.length]?n.childs[o+e.length].focus():n.childs[o-1]?n.childs[o-1].focus():n.focus()},i.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},i.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.previousSibling,e=i.getNodeFromTarget(n)}while(n&&e instanceof c&&!e.isVisible())}return e},i.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.nextSibling,e=i.getNodeFromTarget(n)}while(n&&e instanceof c&&!e.isVisible())}return e},i.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.firstChild;e=i.getNodeFromTarget(n)}return e},i.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.lastChild;for(e=i.getNodeFromTarget(n);n&&e instanceof c&&!e.isVisible();)n=n.previousSibling,e=i.getNodeFromTarget(n)}return e},i.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},i.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},i.prototype._getElementName=function(e){var t=this.dom;for(var n in t)if(t.hasOwnProperty(n)&&t[n]==e)return n;return null},i.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},i.TYPE_TITLES={auto:l("autoType"),object:l("objectType"),array:l("arrayType"),string:l("stringType")},i.prototype.addTemplates=function(e,t){var n=this,i=n.editor.options.templates;if(null!=i){i.length&&e.push({type:"separator"});var o=function(e,t){n._onAppend(e,t)},r=function(e,t){n._onInsertBefore(e,t)};i.forEach(function(n){e.push({text:n.text,className:n.className||"jsoneditor-type-object",title:n.title,click:t?o.bind(this,n.field,n.value):r.bind(this,n.field,n.value)})})}},i.prototype.showContextMenu=function(e,t){var n=this,o=i.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:l("type"),title:l("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:l("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){n._onChangeType("auto")}},{text:l("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){n._onChangeType("array")}},{text:l("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){n._onChangeType("object")}},{text:l("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){n._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:l("sort"),title:l("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){n.sort(a)},submenu:[{text:l("ascending"),className:"jsoneditor-sort-asc",title:l("ascendingTitle",{type:this.type}),click:function(){n.sort("asc")}},{text:l("descending"),className:"jsoneditor-sort-desc",title:l("descendingTitle",{type:this.type}),click:function(){n.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var c=n.parent.childs;if(n==c[c.length-1]){var d=[{text:l("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(d,!0),s.push({text:l("appendText"),title:l("appendTitle"),submenuTitle:l("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){n._onAppend("","","auto")},submenu:d})}var h=[{text:l("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onInsertBefore("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onInsertBefore("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onInsertBefore("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onInsertBefore("","","string")}}];n.addTemplates(h,!1),s.push({text:l("insert"),title:l("insertTitle"),submenuTitle:l("insertSub"),className:"jsoneditor-insert",click:function(){n._onInsertBefore("","","auto")},submenu:h}),this.editable.field&&(s.push({text:l("duplicateText"),title:l("duplicateField"),className:"jsoneditor-duplicate",click:function(){i.onDuplicate(n)}}),s.push({text:l("removeText"),title:l("removeField"),className:"jsoneditor-remove",click:function(){i.onRemove(n)}}))}new r(s,{close:t}).show(e,this.editor.content)},i.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},i.prototype._stringCast=function(e){var t=e.toLowerCase(),n=Number(e),i=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(n)||isNaN(i)?e:n)},i.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=a.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;nf)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){"use strict";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,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var n=document.createElement("td");e.tdMenu=n;var i=document.createElement("button");i.type="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="("+s("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="("+s("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,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){i._onAppend("","","auto")},submenu:a}];new r(l,{close:n}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,n=e.target||e.srcElement,i=this.dom;if(n==i.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&n==i.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(i.menu,"jsoneditor-selected"),this.showContextMenu(i.menu,function(){o.removeClassName(i.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=n(4),r=n(7),s=n(8).translate;e.exports=i},function(e,t,n){"use strict";function i(e,t,n,i){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){i("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){i("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){i("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){i("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){i("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",h),this.element.addEventListener("keydown",h,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,d.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[m].substring(n.length)+"",i.push(f),t.appendChild(f)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),h=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=d.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=d.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var h="hidden"==s.style.visibility;if(d.hide(),h)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return d.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";var i=n(16),o=n(13),r=n(4),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:i;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{n(20)}catch(e){console.error(e)}var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=r.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var d=document.createElement("button");d.type="button",d.className="jsoneditor-repair",d.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(d),d.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new o(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var h={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(h);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=s.edit(this.editorDom);p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),p.getSession().setMode("ace/mode/json"),p.getSession().setTabSize(this.indentation),p.getSession().setUseSoftTabs(!0),p.getSession().setUseWrapMode(!0),p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var m=document.createElement("a");m.appendChild(document.createTextNode("powered by ace")),m.href="http://ace.ajax.org",m.target="_blank",m.className="jsoneditor-poweredBy",m.onclick=function(){window.open(m.href,m.target)},this.menu.appendChild(m),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var f=document.createElement("textarea");f.className="jsoneditor-text",f.spellcheck=!1,this.content.appendChild(f),this.textarea=f,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),f.onselect=this._onSelect.bind(this),f.onmousedown=this._onMouseDown.bind(this),f.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){r.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var y=document.createElement("span");y.className="jsoneditor-curserinfo-label",y.innerText="Ln:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(y),v.appendChild(b);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Col:";var x=document.createElement("span");x.className="jsoneditor-curserinfo-val",x.innerText="1",v.appendChild(w),v.appendChild(x),this.curserInfoElements.colVal=x,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(_)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this.options.statusBar&&this._updateCursorInfoDisplay()},s._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfoDisplay()},s._onMouseDown=function(e){this._updateCursorInfoDisplay()},s._onBlur=function(e){this._updateCursorInfoDisplay()},s._updateCursorInfoDisplay=function(){function e(){o.curserInfoElements.countVal.innerText!==i&&(o.curserInfoElements.countVal.innerText=i,o.curserInfoElements.countVal.style.display=i?"inline":"none",o.curserInfoElements.countLabel.style.display=i?"inline":"none"),o.curserInfoElements.lnVal.innerText=t,o.curserInfoElements.colVal.innerText=n}var t,n,i,o=this;if(this.options.statusBar)if(this.textarea)setTimeout(function(){var s=r.getInputSelection(o.textarea);t=s.row,n=s.col,s.start!==s.end&&(i=s.end-s.start),e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,n=s.column+1,i=a.length,e()}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=r.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=r.parse(t)}catch(n){t=r.sanitize(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?r.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var n=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=n}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,n=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return r.improveSchemaError(e)}))}if(n.length>0){if(n.length>3){n=n.slice(0,3);var i=this.validateSchema.errors.length-3;n.push("("+i+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+n.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.dom.validationErrorsContainer.appendChild(o);var s=o.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,n){var i;if(window.ace)i=window.ace;else try{i=n(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),n(17),n(19)}catch(e){}e.exports=i},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:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{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:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};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)},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/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)return new o(s,i,d,t.length)}}.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){t.match(/^.*[\{\(\[]\s*$/)&&(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(18),"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){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}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";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)}});'},function(e,t){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=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");i.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,n){var o=i.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),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.searchCounter=e.querySelector(".ace_search_counter")},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=a.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 s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),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()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){i.setCssClass(this.replaceOption,"checked",this.searchRange),i.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",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.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},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,range:this.searchRange}),r=!o&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,i=0;if(t){var o=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),r=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(r-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(o))&&(n++,a=s.index,a<=r&&i++,!(n>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=o.length))););}this.searchCounter.textContent=i+" of "+(n>999?"999+":n)},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.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){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 {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor-minimalist.map \ No newline at end of file diff --git a/dist/jsoneditor.js b/dist/jsoneditor.js index 4d24a8a..a644f1c 100644 --- a/dist/jsoneditor.js +++ b/dist/jsoneditor.js @@ -24,8 +24,8 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.13.3 - * @date 2018-02-09 + * @version 5.14.0 + * @date 2018-02-25 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -94,7 +94,7 @@ return /******/ (function(modules) { // webpackBootstrap } var treemode = __webpack_require__(51); - var textmode = __webpack_require__(64); + var textmode = __webpack_require__(65); var util = __webpack_require__(54); /** @@ -168,7 +168,7 @@ return /******/ (function(modules) { // webpackBootstrap 'ace', 'theme','autocomplete', 'onChange', 'onEditable', 'onError', 'onModeChange', 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', - 'sortObjectKeys', 'navigationBar', 'statusBar' + 'sortObjectKeys', 'navigationBar', 'statusBar', 'languages', 'language' ]; Object.keys(options).forEach(function (option) { @@ -8040,11 +8040,14 @@ return /******/ (function(modules) { // webpackBootstrap var History = __webpack_require__(53); var SearchBox = __webpack_require__(56); var ContextMenu = __webpack_require__(57); - var TreePath = __webpack_require__(58); - var Node = __webpack_require__(59); - var ModeSwitcher = __webpack_require__(62); + var TreePath = __webpack_require__(59); + var Node = __webpack_require__(60); + var ModeSwitcher = __webpack_require__(63); var util = __webpack_require__(54); - var autocomplete = __webpack_require__(63); + var autocomplete = __webpack_require__(64); + var translate = __webpack_require__(58).translate; + var setLanguages = __webpack_require__(58).setLanguages; + var setLanguage = __webpack_require__(58).setLanguage; // create a mixin with the functions for tree mode var treemode = {}; @@ -8167,6 +8170,9 @@ return /******/ (function(modules) { // webpackBootstrap // create a debounced validate function this._debouncedValidate = util.debounce(this.validate.bind(this), this.DEBOUNCE_INTERVAL); + + setLanguages(this.options.languages); + setLanguage(this.options.language) }; /** @@ -8470,28 +8476,35 @@ return /******/ (function(modules) { // webpackBootstrap } } - // display the error in the nodes with a problem - this.errorNodes = duplicateErrors - .concat(schemaErrors) - .reduce(function expandParents (all, entry) { - // expand parents, then merge such that parents come first and - // original entries last - return entry.node - .findParents() - .map(function (parent) { - return { - node: parent, - child: entry.node, - error: { - message: parent.type === 'object' - ? 'Contains invalid properties' // object - : 'Contains invalid items' // array - } - }; - }) - .concat(all, [entry]); - }, []) - // TODO: dedupe the parent nodes + var errorNodes = duplicateErrors.concat(schemaErrors); + var parentPairs = errorNodes + .reduce(function (all, entry) { + return entry.node + .findParents() + .filter(function (parent) { + return !all.some(function (pair) { + return pair[0] === parent; + }); + }) + .map(function (parent) { + return [parent, entry.node]; + }) + .concat(all); + }, []); + + this.errorNodes = parentPairs + .map(function (pair) { + return { + node: pair[0], + child: pair[1], + error: { + message: pair[0].type === 'object' + ? 'Contains invalid properties' // object + : 'Contains invalid items' // array + } + }; + }) + .concat(errorNodes) .map(function setError (entry) { entry.node.setError(entry.error, entry.child); return entry.node; @@ -8730,7 +8743,7 @@ return /******/ (function(modules) { // webpackBootstrap var expandAll = document.createElement('button'); expandAll.type = 'button'; expandAll.className = 'jsoneditor-expand-all'; - expandAll.title = 'Expand all fields'; + expandAll.title = translate('expandAll'); expandAll.onclick = function () { editor.expandAll(); }; @@ -8739,7 +8752,7 @@ return /******/ (function(modules) { // webpackBootstrap // create collapse all button var collapseAll = document.createElement('button'); collapseAll.type = 'button'; - collapseAll.title = 'Collapse all fields'; + collapseAll.title = translate('collapseAll'); collapseAll.className = 'jsoneditor-collapse-all'; collapseAll.onclick = function () { editor.collapseAll(); @@ -8752,7 +8765,7 @@ return /******/ (function(modules) { // webpackBootstrap var undo = document.createElement('button'); undo.type = 'button'; undo.className = 'jsoneditor-undo jsoneditor-separator'; - undo.title = 'Undo last action (Ctrl+Z)'; + undo.title = translate('undo'); undo.onclick = function () { editor._onUndo(); }; @@ -8763,7 +8776,7 @@ return /******/ (function(modules) { // webpackBootstrap var redo = document.createElement('button'); redo.type = 'button'; redo.className = 'jsoneditor-redo'; - redo.title = 'Redo (Ctrl+Shift+Z)'; + redo.title = translate('redo'); redo.onclick = function () { editor._onRedo(); }; @@ -9251,13 +9264,18 @@ return /******/ (function(modules) { // webpackBootstrap setTimeout(function (hnode, element) { if (element.innerText.length > 0) { var result = this.options.autocomplete.getOptions(element.innerText, hnode.getPath(), jsonElementType, hnode.editor); - if (typeof result.then === 'function') { + if (result === null) { + this.autocomplete.hideDropDown(); + } else if (typeof result.then === 'function') { // probably a promise if (result.then(function (obj) { - if (obj.options) + if (obj === null) { + this.autocomplete.hideDropDown(); + } else if (obj.options) { this.autocomplete.show(element, obj.startFrom, obj.options); - else + } else { this.autocomplete.show(element, 0, obj); + } }.bind(this))); } else { // definitely not a promise @@ -9335,8 +9353,8 @@ return /******/ (function(modules) { // webpackBootstrap // create duplicate button items.push({ - text: 'Duplicate', - title: 'Duplicate selected fields (Ctrl+D)', + text: translate('duplicateText'), + title: translate('duplicateTitle'), className: 'jsoneditor-duplicate', click: function () { Node.onDuplicate(editor.multiselection.nodes); @@ -9345,8 +9363,8 @@ return /******/ (function(modules) { // webpackBootstrap // create remove button items.push({ - text: 'Remove', - title: 'Remove selected fields (Ctrl+Del)', + text: translate('remove'), + title: translate('removeTitle'), className: 'jsoneditor-remove', click: function () { Node.onRemove(editor.multiselection.nodes); @@ -11422,6 +11440,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var util = __webpack_require__(54); + var translate = __webpack_require__(58).translate; /** * Node.getRootNode shim @@ -11572,7 +11591,7 @@ return /******/ (function(modules) { // webpackBootstrap else { // no submenu, just a button with clickhandler button.innerHTML = '
' + - '
' + item.text + '
'; + '
' + translate(item.text) + '
'; } domItems.push(domItem); @@ -11910,6 +11929,170 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 58 */ +/***/ function(module, exports) { + + 'use strict'; + + var _locales = ['en', 'pt-BR']; + var _defs = { + en: { + 'array': 'Array', + 'auto': 'Auto', + 'appendText': 'Append', + 'appendTitle': 'Append a new field with type \'auto\' after this field (Ctrl+Shift+Ins)', + 'appendSubmenuTitle': 'Select the type of the field to be appended', + 'appendTitleAuto': 'Append a new field with type \'auto\' (Ctrl+Shift+Ins)', + 'ascending': 'Ascending', + 'ascendingTitle': 'Sort the childs of this ${type} in ascending order', + 'actionsMenu': 'Click to open the actions menu (Ctrl+M)', + 'collapseAll': 'Collapse all fields', + 'descending': 'Descending', + 'descendingTitle': 'Sort the childs of this ${type} in descending order', + 'drag': 'Drag to move this field (Alt+Shift+Arrows)', + 'duplicateKey': 'duplicate key', + 'duplicateText': 'Duplicate', + 'duplicateTitle': 'Duplicate selected fields (Ctrl+D)', + 'duplicateField': 'Duplicate this field (Ctrl+D)', + 'empty': 'empty', + 'expandAll': 'Expand all fields', + 'expandTitle': 'Click to expand/collapse this field (Ctrl+E). \n' + + 'Ctrl+Click to expand/collapse including all childs.', + 'insert': 'Insert', + 'insertTitle': 'Insert a new field with type \'auto\' before this field (Ctrl+Ins)', + 'insertSub': 'Select the type of the field to be inserted', + 'object': 'Object', + 'redo': 'Redo (Ctrl+Shift+Z)', + 'removeText': 'Remove', + 'removeTitle': 'Remove selected fields (Ctrl+Del)', + 'removeField': 'Remove this field (Ctrl+Del)', + 'sort': 'Sort', + 'sortTitle': 'Sort the childs of this ', + 'string': 'String', + 'type': 'Type', + 'typeTitle': 'Change the type of this field', + 'openUrl': 'Ctrl+Click or Ctrl+Enter to open url in new window', + 'undo': 'Undo last action (Ctrl+Z)', + 'validationCannotMove': 'Cannot move a field into a child of itself', + 'autoType': 'Field type "auto". ' + + 'The field type is automatically determined from the value ' + + 'and can be a string, number, boolean, or null.', + 'objectType': 'Field type "object". ' + + 'An object contains an unordered set of key/value pairs.', + 'arrayType': 'Field type "array". ' + + 'An array contains an ordered collection of values.', + 'stringType': 'Field type "string". ' + + 'Field type is not determined from the value, ' + + 'but always returned as string.' + }, + 'pt-BR': { + 'array': 'Lista', + 'auto': 'Automatico', + 'appendText': 'Adicionar', + 'appendTitle': 'Adicionar novo campo com tipo \'auto\' depois deste campo (Ctrl+Shift+Ins)', + 'appendSubmenuTitle': 'Selecione o tipo do campo a ser adicionado', + 'appendTitleAuto': 'Adicionar novo campo com tipo \'auto\' (Ctrl+Shift+Ins)', + 'ascending': 'Ascendente', + 'ascendingTitle': 'Organizar filhor do tipo ${type} em crescente', + 'actionsMenu': 'Clique para abrir o menu de ações (Ctrl+M)', + 'collapseAll': 'Fechar todos campos', + 'descending': 'Descendente', + 'descendingTitle': 'Organizar o filhos do tipo ${type} em decrescente', + 'duplicateKey': 'chave duplicada', + 'drag': 'Arraste para mover este campo (Alt+Shift+Arrows)', + 'duplicateText': 'Duplicar', + 'duplicateTitle': 'Duplicar campos selecionados (Ctrl+D)', + 'duplicateField': 'Duplicar este campo (Ctrl+D)', + 'empty': 'vazio', + 'expandAll': 'Expandir todos campos', + 'expandTitle': 'Clique para expandir/encolher este campo (Ctrl+E). \n' + + 'Ctrl+Click para expandir/encolher incluindo todos os filhos.', + 'insert': 'Inserir', + 'insertTitle': 'Inserir um novo campo do tipo \'auto\' antes deste campo (Ctrl+Ins)', + 'insertSub': 'Selecionar o tipo de campo a ser inserido', + 'object': 'Objeto', + 'redo': 'Refazer (Ctrl+Shift+Z)', + 'removeText': 'Remover', + 'removeTitle': 'Remover campos selecionados (Ctrl+Del)', + 'removeField': 'Remover este campo (Ctrl+Del)', + 'sort': 'Organizar', + 'sortTitle': 'Organizar os filhos deste ', + 'string': 'Texto', + 'type': 'Tipo', + 'typeTitle': 'Mudar o tipo deste campo', + 'openUrl': 'Ctrl+Click ou Ctrl+Enter para abrir link em nova janela', + 'undo': 'Desfazer último ação (Ctrl+Z)', + 'validationCannotMove': 'Não pode mover um campo como filho dele mesmo', + 'autoType': 'Campo do tipo "auto". ' + + 'O tipo do campo é determinao automaticamente a partir do seu valor ' + + 'e pode ser texto, número, verdade/falso ou nulo.', + 'objectType': 'Campo do tipo "objeto". ' + + 'Um objeto contém uma lista de pares com chave e valor.', + 'arrayType': 'Campo do tipo "lista". ' + + 'Uma lista contem uma coleção de valores ordenados.', + 'stringType': 'Campo do tipo "string". ' + + 'Campo do tipo nao é determinado através do seu valor, ' + + 'mas sempre retornara um texto.' + } + }; + + var _defaultLang = 'en'; + var _lang; + var userLang = navigator.language || navigator.userLanguage; + _lang = _locales.find(function (l) { + return l === userLang; + }); + if (!_lang) { + _lang = _defaultLang; + } + + module.exports = { + // supported locales + _locales: _locales, + _defs: _defs, + _lang: _lang, + setLanguage: function (lang) { + if (!lang) { + return; + } + var langFound = _locales.find(function (l) { + return l === lang; + }); + if (langFound) { + _lang = langFound; + } else { + console.error('Language not found'); + } + }, + setLanguages: function (languages) { + if (!languages) { + return; + } + for (var key in languages) { + var langFound = _locales.find(function (l) { + return l === key; + }); + if (!langFound) { + _locales.push(key); + } + _defs[key] = Object.assign({}, _defs[_defaultLang], _defs[key], languages[key]); + } + }, + translate: function (key, data, lang) { + if (!lang) { + lang = _lang; + } + var text = _defs[lang][key]; + if (data) { + for (key in data) { + text = text.replace('${' + key + '}', data[key]); + } + } + return text || key; + } + }; + +/***/ }, +/* 59 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -12021,15 +12204,16 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = TreePath; /***/ }, -/* 59 */ +/* 60 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var naturalSort = __webpack_require__(60); + var naturalSort = __webpack_require__(61); var ContextMenu = __webpack_require__(57); - var appendNodeFactory = __webpack_require__(61); + var appendNodeFactory = __webpack_require__(62); var util = __webpack_require__(54); + var translate = __webpack_require__(58).translate; /** * @constructor Node @@ -12978,7 +13162,7 @@ return /******/ (function(modules) { // webpackBootstrap // check if this node is not a child of the node to be moved here if (node.containsNode(this)) { - throw new Error('Cannot move a field into a child of itself'); + throw new Error(translate('validationCannotMove')); } // remove the original node @@ -13290,7 +13474,7 @@ return /******/ (function(modules) { // webpackBootstrap domValue.title = this.type + ' containing ' + count + ' items'; } else if (isUrl && this.editable.value) { - domValue.title = 'Ctrl+Click or Ctrl+Enter to open url in new window'; + domValue.title = translate('openUrl'); } else { domValue.title = ''; @@ -13477,7 +13661,7 @@ return /******/ (function(modules) { // webpackBootstrap return { node: node, error: { - message: 'duplicate key "' + node.field + '"' + message: translate('duplicateKey') + ' "' + node.field + '"' } } }); @@ -13534,7 +13718,7 @@ return /******/ (function(modules) { // webpackBootstrap domDrag.type = 'button'; dom.drag = domDrag; domDrag.className = 'jsoneditor-dragarea'; - domDrag.title = 'Drag to move this field (Alt+Shift+Arrows)'; + domDrag.title = translate('drag'); tdDrag.appendChild(domDrag); } } @@ -13546,7 +13730,7 @@ return /******/ (function(modules) { // webpackBootstrap menu.type = 'button'; dom.menu = menu; menu.className = 'jsoneditor-contextmenu'; - menu.title = 'Click to open the actions menu (Ctrl+M)'; + menu.title = translate('actionsMenu'); tdMenu.appendChild(dom.menu); dom.tr.appendChild(tdMenu); } @@ -14203,9 +14387,7 @@ return /******/ (function(modules) { // webpackBootstrap expand.type = 'button'; if (this._hasChilds()) { expand.className = this.expanded ? 'jsoneditor-expanded' : 'jsoneditor-collapsed'; - expand.title = - 'Click to expand/collapse this field (Ctrl+E). \n' + - 'Ctrl+Click to expand/collapse including all childs.'; + expand.title = translate('expandTitle'); } else { expand.className = 'jsoneditor-invisible'; @@ -15235,16 +15417,10 @@ return /******/ (function(modules) { // webpackBootstrap // titles with explanation for the different types Node.TYPE_TITLES = { - 'auto': 'Field type "auto". ' + - 'The field type is automatically determined from the value ' + - 'and can be a string, number, boolean, or null.', - 'object': 'Field type "object". ' + - 'An object contains an unordered set of key/value pairs.', - 'array': 'Field type "array". ' + - 'An array contains an ordered collection of values.', - 'string': 'Field type "string". ' + - 'Field type is not determined from the value, ' + - 'but always returned as string.' + 'auto': translate('autoType'), + 'object': translate('objectType'), + 'array': translate('arrayType'), + 'string': translate('stringType') }; Node.prototype.addTemplates = function (menu, append) { @@ -15287,12 +15463,12 @@ return /******/ (function(modules) { // webpackBootstrap if (this.editable.value) { items.push({ - text: 'Type', - title: 'Change the type of this field', + text: translate('type'), + title: translate('typeTitle'), className: 'jsoneditor-type-' + this.type, submenu: [ { - text: 'Auto', + text: translate('auto'), className: 'jsoneditor-type-auto' + (this.type == 'auto' ? ' jsoneditor-selected' : ''), title: titles.auto, @@ -15301,7 +15477,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Array', + text: translate('array'), className: 'jsoneditor-type-array' + (this.type == 'array' ? ' jsoneditor-selected' : ''), title: titles.array, @@ -15310,7 +15486,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Object', + text: translate('object'), className: 'jsoneditor-type-object' + (this.type == 'object' ? ' jsoneditor-selected' : ''), title: titles.object, @@ -15319,7 +15495,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'String', + text: translate('string'), className: 'jsoneditor-type-string' + (this.type == 'string' ? ' jsoneditor-selected' : ''), title: titles.string, @@ -15334,25 +15510,25 @@ return /******/ (function(modules) { // webpackBootstrap if (this._hasChilds()) { var direction = ((this.sortOrder == 'asc') ? 'desc': 'asc'); items.push({ - text: 'Sort', - title: 'Sort the childs of this ' + this.type, + text: translate('sort'), + title: translate('sortTitle') + this.type, className: 'jsoneditor-sort-' + direction, click: function () { node.sort(direction); }, submenu: [ { - text: 'Ascending', + text: translate('ascending'), className: 'jsoneditor-sort-asc', - title: 'Sort the childs of this ' + this.type + ' in ascending order', + title: translate('ascendingTitle' , {type: this.type}), click: function () { node.sort('asc'); } }, { - text: 'Descending', + text: translate('descending'), className: 'jsoneditor-sort-desc', - title: 'Sort the childs of this ' + this.type +' in descending order', + title: translate('descendingTitle' , {type: this.type}), click: function () { node.sort('desc'); } @@ -15374,7 +15550,7 @@ return /******/ (function(modules) { // webpackBootstrap if (node == childs[childs.length - 1]) { var appendSubmenu = [ { - text: 'Auto', + text: translate('auto'), className: 'jsoneditor-type-auto', title: titles.auto, click: function () { @@ -15382,7 +15558,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Array', + text: translate('array'), className: 'jsoneditor-type-array', title: titles.array, click: function () { @@ -15390,7 +15566,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Object', + text: translate('object'), className: 'jsoneditor-type-object', title: titles.object, click: function () { @@ -15398,7 +15574,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'String', + text: translate('string'), className: 'jsoneditor-type-string', title: titles.string, click: function () { @@ -15408,9 +15584,9 @@ return /******/ (function(modules) { // webpackBootstrap ]; node.addTemplates(appendSubmenu, true); items.push({ - text: 'Append', - title: 'Append a new field with type \'auto\' after this field (Ctrl+Shift+Ins)', - submenuTitle: 'Select the type of the field to be appended', + text: translate('appendText'), + title: translate('appendTitle'), + submenuTitle: translate('appendSubmenuTitle'), className: 'jsoneditor-append', click: function () { node._onAppend('', '', 'auto'); @@ -15424,7 +15600,7 @@ return /******/ (function(modules) { // webpackBootstrap // create insert button var insertSubmenu = [ { - text: 'Auto', + text: translate('auto'), className: 'jsoneditor-type-auto', title: titles.auto, click: function () { @@ -15432,7 +15608,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Array', + text: translate('array'), className: 'jsoneditor-type-array', title: titles.array, click: function () { @@ -15440,7 +15616,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Object', + text: translate('object'), className: 'jsoneditor-type-object', title: titles.object, click: function () { @@ -15448,7 +15624,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'String', + text: translate('string'), className: 'jsoneditor-type-string', title: titles.string, click: function () { @@ -15458,9 +15634,9 @@ return /******/ (function(modules) { // webpackBootstrap ]; node.addTemplates(insertSubmenu, false); items.push({ - text: 'Insert', - title: 'Insert a new field with type \'auto\' before this field (Ctrl+Ins)', - submenuTitle: 'Select the type of the field to be inserted', + text: translate('insert'), + title: translate('insertTitle'), + submenuTitle: translate('insertSub'), className: 'jsoneditor-insert', click: function () { node._onInsertBefore('', '', 'auto'); @@ -15471,8 +15647,8 @@ return /******/ (function(modules) { // webpackBootstrap if (this.editable.field) { // create duplicate button items.push({ - text: 'Duplicate', - title: 'Duplicate this field (Ctrl+D)', + text: translate('duplicateText'), + title: translate('duplicateField'), className: 'jsoneditor-duplicate', click: function () { Node.onDuplicate(node); @@ -15481,8 +15657,8 @@ return /******/ (function(modules) { // webpackBootstrap // create remove button items.push({ - text: 'Remove', - title: 'Remove this field (Ctrl+Del)', + text: translate('removeText'), + title: translate('removeField'), className: 'jsoneditor-remove', click: function () { Node.onRemove(node); @@ -15639,7 +15815,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 60 */ +/* 61 */ /***/ function(module, exports) { /* @@ -15690,13 +15866,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 61 */ +/* 62 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(54); var ContextMenu = __webpack_require__(57); + var translate = __webpack_require__(58).translate; /** * A factory function to create an AppendNode, which depends on a Node @@ -15757,7 +15934,7 @@ return /******/ (function(modules) { // webpackBootstrap // a cell for the contents (showing text 'empty') var tdAppend = document.createElement('td'); var domText = document.createElement('div'); - domText.innerHTML = '(empty)'; + domText.innerHTML = '(' + translate('empty') + ')'; domText.className = 'jsoneditor-readonly'; tdAppend.appendChild(domText); dom.td = tdAppend; @@ -15781,7 +15958,7 @@ return /******/ (function(modules) { // webpackBootstrap var domText = dom.text; if (domText) { - domText.innerHTML = '(empty ' + this.parent.type + ')'; + domText.innerHTML = '(' + translate('empty') + ' ' + this.parent.type + ')'; } // attach or detach the contents of the append node: @@ -15831,7 +16008,7 @@ return /******/ (function(modules) { // webpackBootstrap var titles = Node.TYPE_TITLES; var appendSubmenu = [ { - text: 'Auto', + text: translate('auto'), className: 'jsoneditor-type-auto', title: titles.auto, click: function () { @@ -15839,7 +16016,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Array', + text: translate('array'), className: 'jsoneditor-type-array', title: titles.array, click: function () { @@ -15847,7 +16024,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'Object', + text: translate('object'), className: 'jsoneditor-type-object', title: titles.object, click: function () { @@ -15855,7 +16032,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { - text: 'String', + text: translate('string'), className: 'jsoneditor-type-string', title: titles.string, click: function () { @@ -15867,9 +16044,9 @@ return /******/ (function(modules) { // webpackBootstrap var items = [ // create append button { - 'text': 'Append', - 'title': 'Append a new field with type \'auto\' (Ctrl+Shift+Ins)', - 'submenuTitle': 'Select the type of the field to be appended', + 'text': translate('appendText'), + 'title': translate('appendTitleAuto'), + 'submenuTitle': translate('appendSubmenuTitle'), 'className': 'jsoneditor-insert', 'click': function () { node._onAppend('', '', 'auto'); @@ -15927,7 +16104,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 62 */ +/* 63 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16048,7 +16225,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 63 */ +/* 64 */ /***/ function(module, exports) { 'use strict'; @@ -16435,13 +16612,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = completely; /***/ }, -/* 64 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ace = __webpack_require__(65); - var ModeSwitcher = __webpack_require__(62); + var ace = __webpack_require__(66); + var ModeSwitcher = __webpack_require__(63); var util = __webpack_require__(54); // create a mixin with the functions for text mode @@ -16509,7 +16686,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(71); + __webpack_require__(72); } catch (err) { console.error(err); @@ -17109,7 +17286,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 65 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { var ace @@ -17120,11 +17297,11 @@ return /******/ (function(modules) { // webpackBootstrap else { try { // load brace - ace = __webpack_require__(66); + ace = __webpack_require__(67); // load required Ace plugins - __webpack_require__(68); - __webpack_require__(70); + __webpack_require__(69); + __webpack_require__(71); } catch (err) { // failed to load brace (can be minimalist bundle). @@ -17136,7 +17313,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 66 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { /* ***** BEGIN LICENSE BLOCK ***** @@ -21319,7 +21496,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!global || !global.document) return; - options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(67).packaged); + options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(68).packaged); var scriptOptions = {}; var scriptUrl = ""; @@ -37346,7 +37523,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.acequire = acequire; if (true) - exports.define = __webpack_require__(67); + exports.define = __webpack_require__(68); exports.edit = function(el) { if (typeof el == "string") { var _id = el; @@ -37413,14 +37590,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = window.ace.acequire("ace/ace"); /***/ }, -/* 67 */ +/* 68 */ /***/ function(module, exports) { module.exports = function() { throw new Error("define cannot be used indirect"); }; /***/ }, -/* 68 */ +/* 69 */ /***/ function(module, exports, __webpack_require__) { ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { @@ -37722,7 +37899,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(69), "JsonWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(70), "JsonWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(e) { @@ -37745,14 +37922,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 69 */ +/* 70 */ /***/ function(module, exports) { module.exports.id = 'ace/mode/json_worker'; module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }, -/* 70 */ +/* 71 */ /***/ function(module, exports) { 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(acequire, exports, module) { @@ -38265,7 +38442,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 71 */ +/* 72 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** @@ -38418,4 +38595,4 @@ return /******/ (function(modules) { // webpackBootstrap /***/ } /******/ ]) }); -; +; \ No newline at end of file diff --git a/dist/jsoneditor.map b/dist/jsoneditor.map index a75c64d..3c0a3b6 100644 --- a/dist/jsoneditor.map +++ b/dist/jsoneditor.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor.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","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","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","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","opts","_opts","copy","setLogger","_schemas","_refs","_fragments","_formats","formats","format","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","str","test","_cache","cache","Cache","_loadingSchemas","_compilations","RULES","rules","_getId","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","undefined","serialize","stableStringify","_metaOpts","getMetaSchemaOptions","addInitialFormats","addDraft6MetaSchema","meta","addMetaSchema","addInitialSchemas","patternGroups","schemaKeyRef","v","getSchema","schemaObj","_addSchema","_compile","valid","$async","async","co","errors","_meta","key","_skipValidation","Array","resolve","normalizeId","checkUnique","skipValidation","throwOrLogError","$schema","defaultMeta","logger","currentUriFormat","uri","message","errorsText","self","META_SCHEMA_ID","keyRef","_getSchemaObj","_getSchemaFragment","res","baseId","compileSchema","SchemaObject","fragment","RegExp","_removeAllSchemas","del","cacheKey","schemas","regex","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","callValidate","_validate","result","apply","compiling","currentOpts","refs","refVal","schemaId","_get$Id","_get$IdOrId","$id","separator","dataVar","text","e","dataPath","slice","addFormat","$dataSchema","$data","metaSchema","$dataMetaSchema","META_SUPPORT_DATA","optsSchemas","metaOpts","META_IGNORE_OPTIONS","log","noop","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","compilation","localCompile","_schema","_root","isRoot","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","vars","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","equal","ucs2length","source","code","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","index","patternsHash","value","toQuotedString","valueStr","defaultsHash","rule","parentSchema","it","definition","macro","keyword","checkCompiling","cv","endCompiling","compIndex","splice","arr","statement","resolveSchema","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","parts","split","part","unescapeFragment","PREVENT_SCOPE_CHANGE","$ref","limit","checkNoRef","countKeys","item","count","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","baseIds","","fullPaths","traverse","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","fullPath","escapeFragment","toHash","Url","slashes","auth","port","hostname","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","u","urlFormat","obj","isString","urlResolve","relative","urlResolveObject","resolveObject","arg","isNull","isNullOrUndefined","punycode","protocolPattern","portPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","rest","trim","proto","exec","lowerProto","toLowerCase","substr","match","hostEnd","hec","atSign","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","join","domainArray","newOut","s","encode","h","ae","esc","encodeURIComponent","escape","qm","charAt","rel","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","authInHost","last","hasTrailingSlash","up","isAbsolute","__WEBPACK_AMD_DEFINE_RESULT__","global","type","RangeError","map","array","fn","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","out","basic","oldi","w","t","baseMinusT","inputLength","n","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeGlobal","nodeType","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","webpackPolyfill","deprecate","paths","children","hasOwnProperty","qs","sep","eq","maxKeys","len","kstr","vstr","x","idx","stringifyPrimitive","isFinite","ks","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","o","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","types","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","matches","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","lvl","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","pos","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","keywords","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","properties","patternProperties","dependencies","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","validation","missingRef","missingSchema","errorSubclass","Subclass","constructor","cmp","cycles","f","node","aobj","bobj","seen","toJSON","seenIndex","sort","$keyword","$ruleType","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","implements","$ruleImplementsSomeKeyword","impl","$refKeywords","all","$es7","yieldAwait","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","$valid","$$outStack","createErrors","messages","__err","compositeRule","$top","rootId","dataPathArr","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","$parentDataProperty","v5","arr2","i2","l2","useDefaults","$schemaKeys","arr3","$propertyKey","i3","l3","$sch","default","$passData","arr4","l4","arr5","i5","l5","$code","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","then","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","results","promises","promise","displayName","val","wrap","createPromise","__generatorFunction__","date","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","DATE_TIME_SEPARATOR","HOSTNAME","NOT_URI_FRAGMENT","URI","Z_ANCHOR","URITEMPLATE","URL","UUID","fast","date-time","uri-reference","uri-template","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","ruleModules","ALL","KEYWORDS","TYPES","group","implKeywords","custom","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","every","$wasComposite","$isData","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$prop","$useData","$propertyPath","$missingProperty","$vSchema","$schemaValue","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$additionalItems","$currErrSchemaPath","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","unicode","multipleOfPrecision","$allErrorsOption","$regexp","$key","$dataProperties","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","$pgProperties","$pgPropertyKeys","i1","$pProperty","$pgProperty","$additionalProperty","$useDefaults","i4","$hasDefault","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","$invalidName","$propertySch","$loopRequired","keywordsJsonPointers","metaSchemaRef","callback","loadMetaSchemaOf","_compileAsync","removePromise","added","schemaPromise","loadSchema","_addRule","ruleGroup","rg","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","modifying","def_customError","description","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","examples","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","navigationBar","debounce","bind","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","reduce","findParents","parent","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","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","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","removeClassName","pathObjs","pathObj","childs","childNode","setPath","addClassName","expandTo","selectionObj","find","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","first","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","jsonElementType","hnode","element","innerText","getOptions","show","startFrom","hideDropDown","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","click","onDuplicate","onRemove","close","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","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","el","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","textTillCaret","row","Element","polyfill","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","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","lex","token","lexer","stack","vstack","lstack","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","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","some","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","childSchema","foundSchema","allSchemas","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","auto","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","rows","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","aceEditor","textarea","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfoDisplay","updateDisplay","selectionRange","curserPos","getCursorPosition","selectedText","getSelectedText","column","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","deps","payload","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","insert","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","getOwnPropertyNames","createEmpty","empty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","tag","createElementNS","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","withScrollbar","getPageScrollTop","getPageScrollLeft","currentStyle","setInnerHtml","innerHtml","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touches","touchObj","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","lang","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","setAttribute","opacity","copied","cut","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","onSelect","selectAll","setInputHandler","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","onCompositionStart","$readOnly","session","$undoManager","onCompositionUpdate","onCompositionEnd","markUndoGroup","clearSelection","lastValue","getRange","setRange","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","down","TextInputIOS","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","ev","inSelection","getDocumentPosition","mousedownEvent","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","canScroll","isScrollableBy","speed","isSlower","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","_computeLevels","levels","charTypes","impTab","dir","impTab_RTL","impTab_LTR","prevState","newClass","newLevel","condPos","_getCharacterType","hiLevel","lastArabic","hasUBAT_AL","hasUBAT_B","hasUBAT_S","_getCharClass","B","S","WS","_invertLevel","lev","_array","RTL","lo","hi","tmp","wType","nType","cType","L","R","ON","AN","EN","AL","CS","ES","ET","NSM","rtlCandidate","LRE","RLE","LRO","RLO","PDF","BN","uc","UnicodeTBL00","UnicodeTBL20","ON_R","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","size","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","screenPos","$bidiHandler","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","bgTokenizer","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","modifier","$assembleMultilineRegExp","backwards","forEachInLine","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","cursorPos","onResize","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","inVirtualSelectionMode","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","space","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","font","$measureSizes","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","$workerBlob","workerUrl","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","blob","webkitURL","blobURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","setSearchRange","searchRangeMarker","noMatch","updateCounter","MAX_COUNT","replaceAndFindNext","active"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file +{"version":3,"sources":["./dist/jsoneditor.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","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","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","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","opts","_opts","copy","setLogger","_schemas","_refs","_fragments","_formats","formats","format","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","str","test","_cache","cache","Cache","_loadingSchemas","_compilations","RULES","rules","_getId","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","undefined","serialize","stableStringify","_metaOpts","getMetaSchemaOptions","addInitialFormats","addDraft6MetaSchema","meta","addMetaSchema","addInitialSchemas","patternGroups","schemaKeyRef","v","getSchema","schemaObj","_addSchema","_compile","valid","$async","async","co","errors","_meta","key","_skipValidation","Array","resolve","normalizeId","checkUnique","skipValidation","throwOrLogError","$schema","defaultMeta","logger","currentUriFormat","uri","message","errorsText","self","META_SCHEMA_ID","keyRef","_getSchemaObj","_getSchemaFragment","res","baseId","compileSchema","SchemaObject","fragment","RegExp","_removeAllSchemas","del","cacheKey","schemas","regex","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","callValidate","_validate","result","apply","compiling","currentOpts","refs","refVal","schemaId","_get$Id","_get$IdOrId","$id","separator","dataVar","text","e","dataPath","slice","addFormat","$dataSchema","$data","metaSchema","$dataMetaSchema","META_SUPPORT_DATA","optsSchemas","metaOpts","META_IGNORE_OPTIONS","log","noop","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","compilation","localCompile","_schema","_root","isRoot","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","vars","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","equal","ucs2length","source","code","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","index","patternsHash","value","toQuotedString","valueStr","defaultsHash","rule","parentSchema","it","definition","macro","keyword","checkCompiling","cv","endCompiling","compIndex","splice","arr","statement","resolveSchema","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","parts","split","part","unescapeFragment","PREVENT_SCOPE_CHANGE","$ref","limit","checkNoRef","countKeys","item","count","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","baseIds","","fullPaths","traverse","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","fullPath","escapeFragment","toHash","Url","slashes","auth","port","hostname","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","u","urlFormat","obj","isString","urlResolve","relative","urlResolveObject","resolveObject","arg","isNull","isNullOrUndefined","punycode","protocolPattern","portPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","rest","trim","proto","exec","lowerProto","toLowerCase","substr","match","hostEnd","hec","atSign","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","join","domainArray","newOut","s","encode","h","ae","esc","encodeURIComponent","escape","qm","charAt","rel","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","authInHost","last","hasTrailingSlash","up","isAbsolute","__WEBPACK_AMD_DEFINE_RESULT__","global","type","RangeError","map","array","fn","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","out","basic","oldi","w","t","baseMinusT","inputLength","n","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeGlobal","nodeType","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","webpackPolyfill","deprecate","paths","children","hasOwnProperty","qs","sep","eq","maxKeys","len","kstr","vstr","x","idx","stringifyPrimitive","isFinite","ks","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","o","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","types","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","matches","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","lvl","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","pos","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","keywords","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","properties","patternProperties","dependencies","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","validation","missingRef","missingSchema","errorSubclass","Subclass","constructor","cmp","cycles","f","node","aobj","bobj","seen","toJSON","seenIndex","sort","$keyword","$ruleType","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","implements","$ruleImplementsSomeKeyword","impl","$refKeywords","all","$es7","yieldAwait","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","$valid","$$outStack","createErrors","messages","__err","compositeRule","$top","rootId","dataPathArr","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","$parentDataProperty","v5","arr2","i2","l2","useDefaults","$schemaKeys","arr3","$propertyKey","i3","l3","$sch","default","$passData","arr4","l4","arr5","i5","l5","$code","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","then","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","results","promises","promise","displayName","val","wrap","createPromise","__generatorFunction__","date","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","DATE_TIME_SEPARATOR","HOSTNAME","NOT_URI_FRAGMENT","URI","Z_ANCHOR","URITEMPLATE","URL","UUID","fast","date-time","uri-reference","uri-template","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","ruleModules","ALL","KEYWORDS","TYPES","group","implKeywords","custom","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","every","$wasComposite","$isData","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$prop","$useData","$propertyPath","$missingProperty","$vSchema","$schemaValue","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$additionalItems","$currErrSchemaPath","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","unicode","multipleOfPrecision","$allErrorsOption","$regexp","$key","$dataProperties","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","$pgProperties","$pgPropertyKeys","i1","$pProperty","$pgProperty","$additionalProperty","$useDefaults","i4","$hasDefault","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","$invalidName","$propertySch","$loopRequired","keywordsJsonPointers","metaSchemaRef","callback","loadMetaSchemaOf","_compileAsync","removePromise","added","schemaPromise","loadSchema","_addRule","ruleGroup","rg","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","modifying","def_customError","description","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","examples","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","navigationBar","debounce","bind","languages","language","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","parentPairs","reduce","findParents","parent","some","pair","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","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","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","removeClassName","pathObjs","pathObj","childs","childNode","setPath","addClassName","expandTo","selectionObj","find","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","first","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","jsonElementType","hnode","element","innerText","getOptions","hideDropDown","show","startFrom","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","click","onDuplicate","onRemove","close","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","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","el","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","textTillCaret","row","Element","polyfill","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","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","lex","token","lexer","stack","vstack","lstack","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","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","removeText","removeTitle","removeField","sortTitle","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","lang","langFound","assign","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","childSchema","foundSchema","allSchemas","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","rows","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","aceEditor","textarea","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfoDisplay","updateDisplay","selectionRange","curserPos","getCursorPosition","selectedText","getSelectedText","column","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","deps","payload","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","getOwnPropertyNames","createEmpty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","tag","createElementNS","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","withScrollbar","getPageScrollTop","getPageScrollLeft","currentStyle","setInnerHtml","innerHtml","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touches","touchObj","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","setAttribute","opacity","copied","cut","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","onSelect","selectAll","setInputHandler","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","onCompositionStart","$readOnly","session","$undoManager","onCompositionUpdate","onCompositionEnd","markUndoGroup","clearSelection","lastValue","getRange","setRange","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","down","TextInputIOS","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","ev","inSelection","getDocumentPosition","mousedownEvent","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","canScroll","isScrollableBy","speed","isSlower","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","_computeLevels","levels","charTypes","impTab","dir","impTab_RTL","impTab_LTR","prevState","newClass","newLevel","condPos","_getCharacterType","hiLevel","lastArabic","hasUBAT_AL","hasUBAT_B","hasUBAT_S","_getCharClass","B","S","WS","_invertLevel","lev","_array","RTL","lo","hi","tmp","wType","nType","cType","L","R","ON","AN","EN","AL","CS","ES","ET","NSM","rtlCandidate","LRE","RLE","LRO","RLO","PDF","BN","uc","UnicodeTBL00","UnicodeTBL20","ON_R","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","size","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","screenPos","$bidiHandler","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightToken","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","bgTokenizer","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","modifier","$assembleMultilineRegExp","backwards","forEachInLine","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","cursorPos","onResize","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","inVirtualSelectionMode","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","space","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","font","$measureSizes","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","$workerBlob","workerUrl","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","blob","webkitURL","blobURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","setSearchRange","searchRangeMarker","noMatch","updateCounter","MAX_COUNT","replaceAndFindNext","active"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file diff --git a/dist/jsoneditor.min.js b/dist/jsoneditor.min.js index ad036da..d9f12ed 100644 --- a/dist/jsoneditor.min.js +++ b/dist/jsoneditor.min.js @@ -24,18 +24,18 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.13.3 - * @date 2018-02-09 + * @version 5.14.0 + * @date 2018-02-25 */ -!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){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)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=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar"];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(1)}catch(e){}var o=i(51),s=i(64),a=i(54);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||this.options.modes&&this.options.modes[0]||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.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=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},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,t){if(e){var i;try{i=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){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`.")}if(i){if(t){for(var n in t)i.removeSchema(n),t[n]&&i.addSchema(t[n],n);this.options.schemaRefs=t}this.validateSchema=i.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function o(e,t,i){var n=s.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function s(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),w=["%","/","?",";","#"].concat(v),y=["/","?","#"],A={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=i(7);n.prototype.parse=function(e,t,i){if(!l(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var r=f.exec(n);if(r){r=r[0];var o=r.toLowerCase();this.protocol=o,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||r&&C[r]||(n=n.substr(2),this.slashes=!0)}if(!C[r]&&(s||r&&!E[r])){for(var a=-1,c=0;c127?S+="x":S+=x[$];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var k=g.slice(0,c),B=g.slice(c+1),_=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);_&&(k.push(_[1]),B.unshift(_[2])),B.length&&(n="/"+B.join(".")+n),this.hostname=k.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var L=this.hostname.split("."),R=[],c=0;c0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return i.search=e.search,i.query=e.query,h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!p.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var v=p.slice(-1)[0],w=(i.host||e.host)&&("."===v||".."===v)||""===v,y=0,A=p.length;A>=0;A--)v=p[A],"."==v?p.splice(A,1):".."===v?(p.splice(A,1),y++):y&&(p.splice(A,1),y--);if(!d&&!f)for(;y--;y)p.unshift("..");!d||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),w&&"/"!==p.join("/").substr(-1)&&p.push("");var b=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=b?"":p.length?p.shift():"";var g=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return d=d||i.host&&p.length,d&&!b&&p.unshift(""),p.length?i.pathname=p.join("/"):(i.pathname=null,i.path=null),h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,i){var n;(function(e,r){!function(o){function s(e){throw RangeError(L[e])}function a(e,t){for(var i=e.length,n=[];i--;)n[i]=t(e[i]);return n}function l(e,t){var i=e.split("@"),n="";return i.length>1&&(n=i[0]+"@",e=i[1]),e=e.replace(_,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function u(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:C}function d(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function f(e,t,i){var n=0;for(e=i?T(e/x):e>>1,e+=T(e/t);e>R*b>>1;n+=C)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,o,a,l,c,d,p,m=[],g=e.length,v=0,w=$,y=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&s("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&s("invalid-input"),c=u(e.charCodeAt(r++)),(c>=C||c>T((A-v)/a))&&s("overflow"),v+=c*a,d=l<=y?E:l>=y+b?b:l-y,!(cT(A/p)&&s("overflow"),a*=p;t=m.length+1,y=f(v-o,t,0==o),T(v/t)>A-w&&s("overflow"),w+=T(v/t),v%=t,m.splice(v++,0,w)}return h(m)}function m(e){var t,i,n,r,o,a,l,h,u,p,m,g,v,w,y,F=[];for(e=c(e),g=e.length,t=$,i=0,o=S,a=0;a=t&&mT((A-i)/v)&&s("overflow"),i+=(l-t)*v,t=l,a=0;aA&&s("overflow"),m==t){for(h=i,u=C;p=u<=o?E:u>=o+b?b:u-o,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=C-E,T=Math.floor,P=String.fromCharCode;y={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return y}.call(t,i,t,e))&&(e.exports=n)}()}).call(t,i(6)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){"use strict";t.decode=t.parse=i(8),t.encode=t.stringify=i(9)},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,r){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;e=e.split(t);var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var a=e.length;s>0&&a>s&&(a=s);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),u=decodeURIComponent(c),d=decodeURIComponent(h),i(o,u)?Array.isArray(o[u])?o[u].push(d):o[u]=[o[u],d]:o[u]=d}return o}},function(e,t){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(r){var o=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";e.exports=function e(t,i){if(t===i)return!0;var n,r=Array.isArray(t),o=Array.isArray(i);if(r&&o){if(t.length!=i.length)return!1;for(n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=u.call(arguments,1)),i(t)})})}function o(e){return Promise.all(e.map(n,this))}function s(e){for(var t=new e.constructor,i=Object.keys(e),r=[],o=0;o=1&&i<=12&&n>=1&&n<=d[i]}function o(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(A);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return C.test(e)&&m.test(e)}function c(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),u=/^\d\d\d\d-(\d\d)-(\d\d)$/,d=[0,31,29,31,30,31,30,31,31,30,31,30,31],f=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,p=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,m=/^(?:[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,g=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#.\/;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,v=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,w=/^(?: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;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,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":g,url:v,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:p,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:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:o,"date-time":s,uri:l,"uri-reference":/^(?:[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,"uri-template":g,url:v,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:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var A=/t|\s/i,C=/\/|:/,E=/[^\\]\\Z/},function(e,t,i){"use strict";var n=i(22),r=i(11).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],t=["type"],i=["additionalItems","$schema","$id","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(o),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var o=Object.keys(i)[0];r=i[o],i=o,r.forEach(function(i){t.push(i),e.all[i]=!0})}return t.push(i),e.all[i]={keyword:i,code:n[i],implements:r}}),i.type&&(e.types[i.type]=i)}),e.keywords=r(t.concat(i)),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(23),allOf:i(24),anyOf:i(25),const:i(26),contains:i(27),dependencies:i(28),enum:i(29),format:i(30),items:i(31),maximum:i(32),minimum:i(32),maxItems:i(33),minItems:i(33),maxLength:i(34),minLength:i(34),maxProperties:i(35),minProperties:i(35),multipleOf:i(36),not:i(37),oneOf:i(38),pattern:i(39),properties:i(40),propertyNames:i(41),required:i(42),uniqueItems:i(43),validate:i(17)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,u="data"+(a||""),d="valid"+s;if("#"==l||"#/"==l)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var f=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===f){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(p);var m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;o=m.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(o+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var y=e.validate(v).replace(/validate\.schema/g,f.code);o+=" "+y+" ",h&&(o+=" if ("+w+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(o),o="",e.opts.passContext?o+=" "+r+".call(this, ":o+=" "+r+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var A=o;if(o=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+d+"; "),o+=" try { "+e.yieldAwait+" "+A+"; ",h&&(o+=" "+d+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+d+" = false; "),o+=" } ",h&&(o+=" if ("+d+") { ")}else o+=" if (!"+A+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,u=l.baseId,d=!0,f=r;if(f)for(var p,m=-1,g=f.length-1;m=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+s+'" is used in schema at path "'+e.errSchemaPath+'"')}var g="object"==typeof m&&!(m instanceof RegExp)&&m.validate,v=g&&m.type||"string";if(g){var w=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(w){if(!e.async)throw new Error("async format in sync schema");var y="formats"+e.util.getProperty(s)+".validate";n+=" if (!("+e.yieldAwait+" "+y+"("+h+"))) { "}else{n+=" if (! ";var y="formats"+e.util.getProperty(s);g&&(y+=".validate"),n+="function"==typeof m?" "+y+"("+h+") ":" "+y+".test("+h+") ",n+=") { "}}var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=d?""+u:""+e.util.toQuotedString(s),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=d?"' + "+u+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=d?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var C=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+r,d="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,g="i"+r,v=f.dataLevel=e.dataLevel+1,w="data"+v,y=e.baseId;if(n+="var "+d+" = errors;var "+u+";",Array.isArray(s)){var A=e.schema.additionalItems;if(!1===A){n+=" "+u+" = "+h+".length <= "+s.length+"; ";var C=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+u+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+s.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+s.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=C,c&&(p+="}",n+=" else { ")}var F=s;if(F)for(var x,S=-1,$=F.length-1;S<$;)if(x=F[S+=1],e.util.schemaHasRules(x,e.RULES.all)){n+=" "+m+" = true; if ("+h+".length > "+S+") { ";var D=h+"["+S+"]";f.schema=x,f.schemaPath=a+"["+S+"]",f.errSchemaPath=l+"/"+S,f.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),f.dataPathArr[v]=S;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof A&&e.util.schemaHasRules(A,e.RULES.all)){f.schema=A,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+s.length+") { for (var "+g+" = "+s.length+"; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(s,e.RULES.all)){f.schema=s,f.schemaPath=a,f.errSchemaPath=l,n+=" for (var "+g+" = 0; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,w=p?"<":">",y=p?">":"<",n=void 0;if(v){var A=e.util.getData(g.$data,a,e.dataPathArr),C="exclusive"+s,E="exclType"+s,b="exclIsNumber"+s,F="op"+s,x="' + "+F+" + '";o+=" var schemaExcl"+s+" = "+A+"; ",A="schemaExcl"+s,o+=" var "+C+"; var "+E+" = typeof "+A+"; if ("+E+" != 'boolean' && "+E+" != 'undefined' && "+E+" != 'number') { ";var n=m,S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var $=o;o=S.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+E+" == 'number' ? ( ("+C+" = "+r+" === undefined || "+A+" "+w+"= "+r+") ? "+d+" "+y+"= "+A+" : "+d+" "+y+" "+r+" ) : ( ("+C+" = "+A+" === true) ? "+d+" "+y+"= "+r+" : "+d+" "+y+" "+r+" ) || "+d+" !== "+d+") { var op"+s+" = "+C+" ? '"+w+"' : '"+w+"=';"}else{var b="number"==typeof g,x=w;if(b&&f){var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" ( "+r+" === undefined || "+g+" "+w+"= "+r+" ? "+d+" "+y+"= "+g+" : "+d+" "+y+" "+r+" ) || "+d+" !== "+d+") { "}else{b&&void 0===l?(C=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,y+="="):(b&&(r=Math[p?"min":"max"](g,l)),g===(!b||r)?(C=!0,n=m,h=e.errSchemaPath+"/"+m,y+="="):(C=!1,x+="="));var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+d+" "+y+" "+r+" || "+d+" !== "+d+") { "}}n=n||t;var S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+C+" } ",!1!==e.opts.messages&&(o+=" , message: 'should be "+x+" ",o+=f?"' + "+r:r+"'"),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var $=o;return o=S.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxItems"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+d+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxItems"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" items' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxLength"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?o+=" "+d+".length ":o+=" ucs2length("+d+") ",o+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT be ",o+="maxLength"==t?"longer":"shorter",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" characters' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxProperties"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" Object.keys("+d+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxProperties"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" properties' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,u="data"+(s||""),d=e.opts.$data&&a&&a.$data;d?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a,r+="var division"+o+";if (",d&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+o+" = "+u+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+o+" !== parseInt(division"+o+") ",r+=" ) ",d&&(r+=" ) "),r+=" ) { ";var f=f||[];f.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be multiple of ",r+=d?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=d?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var p=r;return r=f.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+p+"]); ":r+=" validate.errors = ["+p+"]; return false; ":r+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+r,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(s,e.RULES.all)){d.schema=s,d.schemaPath=a,d.errSchemaPath=l,n+=" var "+u+" = errors; ";var p=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var m;d.opts.allErrors&&(m=d.opts.allErrors,d.opts.allErrors=!1),n+=" "+e.validate(d)+" ",d.createErrors=!0,m&&(d.opts.allErrors=m),e.compositeRule=d.compositeRule=p,n+=" if ("+f+") { ";var g=g||[];g.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var v=n;n=g.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+v+"]); ":n+=" validate.errors = ["+v+"]; return false; ":n+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+r,d="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;n+="var "+d+" = errors;var prevValid"+r+" = false;var "+u+" = false;";var g=f.baseId,v=e.compositeRule;e.compositeRule=f.compositeRule=!0;var w=s;if(w)for(var y,A=-1,C=w.length-1;A5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=C;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+u+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var Y=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+Y+"]); ":n+=" validate.errors = ["+Y+"]; return false; ":n+=" var err = "+Y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==we&&(n+=" else ")}if(void 0!==we){var ye=we,Ae="maximum",Ce="more";n+=" "+u+" = pgPropCount"+r+" <= "+we+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+u+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var Y=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+Y+"]); ":n+=" validate.errors = ["+Y+"]; return false; ":n+=" var err = "+Y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+u+") { ",p+="}")}}}}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+r,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(s,e.RULES.all)){d.schema=s,d.schemaPath=a,d.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",w=d.dataLevel=e.dataLevel+1,y="data"+w,A="dataProperties"+r,C=e.opts.ownProperties,E=e.baseId;n+=" var "+u+" = errors; ",C&&(n+=" var "+A+" = undefined; "),n+=C?" "+A+" = "+A+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+A+".length; "+m+"++) { var "+p+" = "+A+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var b=p,F=e.compositeRule;e.compositeRule=d.compositeRule=!0;var x=e.validate(d);d.baseId=E,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,b)+" ":n+=" var "+y+" = "+b+"; "+x+" ",e.compositeRule=d.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",C){d||(n+=" var "+f+" = validate.schema"+a+"; ");var b="i"+r,F="schema"+r+"["+b+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,F,e.opts.jsonPointers)),n+=" var "+u+" = true; ",d&&(n+=" if (schema"+r+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+r+")) "+u+" = false; else {"),n+=" for (var "+b+" = 0; "+b+" < "+f+".length; "+b+"++) { "+u+" = "+h+"["+f+"["+b+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+b+"]) "),n+="; if (!"+u+") break; } ",d&&(n+=" } "),n+=" if (!"+u+") { ";var S=S||[];S.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+x+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+x+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var $=n;n=S.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+$+"]); ":n+=" validate.errors = ["+$+"]; return false; ":n+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var D=p;if(D)for(var k,b=-1,B=D.length-1;b 1) { var i = "+u+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+d+" = false; break outer; } } } } ",f&&(r+=" } "),r+=" if (!"+d+") { ";var p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(r+=" , schema: ",r+=f?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var m=r;r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { ")}else h&&(r+=" if (true) { ");return r}},function(e,t){"use strict";var i=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var n=0;n0?this.autoScrollStep=(n+24-e)/3:e>o-24&&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)},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 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,h.addEventListener(this.frame,"focus",e,!0),h.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.type="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.type="button",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.type="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.type="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 l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},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&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var i=this;setTimeout(function(){i._updateTreePath(t.getNodePath())})}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&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},d._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){h.removeClassName(this.navBar,"nav-bar-empty");var i=[];e.forEach(function(e){var n={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){n.children.push({name:t(e),node:e})}),i.push(n)}),this.treePath.setPath(i)}else h.addClassName(this.navBar,"nav-bar-empty")},d._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},d._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var i=e.children.find(function(e){return e.name===t});i&&i.node&&(this._updateTreePath(i.node.getNodePath()),i.node.expandTo(),i.node.focus())}},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,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},d._onMultiSelectStart=function(e){var t=l.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=h.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=h.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},d._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.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))}},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&&(h.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(h.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 i=e.getNodePath(),n=t.getNodePath(),r=0;r=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var u=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var i=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);"function"==typeof i.then?i.then(function(e){e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):i.options?this.autocomplete.show(t,i.startFrom,i.options):this.autocomplete.show(t,0,i)}else this.autocomplete.hideDropDown()}.bind(this,u,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},d._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},d.showContextMenu=function(e,t){var i=[],n=this;i.push({text:"Duplicate",title:"Duplicate selected fields (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:"Remove",title:"Remove selected fields (Ctrl+Del)",className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},e.exports=[{mode:"tree",mixin:d,data:"json"},{mode:"view",mixin:d,data:"json"},{mode:"form",mixin:d,data:"json"}]},function(e,t){"use strict";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,i){"use strict";function n(e){this.editor=e,this.history=[],this.index=-1,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(54);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.index=" "&&c<=" "||" "===c||" "===c||" "===c?(o.push(" "),s++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=o.length-1;e>=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),r=/[a-zA-Z_$\d]/;r.test(n);)i+=n,s++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(c),s++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&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){if(window.getSelection()){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,i){if(void 0==i&&(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 n=e.childNodes,r="",o=0,s=n.length;o5){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"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),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)&&nn&&r>0;)o--,r--;return{start:n,end:o}},t.getInputSelection=function(e){var t,i,n,r,o,s=0,a=0;"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(s=e.selectionStart,a=e.selectionEnd):(i=document.selection.createRange())&&i.parentElement()==e&&(r=e.value.length,t=e.value.replace(/\r\n/g,"\n"),n=e.createTextRange(),n.moveToBookmark(i.getBookmark()),o=e.createTextRange(),o.collapse(!1),n.compareEndPoints("StartToEnd",o)>-1?s=a=r:(s=-n.moveStart("character",-r),s+=t.slice(0,s).split("\n").length-1,n.compareEndPoints("EndToEnd",o)>-1?a=r:(a=-n.moveEnd("character",-r),a+=t.slice(0,a).split("\n").length-1)));var l=e.value.substring(0,a),c=(l.match(/\n/g)||[]).length+1;return{start:s,end:a,col:l.length-l.lastIndexOf("\n"),row:c}},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&C.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:d,expected:C})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,f=t()}for(;;){if(u.toString()in s[m])break;if(0==m)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=u,m=n[n.length-1],g=s[m]&&s[m][u],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],E.$=r[r.length-y],E._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(E,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(E.$),o.push(E._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);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];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&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||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 void 0!==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){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.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 h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var u=document.createElement("button");u.type="button",u.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(u),o.appendChild(s);var d=document.createElement("input");this.dom.search=d,d.oninput=function(e){i._onDelayedSearch(e)},d.onchange=function(e){i._onSearch()},d.onkeydown=function(e){i._onKeyDown(e)},d.onkeyup=function(e){i._onKeyUp(e)},u.onclick=function(e){d.select()},s=document.createElement("td"),s.appendChild(d),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.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,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?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 n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.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,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=""},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()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e){return e.getRootNode&&e.getRootNode()||window}function r(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.type="button",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);var h=document.createElement("div");h.className="jsoneditor-text"+(r.click?"":" jsoneditor-right-margin"),h.appendChild(document.createTextNode(r.text)),l.appendChild(h);var u;if(r.click){l.className+=" jsoneditor-default";var d=document.createElement("button");d.type="button",s.buttonExpand=d,d.className="jsoneditor-expand",d.innerHTML='
',a.appendChild(d),r.submenuTitle&&(d.title=r.submenuTitle),u=d}else{var f=document.createElement("div");f.className="jsoneditor-expand",l.appendChild(f),u=l}u.onclick=function(e){e.preventDefault(),n._onExpandItem(s),u.focus()};var p=[];s.subItems=p;var m=document.createElement("ul");s.ul=m,m.className="jsoneditor-menu",m.style.height="0",a.appendChild(m),i(m,p,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");l.type="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 o=i(54);r.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},r.visibleMenu=void 0,r.prototype.show=function(e,t){this.hide();var i=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,u=a.top-l.top;if(i){var d=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=u+d+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=u+"px",this.dom.menu.style.bottom="0px";this.rootNode=n(e),s.insertBefore(this.dom.root,s.firstChild);var f=this,p=this.dom.list;this.eventListeners.mousedown=o.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==p||f._isChildOf(t,p)||(f.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){f.dom.focusButton.focus()},0),r.visibleMenu&&r.visibleMenu.hide(),r.visibleMenu=this},r.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(this.rootNode,e,t),delete this.eventListeners[e]}r.visibleMenu==this&&(r.visibleMenu=void 0)},r.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="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){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.type="button",r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(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");i.type="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");r.type="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),s=r._nextSibling(),l=i.editor,c=a.getAbsoluteTop(o.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,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,s,c,h,u,d,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=a.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(u=void 0)),u&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}else{var F=e[e.length-1];if(c=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=c?c.nextSibling:void 0){m=a.getAbsoluteTop(s),o=s;do{d=n.getNodeFromTarget(o),o&&(v=o.nextSibling?a.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,d.parent.childs.length==e.length&&d.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling}while(o&&A>f+w);if(d&&d.parent){var x=C-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=d.getLevel();for(r=d.dom.tr.previousSibling;D<$&&r;){u=n.getNodeFromTarget(r);if(e.some(function(e){return e===u||u._isChildOf(e)}));else{if(!(u instanceof l))break;var k=u.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;d=n.getNodeFromTarget(r),D=d.getLevel()}r=r.previousSibling}c.nextSibling!=d.dom.tr&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}}}E&&(y.drag.mouseX=C,y.drag.level=b.getLevel()),y.startAutoScroll(A),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,s=o.childs.indexOf(i),l=o.childs[s+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&&(a.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(a.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?a.addClassName(this.dom.tr,"jsoneditor-highlight"):a.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?a.addClassName(this.dom.tr,"jsoneditor-selected"):a.removeClassName(this.dom.tr,"jsoneditor-selected"),t?a.addClassName(this.dom.tr,"jsoneditor-first"):a.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),this._updateSchema()}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",a.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",a.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),a.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&!0===e.updateIndexes&&this._updateDomIndexes(),e&&!0===e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateSchema=function(){this.editor&&this.editor.options&&(this.schema=this.editor.options.schema?n._findSchema(this.editor.options.schema,this.getPath()):null,this.schema?this.enum=n._findEnum(this.schema):delete this.enum)},n._findEnum=function(e){if(e.enum)return e.enum;var t=e.oneOf||e.anyOf||e.allOf;if(t){var i=t.filter(function(e){return e.enum});if(i.length>0)return i[0].enum}return null},n._findSchema=function(e,t){var i=e,r=i,o=e.oneOf||e.anyOf||e.allOf;o||(o=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],A=y[0],C=y[y.length-1];if(13==d){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||a.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==d)p&&w&&(n.onDuplicate(y),v=!0);else if(69==d)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==d&&w)p&&(this.showContextMenu(f),v=!0);else if(46==d&&w)p&&(n.onRemove(y),v=!0);else if(45==d&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==d){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==d){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==d){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&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 l&&1!=C.parent.childs.length&&_&&_.parent&&(s=this.editor.getSelection(),c=C._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==d)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(u=this.editor.multiselection,u.start=u.start||this,u.end=t,h=this.editor._findTopLevelNodes(u.start,u.end),this.editor.select(h),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),c=C._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c, -newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==d){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&t instanceof l&&!t.isVisible()&&(s=this.editor.getSelection(),c=C._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==d)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(u=this.editor.multiselection,u.start=u.start||this,u.end=i,h=this.editor._findTopLevelNodes(u.start,u.end),this.editor.select(h),i.focus("field")),v=!0;else if(g&&m&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getSelection(),c=C._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:_,oldSelection:s,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.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new l(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof l&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:'Field type "auto". The field type is automatically determined from the value and can be a string, number, boolean, or null.',object:'Field type "object". An object contains an unordered set of key/value pairs.',array:'Field type "array". An array contains an ordered collection of values.',string:'Field type "string". Field type is not determined from the value, but always returned as string.'},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var r=function(e,t){i._onAppend(e,t)},o=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?r.bind(this,i.field,i.value):o.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:"Type",title:"Change the type of this field",className:"jsoneditor-type-"+this.type,submenu:[{text:"Auto",className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:"Array",className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:"Object",className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:"String",className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:"Sort",title:"Sort the childs of this "+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:"Ascending",className:"jsoneditor-sort-asc",title:"Sort the childs of this "+this.type+" in ascending order",click:function(){i.sort("asc")}},{text:"Descending",className:"jsoneditor-sort-desc",title:"Sort the childs of this "+this.type+" in descending order",click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;if(i==l[l.length-1]){var c=[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(c,!0),s.push({text:"Append",title:"Append a new field with type 'auto' after this field (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:c})}var h=[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(h,!1),s.push({text:"Insert",title:"Insert a new field with type 'auto' before this field (Ctrl+Ins)",submenuTitle:"Select the type of the field to be inserted",className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:h}),this.editable.field&&(s.push({text:"Duplicate",title:"Duplicate this field (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:"Remove",title:"Remove this field (Ctrl+Del)",className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(d.length,f.length);gr)return 1}return 0}},function(e,t,i){"use strict";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,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="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:"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")}}];n.addTemplates(s,!0),new o([{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:s}],{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(54),o=i(57);e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",o=document.createElement("div");o.style.position="relative",o.style.outline="0",o.style.border="0",o.style.margin="0",o.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:o,show:function(e,t,i){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==n&&(n=window.getComputedStyle(e).getPropertyValue("font-size")),""==r&&(r=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=i,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",u),this.element.addEventListener("keydown",u,!1),this.element.removeEventListener("blur",d),this.element.addEventListener("blur",d,!1)),o.appendChild(this.elementHint),o.appendChild(s),e.parentElement.appendChild(o),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var n=t.innerText;n=n.replace("\n","");var r=(this.startFrom,this.options,this.options.length),o=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+o[p].substring(i.length)+"",n.push(m),t.appendChild(m)}0!==n.length&&(1===n.length&&(i.toLowerCase()===n[0].__hint.toLowerCase()&&!e.caseSensitive||i===n[0].__hint&&e.caseSensitive)||n.length<2||(c.highlight(0),d>3*f?(t.style.maxHeight=d+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=f+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=o&&n[o]&&(n[o].className="item"),n[e].className="item hover",o=e},move:function(e){return"hidden"===t.style.visibility?"":r+e===-1||r+e===n.length?n[r].__hint:(r+=e,c.highlight(r),n[r].__hint)},onmouseselection:function(){}};return c}(s,c),u=function(i){i=i||window.event;var n=i.keyCode;if(null!=this.elementHint&&33!=n&&34!=n){if(27==n)return c.hideDropDown(),c.element.focus(),i.preventDefault(),void i.stopPropagation();var r=this.element.innerText;r=r.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(n)>=0)return 9==n&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==n&&(c.element.focus(),i.preventDefault(),i.stopPropagation())));if(13!=n){if(40==n){var o=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var o=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var u="hidden"==s.style.visibility;if(h.hide(),u)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),i.preventDefault(),i.stopPropagation()}}}.bind(c),d=function(e){c.hideDropDown()}.bind(c);return h.onmouseselection=function(e,i){i.element.innerText=i.elementHint.innerText=l+e,i.hideDropDown(),window.setTimeout(function(){i.element.focus(),t(i.element)},1)},c}e.exports=i},function(e,t,i){"use strict";var n=i(65),r=i(62),o=i(54),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:n;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{i(71)}catch(e){console.error(e)}var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=o.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var h=document.createElement("button");h.type="button",h.className="jsoneditor-repair",h.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(h),h.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new r(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var u={},d=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(u);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var f=s.edit(this.editorDom);f.$blockScrolling=1/0,f.setTheme(this.theme),f.setOptions({readOnly:d}),f.setShowPrintMargin(!1),f.setFontSize(13),f.getSession().setMode("ace/mode/json"),f.getSession().setTabSize(this.indentation),f.getSession().setUseSoftTabs(!0),f.getSession().setUseWrapMode(!0),f.commands.bindKey("Ctrl-L",null),f.commands.bindKey("Command-L",null),this.aceEditor=f,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var p=document.createElement("a");p.appendChild(document.createTextNode("powered by ace")),p.href="http://ace.ajax.org",p.target="_blank",p.className="jsoneditor-poweredBy",p.onclick=function(){window.open(p.href,p.target)},this.menu.appendChild(p),f.on("change",this._onChange.bind(this)),f.on("changeSelection",this._onSelect.bind(this))}else{var m=document.createElement("textarea");m.className="jsoneditor-text",m.spellcheck=!1,this.content.appendChild(m),this.textarea=m,this.textarea.readOnly=d,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),m.onselect=this._onSelect.bind(this),m.onmousedown=this._onMouseDown.bind(this),m.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){o.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Ln:";var y=document.createElement("span");y.className="jsoneditor-curserinfo-val",y.innerText="1",v.appendChild(w),v.appendChild(y);var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="Col:";var C=document.createElement("span");C.className="jsoneditor-curserinfo-val",C.innerText="1",v.appendChild(A),v.appendChild(C),this.curserInfoElements.colVal=C,this.curserInfoElements.lnVal=y;var E=document.createElement("span");E.className="jsoneditor-curserinfo-label",E.innerText="characters selected",E.style.display="none";var b=document.createElement("span");b.className="jsoneditor-curserinfo-count",b.innerText="0",b.style.display="none",this.curserInfoElements.countLabel=E,this.curserInfoElements.countVal=b,v.appendChild(b),v.appendChild(E)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this.options.statusBar&&this._updateCursorInfoDisplay()},s._onKeyDown=function(e){var t=e.which||e.keyCode,i=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),i=!0),i&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfoDisplay()},s._onMouseDown=function(e){this._updateCursorInfoDisplay()},s._onBlur=function(e){this._updateCursorInfoDisplay()},s._updateCursorInfoDisplay=function(){function e(){r.curserInfoElements.countVal.innerText!==n&&(r.curserInfoElements.countVal.innerText=n,r.curserInfoElements.countVal.style.display=n?"inline":"none",r.curserInfoElements.countLabel.style.display=n?"inline":"none"),r.curserInfoElements.lnVal.innerText=t,r.curserInfoElements.colVal.innerText=i}var t,i,n,r=this;if(this.options.statusBar)if(this.textarea)setTimeout(function(){var s=o.getInputSelection(r.textarea);t=s.row,i=s.col,s.start!==s.end&&(n=s.end-s.start),e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,i=s.column+1,n=a.length,e()}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=o.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=o.parse(t)}catch(i){t=o.sanitize(t),e=o.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?o.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var i=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=i}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,i=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(i=this.validateSchema.errors.map(function(e){return o.improveSchemaError(e)}))}if(i.length>0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.dom.validationErrorsContainer.appendChild(r);var s=r.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(66),i(68),i(70)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&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(e){}}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,u=Function.prototype.call,d=Array.prototype,f=Object.prototype,p=d.slice,m=u.bind(f.toString),g=u.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(s=u.bind(f.__defineGetter__),a=u.bind(f.__defineSetter__),l=u.bind(f.__lookupGetter__),c=u.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=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!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:e<0&&(e=Math.max(i+e,0)),e+ta)for(u=c;u--;)this[l+u]=this[a+u];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,u=0;u>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(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(;o>>0;if("[object Function]"!=m(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=y&&"[object String]"==m(this)?this.split(""):_(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);n>>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){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(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 A;A=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=A();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 C=r({}),E="undefined"==typeof document||r(document.createElement("div"));if(!C||!E)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(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(e){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="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((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.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!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(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(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;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(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)}function r(){a=Object.create(null)}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){if(e.removeEventListener)return e.removeEventListener(t,i,!1);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){var n,r;t.addListener(e,"touchstart",function(e){var t=e.touches,i=t[0];n=i.clientX,r=i.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}})},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||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){function o(e){if(0!==t.getButton(e)?u=0:e.detail>1?++u>4&&(u=1):u=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(u=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[u-1]||600),1==u&&(l=e.clientX,c=e.clientY)}if(e._clicks=u,n[r]("mousedown",e),u>4)u=0;else if(u>1)return n[r](d[u],e)}function a(e){u=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[u-1]||600),n[r]("mousedown",e),n[r](d[u],e)}var l,c,h,u=0,d={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};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){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}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};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},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;ip.length?e=e.substr(9):e.substr(0,4)==p.substr(0,4)?e=e.substr(4,e.length-p.length+1):e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e==p.charAt(0)||e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),m&&(m=!1),$&&($=!1))},k=function(e){if(!w){var t=f.value;D(t),u()}},B=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!c){var r=h||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return B(e,t,!0)}}},_=function(e,o){var s=t.getCopyText();if(!s)return n.preventDefault(e);B(e,s)?(r.isIOS&&(g=o,f.value="\n aa"+s+"a a\n",f.setSelectionRange(4,4+s.length),m={value:s}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=s,f.select(),setTimeout(function(){m=!1,u(),i(),o?t.onCut():t.onCopy()}))},L=function(e){_(e,!0)},R=function(e){_(e,!1)},T=function(e){var o=B(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(f.value="",v=!0)};n.addCommandKeyListener(f,t.onCommandKey.bind(t)),n.addListener(f,"select",x),n.addListener(f,"input",k),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){w||!t.onCompositionStart||t.$readOnly||(w={},w.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),w.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(w.lastValue!==e&&(t.onCompositionUpdate(e),w.lastValue&&t.undo(),w.canUndo&&(w.lastValue=e),w.lastValue)){var i=t.selection.getRange();t.insert(w.lastValue),t.session.markUndoGroup(),w.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=w;w=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");w||(e==i.lastValue?u():!i.lastValue&&e&&(u(),D(e)))});S=function(e){return n&&clearTimeout(n),(e=e.replace(/\x01/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",O),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&k()}},I=s.delayedCall(M,50);n.addListener(f,"compositionstart",P),r.isGecko?n.addListener(f,"text",function(){I.schedule()}):(n.addListener(f,"keyup",function(){I.schedule()}),n.addListener(f,"keydown",function(){I.schedule()})),n.addListener(f,"compositionend",O),this.getElement=function(){return f},this.setReadOnly=function(e){f.readOnly=e},this.onContextMenu=function(e){$=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){y||(y=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-f.clientHeight-2,u=function(e){f.style.left=e.clientX-c-2+"px",f.style.top=Math.min(e.clientY-l-2,h)+"px"};u(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&n.capture(t.container,u,d))},this.onContextMenuClose=d;var N,j=function(e){t.textInput.onContextMenu(e),d()};if(n.addListener(f,"mouseup",j),n.addListener(f,"mousedown",function(e){e.preventDefault(),d()}),n.addListener(t.renderer.scroller,"contextmenu",j),n.addListener(f,"contextmenu",j),r.isIOS){var H=null,W=!1;e.addEventListener("keydown",function(e){H&&clearTimeout(H),W=!0}),e.addEventListener("keyup",function(e){H=setTimeout(function(){W=!1},100)});var V=function(e){if(document.activeElement===f&&!W){if(g)return setTimeout(function(){g=!1},100);var i=f.selectionStart,n=f.selectionEnd;if(f.setSelectionRange(4,5),i==n)switch(i){case 0:t.onCommandKey(null,0,a.up);break;case 1:t.onCommandKey(null,0,a.home);break;case 2:t.onCommandKey(null,l.option,a.left);break;case 4:t.onCommandKey(null,0,a.left);break;case 5:t.onCommandKey(null,0,a.right);break;case 7:t.onCommandKey(null,l.option,a.right);break;case 8:t.onCommandKey(null,0,a.end);break;case 9:t.onCommandKey(null,0,a.down)}else{switch(n){case 6:t.onCommandKey(null,l.shift,a.right);break;case 7:t.onCommandKey(null,l.shift|l.option,a.right);break;case 8: -t.onCommandKey(null,l.shift,a.end);break;case 9:t.onCommandKey(null,l.shift,a.down)}switch(i){case 0:t.onCommandKey(null,l.shift,a.up);break;case 1:t.onCommandKey(null,l.shift,a.home);break;case 2:t.onCommandKey(null,l.shift|l.option,a.left);break;case 3:t.onCommandKey(null,l.shift,a.left)}}}};document.addEventListener("selectionchange",V),t.on("destroy",function(){document.removeEventListener("selectionchange",V)})}};t.TextInput=u}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),s=e("../lib/lang"),a=r.isChrome<18,l=r.isIE,c=e("./textinput_ios").TextInput,h=function(e,t){function i(e){if(!g){if(g=!0,F)var t=0,i=e?0:d.value.length-1;else var t=e?2:1,i=2;try{d.setSelectionRange(t,i)}catch(e){}g=!1}}function h(){g||(d.value=f,r.isWebKit&&C.schedule())}function u(){clearTimeout(O),O=setTimeout(function(){v&&(d.style.cssText=v,v=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(r.isIOS)return c.call(this,e,t);var d=o.createElement("textarea");d.className="ace_text-input",d.setAttribute("wrap","off"),d.setAttribute("autocorrect","off"),d.setAttribute("autocapitalize","off"),d.setAttribute("spellcheck",!1),d.style.opacity="0",e.insertBefore(d,e.firstChild);var f="\u2028\u2028",p=!1,m=!1,g=!1,v="",w=!0;try{var y=document.activeElement===d}catch(e){}n.addListener(d,"blur",function(e){t.onBlur(e),y=!1}),n.addListener(d,"focus",function(e){y=!0,t.onFocus(e),i()}),this.focus=function(){if(v)return d.focus();var e=d.style.top;d.style.position="fixed",d.style.top="0px",d.focus(),setTimeout(function(){d.style.position="","0px"==d.style.top&&(d.style.top=e)},0)},this.blur=function(){d.blur()},this.isFocused=function(){return y};var A=s.delayedCall(function(){y&&i(w)}),C=s.delayedCall(function(){g||(d.value=f,y&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=w&&(w=!w,A.schedule())}),h(),y&&t.onFocus();var E=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},b=function(e){p?p=!1:E(d)?(t.selectAll(),i()):F&&i(t.selection.isEmpty())},F=null;this.setInputHandler=function(e){F=e},this.getInputHandler=function(){return F};var x=!1,S=function(e){F&&(e=F(e),F=null),m?(i(),e&&t.onPaste(e),m=!1):e==f.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},$=function(e){if(!g){var t=d.value;S(t),h()}},D=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!a){var r=l||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return D(e,t,!0)}}},k=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);D(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,d.value=o,d.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},B=function(e){k(e,!0)},_=function(e){k(e,!1)},L=function(e){var o=D(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(d.value="",m=!0)};n.addCommandKeyListener(d,t.onCommandKey.bind(t)),n.addListener(d,"select",b),n.addListener(d,"input",$),n.addListener(d,"cut",B),n.addListener(d,"copy",_),n.addListener(d,"paste",L),"oncut"in d&&"oncopy"in d&&"onpaste"in d||n.addListener(e,"keydown",function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:_(e);break;case 86:L(e);break;case 88:B(e)}});var R=function(e){g||!t.onCompositionStart||t.$readOnly||(g={},g.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(T,0),t.on("mousedown",P),g.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},T=function(){if(g&&t.onCompositionUpdate&&!t.$readOnly){var e=d.value.replace(/\u2028/g,"");if(g.lastValue!==e&&(t.onCompositionUpdate(e),g.lastValue&&t.undo(),g.canUndo&&(g.lastValue=e),g.lastValue)){var i=t.selection.getRange();t.insert(g.lastValue),t.session.markUndoGroup(),g.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},P=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=g;g=!1;var n=setTimeout(function(){n=null;var e=d.value.replace(/\u2028/g,"");g||(e==i.lastValue?h():!i.lastValue&&e&&(h(),S(e)))});F=function(e){return n&&clearTimeout(n),(e=e.replace(/\u2028/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",P),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&$()}},M=s.delayedCall(T,50);n.addListener(d,"compositionstart",R),r.isGecko?n.addListener(d,"text",function(){M.schedule()}):(n.addListener(d,"keyup",function(){M.schedule()}),n.addListener(d,"keydown",function(){M.schedule()})),n.addListener(d,"compositionend",P),this.getElement=function(){return d},this.setReadOnly=function(e){d.readOnly=e},this.onContextMenu=function(e){x=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){v||(v=d.style.cssText),d.style.cssText=(i?"z-index:100000;":"")+"height:"+d.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-d.clientHeight-2,f=function(e){d.style.left=e.clientX-c-2+"px",d.style.top=Math.min(e.clientY-l-2,h)+"px"};f(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(O),r.isWin&&n.capture(t.container,f,u))},this.onContextMenuClose=u;var O,I=function(e){t.textInput.onContextMenu(e),u()};n.addListener(d,"mouseup",I),n.addListener(d,"mousedown",function(e){e.preventDefault(),u()}),n.addListener(t.renderer.scroller,"contextmenu",I),n.addListener(d,"contextmenu",I)};t.TextInput=h}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"));(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(),a=o.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault()))}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&&a<=0)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>0||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=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,s=e.wheelY/r;r<250&&(o=(o+i.vx)/2,s=(s+i.vy)/2);var a=Math.abs(o/s),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)i.allowed=n;else if(n-i.allowed<250){var c=Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(s)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).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},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).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=u.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,u.y).row,a=u.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(d!=r)if(d=r.text.join("
"),c.setHtml(d),c.show(),s._signal("showGutterTooltip",c),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(u);else{var h=u.domEvent.target,f=h.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),d&&(c.hide(),d=null,s._signal("hideGutterTooltip",c),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()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,u,d;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();d&&e.$tooltipFollowsMouse&&n(r),u=r,h||(h=setTimeout(function(){h=null,u&&!e.isMousePressed?t():i()},50))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){u=null,d&&!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(!$||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(g.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},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};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=g.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function u(){E=g.selection.toOrientedRange(),w=g.session.addMarker(E,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(C),n(),C=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function d(){clearInterval(C),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(E),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),E=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&d()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function m(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 g=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;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,C,E,b,F,x,S,$,D,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}E=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||u(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(u(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return d(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":E=E.contains(b.row,b.column)?{start:b,end:b}:g.moveText(E,b);break;case"copy":E=g.moveText(E,b,!0)}else{var i=t.getData("Text");E={start:b,end:g.session.insert(b,i)},g.focus(),F=null}return d(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=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(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(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;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),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();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.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;s1&&(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(e){}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 s=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)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},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()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.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,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),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",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),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;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(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){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.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&&(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.command&&(s="null"==o.command||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&&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/lib/bidiutil",["require","exports","module"],function(e,t,i){"use strict";function n(e,t,i,n){var r=a?p:f,m=null,g=null,v=null,w=0,y=null,A=-1,b=null,x=null,S=[];if(!n)for(b=0,n=[];b0)if(16==y){for(b=A;b-1){for(b=A;b=0&&n[$]==F;$--)t[$]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,o=n-1;r=t.length||(r=i[n-1])!=w&&r!=y||(o=t[n+1])!=w&&o!=y?A:(c&&(o=y),o==r?o:A);case S:return r=n>0?i[n-1]:C,r==w&&n+10&&i[n-1]==w)return w;if(c)return A;for(l=n+1,s=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==b))return v}return n<1||(r=t[n-1])==C?A:i[n-1];case C:return c=!1,u=!0,a;case E:return d=!0,A;case k:case B:case L:case R:case _:c=!1;case T:return A}}function s(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?g:P[t]:5==i?/[\u0591-\u05f4]/.test(e)?v:g:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?D:/[\u0660-\u0669\u066b-\u066c]/.test(e)?y:1642==t?$:/[\u06f0-\u06f9]/.test(e)?w:b:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?b:A}var a=0,l=0,c=!1,h=!1,u=!1,d=!1,f=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],p=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],m=1,g=0,v=1,w=2,y=3,A=4,C=5,E=6,b=7,F=8,x=9,S=10,$=11,D=12,k=13,B=14,_=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,E,C,E,F,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,C,C,C,E,F,A,A,$,$,$,A,A,A,A,A,S,x,S,x,x,w,w,w,w,w,w,w,w,w,w,x,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,T,T,T,T,T,T,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,x,A,$,$,$,$,A,A,A,A,g,A,A,T,A,A,$,$,w,w,A,g,A,A,A,w,g,A,A,A,A,A],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F,C,k,B,_,L,R,x,$,$,$,$,$,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,x,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F];t.L=g,t.R=v,t.EN=w,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,o){if(e.length<2)return{};var s=e.split(""),l=new Array(s.length),c=new Array(s.length),h=[];a=o?m:0,n(s,h,s.length,i);for(var u=0;ub&&i[u]0&&"ل"===s[u-1]&&/\u0622|\u0623|\u0625|\u0627/.test(s[u])&&(h[u-1]=h[u]=t.R_H,u++);s[s.length-1]===t.DOT&&(h[s.length-1]=t.B);for(var u=0;u=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o=c&&ri+s/2;){if(i+=s,r===o.length-1){s=0;break}s=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===s&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==s&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),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))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},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(void 0===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,!0===t?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.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},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.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?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=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},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(e0&&/^\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,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.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;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),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(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){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?this.$applyToken:c.token),u>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(u=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=u,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;rh){var v=e.substring(h,g-m.length);d.type==f?d.value+=v:(d.type&&c.push(d),d={type:f,value:v})}for(var w=0;wr){for(u>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()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=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={},u={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t])return n=h[t];n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},f=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)]}},p=function(e){this.add("braces","insertion",function(t,i,r,o,s){var l=r.getCursorPosition(),c=o.doc.getLine(l.row);if("{"==s){d(r);var h=r.getSelectionRange(),u=o.doc.getTextRange(h);if(""!==u&&"{"!==u&&r.getWrapBehavioursEnabled())return f(h,u,"{","}");if(p.isSaneInsertion(r,o))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==s){d(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,s))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==s||"\r\n"==s){d(r);var v="";p.isMaybeInsertedClosing(l,c)&&(v=a.stringRepeat("}",n.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var m=c.substring(l.column,l.column+1);if("}"===m){var w=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!w)return null;var y=this.$getIndent(o.getLine(w.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var y=this.$getIndent(c)}var A=y+o.getTabString();return{text:"\n"+A+"\n"+y+v,selection:[1,A.length,1,A.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){d(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))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 f(o,s,"(",")");if(p.isSaneInsertion(i,n))return p.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&&p.isAutoInsertedClosing(a,l,r))return p.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);if(")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))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 f(o,s,"[","]");if(p.isSaneInsertion(i,n))return p.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&&p.isAutoInsertedClosing(a,l,r))return p.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);if("]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){var o=n.$mode.$quotes||u;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;d(i);var s=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return f(a,l,s,s);if(!l){var c=i.getCursorPosition(),h=n.doc.getLine(c.row),p=h.substring(c.column-1,c.column),m=h.substring(c.column,c.column+1),g=n.getTokenAt(c.row,c.column),v=n.getTokenAt(c.row,c.column+1);if("\\"==p&&g&&/escape/.test(g.type))return null;var w,y=g&&/string|escape/.test(g.type),A=!v||/string|escape/.test(v.type);if(m==s)(w=y!==A)&&/string\.end/.test(v.type)&&(w=!1);else{if(y&&!A)return null;if(y&&A)return null;var C=n.$mode.tokenRe;C.lastIndex=0;var E=C.test(p);C.lastIndex=0;var b=C.test(p);if(E||b)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;w=!0}return{text:w?s+s:"",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);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};p.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)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.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++},p.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++},p.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},p.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},p.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(p,o),t.CstyleBehaviour=p}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","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/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,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.$highlightRuleConfig),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;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var d=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var d=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;d=new RegExp("^(\\s*)(?:"+d+") ?"),u=t.getUseSoftTabs();var p=function(e,t){var i=e.match(d);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)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return d.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,y=this.blockComment.end,d=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(d))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(d.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),u&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},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(),u=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var d,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;d=new c(m,g,m,g+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 m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;f=new c(m,g,m,g+r.end.length);break}h=a.stepForward()}f&&t.remove(f),d&&(t.remove(d),o=d.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);u.start.row==o&&(u.start.column+=s),u.end.row==o&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},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;tthis.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):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(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:e<0?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);return 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;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&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;l<=a;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;c0)){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);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},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;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.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&&lh.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&&l=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){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(!(a0&&(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);if(n.length)return n},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(!(th)break}while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+o.value.length-2,c}},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;r=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},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};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.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 t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),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(0==(o-=1))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;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,a),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;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=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()):"\t"},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.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},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;ls){if((l=o.end.row+1)>=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,c=o.start,s=c.row-l.row,a=c.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;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new h(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;s0){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 h(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 t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)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.$bidiHandler.markAsDirty(),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)},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),u=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var d=this.getFoldLine(o);d&&d!==h&&(d.merge(h),h=d),u=c.indexOf(h)+1}for(u;u=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),u=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),u=c.indexOf(h)+1}for(u;u=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,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=d+n-v;if(e[w-1]>=o&&e[w]>=o)a(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),d-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?a(++w):(w=d+n,2==e[w]&&w--,a(w-v))}else{for(w;w!=d-1&&e[w]!=t;w--);if(w>d){a(w);continue}for(w=d+n;w39&&a<48||a>57&&a<64?r.push(9):a>=4352&&e(a)?r.push(1,2):r.push(1)}return r},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)?n+=2:n+=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]=0)var a=c[h],o=this.$docRowCache[h],d=e>c[u-1];else var d=!u;for(var f=this.getLength()-1,p=this.getNextFoldLine(o),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(o),!(a+l>e||o>=f));)a+=l,++o>m&&(o=p.end.row+1,p=this.getNextFoldLine(o,p),m=p?p.start.row:1/0),d&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(p&&p.start.row<=o)n=this.getFoldDisplayLine(p),o=p.start.row;else{if(a+l<=e||o>f)return{row:f,column:this.getLine(f).length};n=this.getLine(o),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(r=w[v],v>0&&w.length&&(g=w.indent,s=w[v-1]||w[w.length-1],n=n.substring(s)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,o,v)&&(t=this.$bidiHandler.offsetToCol(i)),s+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&s>=r&&(s=r-1),p?p.idxToPosition(s):{row:o,column:s}},this.documentToScreenPosition=function(e,t){if(void 0===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))&&(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],u=e>l[h-1];else var u=!h;for(var d=this.getNextFoldLine(a),f=d?d.start.row:1/0;a=f){if((s=d.end.row+1)>e)break;d=this.getNextFoldLine(s,d),f=d?d.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,u&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";d&&a>=f?(p=this.getFoldDisplayLine(d,e,t),r=d.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+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;no&&(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()},this.isFullWidth=e}.call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.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)!=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},navigateWithinSoftTabs:{initialValue:!1},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=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.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,o){return n=new s(e,i,r,o),!(i==o&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var u=a.offset||0;u<=h;u++){for(var d=0;dm||(o.push(l=new s(u,m,u+c-1,g)),c>2&&(u=u+c-2))}}else for(var v=0;vC&&o[d].end.row==i.end.row;)d--;for(o=o.slice(v,d+1),v=0,d=o.length;v=a;i--)if(u(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=s.row;i>=a;i--)if(u(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=s.row;if(!u(i,s.column,e)){for(i+=1;i<=l;i++)if(u(i,0,e))return;if(0!=t.wrap)for(i=a,l=s.row;i<=l;i++)if(u(i,0,e))return}};if(t.$isMultiLine)var h=i.length,u=function(t,r,o){var s=n?t-h+1:t;if(!(s<0)){var a=e.getLine(s),l=a.search(i[0]);if(!(!n&&lr))return!!o(s,l,s+h-1,u)||void 0}}};else if(n)var u=function(t,n,r){var o,s=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(s);){var c=o[0].length;if(l=o.index,!c){if(l>=s.length)break;i.lastIndex=l+=1}if(o.index+c>n)break;a.push(o.index,c)}for(var h=a.length-1;h>=0;h-=2){var u=a[h-1],c=a[h];if(r(t,u,t,u+c))return!0}};else var u=function(t,n,r){var o,s=e.getLine(t),a=n;for(i.lastIndex=n;o=i.exec(s);){var l=o[0].length;if(a=o.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=s.length))return!1}};return{forEach:c}}}).call(a.prototype),t.Search=a}),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||(e.isDefault?-100: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){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"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)},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=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(!(n<0)){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;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return 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","F4"),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","Shift-F4"),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-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|Ctrl-Shift-P"),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-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|Ctrl-Shift-N"),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|Ctrl-Shift-A"),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|Ctrl-Shift-B"),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|Shift-End|Ctrl-Shift-E"),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){if(!e.selection.isEmpty())return!1;e.remove("left")},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|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},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("Alt-Shift-X","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 u=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==u.length&&(u=" "+u),c+=u}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.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("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}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},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.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++:"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)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},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("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){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),u=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var d=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},d)}u&&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 r=new f(0,0,0,0),n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-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){return{value:r[0],start:r.index,end:r.index+r[0].length}}}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),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(d,f,t?0:e),t&&-1==e&&(u=h+1);u<=h;)s[u].moveBy(a,0),u++;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++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(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,u={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};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),!1!==t&&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||!(o.topwindow.innerHeight)&&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.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("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(y.prototype),v.defineOptions(y.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)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},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=y}),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&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>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 g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.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){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+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):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.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",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,u=0,d=0,f=a.getScreenLastRowColumn(h),p=null,m=new n(h,i.start.column,h,d);h<=c;h++)m.start.row=m.end.row=h,m.start.column=h==l?i.start.column:a.getRowWrapIndent(h),m.end.column=f,u=d,d=f,f=h+1f,h==c),this.session.$bidiHandler.isBidiRow(h)?this.drawBidiSingleLineMarker(t,m,p,o,h==c?0:1,s):this.drawSingleLineMarker(t,m,p,o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,s,a,l=this.$padding;if(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var c=t.clone();c.end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,i+" ace_br1 ace_start",n,null,r)}else o=n.lineHeight,s=this.$getTop(t.start.row,n),a=l+t.start.column*n.characterWidth,e.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var c=t.clone();c.start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,i+" ace_br12",n,null,r)}else{var h=t.end.column*n.characterWidth;o=n.lineHeight,s=this.$getTop(t.end.row,n),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){s=this.$getTop(t.start.row+1,n);var u=(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.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(t){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;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!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&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(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;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(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["\t"]=""+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;ac&&(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 u=[];this.$renderLine(u,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=u.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),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),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=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("\t"==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+"")},a=n.replace(/\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]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],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,u.substring(0,a-r)),u=u.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=u.length&&(r+=u.length,l=this.$renderToken(e,l,h,u))}}},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(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(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);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},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;ie.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,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.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){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&&t<1?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 t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().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,u=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter -;r.importCssString('.ace_editor {\tposition: relative;\toverflow: hidden;\tfont: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\tdirection: ltr;\ttext-align: left;\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\t}\t.ace_scroller {\tposition: absolute;\toverflow: hidden;\ttop: 0;\tbottom: 0;\tbackground-color: inherit;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\tcursor: text;\t}\t.ace_content {\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmin-width: 100%;\t}\t.ace_dragging .ace_scroller:before{\tposition: absolute;\ttop: 0;\tleft: 0;\tright: 0;\tbottom: 0;\tcontent: \'\';\tbackground: rgba(250, 250, 250, 0.01);\tz-index: 1000;\t}\t.ace_dragging.ace_dark .ace_scroller:before{\tbackground: rgba(0, 0, 0, 0.01);\t}\t.ace_selecting, .ace_selecting * {\tcursor: text !important;\t}\t.ace_gutter {\tposition: absolute;\toverflow : hidden;\twidth: auto;\ttop: 0;\tbottom: 0;\tleft: 0;\tcursor: default;\tz-index: 4;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\t}\t.ace_gutter-active-line {\tposition: absolute;\tleft: 0;\tright: 0;\t}\t.ace_scroller.ace_scroll-left {\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\t}\t.ace_gutter-cell {\tpadding-left: 19px;\tpadding-right: 6px;\tbackground-repeat: no-repeat;\t}\t.ace_gutter-cell.ace_error {\tbackground-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==");\tbackground-repeat: no-repeat;\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_warning {\tbackground-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==");\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\tbackground-position: 2px center;\t}\t.ace_dark .ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\t}\t.ace_scrollbar {\tposition: absolute;\tright: 0;\tbottom: 0;\tz-index: 6;\t}\t.ace_scrollbar-inner {\tposition: absolute;\tcursor: text;\tleft: 0;\ttop: 0;\t}\t.ace_scrollbar-v{\toverflow-x: hidden;\toverflow-y: scroll;\ttop: 0;\t}\t.ace_scrollbar-h {\toverflow-x: scroll;\toverflow-y: hidden;\tleft: 0;\t}\t.ace_print-margin {\tposition: absolute;\theight: 100%;\t}\t.ace_text-input {\tposition: absolute;\tz-index: 0;\twidth: 0.5em;\theight: 1em;\topacity: 0;\tbackground: transparent;\t-moz-appearance: none;\tappearance: none;\tborder: none;\tresize: none;\toutline: none;\toverflow: hidden;\tfont: inherit;\tpadding: 0 1px;\tmargin: 0 -1px;\ttext-indent: -1em;\t-ms-user-select: text;\t-moz-user-select: text;\t-webkit-user-select: text;\tuser-select: text;\twhite-space: pre!important;\t}\t.ace_text-input.ace_composition {\tbackground: inherit;\tcolor: inherit;\tz-index: 1000;\topacity: 1;\ttext-indent: 0;\t}\t.ace_layer {\tz-index: 1;\tposition: absolute;\toverflow: hidden;\tword-wrap: normal;\twhite-space: pre;\theight: 100%;\twidth: 100%;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tpointer-events: none;\t}\t.ace_gutter-layer {\tposition: relative;\twidth: auto;\ttext-align: right;\tpointer-events: auto;\t}\t.ace_text-layer {\tfont: inherit !important;\t}\t.ace_cjk {\tdisplay: inline-block;\ttext-align: center;\t}\t.ace_cursor-layer {\tz-index: 4;\t}\t.ace_cursor {\tz-index: 4;\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tborder-left: 2px solid;\ttransform: translatez(0);\t}\t.ace_multiselect .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_slim-cursors .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_overwrite-cursors .ace_cursor {\tborder-left-width: 0;\tborder-bottom: 1px solid;\t}\t.ace_hidden-cursors .ace_cursor {\topacity: 0.2;\t}\t.ace_smooth-blinking .ace_cursor {\t-webkit-transition: opacity 0.18s;\ttransition: opacity 0.18s;\t}\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\tposition: absolute;\tz-index: 3;\t}\t.ace_marker-layer .ace_selection {\tposition: absolute;\tz-index: 5;\t}\t.ace_marker-layer .ace_bracket {\tposition: absolute;\tz-index: 6;\t}\t.ace_marker-layer .ace_active-line {\tposition: absolute;\tz-index: 2;\t}\t.ace_marker-layer .ace_selected-word {\tposition: absolute;\tz-index: 4;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\t}\t.ace_line .ace_fold {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tdisplay: inline-block;\theight: 11px;\tmargin-top: -2px;\tvertical-align: middle;\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\tbackground-repeat: no-repeat, repeat-x;\tbackground-position: center center, top left;\tcolor: transparent;\tborder: 1px solid black;\tborder-radius: 2px;\tcursor: pointer;\tpointer-events: auto;\t}\t.ace_dark .ace_fold {\t}\t.ace_fold:hover{\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\t}\t.ace_tooltip {\tbackground-color: #FFF;\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\tborder: 1px solid gray;\tborder-radius: 1px;\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\tcolor: black;\tmax-width: 100%;\tpadding: 3px 4px;\tposition: fixed;\tz-index: 999999;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tcursor: default;\twhite-space: pre;\tword-wrap: break-word;\tline-height: normal;\tfont-style: normal;\tfont-weight: normal;\tletter-spacing: normal;\tpointer-events: none;\t}\t.ace_folding-enabled > .ace_gutter-cell {\tpadding-right: 13px;\t}\t.ace_fold-widget {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmargin: 0 -12px 0 1px;\tdisplay: none;\twidth: 11px;\tvertical-align: top;\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: center;\tborder-radius: 3px;\tborder: 1px solid transparent;\tcursor: pointer;\t}\t.ace_folding-enabled .ace_fold-widget {\tdisplay: inline-block; \t}\t.ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\t}\t.ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\t}\t.ace_fold-widget:hover {\tborder: 1px solid rgba(0, 0, 0, 0.3);\tbackground-color: rgba(255, 255, 255, 0.2);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\t}\t.ace_fold-widget:active {\tborder: 1px solid rgba(0, 0, 0, 0.4);\tbackground-color: rgba(0, 0, 0, 0.05);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\t}\t.ace_dark .ace_fold-widget {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\t}\t.ace_dark .ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget:hover {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\tbackground-color: rgba(255, 255, 255, 0.1);\t}\t.ace_dark .ace_fold-widget:active {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\t}\t.ace_fold-widget.ace_invalid {\tbackground-color: #FFB4B4;\tborder-color: #DE5555;\t}\t.ace_fade-fold-widgets .ace_fold-widget {\t-webkit-transition: opacity 0.4s ease 0.05s;\ttransition: opacity 0.4s ease 0.05s;\topacity: 0;\t}\t.ace_fade-fold-widgets:hover .ace_fold-widget {\t-webkit-transition: opacity 0.05s ease 0.05s;\ttransition: opacity 0.05s ease 0.05s;\topacity:1;\t}\t.ace_underline {\ttext-decoration: underline;\t}\t.ace_bold {\tfont-weight: bold;\t}\t.ace_nobold .ace_bold {\tfont-weight: normal;\t}\t.ace_italic {\tfont-style: italic;\t}\t.ace_error-marker {\tbackground-color: rgba(255, 0, 0,0.2);\tposition: absolute;\tz-index: 9;\t}\t.ace_highlight-marker {\tbackground-color: rgba(255, 255, 0,0.2);\tposition: absolute;\tz-index: 8;\t}\t.ace_br1 {border-top-left-radius : 3px;}\t.ace_br2 {border-top-right-radius : 3px;}\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\t.ace_br4 {border-bottom-right-radius: 3px;}\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\t.ace_br8 {border-bottom-left-radius : 3px;}\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_text-input-ios {\tposition: absolute !important;\ttop: -100000px !important;\tleft: -100000px !important;\t}\t',"ace_editor.css");var g=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.$gutter.setAttribute("aria-hidden",!0),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 d(this.container,this),this.scrollBarH=new u(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),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,m),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.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,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.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},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.session.$bidiHandler.setShowInvisibles(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(t<0||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=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},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"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);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.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);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,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,r-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+d.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+u<0||this.scrollTop>d.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;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:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},E},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),s=Math.round(r);return{row:o,column:s,side:r-s>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):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||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");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,!1!==t)},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(g.prototype),o.defineOptions(g.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){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},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()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},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=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,i){"use strict";function n(e,t){var i=t.src;s.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(e){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(i),r.getBlob("application/javascript")}}function r(e,t){var i=n(e,t),r=window.URL||window.webkitURL,o=r.createObjectURL(i);return new Worker(o)}var o=e("../lib/oop"),s=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,o,s){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),l.get("packaged")||!e.toUrl)o=o||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;o=o||a(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach(function(t){c[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=r(o,i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,a),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 s.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(e){console.error(e.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}))}}).call(c.prototype);var h=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(a),s=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){s.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=s.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){s.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})},l.loadModule(["worker",t],function(e){for(n=new e[i](o);s.messageBuffer.length;)c()})};h.prototype=c.prototype,t.UIWorkerClient=h,t.WorkerClient=c,t.createWorker=r}),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;i1&&!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);if(t)return this.$onRemoveRange(t),t[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.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 u=r+1;u1){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);this.rectangularRangeBlock(n,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)v--;if(v>0)for(var w=0;n[w].isEmpty();)w++;for(var y=v;y>=w;y--)n[y].isEmpty()&&n.splice(y,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 u=a._eventRegistry;a._eventRegistry={};var d=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--;d.fromOrientedRange(h[f]),d.index=f,this.selection=s.selection=d;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),d.toOrientedRange(h[f])}d.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=u,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.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;no&&(o=i.column),rc?e.insert(n,d.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,u=c.end.row,f=h==u;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(u)}while(/[=:]/.test(p)&&++u0);h<0&&(h=0),u>=m&&(u=m-1)}var g=this.session.removeFullLines(h,u);g=this.$reAlignText(g,f),this.session.insert({row:h,column:0},g.join("\n")+"\n"),f||(c.start.column=0,c.end.column=g[g.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return d.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=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var u=e.getLine(c).length;return new n(l,s,c,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);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).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 {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").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;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;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;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))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);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(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[i<0?"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 u=h[0];n.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,n.row=u.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 d={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=d.el.appendChild(s.createElement("div")),p=d.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=m+e.renderer.gutterWidth-5+"px",d.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return d.destroy(),{command:"null"}};d.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(d),e.off("changeSelection",d.destroy),e.off("changeSession",d.destroy),e.off("mouseup",d.destroy),e.off("change",d.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",d.destroy),e.on("changeSession",d.destroy),e.on("mouseup",d.destroy),e.on("change",d.destroy),e.session.widgetManager.addLineWidget(d),d.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:d.el.offsetHeight})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),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,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=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.define=i(67),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var u={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(u.textarea=a),o.addListener(window,"resize",u.onResize),h.on("destroy",function(){o.removeListener(window,"resize",u.onResize),u.editor.container.env=null}),h.container.env=h.env=u,h},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.EditSession=a,t.UndoManager=l,t.version="1.2.9"}),function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),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){e.exports=function(){throw new Error("define cannot be used indirect")}},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:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{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:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};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)},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/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)return new r(s,n,h,t.length)}}.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,u=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(u,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(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(69),"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(u.prototype),t.Mode=u})},function(e,t){e.exports.id="ace/mode/json_worker", +!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){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)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=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];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(1)}catch(e){}var o=i(51),s=i(65),a=i(54);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||this.options.modes&&this.options.modes[0]||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.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=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},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,t){if(e){var i;try{i=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){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`.")}if(i){if(t){for(var n in t)i.removeSchema(n),t[n]&&i.addSchema(t[n],n);this.options.schemaRefs=t}this.validateSchema=i.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function o(e,t,i){var n=s.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function s(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),w=["%","/","?",";","#"].concat(v),y=["/","?","#"],A={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=i(7);n.prototype.parse=function(e,t,i){if(!l(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var r=f.exec(n);if(r){r=r[0];var o=r.toLowerCase();this.protocol=o,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||r&&C[r]||(n=n.substr(2),this.slashes=!0)}if(!C[r]&&(s||r&&!E[r])){for(var a=-1,c=0;c127?S+="x":S+=x[$];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var k=g.slice(0,c),B=g.slice(c+1),_=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);_&&(k.push(_[1]),B.unshift(_[2])),B.length&&(n="/"+B.join(".")+n),this.hostname=k.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var L=this.hostname.split("."),R=[],c=0;c0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return i.search=e.search,i.query=e.query,h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!p.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var v=p.slice(-1)[0],w=(i.host||e.host)&&("."===v||".."===v)||""===v,y=0,A=p.length;A>=0;A--)v=p[A],"."==v?p.splice(A,1):".."===v?(p.splice(A,1),y++):y&&(p.splice(A,1),y--);if(!d&&!f)for(;y--;y)p.unshift("..");!d||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),w&&"/"!==p.join("/").substr(-1)&&p.push("");var b=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=b?"":p.length?p.shift():"";var g=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return d=d||i.host&&p.length,d&&!b&&p.unshift(""),p.length?i.pathname=p.join("/"):(i.pathname=null,i.path=null),h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,i){var n;(function(e,r){!function(o){function s(e){throw RangeError(L[e])}function a(e,t){for(var i=e.length,n=[];i--;)n[i]=t(e[i]);return n}function l(e,t){var i=e.split("@"),n="";return i.length>1&&(n=i[0]+"@",e=i[1]),e=e.replace(_,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function u(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:C}function d(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function f(e,t,i){var n=0;for(e=i?T(e/x):e>>1,e+=T(e/t);e>R*b>>1;n+=C)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,o,a,l,c,d,p,m=[],g=e.length,v=0,w=$,y=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&s("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&s("invalid-input"),c=u(e.charCodeAt(r++)),(c>=C||c>T((A-v)/a))&&s("overflow"),v+=c*a,d=l<=y?E:l>=y+b?b:l-y,!(cT(A/p)&&s("overflow"),a*=p;t=m.length+1,y=f(v-o,t,0==o),T(v/t)>A-w&&s("overflow"),w+=T(v/t),v%=t,m.splice(v++,0,w)}return h(m)}function m(e){var t,i,n,r,o,a,l,h,u,p,m,g,v,w,y,F=[];for(e=c(e),g=e.length,t=$,i=0,o=S,a=0;a=t&&mT((A-i)/v)&&s("overflow"),i+=(l-t)*v,t=l,a=0;aA&&s("overflow"),m==t){for(h=i,u=C;p=u<=o?E:u>=o+b?b:u-o,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=C-E,T=Math.floor,P=String.fromCharCode;y={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return y}.call(t,i,t,e))&&(e.exports=n)}()}).call(t,i(6)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){"use strict";t.decode=t.parse=i(8),t.encode=t.stringify=i(9)},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,r){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;e=e.split(t);var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var a=e.length;s>0&&a>s&&(a=s);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),u=decodeURIComponent(c),d=decodeURIComponent(h),i(o,u)?Array.isArray(o[u])?o[u].push(d):o[u]=[o[u],d]:o[u]=d}return o}},function(e,t){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(r){var o=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";e.exports=function e(t,i){if(t===i)return!0;var n,r=Array.isArray(t),o=Array.isArray(i);if(r&&o){if(t.length!=i.length)return!1;for(n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=u.call(arguments,1)),i(t)})})}function o(e){return Promise.all(e.map(n,this))}function s(e){for(var t=new e.constructor,i=Object.keys(e),r=[],o=0;o=1&&i<=12&&n>=1&&n<=d[i]}function o(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(A);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return C.test(e)&&m.test(e)}function c(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),u=/^\d\d\d\d-(\d\d)-(\d\d)$/,d=[0,31,29,31,30,31,30,31,31,30,31,30,31],f=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,p=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,m=/^(?:[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,g=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#.\/;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,v=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,w=/^(?: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;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,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":g,url:v,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:p,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:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:o,"date-time":s,uri:l,"uri-reference":/^(?:[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,"uri-template":g,url:v,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:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var A=/t|\s/i,C=/\/|:/,E=/[^\\]\\Z/},function(e,t,i){"use strict";var n=i(22),r=i(11).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],t=["type"],i=["additionalItems","$schema","$id","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(o),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var o=Object.keys(i)[0];r=i[o],i=o,r.forEach(function(i){t.push(i),e.all[i]=!0})}return t.push(i),e.all[i]={keyword:i,code:n[i],implements:r}}),i.type&&(e.types[i.type]=i)}),e.keywords=r(t.concat(i)),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(23),allOf:i(24),anyOf:i(25),const:i(26),contains:i(27),dependencies:i(28),enum:i(29),format:i(30),items:i(31),maximum:i(32),minimum:i(32),maxItems:i(33),minItems:i(33),maxLength:i(34),minLength:i(34),maxProperties:i(35),minProperties:i(35),multipleOf:i(36),not:i(37),oneOf:i(38),pattern:i(39),properties:i(40),propertyNames:i(41),required:i(42),uniqueItems:i(43),validate:i(17)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,u="data"+(a||""),d="valid"+s;if("#"==l||"#/"==l)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var f=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===f){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(p);var m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;o=m.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(o+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var y=e.validate(v).replace(/validate\.schema/g,f.code);o+=" "+y+" ",h&&(o+=" if ("+w+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(o),o="",e.opts.passContext?o+=" "+r+".call(this, ":o+=" "+r+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var A=o;if(o=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+d+"; "),o+=" try { "+e.yieldAwait+" "+A+"; ",h&&(o+=" "+d+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+d+" = false; "),o+=" } ",h&&(o+=" if ("+d+") { ")}else o+=" if (!"+A+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,u=l.baseId,d=!0,f=r;if(f)for(var p,m=-1,g=f.length-1;m=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+s+'" is used in schema at path "'+e.errSchemaPath+'"')}var g="object"==typeof m&&!(m instanceof RegExp)&&m.validate,v=g&&m.type||"string";if(g){var w=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(w){if(!e.async)throw new Error("async format in sync schema");var y="formats"+e.util.getProperty(s)+".validate";n+=" if (!("+e.yieldAwait+" "+y+"("+h+"))) { "}else{n+=" if (! ";var y="formats"+e.util.getProperty(s);g&&(y+=".validate"),n+="function"==typeof m?" "+y+"("+h+") ":" "+y+".test("+h+") ",n+=") { "}}var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=d?""+u:""+e.util.toQuotedString(s),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=d?"' + "+u+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=d?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var C=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+r,d="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,g="i"+r,v=f.dataLevel=e.dataLevel+1,w="data"+v,y=e.baseId;if(n+="var "+d+" = errors;var "+u+";",Array.isArray(s)){var A=e.schema.additionalItems;if(!1===A){n+=" "+u+" = "+h+".length <= "+s.length+"; ";var C=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+u+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+s.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+s.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=C,c&&(p+="}",n+=" else { ")}var F=s;if(F)for(var x,S=-1,$=F.length-1;S<$;)if(x=F[S+=1],e.util.schemaHasRules(x,e.RULES.all)){n+=" "+m+" = true; if ("+h+".length > "+S+") { ";var D=h+"["+S+"]";f.schema=x,f.schemaPath=a+"["+S+"]",f.errSchemaPath=l+"/"+S,f.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),f.dataPathArr[v]=S;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof A&&e.util.schemaHasRules(A,e.RULES.all)){f.schema=A,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+s.length+") { for (var "+g+" = "+s.length+"; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(s,e.RULES.all)){f.schema=s,f.schemaPath=a,f.errSchemaPath=l,n+=" for (var "+g+" = 0; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,w=p?"<":">",y=p?">":"<",n=void 0;if(v){var A=e.util.getData(g.$data,a,e.dataPathArr),C="exclusive"+s,E="exclType"+s,b="exclIsNumber"+s,F="op"+s,x="' + "+F+" + '";o+=" var schemaExcl"+s+" = "+A+"; ",A="schemaExcl"+s,o+=" var "+C+"; var "+E+" = typeof "+A+"; if ("+E+" != 'boolean' && "+E+" != 'undefined' && "+E+" != 'number') { ";var n=m,S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var $=o;o=S.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+E+" == 'number' ? ( ("+C+" = "+r+" === undefined || "+A+" "+w+"= "+r+") ? "+d+" "+y+"= "+A+" : "+d+" "+y+" "+r+" ) : ( ("+C+" = "+A+" === true) ? "+d+" "+y+"= "+r+" : "+d+" "+y+" "+r+" ) || "+d+" !== "+d+") { var op"+s+" = "+C+" ? '"+w+"' : '"+w+"=';"}else{var b="number"==typeof g,x=w;if(b&&f){var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" ( "+r+" === undefined || "+g+" "+w+"= "+r+" ? "+d+" "+y+"= "+g+" : "+d+" "+y+" "+r+" ) || "+d+" !== "+d+") { "}else{b&&void 0===l?(C=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,y+="="):(b&&(r=Math[p?"min":"max"](g,l)),g===(!b||r)?(C=!0,n=m,h=e.errSchemaPath+"/"+m,y+="="):(C=!1,x+="="));var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+d+" "+y+" "+r+" || "+d+" !== "+d+") { "}}n=n||t;var S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+C+" } ",!1!==e.opts.messages&&(o+=" , message: 'should be "+x+" ",o+=f?"' + "+r:r+"'"),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var $=o;return o=S.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxItems"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+d+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxItems"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" items' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxLength"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?o+=" "+d+".length ":o+=" ucs2length("+d+") ",o+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT be ",o+="maxLength"==t?"longer":"shorter",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" characters' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxProperties"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" Object.keys("+d+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxProperties"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" properties' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,u="data"+(s||""),d=e.opts.$data&&a&&a.$data;d?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a,r+="var division"+o+";if (",d&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+o+" = "+u+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+o+" !== parseInt(division"+o+") ",r+=" ) ",d&&(r+=" ) "),r+=" ) { ";var f=f||[];f.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be multiple of ",r+=d?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=d?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var p=r;return r=f.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+p+"]); ":r+=" validate.errors = ["+p+"]; return false; ":r+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+r,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(s,e.RULES.all)){d.schema=s,d.schemaPath=a,d.errSchemaPath=l,n+=" var "+u+" = errors; ";var p=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var m;d.opts.allErrors&&(m=d.opts.allErrors,d.opts.allErrors=!1),n+=" "+e.validate(d)+" ",d.createErrors=!0,m&&(d.opts.allErrors=m),e.compositeRule=d.compositeRule=p,n+=" if ("+f+") { ";var g=g||[];g.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var v=n;n=g.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+v+"]); ":n+=" validate.errors = ["+v+"]; return false; ":n+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+r,d="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;n+="var "+d+" = errors;var prevValid"+r+" = false;var "+u+" = false;";var g=f.baseId,v=e.compositeRule;e.compositeRule=f.compositeRule=!0;var w=s;if(w)for(var y,A=-1,C=w.length-1;A5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=C;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+u+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var Y=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+Y+"]); ":n+=" validate.errors = ["+Y+"]; return false; ":n+=" var err = "+Y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==we&&(n+=" else ")}if(void 0!==we){var ye=we,Ae="maximum",Ce="more";n+=" "+u+" = pgPropCount"+r+" <= "+we+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+u+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var Y=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+Y+"]); ":n+=" validate.errors = ["+Y+"]; return false; ":n+=" var err = "+Y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+u+") { ",p+="}")}}}}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+r,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(s,e.RULES.all)){d.schema=s,d.schemaPath=a,d.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",w=d.dataLevel=e.dataLevel+1,y="data"+w,A="dataProperties"+r,C=e.opts.ownProperties,E=e.baseId;n+=" var "+u+" = errors; ",C&&(n+=" var "+A+" = undefined; "),n+=C?" "+A+" = "+A+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+A+".length; "+m+"++) { var "+p+" = "+A+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var b=p,F=e.compositeRule;e.compositeRule=d.compositeRule=!0;var x=e.validate(d);d.baseId=E,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,b)+" ":n+=" var "+y+" = "+b+"; "+x+" ",e.compositeRule=d.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",C){d||(n+=" var "+f+" = validate.schema"+a+"; ");var b="i"+r,F="schema"+r+"["+b+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,F,e.opts.jsonPointers)),n+=" var "+u+" = true; ",d&&(n+=" if (schema"+r+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+r+")) "+u+" = false; else {"),n+=" for (var "+b+" = 0; "+b+" < "+f+".length; "+b+"++) { "+u+" = "+h+"["+f+"["+b+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+b+"]) "),n+="; if (!"+u+") break; } ",d&&(n+=" } "),n+=" if (!"+u+") { ";var S=S||[];S.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+x+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+x+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var $=n;n=S.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+$+"]); ":n+=" validate.errors = ["+$+"]; return false; ":n+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var D=p;if(D)for(var k,b=-1,B=D.length-1;b 1) { var i = "+u+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+d+" = false; break outer; } } } } ",f&&(r+=" } "),r+=" if (!"+d+") { ";var p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(r+=" , schema: ",r+=f?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var m=r;r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { ")}else h&&(r+=" if (true) { ");return r}},function(e,t){"use strict";var i=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var n=0;n0?this.autoScrollStep=(n+24-e)/3:e>o-24&&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)},m._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,h.addEventListener(this.frame,"focus",e,!0),h.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.type="button",i.className="jsoneditor-expand-all",i.title=d("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title=d("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title=d("undo"),r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=d("redo"),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 l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},m._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},m._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},m._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var i=this;setTimeout(function(){i._updateTreePath(t.getNodePath())})}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&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},m._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){h.removeClassName(this.navBar,"nav-bar-empty");var i=[];e.forEach(function(e){var n={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){n.children.push({name:t(e),node:e})}),i.push(n)}),this.treePath.setPath(i)}else h.addClassName(this.navBar,"nav-bar-empty")},m._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},m._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var i=e.children.find(function(e){return e.name===t});i&&i.node&&(this._updateTreePath(i.node.getNodePath()),i.node.expandTo(),i.node.focus())}},m._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},m._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},m._onMultiSelectStart=function(e){var t=l.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=h.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=h.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},m._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.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))}},m._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(h.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(h.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},m.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},m.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)})}},m._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var u=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var i=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===i?this.autocomplete.hideDropDown():"function"==typeof i.then?i.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):i.options?this.autocomplete.show(t,i.startFrom,i.options):this.autocomplete.show(t,0,i)}else this.autocomplete.hideDropDown()}.bind(this,u,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},m._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},m.showContextMenu=function(e,t){var i=[],n=this;i.push({text:d("duplicateText"),title:d("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:d("remove"),title:d("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},e.exports=[{mode:"tree",mixin:m,data:"json"},{mode:"view",mixin:m,data:"json"},{mode:"form",mixin:m,data:"json"}]},function(e,t){"use strict";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,i){"use strict";function n(e){this.editor=e,this.history=[],this.index=-1,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(54);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.index=" "&&c<=" "||" "===c||" "===c||" "===c?(o.push(" "),s++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=o.length-1;e>=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),r=/[a-zA-Z_$\d]/;r.test(n);)i+=n,s++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(c),s++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&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){if(window.getSelection()){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,i){if(void 0==i&&(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 n=e.childNodes,r="",o=0,s=n.length;o5){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"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),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)&&nn&&r>0;)o--,r--;return{start:n,end:o}},t.getInputSelection=function(e){var t,i,n,r,o,s=0,a=0;"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(s=e.selectionStart,a=e.selectionEnd):(i=document.selection.createRange())&&i.parentElement()==e&&(r=e.value.length,t=e.value.replace(/\r\n/g,"\n"),n=e.createTextRange(),n.moveToBookmark(i.getBookmark()),o=e.createTextRange(),o.collapse(!1),n.compareEndPoints("StartToEnd",o)>-1?s=a=r:(s=-n.moveStart("character",-r),s+=t.slice(0,s).split("\n").length-1,n.compareEndPoints("EndToEnd",o)>-1?a=r:(a=-n.moveEnd("character",-r),a+=t.slice(0,a).split("\n").length-1)));var l=e.value.substring(0,a),c=(l.match(/\n/g)||[]).length+1;return{start:s,end:a,col:l.length-l.lastIndexOf("\n"),row:c}},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&C.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:d,expected:C})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,f=t()}for(;;){if(u.toString()in s[m])break;if(0==m)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=u,m=n[n.length-1],g=s[m]&&s[m][u],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],E.$=r[r.length-y],E._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(E,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(E.$),o.push(E._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);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];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&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||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 void 0!==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){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.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 h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var u=document.createElement("button");u.type="button",u.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(u),o.appendChild(s);var d=document.createElement("input");this.dom.search=d,d.oninput=function(e){i._onDelayedSearch(e)},d.onchange=function(e){i._onSearch()},d.onkeydown=function(e){i._onKeyDown(e)},d.onkeyup=function(e){i._onKeyUp(e)},u.onclick=function(e){d.select()},s=document.createElement("td"),s.appendChild(d),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.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,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?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 n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.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,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=""},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()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e){return e.getRootNode&&e.getRootNode()||window}function r(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(o),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=r.className,a.button=c,r.title&&(c.title=r.title),r.click&&(c.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),l.appendChild(c),r.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var u=document.createElement("div");u.className="jsoneditor-text"+(r.click?"":" jsoneditor-right-margin"),u.appendChild(document.createTextNode(r.text)),c.appendChild(u);var d;if(r.click){c.className+=" jsoneditor-default";var f=document.createElement("button");f.type="button",a.buttonExpand=f,f.className="jsoneditor-expand",f.innerHTML='
',l.appendChild(f),r.submenuTitle&&(f.title=r.submenuTitle),d=f}else{var p=document.createElement("div");p.className="jsoneditor-expand",c.appendChild(p),d=c}d.onclick=function(e){e.preventDefault(),n._onExpandItem(a),d.focus()};var m=[];a.subItems=m;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),i(g,m,r.submenu)}else c.innerHTML='
'+s(r.text)+"
";t.push(a)}})}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 a=document.createElement("div");a.className="jsoneditor-contextmenu",r.menu=a,o.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),r.list=l,r.items=[];var c=document.createElement("button");c.type="button",r.focusButton=c;var h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),i(l,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 o=i(54),s=i(58).translate;r.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},r.visibleMenu=void 0,r.prototype.show=function(e,t){this.hide();var i=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,u=a.top-l.top;if(i){var d=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=u+d+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=u+"px",this.dom.menu.style.bottom="0px";this.rootNode=n(e),s.insertBefore(this.dom.root,s.firstChild);var f=this,p=this.dom.list;this.eventListeners.mousedown=o.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==p||f._isChildOf(t,p)||(f.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){f.dom.focusButton.focus()},0),r.visibleMenu&&r.visibleMenu.hide(),r.visibleMenu=this},r.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(this.rootNode,e,t),delete this.eventListeners[e]}r.visibleMenu==this&&(r.visibleMenu=void 0)},r.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="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){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.type="button",r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:l("duplicateKey")+' "'+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");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title=l("drag"),t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");r.type="button",e.menu=r,r.className="jsoneditor-contextmenu",r.title=l("actionsMenu"),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),s=r._nextSibling(),l=i.editor,c=a.getAbsoluteTop(o.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,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,s,l,h,u,d,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=a.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(u=void 0)),u&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}else{var F=e[e.length-1];if(l=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=l?l.nextSibling:void 0){m=a.getAbsoluteTop(s),o=s;do{d=n.getNodeFromTarget(o),o&&(v=o.nextSibling?a.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,d.parent.childs.length==e.length&&d.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling}while(o&&A>f+w);if(d&&d.parent){var x=C-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=d.getLevel();for(r=d.dom.tr.previousSibling;D<$&&r;){u=n.getNodeFromTarget(r);if(e.some(function(e){return e===u||u._isChildOf(e)}));else{if(!(u instanceof c))break;var k=u.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;d=n.getNodeFromTarget(r),D=d.getLevel()}r=r.previousSibling}l.nextSibling!=d.dom.tr&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}}}E&&(y.drag.mouseX=C,y.drag.level=b.getLevel()),y.startAutoScroll(A),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,s=o.childs.indexOf(i),l=o.childs[s+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&&(a.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(a.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?a.addClassName(this.dom.tr,"jsoneditor-highlight"):a.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?a.addClassName(this.dom.tr,"jsoneditor-selected"):a.removeClassName(this.dom.tr,"jsoneditor-selected"),t?a.addClassName(this.dom.tr,"jsoneditor-first"):a.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),this._updateSchema()}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",a.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",a.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),a.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&!0===e.updateIndexes&&this._updateDomIndexes(),e&&!0===e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateSchema=function(){this.editor&&this.editor.options&&(this.schema=this.editor.options.schema?n._findSchema(this.editor.options.schema,this.getPath()):null,this.schema?this.enum=n._findEnum(this.schema):delete this.enum)},n._findEnum=function(e){if(e.enum)return e.enum;var t=e.oneOf||e.anyOf||e.allOf;if(t){var i=t.filter(function(e){return e.enum});if(i.length>0)return i[0].enum}return null},n._findSchema=function(e,t){var i=e,r=i,o=e.oneOf||e.anyOf||e.allOf;o||(o=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],A=y[0],C=y[y.length-1];if(13==d){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||a.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==d)p&&w&&(n.onDuplicate(y),v=!0);else if(69==d)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==d&&w)p&&(this.showContextMenu(f),v=!0);else if(46==d&&w)p&&(n.onRemove(y),v=!0);else if(45==d&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==d){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==d){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==d){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&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 c&&1!=C.parent.childs.length&&_&&_.parent&&(s=this.editor.getSelection(),l=C._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==d)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(u=this.editor.multiselection,u.start=u.start||this,u.end=t,h=this.editor._findTopLevelNodes(u.start,u.end),this.editor.select(h),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),l=C._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==d){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&t instanceof c&&!t.isVisible()&&(s=this.editor.getSelection(),l=C._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==d)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(u=this.editor.multiselection,u.start=u.start||this,u.end=i,h=this.editor._findTopLevelNodes(u.start,u.end),this.editor.select(h),i.focus("field")),v=!0;else if(g&&m&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getSelection(),l=C._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:_,oldSelection:s,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.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new c(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof c&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof c&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof c&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:l("autoType"),object:l("objectType"),array:l("arrayType"),string:l("stringType")},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var r=function(e,t){i._onAppend(e,t)},o=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?r.bind(this,i.field,i.value):o.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:l("type"),title:l("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:l("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:l("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:l("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:l("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:l("sort"),title:l("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:l("ascending"),className:"jsoneditor-sort-asc",title:l("ascendingTitle",{type:this.type}),click:function(){i.sort("asc")}},{text:l("descending"),className:"jsoneditor-sort-desc",title:l("descendingTitle",{type:this.type}),click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var c=i.parent.childs;if(i==c[c.length-1]){var h=[{text:l("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(h,!0),s.push({text:l("appendText"),title:l("appendTitle"),submenuTitle:l("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:h})}var u=[{text:l("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(u,!1),s.push({text:l("insert"),title:l("insertTitle"),submenuTitle:l("insertSub"),className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:u}),this.editable.field&&(s.push({text:l("duplicateText"),title:l("duplicateField"),className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:l("removeText"),title:l("removeField"),className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(d.length,f.length);gr)return 1}return 0}},function(e,t,i){"use strict";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,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="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="("+s("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="("+s("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,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:a}];new o(l,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(54),o=i(57),s=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",o=document.createElement("div");o.style.position="relative",o.style.outline="0",o.style.border="0",o.style.margin="0",o.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:o,show:function(e,t,i){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==n&&(n=window.getComputedStyle(e).getPropertyValue("font-size")),""==r&&(r=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=i,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",u),this.element.addEventListener("keydown",u,!1),this.element.removeEventListener("blur",d),this.element.addEventListener("blur",d,!1)),o.appendChild(this.elementHint),o.appendChild(s),e.parentElement.appendChild(o),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var n=t.innerText;n=n.replace("\n","");var r=(this.startFrom,this.options,this.options.length),o=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+o[p].substring(i.length)+"",n.push(m),t.appendChild(m)}0!==n.length&&(1===n.length&&(i.toLowerCase()===n[0].__hint.toLowerCase()&&!e.caseSensitive||i===n[0].__hint&&e.caseSensitive)||n.length<2||(c.highlight(0),d>3*f?(t.style.maxHeight=d+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=f+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=o&&n[o]&&(n[o].className="item"),n[e].className="item hover",o=e},move:function(e){return"hidden"===t.style.visibility?"":r+e===-1||r+e===n.length?n[r].__hint:(r+=e,c.highlight(r),n[r].__hint)},onmouseselection:function(){}};return c}(s,c),u=function(i){i=i||window.event;var n=i.keyCode;if(null!=this.elementHint&&33!=n&&34!=n){if(27==n)return c.hideDropDown(),c.element.focus(),i.preventDefault(),void i.stopPropagation();var r=this.element.innerText;r=r.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(n)>=0)return 9==n&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==n&&(c.element.focus(),i.preventDefault(),i.stopPropagation())));if(13!=n){if(40==n){var o=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var o=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var u="hidden"==s.style.visibility;if(h.hide(),u)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),i.preventDefault(),i.stopPropagation()}}}.bind(c),d=function(e){c.hideDropDown()}.bind(c);return h.onmouseselection=function(e,i){i.element.innerText=i.elementHint.innerText=l+e,i.hideDropDown(),window.setTimeout(function(){i.element.focus(),t(i.element)},1)},c}e.exports=i},function(e,t,i){"use strict";var n=i(66),r=i(63),o=i(54),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:n;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{i(72)}catch(e){console.error(e)}var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=o.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var h=document.createElement("button");h.type="button",h.className="jsoneditor-repair",h.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(h),h.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new r(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var u={},d=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(u);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var f=s.edit(this.editorDom);f.$blockScrolling=1/0,f.setTheme(this.theme),f.setOptions({readOnly:d}),f.setShowPrintMargin(!1),f.setFontSize(13),f.getSession().setMode("ace/mode/json"),f.getSession().setTabSize(this.indentation),f.getSession().setUseSoftTabs(!0),f.getSession().setUseWrapMode(!0),f.commands.bindKey("Ctrl-L",null),f.commands.bindKey("Command-L",null),this.aceEditor=f,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var p=document.createElement("a");p.appendChild(document.createTextNode("powered by ace")),p.href="http://ace.ajax.org",p.target="_blank",p.className="jsoneditor-poweredBy",p.onclick=function(){window.open(p.href,p.target)},this.menu.appendChild(p),f.on("change",this._onChange.bind(this)),f.on("changeSelection",this._onSelect.bind(this))}else{var m=document.createElement("textarea");m.className="jsoneditor-text",m.spellcheck=!1,this.content.appendChild(m),this.textarea=m,this.textarea.readOnly=d,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),m.onselect=this._onSelect.bind(this),m.onmousedown=this._onMouseDown.bind(this),m.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){o.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Ln:";var y=document.createElement("span");y.className="jsoneditor-curserinfo-val",y.innerText="1",v.appendChild(w),v.appendChild(y);var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="Col:";var C=document.createElement("span");C.className="jsoneditor-curserinfo-val",C.innerText="1",v.appendChild(A),v.appendChild(C),this.curserInfoElements.colVal=C,this.curserInfoElements.lnVal=y;var E=document.createElement("span");E.className="jsoneditor-curserinfo-label",E.innerText="characters selected",E.style.display="none";var b=document.createElement("span");b.className="jsoneditor-curserinfo-count",b.innerText="0",b.style.display="none",this.curserInfoElements.countLabel=E,this.curserInfoElements.countVal=b,v.appendChild(b),v.appendChild(E)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this.options.statusBar&&this._updateCursorInfoDisplay()},s._onKeyDown=function(e){var t=e.which||e.keyCode,i=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),i=!0),i&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfoDisplay()},s._onMouseDown=function(e){this._updateCursorInfoDisplay()},s._onBlur=function(e){this._updateCursorInfoDisplay()},s._updateCursorInfoDisplay=function(){function e(){r.curserInfoElements.countVal.innerText!==n&&(r.curserInfoElements.countVal.innerText=n,r.curserInfoElements.countVal.style.display=n?"inline":"none",r.curserInfoElements.countLabel.style.display=n?"inline":"none"),r.curserInfoElements.lnVal.innerText=t,r.curserInfoElements.colVal.innerText=i}var t,i,n,r=this;if(this.options.statusBar)if(this.textarea)setTimeout(function(){var s=o.getInputSelection(r.textarea);t=s.row,i=s.col,s.start!==s.end&&(n=s.end-s.start),e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,i=s.column+1,n=a.length,e()}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=o.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=o.parse(t)}catch(i){t=o.sanitize(t),e=o.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?o.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var i=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=i}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,i=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(i=this.validateSchema.errors.map(function(e){return o.improveSchemaError(e)}))}if(i.length>0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.dom.validationErrorsContainer.appendChild(r);var s=r.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(67),i(69),i(71)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&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(e){}}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,u=Function.prototype.call,d=Array.prototype,f=Object.prototype,p=d.slice,m=u.bind(f.toString),g=u.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(s=u.bind(f.__defineGetter__),a=u.bind(f.__defineSetter__),l=u.bind(f.__lookupGetter__),c=u.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=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!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:e<0&&(e=Math.max(i+e,0)),e+ta)for(u=c;u--;)this[l+u]=this[a+u];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,u=0;u>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(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(;o>>0;if("[object Function]"!=m(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=y&&"[object String]"==m(this)?this.split(""):_(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);n>>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){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(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 A;A=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=A();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 C=r({}),E="undefined"==typeof document||r(document.createElement("div"));if(!C||!E)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(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(e){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="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((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.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!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(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(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;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(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)}function r(){a=Object.create(null)}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){if(e.removeEventListener)return e.removeEventListener(t,i,!1);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){var n,r;t.addListener(e,"touchstart",function(e){var t=e.touches,i=t[0];n=i.clientX,r=i.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}})},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||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){function o(e){if(0!==t.getButton(e)?u=0:e.detail>1?++u>4&&(u=1):u=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(u=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[u-1]||600),1==u&&(l=e.clientX,c=e.clientY)}if(e._clicks=u,n[r]("mousedown",e),u>4)u=0;else if(u>1)return n[r](d[u],e)}function a(e){u=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[u-1]||600),n[r]("mousedown",e),n[r](d[u],e)}var l,c,h,u=0,d={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};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){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}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};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},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;ip.length?e=e.substr(9):e.substr(0,4)==p.substr(0,4)?e=e.substr(4,e.length-p.length+1):e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e==p.charAt(0)||e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),m&&(m=!1),$&&($=!1))},k=function(e){if(!w){var t=f.value;D(t),u()}},B=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!c){ +var r=h||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return B(e,t,!0)}}},_=function(e,o){var s=t.getCopyText();if(!s)return n.preventDefault(e);B(e,s)?(r.isIOS&&(g=o,f.value="\n aa"+s+"a a\n",f.setSelectionRange(4,4+s.length),m={value:s}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=s,f.select(),setTimeout(function(){m=!1,u(),i(),o?t.onCut():t.onCopy()}))},L=function(e){_(e,!0)},R=function(e){_(e,!1)},T=function(e){var o=B(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(f.value="",v=!0)};n.addCommandKeyListener(f,t.onCommandKey.bind(t)),n.addListener(f,"select",x),n.addListener(f,"input",k),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){w||!t.onCompositionStart||t.$readOnly||(w={},w.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),w.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(w.lastValue!==e&&(t.onCompositionUpdate(e),w.lastValue&&t.undo(),w.canUndo&&(w.lastValue=e),w.lastValue)){var i=t.selection.getRange();t.insert(w.lastValue),t.session.markUndoGroup(),w.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=w;w=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");w||(e==i.lastValue?u():!i.lastValue&&e&&(u(),D(e)))});S=function(e){return n&&clearTimeout(n),(e=e.replace(/\x01/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",O),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&k()}},I=s.delayedCall(M,50);n.addListener(f,"compositionstart",P),r.isGecko?n.addListener(f,"text",function(){I.schedule()}):(n.addListener(f,"keyup",function(){I.schedule()}),n.addListener(f,"keydown",function(){I.schedule()})),n.addListener(f,"compositionend",O),this.getElement=function(){return f},this.setReadOnly=function(e){f.readOnly=e},this.onContextMenu=function(e){$=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){y||(y=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-f.clientHeight-2,u=function(e){f.style.left=e.clientX-c-2+"px",f.style.top=Math.min(e.clientY-l-2,h)+"px"};u(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&n.capture(t.container,u,d))},this.onContextMenuClose=d;var N,j=function(e){t.textInput.onContextMenu(e),d()};if(n.addListener(f,"mouseup",j),n.addListener(f,"mousedown",function(e){e.preventDefault(),d()}),n.addListener(t.renderer.scroller,"contextmenu",j),n.addListener(f,"contextmenu",j),r.isIOS){var H=null,W=!1;e.addEventListener("keydown",function(e){H&&clearTimeout(H),W=!0}),e.addEventListener("keyup",function(e){H=setTimeout(function(){W=!1},100)});var V=function(e){if(document.activeElement===f&&!W){if(g)return setTimeout(function(){g=!1},100);var i=f.selectionStart,n=f.selectionEnd;if(f.setSelectionRange(4,5),i==n)switch(i){case 0:t.onCommandKey(null,0,a.up);break;case 1:t.onCommandKey(null,0,a.home);break;case 2:t.onCommandKey(null,l.option,a.left);break;case 4:t.onCommandKey(null,0,a.left);break;case 5:t.onCommandKey(null,0,a.right);break;case 7:t.onCommandKey(null,l.option,a.right);break;case 8:t.onCommandKey(null,0,a.end);break;case 9:t.onCommandKey(null,0,a.down)}else{switch(n){case 6:t.onCommandKey(null,l.shift,a.right);break;case 7:t.onCommandKey(null,l.shift|l.option,a.right);break;case 8:t.onCommandKey(null,l.shift,a.end);break;case 9:t.onCommandKey(null,l.shift,a.down)}switch(i){case 0:t.onCommandKey(null,l.shift,a.up);break;case 1:t.onCommandKey(null,l.shift,a.home);break;case 2:t.onCommandKey(null,l.shift|l.option,a.left);break;case 3:t.onCommandKey(null,l.shift,a.left)}}}};document.addEventListener("selectionchange",V),t.on("destroy",function(){document.removeEventListener("selectionchange",V)})}};t.TextInput=u}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),s=e("../lib/lang"),a=r.isChrome<18,l=r.isIE,c=e("./textinput_ios").TextInput,h=function(e,t){function i(e){if(!g){if(g=!0,F)var t=0,i=e?0:d.value.length-1;else var t=e?2:1,i=2;try{d.setSelectionRange(t,i)}catch(e){}g=!1}}function h(){g||(d.value=f,r.isWebKit&&C.schedule())}function u(){clearTimeout(O),O=setTimeout(function(){v&&(d.style.cssText=v,v=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(r.isIOS)return c.call(this,e,t);var d=o.createElement("textarea");d.className="ace_text-input",d.setAttribute("wrap","off"),d.setAttribute("autocorrect","off"),d.setAttribute("autocapitalize","off"),d.setAttribute("spellcheck",!1),d.style.opacity="0",e.insertBefore(d,e.firstChild);var f="\u2028\u2028",p=!1,m=!1,g=!1,v="",w=!0;try{var y=document.activeElement===d}catch(e){}n.addListener(d,"blur",function(e){t.onBlur(e),y=!1}),n.addListener(d,"focus",function(e){y=!0,t.onFocus(e),i()}),this.focus=function(){if(v)return d.focus();var e=d.style.top;d.style.position="fixed",d.style.top="0px",d.focus(),setTimeout(function(){d.style.position="","0px"==d.style.top&&(d.style.top=e)},0)},this.blur=function(){d.blur()},this.isFocused=function(){return y};var A=s.delayedCall(function(){y&&i(w)}),C=s.delayedCall(function(){g||(d.value=f,y&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=w&&(w=!w,A.schedule())}),h(),y&&t.onFocus();var E=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},b=function(e){p?p=!1:E(d)?(t.selectAll(),i()):F&&i(t.selection.isEmpty())},F=null;this.setInputHandler=function(e){F=e},this.getInputHandler=function(){return F};var x=!1,S=function(e){F&&(e=F(e),F=null),m?(i(),e&&t.onPaste(e),m=!1):e==f.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},$=function(e){if(!g){var t=d.value;S(t),h()}},D=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!a){var r=l||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return D(e,t,!0)}}},k=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);D(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,d.value=o,d.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},B=function(e){k(e,!0)},_=function(e){k(e,!1)},L=function(e){var o=D(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(d.value="",m=!0)};n.addCommandKeyListener(d,t.onCommandKey.bind(t)),n.addListener(d,"select",b),n.addListener(d,"input",$),n.addListener(d,"cut",B),n.addListener(d,"copy",_),n.addListener(d,"paste",L),"oncut"in d&&"oncopy"in d&&"onpaste"in d||n.addListener(e,"keydown",function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:_(e);break;case 86:L(e);break;case 88:B(e)}});var R=function(e){g||!t.onCompositionStart||t.$readOnly||(g={},g.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(T,0),t.on("mousedown",P),g.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},T=function(){if(g&&t.onCompositionUpdate&&!t.$readOnly){var e=d.value.replace(/\u2028/g,"");if(g.lastValue!==e&&(t.onCompositionUpdate(e),g.lastValue&&t.undo(),g.canUndo&&(g.lastValue=e),g.lastValue)){var i=t.selection.getRange();t.insert(g.lastValue),t.session.markUndoGroup(),g.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},P=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=g;g=!1;var n=setTimeout(function(){n=null;var e=d.value.replace(/\u2028/g,"");g||(e==i.lastValue?h():!i.lastValue&&e&&(h(),S(e)))});F=function(e){return n&&clearTimeout(n),(e=e.replace(/\u2028/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",P),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&$()}},M=s.delayedCall(T,50);n.addListener(d,"compositionstart",R),r.isGecko?n.addListener(d,"text",function(){M.schedule()}):(n.addListener(d,"keyup",function(){M.schedule()}),n.addListener(d,"keydown",function(){M.schedule()})),n.addListener(d,"compositionend",P),this.getElement=function(){return d},this.setReadOnly=function(e){d.readOnly=e},this.onContextMenu=function(e){x=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){v||(v=d.style.cssText),d.style.cssText=(i?"z-index:100000;":"")+"height:"+d.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-d.clientHeight-2,f=function(e){d.style.left=e.clientX-c-2+"px",d.style.top=Math.min(e.clientY-l-2,h)+"px"};f(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(O),r.isWin&&n.capture(t.container,f,u))},this.onContextMenuClose=u;var O,I=function(e){t.textInput.onContextMenu(e),u()};n.addListener(d,"mouseup",I),n.addListener(d,"mousedown",function(e){e.preventDefault(),u()}),n.addListener(t.renderer.scroller,"contextmenu",I),n.addListener(d,"contextmenu",I)};t.TextInput=h}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"));(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(),a=o.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault()))}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&&a<=0)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>0||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=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,s=e.wheelY/r;r<250&&(o=(o+i.vx)/2,s=(s+i.vy)/2);var a=Math.abs(o/s),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)i.allowed=n;else if(n-i.allowed<250){var c=Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(s)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).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},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).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=u.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,u.y).row,a=u.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(d!=r)if(d=r.text.join("
"),c.setHtml(d),c.show(),s._signal("showGutterTooltip",c),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(u);else{var h=u.domEvent.target,f=h.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),d&&(c.hide(),d=null,s._signal("hideGutterTooltip",c),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()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,u,d;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();d&&e.$tooltipFollowsMouse&&n(r),u=r,h||(h=setTimeout(function(){h=null,u&&!e.isMousePressed?t():i()},50))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){u=null,d&&!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(!$||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(g.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},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};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=g.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function u(){E=g.selection.toOrientedRange(),w=g.session.addMarker(E,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(C),n(),C=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function d(){clearInterval(C),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(E),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),E=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&d()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function m(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 g=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;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,C,E,b,F,x,S,$,D,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}E=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||u(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(u(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return d(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":E=E.contains(b.row,b.column)?{start:b,end:b}:g.moveText(E,b);break;case"copy":E=g.moveText(E,b,!0)}else{var i=t.getData("Text");E={start:b,end:g.session.insert(b,i)},g.focus(),F=null}return d(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=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(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(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;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),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();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.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;s1&&(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(e){}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 s=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)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},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()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.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,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),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",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),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;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(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){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.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&&(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.command&&(s="null"==o.command||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&&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/lib/bidiutil",["require","exports","module"],function(e,t,i){"use strict";function n(e,t,i,n){var r=a?p:f,m=null,g=null,v=null,w=0,y=null,A=-1,b=null,x=null,S=[];if(!n)for(b=0,n=[];b0)if(16==y){for(b=A;b-1){for(b=A;b=0&&n[$]==F;$--)t[$]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,o=n-1;r=t.length||(r=i[n-1])!=w&&r!=y||(o=t[n+1])!=w&&o!=y?A:(c&&(o=y),o==r?o:A);case S:return r=n>0?i[n-1]:C,r==w&&n+10&&i[n-1]==w)return w;if(c)return A;for(l=n+1,s=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==b))return v}return n<1||(r=t[n-1])==C?A:i[n-1];case C:return c=!1,u=!0,a;case E:return d=!0,A;case k:case B:case L:case R:case _:c=!1;case T:return A}}function s(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?g:P[t]:5==i?/[\u0591-\u05f4]/.test(e)?v:g:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?D:/[\u0660-\u0669\u066b-\u066c]/.test(e)?y:1642==t?$:/[\u06f0-\u06f9]/.test(e)?w:b:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?b:A}var a=0,l=0,c=!1,h=!1,u=!1,d=!1,f=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],p=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],m=1,g=0,v=1,w=2,y=3,A=4,C=5,E=6,b=7,F=8,x=9,S=10,$=11,D=12,k=13,B=14,_=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,E,C,E,F,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,C,C,C,E,F,A,A,$,$,$,A,A,A,A,A,S,x,S,x,x,w,w,w,w,w,w,w,w,w,w,x,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,T,T,T,T,T,T,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,x,A,$,$,$,$,A,A,A,A,g,A,A,T,A,A,$,$,w,w,A,g,A,A,A,w,g,A,A,A,A,A],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F,C,k,B,_,L,R,x,$,$,$,$,$,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,x,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F];t.L=g,t.R=v,t.EN=w,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,o){if(e.length<2)return{};var s=e.split(""),l=new Array(s.length),c=new Array(s.length),h=[];a=o?m:0,n(s,h,s.length,i);for(var u=0;ub&&i[u]0&&"ل"===s[u-1]&&/\u0622|\u0623|\u0625|\u0627/.test(s[u])&&(h[u-1]=h[u]=t.R_H,u++);s[s.length-1]===t.DOT&&(h[s.length-1]=t.B);for(var u=0;u=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o=c&&ri+s/2;){if(i+=s,r===o.length-1){s=0;break}s=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===s&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==s&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),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))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},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(void 0===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,!0===t?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.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},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.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?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=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},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(e0&&/^\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,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.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;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),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(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){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?this.$applyToken:c.token),u>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(u=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=u,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;rh){var v=e.substring(h,g-m.length);d.type==f?d.value+=v:(d.type&&c.push(d),d={type:f,value:v})}for(var w=0;wr){for(u>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()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=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={},u={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t])return n=h[t];n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},f=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)]}},p=function(e){this.add("braces","insertion",function(t,i,r,o,s){var l=r.getCursorPosition(),c=o.doc.getLine(l.row);if("{"==s){d(r);var h=r.getSelectionRange(),u=o.doc.getTextRange(h);if(""!==u&&"{"!==u&&r.getWrapBehavioursEnabled())return f(h,u,"{","}");if(p.isSaneInsertion(r,o))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==s){d(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,s))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==s||"\r\n"==s){d(r);var v="";p.isMaybeInsertedClosing(l,c)&&(v=a.stringRepeat("}",n.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var m=c.substring(l.column,l.column+1);if("}"===m){var w=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!w)return null;var y=this.$getIndent(o.getLine(w.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var y=this.$getIndent(c)}var A=y+o.getTabString();return{text:"\n"+A+"\n"+y+v,selection:[1,A.length,1,A.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){d(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))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 f(o,s,"(",")");if(p.isSaneInsertion(i,n))return p.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&&p.isAutoInsertedClosing(a,l,r))return p.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);if(")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))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 f(o,s,"[","]");if(p.isSaneInsertion(i,n))return p.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&&p.isAutoInsertedClosing(a,l,r))return p.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);if("]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){var o=n.$mode.$quotes||u;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;d(i);var s=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return f(a,l,s,s);if(!l){var c=i.getCursorPosition(),h=n.doc.getLine(c.row),p=h.substring(c.column-1,c.column),m=h.substring(c.column,c.column+1),g=n.getTokenAt(c.row,c.column),v=n.getTokenAt(c.row,c.column+1);if("\\"==p&&g&&/escape/.test(g.type))return null;var w,y=g&&/string|escape/.test(g.type),A=!v||/string|escape/.test(v.type);if(m==s)(w=y!==A)&&/string\.end/.test(v.type)&&(w=!1);else{if(y&&!A)return null;if(y&&A)return null;var C=n.$mode.tokenRe;C.lastIndex=0;var E=C.test(p);C.lastIndex=0;var b=C.test(p);if(E||b)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;w=!0}return{text:w?s+s:"",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);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};p.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)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.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++},p.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++},p.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},p.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},p.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(p,o),t.CstyleBehaviour=p}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","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/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,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.$highlightRuleConfig),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;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var d=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var d=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;d=new RegExp("^(\\s*)(?:"+d+") ?"),u=t.getUseSoftTabs();var p=function(e,t){var i=e.match(d);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)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return d.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,y=this.blockComment.end,d=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(d))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(d.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),u&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},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(),u=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var d,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;d=new c(m,g,m,g+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 m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;f=new c(m,g,m,g+r.end.length);break}h=a.stepForward()}f&&t.remove(f),d&&(t.remove(d),o=d.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);u.start.row==o&&(u.start.column+=s),u.end.row==o&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},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;tthis.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):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(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:e<0?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);return 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;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&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;l<=a;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;c0)){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);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},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;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.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&&lh.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&&l=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){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(!(a0&&(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);if(n.length)return n},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(!(th)break}while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+o.value.length-2,c}},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;r=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},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};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.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 t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),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(0==(o-=1))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;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,a),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;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=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()):"\t"},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.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},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;ls){if((l=o.end.row+1)>=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,c=o.start,s=c.row-l.row,a=c.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;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new h(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;s0){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 h(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 t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)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.$bidiHandler.markAsDirty(),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)},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),u=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var d=this.getFoldLine(o);d&&d!==h&&(d.merge(h),h=d),u=c.indexOf(h)+1}for(u;u=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),u=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),u=c.indexOf(h)+1}for(u;u=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,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=d+n-v;if(e[w-1]>=o&&e[w]>=o)a(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),d-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?a(++w):(w=d+n,2==e[w]&&w--,a(w-v))}else{for(w;w!=d-1&&e[w]!=t;w--);if(w>d){a(w);continue}for(w=d+n;w39&&a<48||a>57&&a<64?r.push(9):a>=4352&&e(a)?r.push(1,2):r.push(1)}return r},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)?n+=2:n+=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]=0)var a=c[h],o=this.$docRowCache[h],d=e>c[u-1];else var d=!u;for(var f=this.getLength()-1,p=this.getNextFoldLine(o),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(o),!(a+l>e||o>=f));)a+=l,++o>m&&(o=p.end.row+1,p=this.getNextFoldLine(o,p),m=p?p.start.row:1/0),d&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(p&&p.start.row<=o)n=this.getFoldDisplayLine(p),o=p.start.row;else{if(a+l<=e||o>f)return{row:f,column:this.getLine(f).length};n=this.getLine(o),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(r=w[v],v>0&&w.length&&(g=w.indent,s=w[v-1]||w[w.length-1],n=n.substring(s)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,o,v)&&(t=this.$bidiHandler.offsetToCol(i)),s+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&s>=r&&(s=r-1),p?p.idxToPosition(s):{row:o,column:s}},this.documentToScreenPosition=function(e,t){if(void 0===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))&&(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],u=e>l[h-1];else var u=!h;for(var d=this.getNextFoldLine(a),f=d?d.start.row:1/0;a=f){if((s=d.end.row+1)>e)break;d=this.getNextFoldLine(s,d),f=d?d.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,u&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";d&&a>=f?(p=this.getFoldDisplayLine(d,e,t),r=d.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+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;no&&(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()},this.isFullWidth=e}.call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.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)!=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},navigateWithinSoftTabs:{initialValue:!1},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=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.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,o){return n=new s(e,i,r,o),!(i==o&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var u=a.offset||0;u<=h;u++){for(var d=0;dm||(o.push(l=new s(u,m,u+c-1,g)),c>2&&(u=u+c-2))}}else for(var v=0;vC&&o[d].end.row==i.end.row;)d--;for(o=o.slice(v,d+1),v=0,d=o.length;v=a;i--)if(u(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=s.row;i>=a;i--)if(u(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=s.row;if(!u(i,s.column,e)){for(i+=1;i<=l;i++)if(u(i,0,e))return;if(0!=t.wrap)for(i=a,l=s.row;i<=l;i++)if(u(i,0,e))return}};if(t.$isMultiLine)var h=i.length,u=function(t,r,o){var s=n?t-h+1:t;if(!(s<0)){var a=e.getLine(s),l=a.search(i[0]);if(!(!n&&lr))return!!o(s,l,s+h-1,u)||void 0}}};else if(n)var u=function(t,n,r){var o,s=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(s);){var c=o[0].length;if(l=o.index,!c){if(l>=s.length)break;i.lastIndex=l+=1}if(o.index+c>n)break;a.push(o.index,c)}for(var h=a.length-1;h>=0;h-=2){var u=a[h-1],c=a[h];if(r(t,u,t,u+c))return!0}};else var u=function(t,n,r){var o,s=e.getLine(t),a=n;for(i.lastIndex=n;o=i.exec(s);){var l=o[0].length;if(a=o.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=s.length))return!1}};return{forEach:c}}}).call(a.prototype),t.Search=a}),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||(e.isDefault?-100: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){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"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)},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=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(!(n<0)){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;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return 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","F4"),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","Shift-F4"),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-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|Ctrl-Shift-P"),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-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|Ctrl-Shift-N"),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|Ctrl-Shift-A"),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|Ctrl-Shift-B"),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|Shift-End|Ctrl-Shift-E"),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){if(!e.selection.isEmpty())return!1;e.remove("left")},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|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},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("Alt-Shift-X","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 u=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==u.length&&(u=" "+u),c+=u}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.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("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}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},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.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++:"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)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},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("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){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),u=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var d=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},d)}u&&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 r=new f(0,0,0,0),n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-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){return{value:r[0],start:r.index,end:r.index+r[0].length}}}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),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(d,f,t?0:e),t&&-1==e&&(u=h+1);u<=h;)s[u].moveBy(a,0),u++;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++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(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,u={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};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),!1!==t&&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||!(o.topwindow.innerHeight)&&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.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("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(y.prototype),v.defineOptions(y.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)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},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=y}),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&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>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 g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.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){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+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):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.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",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,u=0,d=0,f=a.getScreenLastRowColumn(h),p=null,m=new n(h,i.start.column,h,d);h<=c;h++)m.start.row=m.end.row=h,m.start.column=h==l?i.start.column:a.getRowWrapIndent(h),m.end.column=f,u=d,d=f,f=h+1f,h==c),this.session.$bidiHandler.isBidiRow(h)?this.drawBidiSingleLineMarker(t,m,p,o,h==c?0:1,s):this.drawSingleLineMarker(t,m,p,o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,s,a,l=this.$padding;if(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var c=t.clone();c.end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,i+" ace_br1 ace_start",n,null,r)}else o=n.lineHeight,s=this.$getTop(t.start.row,n),a=l+t.start.column*n.characterWidth,e.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var c=t.clone();c.start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,i+" ace_br12",n,null,r)}else{var h=t.end.column*n.characterWidth;o=n.lineHeight,s=this.$getTop(t.end.row,n),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){s=this.$getTop(t.start.row+1,n);var u=(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.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(t){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;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!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&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(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;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(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["\t"]=""+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;ac&&(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 u=[];this.$renderLine(u,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=u.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),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),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=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("\t"==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+"")},a=n.replace(/\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]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],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,u.substring(0,a-r)),u=u.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=u.length&&(r+=u.length,l=this.$renderToken(e,l,h,u))}}},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(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(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);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},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;ie.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,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.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){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&&t<1?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 t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().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,u=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {\tposition: relative;\toverflow: hidden;\tfont: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\tdirection: ltr;\ttext-align: left;\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\t}\t.ace_scroller {\tposition: absolute;\toverflow: hidden;\ttop: 0;\tbottom: 0;\tbackground-color: inherit;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\tcursor: text;\t}\t.ace_content {\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmin-width: 100%;\t}\t.ace_dragging .ace_scroller:before{\tposition: absolute;\ttop: 0;\tleft: 0;\tright: 0;\tbottom: 0;\tcontent: \'\';\tbackground: rgba(250, 250, 250, 0.01);\tz-index: 1000;\t}\t.ace_dragging.ace_dark .ace_scroller:before{\tbackground: rgba(0, 0, 0, 0.01);\t}\t.ace_selecting, .ace_selecting * {\tcursor: text !important;\t}\t.ace_gutter {\tposition: absolute;\toverflow : hidden;\twidth: auto;\ttop: 0;\tbottom: 0;\tleft: 0;\tcursor: default;\tz-index: 4;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\t}\t.ace_gutter-active-line {\tposition: absolute;\tleft: 0;\tright: 0;\t}\t.ace_scroller.ace_scroll-left {\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\t}\t.ace_gutter-cell {\tpadding-left: 19px;\tpadding-right: 6px;\tbackground-repeat: no-repeat;\t}\t.ace_gutter-cell.ace_error {\tbackground-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==");\tbackground-repeat: no-repeat;\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_warning {\tbackground-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==");\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\tbackground-position: 2px center;\t}\t.ace_dark .ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\t}\t.ace_scrollbar {\tposition: absolute;\tright: 0;\tbottom: 0;\tz-index: 6;\t}\t.ace_scrollbar-inner {\tposition: absolute;\tcursor: text;\tleft: 0;\ttop: 0;\t}\t.ace_scrollbar-v{\toverflow-x: hidden;\toverflow-y: scroll;\ttop: 0;\t}\t.ace_scrollbar-h {\toverflow-x: scroll;\toverflow-y: hidden;\tleft: 0;\t}\t.ace_print-margin {\tposition: absolute;\theight: 100%;\t}\t.ace_text-input {\tposition: absolute;\tz-index: 0;\twidth: 0.5em;\theight: 1em;\topacity: 0;\tbackground: transparent;\t-moz-appearance: none;\tappearance: none;\tborder: none;\tresize: none;\toutline: none;\toverflow: hidden;\tfont: inherit;\tpadding: 0 1px;\tmargin: 0 -1px;\ttext-indent: -1em;\t-ms-user-select: text;\t-moz-user-select: text;\t-webkit-user-select: text;\tuser-select: text;\twhite-space: pre!important;\t}\t.ace_text-input.ace_composition {\tbackground: inherit;\tcolor: inherit;\tz-index: 1000;\topacity: 1;\ttext-indent: 0;\t}\t.ace_layer {\tz-index: 1;\tposition: absolute;\toverflow: hidden;\tword-wrap: normal;\twhite-space: pre;\theight: 100%;\twidth: 100%;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tpointer-events: none;\t}\t.ace_gutter-layer {\tposition: relative;\twidth: auto;\ttext-align: right;\tpointer-events: auto;\t}\t.ace_text-layer {\tfont: inherit !important;\t}\t.ace_cjk {\tdisplay: inline-block;\ttext-align: center;\t}\t.ace_cursor-layer {\tz-index: 4;\t}\t.ace_cursor {\tz-index: 4;\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tborder-left: 2px solid;\ttransform: translatez(0);\t}\t.ace_multiselect .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_slim-cursors .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_overwrite-cursors .ace_cursor {\tborder-left-width: 0;\tborder-bottom: 1px solid;\t}\t.ace_hidden-cursors .ace_cursor {\topacity: 0.2;\t}\t.ace_smooth-blinking .ace_cursor {\t-webkit-transition: opacity 0.18s;\ttransition: opacity 0.18s;\t}\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\tposition: absolute;\tz-index: 3;\t}\t.ace_marker-layer .ace_selection {\tposition: absolute;\tz-index: 5;\t}\t.ace_marker-layer .ace_bracket {\tposition: absolute;\tz-index: 6;\t}\t.ace_marker-layer .ace_active-line {\tposition: absolute;\tz-index: 2;\t}\t.ace_marker-layer .ace_selected-word {\tposition: absolute;\tz-index: 4;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\t}\t.ace_line .ace_fold {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tdisplay: inline-block;\theight: 11px;\tmargin-top: -2px;\tvertical-align: middle;\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\tbackground-repeat: no-repeat, repeat-x;\tbackground-position: center center, top left;\tcolor: transparent;\tborder: 1px solid black;\tborder-radius: 2px;\tcursor: pointer;\tpointer-events: auto;\t}\t.ace_dark .ace_fold {\t}\t.ace_fold:hover{\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\t}\t.ace_tooltip {\tbackground-color: #FFF;\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\tborder: 1px solid gray;\tborder-radius: 1px;\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\tcolor: black;\tmax-width: 100%;\tpadding: 3px 4px;\tposition: fixed;\tz-index: 999999;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tcursor: default;\twhite-space: pre;\tword-wrap: break-word;\tline-height: normal;\tfont-style: normal;\tfont-weight: normal;\tletter-spacing: normal;\tpointer-events: none;\t}\t.ace_folding-enabled > .ace_gutter-cell {\tpadding-right: 13px;\t}\t.ace_fold-widget {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmargin: 0 -12px 0 1px;\tdisplay: none;\twidth: 11px;\tvertical-align: top;\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: center;\tborder-radius: 3px;\tborder: 1px solid transparent;\tcursor: pointer;\t}\t.ace_folding-enabled .ace_fold-widget {\tdisplay: inline-block; \t}\t.ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\t}\t.ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\t}\t.ace_fold-widget:hover {\tborder: 1px solid rgba(0, 0, 0, 0.3);\tbackground-color: rgba(255, 255, 255, 0.2);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\t}\t.ace_fold-widget:active {\tborder: 1px solid rgba(0, 0, 0, 0.4);\tbackground-color: rgba(0, 0, 0, 0.05);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\t}\t.ace_dark .ace_fold-widget {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\t}\t.ace_dark .ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget:hover {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\tbackground-color: rgba(255, 255, 255, 0.1);\t}\t.ace_dark .ace_fold-widget:active {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\t}\t.ace_fold-widget.ace_invalid {\tbackground-color: #FFB4B4;\tborder-color: #DE5555;\t}\t.ace_fade-fold-widgets .ace_fold-widget {\t-webkit-transition: opacity 0.4s ease 0.05s;\ttransition: opacity 0.4s ease 0.05s;\topacity: 0;\t}\t.ace_fade-fold-widgets:hover .ace_fold-widget {\t-webkit-transition: opacity 0.05s ease 0.05s;\ttransition: opacity 0.05s ease 0.05s;\topacity:1;\t}\t.ace_underline {\ttext-decoration: underline;\t}\t.ace_bold {\tfont-weight: bold;\t}\t.ace_nobold .ace_bold {\tfont-weight: normal;\t}\t.ace_italic {\tfont-style: italic;\t}\t.ace_error-marker {\tbackground-color: rgba(255, 0, 0,0.2);\tposition: absolute;\tz-index: 9;\t}\t.ace_highlight-marker {\tbackground-color: rgba(255, 255, 0,0.2);\tposition: absolute;\tz-index: 8;\t}\t.ace_br1 {border-top-left-radius : 3px;}\t.ace_br2 {border-top-right-radius : 3px;}\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\t.ace_br4 {border-bottom-right-radius: 3px;}\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\t.ace_br8 {border-bottom-left-radius : 3px;}\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_text-input-ios {\tposition: absolute !important;\ttop: -100000px !important;\tleft: -100000px !important;\t}\t',"ace_editor.css");var g=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.$gutter.setAttribute("aria-hidden",!0),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 d(this.container,this),this.scrollBarH=new u(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),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,m),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.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,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.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},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.session.$bidiHandler.setShowInvisibles(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(t<0||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=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},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"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);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.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);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,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,r-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+d.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+u<0||this.scrollTop>d.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;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:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},E},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),s=Math.round(r);return{row:o,column:s,side:r-s>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):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||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");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,!1!==t)},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(g.prototype),o.defineOptions(g.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){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},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()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},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=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,i){"use strict";function n(e,t){var i=t.src;s.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(e){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(i),r.getBlob("application/javascript")}}function r(e,t){var i=n(e,t),r=window.URL||window.webkitURL,o=r.createObjectURL(i);return new Worker(o)}var o=e("../lib/oop"),s=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,o,s){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),l.get("packaged")||!e.toUrl)o=o||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;o=o||a(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach(function(t){c[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=r(o,i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,a),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 s.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(e){console.error(e.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}))}}).call(c.prototype);var h=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(a),s=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){s.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=s.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){s.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})},l.loadModule(["worker",t],function(e){for(n=new e[i](o);s.messageBuffer.length;)c()})};h.prototype=c.prototype,t.UIWorkerClient=h,t.WorkerClient=c,t.createWorker=r}),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;i1&&!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);if(t)return this.$onRemoveRange(t),t[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.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 u=r+1;u1){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);this.rectangularRangeBlock(n,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)v--;if(v>0)for(var w=0;n[w].isEmpty();)w++;for(var y=v;y>=w;y--)n[y].isEmpty()&&n.splice(y,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 u=a._eventRegistry;a._eventRegistry={};var d=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--;d.fromOrientedRange(h[f]),d.index=f,this.selection=s.selection=d;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),d.toOrientedRange(h[f])}d.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=u,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.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;no&&(o=i.column),rc?e.insert(n,d.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,u=c.end.row,f=h==u;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(u)}while(/[=:]/.test(p)&&++u0);h<0&&(h=0),u>=m&&(u=m-1)}var g=this.session.removeFullLines(h,u);g=this.$reAlignText(g,f),this.session.insert({row:h,column:0},g.join("\n")+"\n"),f||(c.start.column=0,c.end.column=g[g.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return d.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=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var u=e.getLine(c).length;return new n(l,s,c,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);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).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 {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").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;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;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;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))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);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(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[i<0?"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 u=h[0];n.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,n.row=u.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 d={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=d.el.appendChild(s.createElement("div")),p=d.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=m+e.renderer.gutterWidth-5+"px",d.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return d.destroy(),{command:"null"}};d.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(d),e.off("changeSelection",d.destroy),e.off("changeSession",d.destroy),e.off("mouseup",d.destroy),e.off("change",d.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",d.destroy),e.on("changeSession",d.destroy),e.on("mouseup",d.destroy),e.on("change",d.destroy),e.session.widgetManager.addLineWidget(d),d.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:d.el.offsetHeight})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),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,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=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.define=i(68),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var u={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(u.textarea=a),o.addListener(window,"resize",u.onResize),h.on("destroy",function(){o.removeListener(window,"resize",u.onResize),u.editor.container.env=null}),h.container.env=h.env=u,h},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.EditSession=a,t.UndoManager=l,t.version="1.2.9"}),function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),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){e.exports=function(){throw new Error("define cannot be used indirect")}},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:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{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:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};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)},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/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)return new r(s,n,h,t.length)}}.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,u=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(u,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(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(70),"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(u.prototype),t.Mode=u})},function(e,t){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}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";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)}});'},function(e,t){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=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");n.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,i){var r=n.createElement("div");r.innerHTML=l,this.element=r.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),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.searchCounter=e.querySelector(".ace_search_counter")},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=a.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 s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),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()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){n.setCssClass(this.replaceOption,"checked",this.searchRange),n.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",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.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},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,range:this.searchRange}),o=!r&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,i=0,n=0;if(t){var r=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),o=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(o-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(r))&&(i++,a=s.index,a<=o&&n++,!(i>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=r.length))););}this.searchCounter.textContent=n+" of "+(i>999?"999+":i)},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.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){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 {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor.map \ No newline at end of file diff --git a/package.json b/package.json index 744ecbb..76cd3c0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.13.3", + "version": "5.14.0", "main": "./index", "description": "A web-based tool to view, edit, format, and validate JSON", "tags": [