From 6a6c34fd0041a02dde670ca4769c9ac8d70967cb Mon Sep 17 00:00:00 2001 From: jos Date: Fri, 10 Aug 2018 13:27:32 +0200 Subject: [PATCH] Release `v5.20.0` --- HISTORY.md | 2 +- dist/jsoneditor-minimalist.js | 2904 ++++++++++++++++++----------- dist/jsoneditor-minimalist.map | 2 +- dist/jsoneditor-minimalist.min.js | 13 +- dist/jsoneditor.css | 8 + dist/jsoneditor.js | 2904 ++++++++++++++++++----------- dist/jsoneditor.map | 2 +- dist/jsoneditor.min.css | 2 +- dist/jsoneditor.min.js | 26 +- package.json | 2 +- 10 files changed, 3679 insertions(+), 2186 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 0b7083b..696acbc 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,7 +3,7 @@ https://github.com/josdejong/jsoneditor -## not yet released, version 5.20.0 +## 2018-08-10, version 5.20.0 _Good news: JSONEditor is finally framework friendly and can now be easily integrated in React, Vue, and Angular!_ diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index 1b0001e..91ccc4e 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.19.2 - * @date 2018-08-02 + * @version 5.20.0 + * @date 2018-08-10 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -95,7 +95,7 @@ return /******/ (function(modules) { // webpackBootstrap var treemode = __webpack_require__(1); var textmode = __webpack_require__(21); - var util = __webpack_require__(4); + var util = __webpack_require__(6); /** * @constructor JSONEditor @@ -105,7 +105,20 @@ return /******/ (function(modules) { // webpackBootstrap * 'tree' (default), 'view', * 'form', 'text', and 'code'. * {function} onChange Callback method, triggered - * on change of contents + * on change of contents. + * Does not pass the contents itself. + * See also `onChangeJSON` and + * `onChangeText`. + * {function} onChangeJSON Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as JSON. + * Only applicable for modes + * 'tree', 'view', and 'form'. + * {function} onChangeText Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as stringified JSON. * {function} onError Callback method, triggered * when an error occurs * {Boolean} search Enable search box. @@ -172,18 +185,19 @@ return /******/ (function(modules) { // webpackBootstrap delete options.editable; } + // warn if onChangeJSON is used when mode can be `text` or `code` + if (options.onChangeJSON) { + if (options.mode === 'text' || options.mode === 'code' || + (options.modes && (options.modes.indexOf('text') !== -1 || options.modes.indexOf('code') !== -1))) { + console.warn('Option "onChangeJSON" is not applicable to modes "text" and "code". ' + + 'Use "onChangeText" or "onChange" instead.'); + } + } + // validate options if (options) { - var VALID_OPTIONS = [ - 'ajv', 'schema', 'schemaRefs','templates', - 'ace', 'theme','autocomplete', - 'onChange', 'onEditable', 'onError', 'onModeChange', 'onSelectionChange', 'onTextSelectionChange', - 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', - 'sortObjectKeys', 'navigationBar', 'statusBar', 'languages', 'language' - ]; - Object.keys(options).forEach(function (option) { - if (VALID_OPTIONS.indexOf(option) === -1) { + if (JSONEditor.VALID_OPTIONS.indexOf(option) === -1) { console.warn('Unknown option "' + option + '". This option will be ignored'); } }); @@ -215,6 +229,15 @@ return /******/ (function(modules) { // webpackBootstrap // debounce interval for JSON schema vaidation in milliseconds JSONEditor.prototype.DEBOUNCE_INTERVAL = 150; + JSONEditor.VALID_OPTIONS = [ + 'ajv', 'schema', 'schemaRefs','templates', + 'ace', 'theme','autocomplete', + 'onChange', 'onChangeJSON', 'onChangeText', + 'onEditable', 'onError', 'onModeChange', 'onSelectionChange', 'onTextSelectionChange', + 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', + 'sortObjectKeys', 'navigationBar', 'statusBar', 'languages', 'language' + ]; + /** * Create the JSONEditor * @param {Element} container Container element @@ -294,6 +317,11 @@ return /******/ (function(modules) { // webpackBootstrap * 'text', and 'code'. */ JSONEditor.prototype.setMode = function (mode) { + // if the mode is the same as current mode (and it's not the first time), do nothing. + if (mode === this.options.mode && this.create) { + return; + } + var container = this.container; var options = util.extend({}, this.options); var oldMode = options.mode; @@ -503,12 +531,12 @@ return /******/ (function(modules) { // webpackBootstrap var Highlighter = __webpack_require__(2); var History = __webpack_require__(3); - var SearchBox = __webpack_require__(6); - var ContextMenu = __webpack_require__(7); + var SearchBox = __webpack_require__(4); + var ContextMenu = __webpack_require__(5); var TreePath = __webpack_require__(9); var Node = __webpack_require__(10); var ModeSwitcher = __webpack_require__(19); - var util = __webpack_require__(4); + var util = __webpack_require__(6); var autocomplete = __webpack_require__(20); var showSortModal = __webpack_require__(15); var showTransformModal = __webpack_require__(17); @@ -533,7 +561,18 @@ return /******/ (function(modules) { // webpackBootstrap * {Boolean} history Enable history (undo/redo). * True by default * {function} onChange Callback method, triggered - * on change of contents + * on change of contents. + * Does not pass the changed contents. + * {function} onChangeJSON Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as JSON. + * Only applicable for modes + * 'tree', 'view', and 'form'. + * {function} onChangeText Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as stringified JSON. * {String} name Field name for the root node. * {boolean} escapeUnicode If true, unicode * characters are escaped. @@ -650,19 +689,12 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Set JSON object in editor - * @param {Object | undefined} json JSON data - * @param {String} [name] Optional field name for the root node. - * Can also be set using setName(name). + * Set new JSON object in editor. + * Resets the state of the editor (expanded nodes, search, selection). + * + * @param {*} json */ - treemode.set = function (json, name) { - // adjust field name for root node - if (name) { - // TODO: deprecated since version 2.2.0. Cleanup some day. - console.warn('Second parameter "name" is deprecated. Use setName(name) instead.'); - this.options.name = name; - } - + treemode.set = function (json) { // verify if json is valid JSON, ignore when a function if (json instanceof Function || (json === undefined)) { this.clear(); @@ -699,6 +731,51 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Update JSON object in editor. + * Maintains the state of the editor (expanded nodes, search, selection). + * + * @param {*} json + */ + treemode.update = function (json) { + // don't update if there are no changes + if (this.node.deepEqual(json)) { + return; + } + + var selection = this.getSelection(); + + // apply the changed json + this.onChangeDisabled = true; // don't fire an onChange event + this.node.update(json); + this.onChangeDisabled = false; + + // validate JSON schema + this.validate(); + + // update search result if any + if (this.searchBox && !this.searchBox.isEmpty()) { + this.searchBox.forceSearch(); + } + + // update selection if any + if (selection && selection.start && selection.end) { + // only keep/update the selection if both start and end node still exists, + // else we clear the selection + var startNode = this.node.findNodeByPath(selection.start.path); + var endNode = this.node.findNodeByPath(selection.end.path); + if (startNode && endNode) { + this.setSelection(selection.start, selection.end); + } + else { + this.setSelection({}, {}); // clear selection + } + } + else { + this.setSelection({}, {}); // clear selection + } + }; + /** * Get JSON object from editor * @return {Object | undefined} json @@ -729,7 +806,8 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Set the text contents of the editor + * Set the text contents of the editor. + * Resets the state of the editor (expanded nodes, search, selection). * @param {String} jsonText */ treemode.setText = function(jsonText) { @@ -745,6 +823,24 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Update the text contents of the editor. + * Maintains the state of the editor (expanded nodes, search, selection). + * @param {String} jsonText + */ + treemode.updateText = function(jsonText) { + try { + this.update(util.parse(jsonText)); // this can throw an error + } + catch (err) { + // try to sanitize json, replace JavaScript notation with JSON notation + var sanitizedJsonText = util.sanitize(jsonText); + + // try to parse again + this.update(util.parse(sanitizedJsonText)); // this can throw an error + } + }; + /** * Set a field name for the root node. * @param {String | undefined} name @@ -796,8 +892,7 @@ return /******/ (function(modules) { // webpackBootstrap */ treemode.clear = function () { if (this.node) { - this.node.collapse(); - this.tbody.removeChild(this.node.getDom()); + this.node.hide(); delete this.node; } @@ -898,6 +993,10 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ treemode._onChange = function () { + if (this.onChangeDisabled) { + return; + } + // validate JSON schema (if configured) this._debouncedValidate(); @@ -910,6 +1009,26 @@ return /******/ (function(modules) { // webpackBootstrap console.error('Error in onChange callback: ', err); } } + + // trigger the onChangeJSON callback + if (this.options.onChangeJSON) { + try { + this.options.onChangeJSON(this.get()); + } + catch (err) { + console.error('Error in onChangeJSON callback: ', err); + } + } + + // trigger the onChangeText callback + if (this.options.onChangeText) { + try { + this.options.onChangeText(this.getText()); + } + catch (err) { + console.error('Error in onChangeText callback: ', err); + } + } }; /** @@ -1073,15 +1192,30 @@ return /******/ (function(modules) { // webpackBootstrap // TODO: animated scroll this.scrollableContent.scrollTop = selection.scrollTop; } - if (selection.nodes) { + if (selection.paths) { // multi-select - this.select(selection.nodes); + var me = this; + var nodes = selection.paths.map(function (path) { + return me.node.findNodeByInternalPath(path); + }); + + this.select(nodes); } - if (selection.range) { - util.setSelectionOffset(selection.range); - } - if (selection.dom) { - selection.dom.focus(); + else { + // find the actual DOM element where to apply the focus + var node = selection.path + ? this.node.findNodeByInternalPath(selection.path) + : null; + var container = (node && selection.domName) + ? node.dom[selection.domName] + : null; + if (selection.range && container) { + var range = Object.assign({}, selection.range, { container: container }); + util.setSelectionOffset(range); + } + else if (node) { // just a fallback + node.focus(); + } } }; @@ -1095,15 +1229,40 @@ return /******/ (function(modules) { // webpackBootstrap * {Number} scrollTop Scroll position */ treemode.getDomSelection = function () { + // find the node and field name of the current target, + // so we can store the current selection in a serializable + // way (internal node path and domName) + var node = Node.getNodeFromTarget(this.focusTarget); + var focusTarget = this.focusTarget; + var domName = node + ? Object.keys(node.dom).find(function (domName) { + return node.dom[domName] === focusTarget; + }) + : null; + var range = util.getSelectionOffset(); if (range && range.container.nodeName !== 'DIV') { // filter on (editable) divs) range = null; } + if (range && range.container !== focusTarget) { + range = null; + } + if (range) { + // we cannot rely on the current instance of the container, + // we need to store the internal node path and field and + // find the actual DOM field when applying the selection + delete range.container; + } return { - dom: this.focusTarget, + path: node ? node.getInternalPath() : null, + domName: domName, range: range, - nodes: this.multiselection.nodes.slice(0), + paths: this.multiselection.length > 0 + ? this.multiselection.nodes.map(function (node) { + return node.getInternalPath(); + }) + : null, scrollTop: this.scrollableContent ? this.scrollableContent.scrollTop : 0 }; }; @@ -1451,9 +1610,9 @@ return /******/ (function(modules) { // webpackBootstrap } function getName(node) { - return node.field !== undefined - ? node._escapeHTML(node.field) - : (isNaN(node.index) ? node.type : node.index); + return node.parent + ? ((node.parent.type === 'array') ? node.index : node.field) + : node.type; } }; @@ -1950,7 +2109,7 @@ return /******/ (function(modules) { // webpackBootstrap * For clear the selection do not send any parameter * If the nodes are not from the same level the first common parent will be selected * @param {{path: Array.}} start object contains the path for selection start - * @param {{path: Array.}=} end object contains the path for selection end + * @param {{path: Array.}} end object contains the path for selection end */ treemode.setSelection = function (start, end) { // check for old usage @@ -1959,7 +2118,7 @@ return /******/ (function(modules) { // webpackBootstrap this.setDomSelection(start); } - var nodes = this._getNodeIntsncesByRange(start, end); + var nodes = this._getNodeInstancesByRange(start, end); nodes.forEach(function(node) { node.expandTo(); @@ -1974,7 +2133,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Array.} Node intances on the given range * @private */ - treemode._getNodeIntsncesByRange = function (start, end) { + treemode._getNodeInstancesByRange = function (start, end) { var startNode, endNode; if (start && start.path) { @@ -2015,7 +2174,7 @@ return /******/ (function(modules) { // webpackBootstrap }; treemode.getNodesByRange = function (start, end) { - var nodes = this._getNodeIntsncesByRange(start, end); + var nodes = this._getNodeInstancesByRange(start, end); var serializableNodes = []; nodes.forEach(function (node){ @@ -2023,7 +2182,7 @@ return /******/ (function(modules) { // webpackBootstrap }); return serializableNodes; - } + }; // define modes module.exports = [ @@ -2139,12 +2298,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 3 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { 'use strict'; - var util = __webpack_require__(4); - /** * @constructor History * Store action history, enables undo and redo @@ -2157,122 +2314,165 @@ return /******/ (function(modules) { // webpackBootstrap this.clear(); + // helper function to find a Node from a path + function findNode(path) { + return editor.node.findNodeByInternalPath(path) + } + // map with all supported actions this.actions = { 'editField': { 'undo': function (params) { - params.node.updateField(params.oldValue); + var parentNode = findNode(params.parentPath); + var node = parentNode.childs[params.index]; + node.updateField(params.oldValue); }, 'redo': function (params) { - params.node.updateField(params.newValue); + var parentNode = findNode(params.parentPath); + var node = parentNode.childs[params.index]; + node.updateField(params.newValue); } }, 'editValue': { 'undo': function (params) { - params.node.updateValue(params.oldValue); + findNode(params.path).updateValue(params.oldValue); }, 'redo': function (params) { - params.node.updateValue(params.newValue); + findNode(params.path).updateValue(params.newValue); } }, 'changeType': { 'undo': function (params) { - params.node.changeType(params.oldType); + findNode(params.path).changeType(params.oldType); }, 'redo': function (params) { - params.node.changeType(params.newType); + findNode(params.path).changeType(params.newType); } }, 'appendNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.paths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); - }, + }, 'redo': function (params) { + var parentNode = findNode(params.parentPath); params.nodes.forEach(function (node) { - params.parent.appendChild(node); + parentNode.appendChild(node); }); } }, 'insertBeforeNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.paths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); }, 'redo': function (params) { + var parentNode = findNode(params.parentPath); + var beforeNode = findNode(params.beforePath); params.nodes.forEach(function (node) { - params.parent.insertBefore(node, params.beforeNode); + parentNode.insertBefore(node, beforeNode); }); } }, 'insertAfterNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.paths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); }, 'redo': function (params) { - var afterNode = params.afterNode; + var parentNode = findNode(params.parentPath); + var afterNode = findNode(params.afterPath); params.nodes.forEach(function (node) { - params.parent.insertAfter(params.node, afterNode); + parentNode.insertAfter(node, afterNode); afterNode = node; }); } }, 'removeNodes': { 'undo': function (params) { - var parent = params.parent; - var beforeNode = parent.childs[params.index] || parent.append; + var parentNode = findNode(params.parentPath); + var beforeNode = parentNode.childs[params.index] || parentNode.append; params.nodes.forEach(function (node) { - parent.insertBefore(node, beforeNode); + parentNode.insertBefore(node, beforeNode); }); }, 'redo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.paths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); } }, 'duplicateNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.clonePaths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); }, 'redo': function (params) { - var afterNode = params.afterNode; - params.nodes.forEach(function (node) { - params.parent.insertAfter(node, afterNode); - afterNode = node; + var parentNode = findNode(params.parentPath); + var afterNode = findNode(params.afterPath); + var nodes = params.paths.map(findNode); + nodes.forEach(function (node) { + var clone = node.clone(); + parentNode.insertAfter(clone, afterNode); + afterNode = clone; }); } }, 'moveNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.oldBeforeNode.parent.moveBefore(node, params.oldBeforeNode); + var oldParentNode = findNode(params.oldParentPath); + var newParentNode = findNode(params.newParentPath); + var oldBeforeNode = oldParentNode.childs[params.oldIndex] || oldParentNode.append; + + // first copy the nodes, then move them + var nodes = newParentNode.childs.slice(params.newIndex, params.newIndex + params.count); + + nodes.forEach(function (node, index) { + node.field = params.fieldNames[index]; + oldParentNode.moveBefore(node, oldBeforeNode); }); + + // This is a hack to work around an issue that we don't know tha original + // path of the new parent after dragging, as the node is already moved at that time. + if (params.newParentPathRedo === null) { + params.newParentPathRedo = newParentNode.getInternalPath(); + } }, 'redo': function (params) { - params.nodes.forEach(function (node) { - params.newBeforeNode.parent.moveBefore(node, params.newBeforeNode); + var oldParentNode = findNode(params.oldParentPathRedo); + var newParentNode = findNode(params.newParentPathRedo); + var newBeforeNode = newParentNode.childs[params.newIndexRedo] || newParentNode.append; + + // first copy the nodes, then move them + var nodes = oldParentNode.childs.slice(params.oldIndexRedo, params.oldIndexRedo + params.count); + + nodes.forEach(function (node, index) { + node.field = params.fieldNames[index]; + newParentNode.moveBefore(node, newBeforeNode); }); } }, 'sort': { 'undo': function (params) { - var node = params.node; + var node = findNode(params.path); node.hideChilds(); node.childs = params.oldChilds; node.updateDom({updateIndexes: true}); node.showChilds(); }, 'redo': function (params) { - var node = params.node; + var node = findNode(params.path); node.hideChilds(); node.childs = params.newChilds; node.updateDom({updateIndexes: true}); @@ -2282,14 +2482,12 @@ return /******/ (function(modules) { // webpackBootstrap 'transform': { 'undo': function (params) { - var node = params.node; - node.setValue(params.oldValue); + findNode(params.path).setInternalValue(params.oldValue); // TODO: would be nice to restore the state of the node and childs }, 'redo': function (params) { - var node = params.node; - node.setValue(params.newValue); + findNode(params.path).setInternalValue(params.newValue); // TODO: would be nice to restore the state of the node and childs } @@ -2372,7 +2570,12 @@ return /******/ (function(modules) { // webpackBootstrap if (action && action.undo) { action.undo(obj.params); if (obj.params.oldSelection) { - this.editor.setDomSelection(obj.params.oldSelection); + try { + this.editor.setDomSelection(obj.params.oldSelection); + } + catch (err) { + console.error(err); + } } } else { @@ -2399,7 +2602,12 @@ return /******/ (function(modules) { // webpackBootstrap if (action && action.redo) { action.redo(obj.params); if (obj.params.newSelection) { - this.editor.setDomSelection(obj.params.newSelection); + try { + this.editor.setDomSelection(obj.params.newSelection); + } + catch (err) { + console.error(err); + } } } else { @@ -2427,11 +2635,864 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 4 */ +/***/ function(module, exports) { + + 'use strict'; + + /** + * @constructor SearchBox + * Create a search box in given HTML container + * @param {JSONEditor} editor The JSON Editor to attach to + * @param {Element} container HTML container element of where to + * create the search box + */ + function SearchBox (editor, container) { + var searchBox = this; + + this.editor = editor; + this.timeout = undefined; + this.delay = 200; // ms + this.lastText = undefined; + + this.dom = {}; + this.dom.container = container; + + var table = document.createElement('table'); + this.dom.table = table; + table.className = 'jsoneditor-search'; + container.appendChild(table); + var tbody = document.createElement('tbody'); + this.dom.tbody = tbody; + table.appendChild(tbody); + var tr = document.createElement('tr'); + tbody.appendChild(tr); + + var td = document.createElement('td'); + tr.appendChild(td); + var results = document.createElement('div'); + this.dom.results = results; + results.className = 'jsoneditor-results'; + td.appendChild(results); + + td = document.createElement('td'); + tr.appendChild(td); + var divInput = document.createElement('div'); + this.dom.input = divInput; + divInput.className = 'jsoneditor-frame'; + divInput.title = 'Search fields and values'; + td.appendChild(divInput); + + // table to contain the text input and search button + var tableInput = document.createElement('table'); + divInput.appendChild(tableInput); + var tbodySearch = document.createElement('tbody'); + tableInput.appendChild(tbodySearch); + tr = document.createElement('tr'); + tbodySearch.appendChild(tr); + + var refreshSearch = document.createElement('button'); + refreshSearch.type = 'button'; + refreshSearch.className = 'jsoneditor-refresh'; + td = document.createElement('td'); + td.appendChild(refreshSearch); + tr.appendChild(td); + + var search = document.createElement('input'); + // search.type = 'button'; + this.dom.search = search; + search.oninput = function (event) { + searchBox._onDelayedSearch(event); + }; + search.onchange = function (event) { // For IE 9 + searchBox._onSearch(); + }; + search.onkeydown = function (event) { + searchBox._onKeyDown(event); + }; + search.onkeyup = function (event) { + searchBox._onKeyUp(event); + }; + refreshSearch.onclick = function (event) { + search.select(); + }; + + // TODO: ESC in FF restores the last input, is a FF bug, https://bugzilla.mozilla.org/show_bug.cgi?id=598819 + td = document.createElement('td'); + td.appendChild(search); + tr.appendChild(td); + + var searchNext = document.createElement('button'); + searchNext.type = 'button'; + searchNext.title = 'Next result (Enter)'; + searchNext.className = 'jsoneditor-next'; + searchNext.onclick = function () { + searchBox.next(); + }; + td = document.createElement('td'); + td.appendChild(searchNext); + tr.appendChild(td); + + var searchPrevious = document.createElement('button'); + searchPrevious.type = 'button'; + searchPrevious.title = 'Previous result (Shift+Enter)'; + searchPrevious.className = 'jsoneditor-previous'; + searchPrevious.onclick = function () { + searchBox.previous(); + }; + td = document.createElement('td'); + td.appendChild(searchPrevious); + tr.appendChild(td); + } + + /** + * Go to the next search result + * @param {boolean} [focus] If true, focus will be set to the next result + * focus is false by default. + */ + SearchBox.prototype.next = function(focus) { + if (this.results != undefined) { + var index = (this.resultIndex != undefined) ? this.resultIndex + 1 : 0; + if (index > this.results.length - 1) { + index = 0; + } + this._setActiveResult(index, focus); + } + }; + + /** + * Go to the prevous search result + * @param {boolean} [focus] If true, focus will be set to the next result + * focus is false by default. + */ + SearchBox.prototype.previous = function(focus) { + if (this.results != undefined) { + var max = this.results.length - 1; + var index = (this.resultIndex != undefined) ? this.resultIndex - 1 : max; + if (index < 0) { + index = max; + } + this._setActiveResult(index, focus); + } + }; + + /** + * Set new value for the current active result + * @param {Number} index + * @param {boolean} [focus] If true, focus will be set to the next result. + * focus is false by default. + * @private + */ + SearchBox.prototype._setActiveResult = function(index, focus) { + // de-activate current active result + if (this.activeResult) { + var prevNode = this.activeResult.node; + var prevElem = this.activeResult.elem; + if (prevElem == 'field') { + delete prevNode.searchFieldActive; + } + else { + delete prevNode.searchValueActive; + } + prevNode.updateDom(); + } + + if (!this.results || !this.results[index]) { + // out of range, set to undefined + this.resultIndex = undefined; + this.activeResult = undefined; + return; + } + + this.resultIndex = index; + + // set new node active + var node = this.results[this.resultIndex].node; + var elem = this.results[this.resultIndex].elem; + if (elem == 'field') { + node.searchFieldActive = true; + } + else { + node.searchValueActive = true; + } + this.activeResult = this.results[this.resultIndex]; + node.updateDom(); + + // TODO: not so nice that the focus is only set after the animation is finished + node.scrollTo(function () { + if (focus) { + node.focus(elem); + } + }); + }; + + /** + * Cancel any running onDelayedSearch. + * @private + */ + SearchBox.prototype._clearDelay = function() { + if (this.timeout != undefined) { + clearTimeout(this.timeout); + delete this.timeout; + } + }; + + /** + * Start a timer to execute a search after a short delay. + * Used for reducing the number of searches while typing. + * @param {Event} event + * @private + */ + SearchBox.prototype._onDelayedSearch = function (event) { + // execute the search after a short delay (reduces the number of + // search actions while typing in the search text box) + this._clearDelay(); + var searchBox = this; + this.timeout = setTimeout(function (event) { + searchBox._onSearch(); + }, + this.delay); + }; + + /** + * Handle onSearch event + * @param {boolean} [forceSearch] If true, search will be executed again even + * when the search text is not changed. + * Default is false. + * @private + */ + SearchBox.prototype._onSearch = function (forceSearch) { + this._clearDelay(); + + var value = this.dom.search.value; + var text = (value.length > 0) ? value : undefined; + if (text !== this.lastText || forceSearch) { + // only search again when changed + this.lastText = text; + this.results = this.editor.search(text); + var MAX_SEARCH_RESULTS = this.results[0] + ? this.results[0].node.MAX_SEARCH_RESULTS + : Infinity; + + // try to maintain the current active result if this is still part of the new search results + var activeResultIndex = 0; + if (this.activeResult) { + for (var i = 0; i < this.results.length; i++) { + if (this.results[i].node === this.activeResult.node) { + activeResultIndex = i; + break; + } + } + } + + this._setActiveResult(activeResultIndex, false); + + // display search results + if (text !== undefined) { + var resultCount = this.results.length; + if (resultCount === 0) { + this.dom.results.innerHTML = 'no results'; + } + else if (resultCount === 1) { + this.dom.results.innerHTML = '1 result'; + } + else if (resultCount > MAX_SEARCH_RESULTS) { + this.dom.results.innerHTML = MAX_SEARCH_RESULTS + '+ results'; + } + else { + this.dom.results.innerHTML = resultCount + ' results'; + } + } + else { + this.dom.results.innerHTML = ''; + } + } + }; + + /** + * Handle onKeyDown event in the input box + * @param {Event} event + * @private + */ + SearchBox.prototype._onKeyDown = function (event) { + var keynum = event.which; + if (keynum == 27) { // ESC + this.dom.search.value = ''; // clear search + this._onSearch(); + event.preventDefault(); + event.stopPropagation(); + } + else if (keynum == 13) { // Enter + if (event.ctrlKey) { + // force to search again + this._onSearch(true); + } + else if (event.shiftKey) { + // move to the previous search result + this.previous(); + } + else { + // move to the next search result + this.next(); + } + event.preventDefault(); + event.stopPropagation(); + } + }; + + /** + * Handle onKeyUp event in the input box + * @param {Event} event + * @private + */ + SearchBox.prototype._onKeyUp = function (event) { + var keynum = event.keyCode; + if (keynum != 27 && keynum != 13) { // !show and !Enter + this._onDelayedSearch(event); // For IE 9 + } + }; + + /** + * Clear the search results + */ + SearchBox.prototype.clear = function () { + this.dom.search.value = ''; + this._onSearch(); + }; + + /** + * Refresh searchResults if there is a search value + */ + SearchBox.prototype.forceSearch = function () { + this._onSearch(true); + }; + + /** + * Test whether the search box value is empty + * @returns {boolean} Returns true when empty. + */ + SearchBox.prototype.isEmpty = function () { + return this.dom.search.value === ''; + }; + + /** + * Destroy the search box + */ + SearchBox.prototype.destroy = function () { + this.editor = null; + this.dom.container.removeChild(this.dom.table); + this.dom = null; + + this.results = null; + this.activeResult = null; + + this._clearDelay(); + + }; + + module.exports = SearchBox; + + +/***/ }, +/* 5 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var jsonlint = __webpack_require__(5); + var util = __webpack_require__(6); + var translate = __webpack_require__(8).translate; + + /** + * Node.getRootNode shim + * @param {Node} node node to check + * @return {Node} node's rootNode or `window` if there is ShadowDOM is not supported. + */ + function getRootNode(node){ + return node.getRootNode && node.getRootNode() || window; + } + + /** + * A context menu + * @param {Object[]} items Array containing the menu structure + * TODO: describe structure + * @param {Object} [options] Object with options. Available options: + * {function} close Callback called when the + * context menu is being closed. + * @constructor + */ + function ContextMenu (items, options) { + this.dom = {}; + + var me = this; + var dom = this.dom; + this.anchor = undefined; + this.items = items; + this.eventListeners = {}; + this.selection = undefined; // holds the selection before the menu was opened + this.onClose = options ? options.close : undefined; + + // create root element + var root = document.createElement('div'); + root.className = 'jsoneditor-contextmenu-root'; + dom.root = root; + + // create a container element + var menu = document.createElement('div'); + menu.className = 'jsoneditor-contextmenu'; + dom.menu = menu; + root.appendChild(menu); + + // create a list to hold the menu items + var list = document.createElement('ul'); + list.className = 'jsoneditor-menu'; + menu.appendChild(list); + dom.list = list; + dom.items = []; // list with all buttons + + // create a (non-visible) button to set the focus to the menu + var focusButton = document.createElement('button'); + focusButton.type = 'button'; + dom.focusButton = focusButton; + var li = document.createElement('li'); + li.style.overflow = 'hidden'; + li.style.height = '0'; + li.appendChild(focusButton); + list.appendChild(li); + + function createMenuItems (list, domItems, items) { + items.forEach(function (item) { + if (item.type == 'separator') { + // create a separator + var separator = document.createElement('div'); + separator.className = 'jsoneditor-separator'; + li = document.createElement('li'); + li.appendChild(separator); + list.appendChild(li); + } + else { + var domItem = {}; + + // create a menu item + var li = document.createElement('li'); + list.appendChild(li); + + // create a button in the menu item + var button = document.createElement('button'); + button.type = 'button'; + button.className = item.className; + domItem.button = button; + if (item.title) { + button.title = item.title; + } + if (item.click) { + button.onclick = function (event) { + event.preventDefault(); + me.hide(); + item.click(); + }; + } + li.appendChild(button); + + // create the contents of the button + if (item.submenu) { + // add the icon to the button + var divIcon = document.createElement('div'); + divIcon.className = 'jsoneditor-icon'; + button.appendChild(divIcon); + var divText = document.createElement('div'); + divText.className = 'jsoneditor-text' + + (item.click ? '' : ' jsoneditor-right-margin'); + divText.appendChild(document.createTextNode(item.text)); + button.appendChild(divText); + + var buttonSubmenu; + if (item.click) { + // submenu and a button with a click handler + button.className += ' jsoneditor-default'; + + var buttonExpand = document.createElement('button'); + buttonExpand.type = 'button'; + domItem.buttonExpand = buttonExpand; + buttonExpand.className = 'jsoneditor-expand'; + buttonExpand.innerHTML = '
'; + li.appendChild(buttonExpand); + if (item.submenuTitle) { + buttonExpand.title = item.submenuTitle; + } + + buttonSubmenu = buttonExpand; + } + else { + // submenu and a button without a click handler + var divExpand = document.createElement('div'); + divExpand.className = 'jsoneditor-expand'; + button.appendChild(divExpand); + + buttonSubmenu = button; + } + + // attach a handler to expand/collapse the submenu + buttonSubmenu.onclick = function (event) { + event.preventDefault(); + me._onExpandItem(domItem); + buttonSubmenu.focus(); + }; + + // create the submenu + var domSubItems = []; + domItem.subItems = domSubItems; + var ul = document.createElement('ul'); + domItem.ul = ul; + ul.className = 'jsoneditor-menu'; + ul.style.height = '0'; + li.appendChild(ul); + createMenuItems(ul, domSubItems, item.submenu); + } + else { + // no submenu, just a button with clickhandler + button.innerHTML = '
' + + '
' + translate(item.text) + '
'; + } + + domItems.push(domItem); + } + }); + } + createMenuItems(list, this.dom.items, items); + + // TODO: when the editor is small, show the submenu on the right instead of inline? + + // calculate the max height of the menu with one submenu expanded + this.maxHeight = 0; // height in pixels + items.forEach(function (item) { + var height = (items.length + (item.submenu ? item.submenu.length : 0)) * 24; + me.maxHeight = Math.max(me.maxHeight, height); + }); + } + + /** + * Get the currently visible buttons + * @return {Array.} buttons + * @private + */ + ContextMenu.prototype._getVisibleButtons = function () { + var buttons = []; + var me = this; + this.dom.items.forEach(function (item) { + buttons.push(item.button); + if (item.buttonExpand) { + buttons.push(item.buttonExpand); + } + if (item.subItems && item == me.expandedItem) { + item.subItems.forEach(function (subItem) { + buttons.push(subItem.button); + if (subItem.buttonExpand) { + buttons.push(subItem.buttonExpand); + } + // TODO: change to fully recursive method + }); + } + }); + + return buttons; + }; + + // currently displayed context menu, a singleton. We may only have one visible context menu + ContextMenu.visibleMenu = undefined; + + /** + * Attach the menu to an anchor + * @param {HTMLElement} anchor Anchor where the menu will be attached + * as sibling. + * @param {HTMLElement} [contentWindow] The DIV with with the (scrollable) contents + */ + ContextMenu.prototype.show = function (anchor, contentWindow) { + this.hide(); + + // determine whether to display the menu below or above the anchor + var showBelow = true; + var parent = anchor.parentNode; + var anchorRect = anchor.getBoundingClientRect(); + var parentRect = parent.getBoundingClientRect() + + if (contentWindow) { + + var contentRect = contentWindow.getBoundingClientRect(); + + if (anchorRect.bottom + this.maxHeight < contentRect.bottom) { + // fits below -> show below + } + else if (anchorRect.top - this.maxHeight > contentRect.top) { + // fits above -> show above + showBelow = false; + } + else { + // doesn't fit above nor below -> show below + } + } + + var leftGap = anchorRect.left - parentRect.left; + var topGap = anchorRect.top - parentRect.top; + + // position the menu + if (showBelow) { + // display the menu below the anchor + var anchorHeight = anchor.offsetHeight; + this.dom.menu.style.left = leftGap + 'px'; + this.dom.menu.style.top = topGap + anchorHeight + 'px'; + this.dom.menu.style.bottom = ''; + } + else { + // display the menu above the anchor + this.dom.menu.style.left = leftGap + 'px'; + this.dom.menu.style.top = topGap + 'px'; + this.dom.menu.style.bottom = '0px'; + } + + // find the root node of the page (window, or a shadow dom root element) + this.rootNode = getRootNode(anchor); + + // attach the menu to the parent of the anchor + parent.insertBefore(this.dom.root, parent.firstChild); + + // create and attach event listeners + var me = this; + var list = this.dom.list; + this.eventListeners.mousedown = util.addEventListener(this.rootNode, 'mousedown', function (event) { + // hide menu on click outside of the menu + var target = event.target; + if ((target != list) && !me._isChildOf(target, list)) { + me.hide(); + event.stopPropagation(); + event.preventDefault(); + } + }); + this.eventListeners.keydown = util.addEventListener(this.rootNode, 'keydown', function (event) { + me._onKeyDown(event); + }); + + // move focus to the first button in the context menu + this.selection = util.getSelection(); + this.anchor = anchor; + setTimeout(function () { + me.dom.focusButton.focus(); + }, 0); + + if (ContextMenu.visibleMenu) { + ContextMenu.visibleMenu.hide(); + } + ContextMenu.visibleMenu = this; + }; + + /** + * Hide the context menu if visible + */ + ContextMenu.prototype.hide = function () { + // remove the menu from the DOM + if (this.dom.root.parentNode) { + this.dom.root.parentNode.removeChild(this.dom.root); + if (this.onClose) { + this.onClose(); + } + } + + // remove all event listeners + // all event listeners are supposed to be attached to document. + for (var name in this.eventListeners) { + if (this.eventListeners.hasOwnProperty(name)) { + var fn = this.eventListeners[name]; + if (fn) { + util.removeEventListener(this.rootNode, name, fn); + } + delete this.eventListeners[name]; + } + } + + if (ContextMenu.visibleMenu == this) { + ContextMenu.visibleMenu = undefined; + } + }; + + /** + * Expand a submenu + * Any currently expanded submenu will be hided. + * @param {Object} domItem + * @private + */ + ContextMenu.prototype._onExpandItem = function (domItem) { + var me = this; + var alreadyVisible = (domItem == this.expandedItem); + + // hide the currently visible submenu + var expandedItem = this.expandedItem; + if (expandedItem) { + //var ul = expandedItem.ul; + expandedItem.ul.style.height = '0'; + expandedItem.ul.style.padding = ''; + setTimeout(function () { + if (me.expandedItem != expandedItem) { + expandedItem.ul.style.display = ''; + util.removeClassName(expandedItem.ul.parentNode, 'jsoneditor-selected'); + } + }, 300); // timeout duration must match the css transition duration + this.expandedItem = undefined; + } + + if (!alreadyVisible) { + var ul = domItem.ul; + ul.style.display = 'block'; + var height = ul.clientHeight; // force a reflow in Firefox + setTimeout(function () { + if (me.expandedItem == domItem) { + var childsHeight = 0; + for (var i = 0; i < ul.childNodes.length; i++) { + childsHeight += ul.childNodes[i].clientHeight; + } + ul.style.height = childsHeight + 'px'; + ul.style.padding = '5px 10px'; + } + }, 0); + util.addClassName(ul.parentNode, 'jsoneditor-selected'); + this.expandedItem = domItem; + } + }; + + /** + * Handle onkeydown event + * @param {Event} event + * @private + */ + ContextMenu.prototype._onKeyDown = function (event) { + var target = event.target; + var keynum = event.which; + var handled = false; + var buttons, targetIndex, prevButton, nextButton; + + if (keynum == 27) { // ESC + // hide the menu on ESC key + + // restore previous selection and focus + if (this.selection) { + util.setSelection(this.selection); + } + if (this.anchor) { + this.anchor.focus(); + } + + this.hide(); + + handled = true; + } + else if (keynum == 9) { // Tab + if (!event.shiftKey) { // Tab + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + if (targetIndex == buttons.length - 1) { + // move to first button + buttons[0].focus(); + handled = true; + } + } + else { // Shift+Tab + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + if (targetIndex == 0) { + // move to last button + buttons[buttons.length - 1].focus(); + handled = true; + } + } + } + else if (keynum == 37) { // Arrow Left + if (target.className == 'jsoneditor-expand') { + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + prevButton = buttons[targetIndex - 1]; + if (prevButton) { + prevButton.focus(); + } + } + handled = true; + } + else if (keynum == 38) { // Arrow Up + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + prevButton = buttons[targetIndex - 1]; + if (prevButton && prevButton.className == 'jsoneditor-expand') { + // skip expand button + prevButton = buttons[targetIndex - 2]; + } + if (!prevButton) { + // move to last button + prevButton = buttons[buttons.length - 1]; + } + if (prevButton) { + prevButton.focus(); + } + handled = true; + } + else if (keynum == 39) { // Arrow Right + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + nextButton = buttons[targetIndex + 1]; + if (nextButton && nextButton.className == 'jsoneditor-expand') { + nextButton.focus(); + } + handled = true; + } + else if (keynum == 40) { // Arrow Down + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + nextButton = buttons[targetIndex + 1]; + if (nextButton && nextButton.className == 'jsoneditor-expand') { + // skip expand button + nextButton = buttons[targetIndex + 2]; + } + if (!nextButton) { + // move to first button + nextButton = buttons[0]; + } + if (nextButton) { + nextButton.focus(); + handled = true; + } + handled = true; + } + // TODO: arrow left and right + + if (handled) { + event.stopPropagation(); + event.preventDefault(); + } + }; + + /** + * Test if an element is a child of a parent element. + * @param {Element} child + * @param {Element} parent + * @return {boolean} isChild + */ + ContextMenu.prototype._isChildOf = function (child, parent) { + var e = child.parentNode; + while (e) { + if (e == parent) { + return true; + } + e = e.parentNode; + } + + return false; + }; + + module.exports = ContextMenu; + + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var jsonlint = __webpack_require__(7); /** * Parse JSON using the parser built-in in the browser. @@ -3383,7 +4444,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 5 */ +/* 7 */ /***/ function(module, exports, __webpack_require__) { /* Jison generated parser */ @@ -3805,833 +4866,6 @@ return /******/ (function(modules) { // webpackBootstrap exports.parse = jsonlint.parse.bind(jsonlint); } -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - 'use strict'; - - /** - * @constructor SearchBox - * Create a search box in given HTML container - * @param {JSONEditor} editor The JSON Editor to attach to - * @param {Element} container HTML container element of where to - * create the search box - */ - function SearchBox (editor, container) { - var searchBox = this; - - this.editor = editor; - this.timeout = undefined; - this.delay = 200; // ms - this.lastText = undefined; - - this.dom = {}; - this.dom.container = container; - - var table = document.createElement('table'); - this.dom.table = table; - table.className = 'jsoneditor-search'; - container.appendChild(table); - var tbody = document.createElement('tbody'); - this.dom.tbody = tbody; - table.appendChild(tbody); - var tr = document.createElement('tr'); - tbody.appendChild(tr); - - var td = document.createElement('td'); - tr.appendChild(td); - var results = document.createElement('div'); - this.dom.results = results; - results.className = 'jsoneditor-results'; - td.appendChild(results); - - td = document.createElement('td'); - tr.appendChild(td); - var divInput = document.createElement('div'); - this.dom.input = divInput; - divInput.className = 'jsoneditor-frame'; - divInput.title = 'Search fields and values'; - td.appendChild(divInput); - - // table to contain the text input and search button - var tableInput = document.createElement('table'); - divInput.appendChild(tableInput); - var tbodySearch = document.createElement('tbody'); - tableInput.appendChild(tbodySearch); - tr = document.createElement('tr'); - tbodySearch.appendChild(tr); - - var refreshSearch = document.createElement('button'); - refreshSearch.type = 'button'; - refreshSearch.className = 'jsoneditor-refresh'; - td = document.createElement('td'); - td.appendChild(refreshSearch); - tr.appendChild(td); - - var search = document.createElement('input'); - // search.type = 'button'; - this.dom.search = search; - search.oninput = function (event) { - searchBox._onDelayedSearch(event); - }; - search.onchange = function (event) { // For IE 9 - searchBox._onSearch(); - }; - search.onkeydown = function (event) { - searchBox._onKeyDown(event); - }; - search.onkeyup = function (event) { - searchBox._onKeyUp(event); - }; - refreshSearch.onclick = function (event) { - search.select(); - }; - - // TODO: ESC in FF restores the last input, is a FF bug, https://bugzilla.mozilla.org/show_bug.cgi?id=598819 - td = document.createElement('td'); - td.appendChild(search); - tr.appendChild(td); - - var searchNext = document.createElement('button'); - searchNext.type = 'button'; - searchNext.title = 'Next result (Enter)'; - searchNext.className = 'jsoneditor-next'; - searchNext.onclick = function () { - searchBox.next(); - }; - td = document.createElement('td'); - td.appendChild(searchNext); - tr.appendChild(td); - - var searchPrevious = document.createElement('button'); - searchPrevious.type = 'button'; - searchPrevious.title = 'Previous result (Shift+Enter)'; - searchPrevious.className = 'jsoneditor-previous'; - searchPrevious.onclick = function () { - searchBox.previous(); - }; - td = document.createElement('td'); - td.appendChild(searchPrevious); - tr.appendChild(td); - } - - /** - * Go to the next search result - * @param {boolean} [focus] If true, focus will be set to the next result - * focus is false by default. - */ - SearchBox.prototype.next = function(focus) { - if (this.results != undefined) { - var index = (this.resultIndex != undefined) ? this.resultIndex + 1 : 0; - if (index > this.results.length - 1) { - index = 0; - } - this._setActiveResult(index, focus); - } - }; - - /** - * Go to the prevous search result - * @param {boolean} [focus] If true, focus will be set to the next result - * focus is false by default. - */ - SearchBox.prototype.previous = function(focus) { - if (this.results != undefined) { - var max = this.results.length - 1; - var index = (this.resultIndex != undefined) ? this.resultIndex - 1 : max; - if (index < 0) { - index = max; - } - this._setActiveResult(index, focus); - } - }; - - /** - * Set new value for the current active result - * @param {Number} index - * @param {boolean} [focus] If true, focus will be set to the next result. - * focus is false by default. - * @private - */ - SearchBox.prototype._setActiveResult = function(index, focus) { - // de-activate current active result - if (this.activeResult) { - var prevNode = this.activeResult.node; - var prevElem = this.activeResult.elem; - if (prevElem == 'field') { - delete prevNode.searchFieldActive; - } - else { - delete prevNode.searchValueActive; - } - prevNode.updateDom(); - } - - if (!this.results || !this.results[index]) { - // out of range, set to undefined - this.resultIndex = undefined; - this.activeResult = undefined; - return; - } - - this.resultIndex = index; - - // set new node active - var node = this.results[this.resultIndex].node; - var elem = this.results[this.resultIndex].elem; - if (elem == 'field') { - node.searchFieldActive = true; - } - else { - node.searchValueActive = true; - } - this.activeResult = this.results[this.resultIndex]; - node.updateDom(); - - // TODO: not so nice that the focus is only set after the animation is finished - node.scrollTo(function () { - if (focus) { - node.focus(elem); - } - }); - }; - - /** - * Cancel any running onDelayedSearch. - * @private - */ - SearchBox.prototype._clearDelay = function() { - if (this.timeout != undefined) { - clearTimeout(this.timeout); - delete this.timeout; - } - }; - - /** - * Start a timer to execute a search after a short delay. - * Used for reducing the number of searches while typing. - * @param {Event} event - * @private - */ - SearchBox.prototype._onDelayedSearch = function (event) { - // execute the search after a short delay (reduces the number of - // search actions while typing in the search text box) - this._clearDelay(); - var searchBox = this; - this.timeout = setTimeout(function (event) { - searchBox._onSearch(); - }, - this.delay); - }; - - /** - * Handle onSearch event - * @param {boolean} [forceSearch] If true, search will be executed again even - * when the search text is not changed. - * Default is false. - * @private - */ - SearchBox.prototype._onSearch = function (forceSearch) { - this._clearDelay(); - - var value = this.dom.search.value; - var text = (value.length > 0) ? value : undefined; - if (text !== this.lastText || forceSearch) { - // only search again when changed - this.lastText = text; - this.results = this.editor.search(text); - var MAX_SEARCH_RESULTS = this.results[0] - ? this.results[0].node.MAX_SEARCH_RESULTS - : Infinity; - - this._setActiveResult(0, false); - - // display search results - if (text !== undefined) { - var resultCount = this.results.length; - if (resultCount === 0) { - this.dom.results.innerHTML = 'no results'; - } - else if (resultCount === 1) { - this.dom.results.innerHTML = '1 result'; - } - else if (resultCount > MAX_SEARCH_RESULTS) { - this.dom.results.innerHTML = MAX_SEARCH_RESULTS + '+ results'; - } - else { - this.dom.results.innerHTML = resultCount + ' results'; - } - } - else { - this.dom.results.innerHTML = ''; - } - } - }; - - /** - * Handle onKeyDown event in the input box - * @param {Event} event - * @private - */ - SearchBox.prototype._onKeyDown = function (event) { - var keynum = event.which; - if (keynum == 27) { // ESC - this.dom.search.value = ''; // clear search - this._onSearch(); - event.preventDefault(); - event.stopPropagation(); - } - else if (keynum == 13) { // Enter - if (event.ctrlKey) { - // force to search again - this._onSearch(true); - } - else if (event.shiftKey) { - // move to the previous search result - this.previous(); - } - else { - // move to the next search result - this.next(); - } - event.preventDefault(); - event.stopPropagation(); - } - }; - - /** - * Handle onKeyUp event in the input box - * @param {Event} event - * @private - */ - SearchBox.prototype._onKeyUp = function (event) { - var keynum = event.keyCode; - if (keynum != 27 && keynum != 13) { // !show and !Enter - this._onDelayedSearch(event); // For IE 9 - } - }; - - /** - * Clear the search results - */ - SearchBox.prototype.clear = function () { - this.dom.search.value = ''; - this._onSearch(); - }; - - /** - * Destroy the search box - */ - SearchBox.prototype.destroy = function () { - this.editor = null; - this.dom.container.removeChild(this.dom.table); - this.dom = null; - - this.results = null; - this.activeResult = null; - - this._clearDelay(); - - }; - - module.exports = SearchBox; - - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var util = __webpack_require__(4); - var translate = __webpack_require__(8).translate; - - /** - * Node.getRootNode shim - * @param {Node} node node to check - * @return {Node} node's rootNode or `window` if there is ShadowDOM is not supported. - */ - function getRootNode(node){ - return node.getRootNode && node.getRootNode() || window; - } - - /** - * A context menu - * @param {Object[]} items Array containing the menu structure - * TODO: describe structure - * @param {Object} [options] Object with options. Available options: - * {function} close Callback called when the - * context menu is being closed. - * @constructor - */ - function ContextMenu (items, options) { - this.dom = {}; - - var me = this; - var dom = this.dom; - this.anchor = undefined; - this.items = items; - this.eventListeners = {}; - this.selection = undefined; // holds the selection before the menu was opened - this.onClose = options ? options.close : undefined; - - // create root element - var root = document.createElement('div'); - root.className = 'jsoneditor-contextmenu-root'; - dom.root = root; - - // create a container element - var menu = document.createElement('div'); - menu.className = 'jsoneditor-contextmenu'; - dom.menu = menu; - root.appendChild(menu); - - // create a list to hold the menu items - var list = document.createElement('ul'); - list.className = 'jsoneditor-menu'; - menu.appendChild(list); - dom.list = list; - dom.items = []; // list with all buttons - - // create a (non-visible) button to set the focus to the menu - var focusButton = document.createElement('button'); - focusButton.type = 'button'; - dom.focusButton = focusButton; - var li = document.createElement('li'); - li.style.overflow = 'hidden'; - li.style.height = '0'; - li.appendChild(focusButton); - list.appendChild(li); - - function createMenuItems (list, domItems, items) { - items.forEach(function (item) { - if (item.type == 'separator') { - // create a separator - var separator = document.createElement('div'); - separator.className = 'jsoneditor-separator'; - li = document.createElement('li'); - li.appendChild(separator); - list.appendChild(li); - } - else { - var domItem = {}; - - // create a menu item - var li = document.createElement('li'); - list.appendChild(li); - - // create a button in the menu item - var button = document.createElement('button'); - button.type = 'button'; - button.className = item.className; - domItem.button = button; - if (item.title) { - button.title = item.title; - } - if (item.click) { - button.onclick = function (event) { - event.preventDefault(); - me.hide(); - item.click(); - }; - } - li.appendChild(button); - - // create the contents of the button - if (item.submenu) { - // add the icon to the button - var divIcon = document.createElement('div'); - divIcon.className = 'jsoneditor-icon'; - button.appendChild(divIcon); - var divText = document.createElement('div'); - divText.className = 'jsoneditor-text' + - (item.click ? '' : ' jsoneditor-right-margin'); - divText.appendChild(document.createTextNode(item.text)); - button.appendChild(divText); - - var buttonSubmenu; - if (item.click) { - // submenu and a button with a click handler - button.className += ' jsoneditor-default'; - - var buttonExpand = document.createElement('button'); - buttonExpand.type = 'button'; - domItem.buttonExpand = buttonExpand; - buttonExpand.className = 'jsoneditor-expand'; - buttonExpand.innerHTML = '
'; - li.appendChild(buttonExpand); - if (item.submenuTitle) { - buttonExpand.title = item.submenuTitle; - } - - buttonSubmenu = buttonExpand; - } - else { - // submenu and a button without a click handler - var divExpand = document.createElement('div'); - divExpand.className = 'jsoneditor-expand'; - button.appendChild(divExpand); - - buttonSubmenu = button; - } - - // attach a handler to expand/collapse the submenu - buttonSubmenu.onclick = function (event) { - event.preventDefault(); - me._onExpandItem(domItem); - buttonSubmenu.focus(); - }; - - // create the submenu - var domSubItems = []; - domItem.subItems = domSubItems; - var ul = document.createElement('ul'); - domItem.ul = ul; - ul.className = 'jsoneditor-menu'; - ul.style.height = '0'; - li.appendChild(ul); - createMenuItems(ul, domSubItems, item.submenu); - } - else { - // no submenu, just a button with clickhandler - button.innerHTML = '
' + - '
' + translate(item.text) + '
'; - } - - domItems.push(domItem); - } - }); - } - createMenuItems(list, this.dom.items, items); - - // TODO: when the editor is small, show the submenu on the right instead of inline? - - // calculate the max height of the menu with one submenu expanded - this.maxHeight = 0; // height in pixels - items.forEach(function (item) { - var height = (items.length + (item.submenu ? item.submenu.length : 0)) * 24; - me.maxHeight = Math.max(me.maxHeight, height); - }); - } - - /** - * Get the currently visible buttons - * @return {Array.} buttons - * @private - */ - ContextMenu.prototype._getVisibleButtons = function () { - var buttons = []; - var me = this; - this.dom.items.forEach(function (item) { - buttons.push(item.button); - if (item.buttonExpand) { - buttons.push(item.buttonExpand); - } - if (item.subItems && item == me.expandedItem) { - item.subItems.forEach(function (subItem) { - buttons.push(subItem.button); - if (subItem.buttonExpand) { - buttons.push(subItem.buttonExpand); - } - // TODO: change to fully recursive method - }); - } - }); - - return buttons; - }; - - // currently displayed context menu, a singleton. We may only have one visible context menu - ContextMenu.visibleMenu = undefined; - - /** - * Attach the menu to an anchor - * @param {HTMLElement} anchor Anchor where the menu will be attached - * as sibling. - * @param {HTMLElement} [contentWindow] The DIV with with the (scrollable) contents - */ - ContextMenu.prototype.show = function (anchor, contentWindow) { - this.hide(); - - // determine whether to display the menu below or above the anchor - var showBelow = true; - var parent = anchor.parentNode; - var anchorRect = anchor.getBoundingClientRect(); - var parentRect = parent.getBoundingClientRect() - - if (contentWindow) { - - var contentRect = contentWindow.getBoundingClientRect(); - - if (anchorRect.bottom + this.maxHeight < contentRect.bottom) { - // fits below -> show below - } - else if (anchorRect.top - this.maxHeight > contentRect.top) { - // fits above -> show above - showBelow = false; - } - else { - // doesn't fit above nor below -> show below - } - } - - var leftGap = anchorRect.left - parentRect.left; - var topGap = anchorRect.top - parentRect.top; - - // position the menu - if (showBelow) { - // display the menu below the anchor - var anchorHeight = anchor.offsetHeight; - this.dom.menu.style.left = leftGap + 'px'; - this.dom.menu.style.top = topGap + anchorHeight + 'px'; - this.dom.menu.style.bottom = ''; - } - else { - // display the menu above the anchor - this.dom.menu.style.left = leftGap + 'px'; - this.dom.menu.style.top = topGap + 'px'; - this.dom.menu.style.bottom = '0px'; - } - - // find the root node of the page (window, or a shadow dom root element) - this.rootNode = getRootNode(anchor); - - // attach the menu to the parent of the anchor - parent.insertBefore(this.dom.root, parent.firstChild); - - // create and attach event listeners - var me = this; - var list = this.dom.list; - this.eventListeners.mousedown = util.addEventListener(this.rootNode, 'mousedown', function (event) { - // hide menu on click outside of the menu - var target = event.target; - if ((target != list) && !me._isChildOf(target, list)) { - me.hide(); - event.stopPropagation(); - event.preventDefault(); - } - }); - this.eventListeners.keydown = util.addEventListener(this.rootNode, 'keydown', function (event) { - me._onKeyDown(event); - }); - - // move focus to the first button in the context menu - this.selection = util.getSelection(); - this.anchor = anchor; - setTimeout(function () { - me.dom.focusButton.focus(); - }, 0); - - if (ContextMenu.visibleMenu) { - ContextMenu.visibleMenu.hide(); - } - ContextMenu.visibleMenu = this; - }; - - /** - * Hide the context menu if visible - */ - ContextMenu.prototype.hide = function () { - // remove the menu from the DOM - if (this.dom.root.parentNode) { - this.dom.root.parentNode.removeChild(this.dom.root); - if (this.onClose) { - this.onClose(); - } - } - - // remove all event listeners - // all event listeners are supposed to be attached to document. - for (var name in this.eventListeners) { - if (this.eventListeners.hasOwnProperty(name)) { - var fn = this.eventListeners[name]; - if (fn) { - util.removeEventListener(this.rootNode, name, fn); - } - delete this.eventListeners[name]; - } - } - - if (ContextMenu.visibleMenu == this) { - ContextMenu.visibleMenu = undefined; - } - }; - - /** - * Expand a submenu - * Any currently expanded submenu will be hided. - * @param {Object} domItem - * @private - */ - ContextMenu.prototype._onExpandItem = function (domItem) { - var me = this; - var alreadyVisible = (domItem == this.expandedItem); - - // hide the currently visible submenu - var expandedItem = this.expandedItem; - if (expandedItem) { - //var ul = expandedItem.ul; - expandedItem.ul.style.height = '0'; - expandedItem.ul.style.padding = ''; - setTimeout(function () { - if (me.expandedItem != expandedItem) { - expandedItem.ul.style.display = ''; - util.removeClassName(expandedItem.ul.parentNode, 'jsoneditor-selected'); - } - }, 300); // timeout duration must match the css transition duration - this.expandedItem = undefined; - } - - if (!alreadyVisible) { - var ul = domItem.ul; - ul.style.display = 'block'; - var height = ul.clientHeight; // force a reflow in Firefox - setTimeout(function () { - if (me.expandedItem == domItem) { - var childsHeight = 0; - for (var i = 0; i < ul.childNodes.length; i++) { - childsHeight += ul.childNodes[i].clientHeight; - } - ul.style.height = childsHeight + 'px'; - ul.style.padding = '5px 10px'; - } - }, 0); - util.addClassName(ul.parentNode, 'jsoneditor-selected'); - this.expandedItem = domItem; - } - }; - - /** - * Handle onkeydown event - * @param {Event} event - * @private - */ - ContextMenu.prototype._onKeyDown = function (event) { - var target = event.target; - var keynum = event.which; - var handled = false; - var buttons, targetIndex, prevButton, nextButton; - - if (keynum == 27) { // ESC - // hide the menu on ESC key - - // restore previous selection and focus - if (this.selection) { - util.setSelection(this.selection); - } - if (this.anchor) { - this.anchor.focus(); - } - - this.hide(); - - handled = true; - } - else if (keynum == 9) { // Tab - if (!event.shiftKey) { // Tab - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - if (targetIndex == buttons.length - 1) { - // move to first button - buttons[0].focus(); - handled = true; - } - } - else { // Shift+Tab - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - if (targetIndex == 0) { - // move to last button - buttons[buttons.length - 1].focus(); - handled = true; - } - } - } - else if (keynum == 37) { // Arrow Left - if (target.className == 'jsoneditor-expand') { - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - prevButton = buttons[targetIndex - 1]; - if (prevButton) { - prevButton.focus(); - } - } - handled = true; - } - else if (keynum == 38) { // Arrow Up - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - prevButton = buttons[targetIndex - 1]; - if (prevButton && prevButton.className == 'jsoneditor-expand') { - // skip expand button - prevButton = buttons[targetIndex - 2]; - } - if (!prevButton) { - // move to last button - prevButton = buttons[buttons.length - 1]; - } - if (prevButton) { - prevButton.focus(); - } - handled = true; - } - else if (keynum == 39) { // Arrow Right - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - nextButton = buttons[targetIndex + 1]; - if (nextButton && nextButton.className == 'jsoneditor-expand') { - nextButton.focus(); - } - handled = true; - } - else if (keynum == 40) { // Arrow Down - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - nextButton = buttons[targetIndex + 1]; - if (nextButton && nextButton.className == 'jsoneditor-expand') { - // skip expand button - nextButton = buttons[targetIndex + 2]; - } - if (!nextButton) { - // move to first button - nextButton = buttons[0]; - } - if (nextButton) { - nextButton.focus(); - handled = true; - } - handled = true; - } - // TODO: arrow left and right - - if (handled) { - event.stopPropagation(); - event.preventDefault(); - } - }; - - /** - * Test if an element is a child of a parent element. - * @param {Element} child - * @param {Element} parent - * @return {boolean} isChild - */ - ContextMenu.prototype._isChildOf = function (child, parent) { - var e = child.parentNode; - while (e) { - if (e == parent) { - return true; - } - e = e.parentNode; - } - - return false; - }; - - module.exports = ContextMenu; - - /***/ }, /* 8 */ /***/ function(module, exports) { @@ -4872,7 +5106,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var ContextMenu = __webpack_require__(7); + var ContextMenu = __webpack_require__(5); var translate = __webpack_require__(8).translate; /** @@ -4989,12 +5223,12 @@ return /******/ (function(modules) { // webpackBootstrap var jmespath = __webpack_require__(11); var naturalSort = __webpack_require__(12); - var ContextMenu = __webpack_require__(7); + var ContextMenu = __webpack_require__(5); var appendNodeFactory = __webpack_require__(13); var showMoreNodeFactory = __webpack_require__(14); var showSortModal = __webpack_require__(15); var showTransformModal = __webpack_require__(17); - var util = __webpack_require__(4); + var util = __webpack_require__(6); var translate = __webpack_require__(8).translate; var DEFAULT_MODAL_ANCHOR = document.body; // TODO: this constant is defined twice @@ -5018,7 +5252,12 @@ return /******/ (function(modules) { // webpackBootstrap if(params && (params instanceof Object)) { this.setField(params.field, params.fieldEditable); - this.setValue(params.value, params.type); + if ('value' in params) { + this.setValue(params.value, params.type); + } + if ('internalValue' in params) { + this.setInternalValue(params.internalValue); + } } else { this.setField(''); @@ -5092,6 +5331,22 @@ return /******/ (function(modules) { // webpackBootstrap return path; }; + /** + * Get the internal path of this node, a list with the child indexes. + * @return {String[]} Array containing the internal path to this node + */ + Node.prototype.getInternalPath = function () { + var node = this; + var internalPath = []; + while (node) { + if (node.parent) { + internalPath.unshift(node.getIndex()); + } + node = node.parent; + } + return internalPath; + }; + /** * Get node serializable name * @returns {String|Number} @@ -5126,11 +5381,31 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Find child node by an internal path: the indexes of the childs nodes + * @param {Array} internalPath + * @return {Node | undefined} Returns the node if the path exists. + * Returns undefined otherwise. + */ + Node.prototype.findNodeByInternalPath = function (internalPath) { + if (!internalPath) { + return undefined; + } + + var node = this; + for (var i = 0; i < internalPath.length && node; i++) { + var childIndex = internalPath[i]; + node = node.childs[childIndex]; + } + + return node; + }; + /** * @typedef {{value: String|Object|Number|Boolean, path: Array.}} SerializableNode * * Returns serializable representation for the node - * @return {SerializedNode} + * @return {SerializableNode} */ Node.prototype.serialize = function () { return { @@ -5272,10 +5547,16 @@ return /******/ (function(modules) { // webpackBootstrap /** * Get the index of this node: the index in the list of childs where this * node is part of - * @return {number} Returns the index, or -1 if this is the root node + * @return {number | null} Returns the index, or null if this is the root node */ Node.prototype.getIndex = function () { - return this.parent ? this.parent.childs.indexOf(this) : -1; + if (this.parent) { + var index = this.parent.childs.indexOf(this); + return index !== -1 ? index : null; + } + else { + return -1; + } }; /** @@ -5317,21 +5598,15 @@ return /******/ (function(modules) { // webpackBootstrap */ Node.prototype.setValue = function(value, type) { var childValue, child, visible; + var i, j; var notUpdateDom = false; - - // first clear all current childs (if any) - var childs = this.childs; - if (childs) { - while (childs.length) { - this.removeChild(childs[0], notUpdateDom); - } - } + var previousChilds = this.childs; this.type = this._getType(value); // check if type corresponds with the provided type - if (type && type != this.type) { - if (type == 'string' && this.type == 'auto') { + if (type && type !== this.type) { + if (type === 'string' && this.type === 'auto') { this.type = type; } else { @@ -5341,40 +5616,79 @@ return /******/ (function(modules) { // webpackBootstrap } } - if (this.type == 'array') { + if (this.type === 'array') { // array - this.childs = []; - for (var i = 0, iMax = value.length; i < iMax; i++) { + if (!this.childs) { + this.childs = []; + } + + for (i = 0; i < value.length; i++) { childValue = value[i]; if (childValue !== undefined && !(childValue instanceof Function)) { - // ignore undefined and functions - child = new Node(this.editor, { - value: childValue - }); - visible = i < this.MAX_VISIBLE_CHILDS; - this.appendChild(child, visible, notUpdateDom); - } - } - this.value = ''; - } - else if (this.type == 'object') { - // object - this.childs = []; - i = 0; - for (var childField in value) { - if (value.hasOwnProperty(childField)) { - childValue = value[childField]; - if (childValue !== undefined && !(childValue instanceof Function)) { - // ignore undefined and functions + if (i < this.childs.length) { + // reuse existing child, keep its state + child = this.childs[i]; + + child.fieldEditable = false; + child.index = i; + child.setValue(childValue); + } + else { + // create a new child child = new Node(this.editor, { - field: childField, value: childValue }); visible = i < this.MAX_VISIBLE_CHILDS; this.appendChild(child, visible, notUpdateDom); } + } + } + + // cleanup redundant childs + // we loop backward to prevent issues with shifting index numbers + for (j = this.childs.length; j >= value.length; j--) { + this.removeChild(this.childs[j], notUpdateDom); + } + } + else if (this.type === 'object') { + // object + if (!this.childs) { + this.childs = []; + } + + // cleanup redundant childs + // we loop backward to prevent issues with shifting index numbers + for (j = this.childs.length - 1; j >= 0; j--) { + if (!value.hasOwnProperty(this.childs[j].field)) { + this.removeChild(this.childs[j], notUpdateDom); + } + } + + i = 0; + for (var childField in value) { + if (value.hasOwnProperty(childField)) { + childValue = value[childField]; + if (childValue !== undefined && !(childValue instanceof Function)) { + child = this.findChildByProperty(childField); + + if (child) { + // reuse existing child, keep its state + child.setField(childField, true); + child.setValue(childValue); + } + else { + // create a new child + child = new Node(this.editor, { + field: childField, + value: childValue + }); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible, notUpdateDom); + } + } i++; } + } this.value = ''; @@ -5385,13 +5699,147 @@ return /******/ (function(modules) { // webpackBootstrap } else { // value - this.childs = undefined; + this.hideChilds(); + + delete this.append; + delete this.showMore; + delete this.expanded; + delete this.childs; + this.value = value; } + // recreate the DOM if switching from an object/array to auto/string or vice versa + // needed to recreated the expand button for example + if (Array.isArray(previousChilds) !== Array.isArray(this.childs)) { + this.recreateDom(); + } + this.updateDom({'updateIndexes': true}); - this.previousValue = this.value; + this.previousValue = this.value; // used only to check for changes in DOM vs JS model + }; + + /** + * Set internal value + * @param {*} internalValue Internal value structure keeping type, + * order and duplicates in objects + */ + Node.prototype.setInternalValue = function(internalValue) { + var childValue, child, visible; + var i, j; + var notUpdateDom = false; + var previousChilds = this.childs; + + this.type = internalValue.type; + + if (internalValue.type === 'array') { + // array + if (!this.childs) { + this.childs = []; + } + + for (i = 0; i < internalValue.childs.length; i++) { + childValue = internalValue.childs[i]; + if (childValue !== undefined && !(childValue instanceof Function)) { + if (i < this.childs.length) { + // reuse existing child, keep its state + child = this.childs[i]; + + child.fieldEditable = false; + child.index = i; + child.setInternalValue(childValue); + } + else { + // create a new child + child = new Node(this.editor, { + internalValue: childValue + }); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible, notUpdateDom); + } + } + } + + // cleanup redundant childs + // we loop backward to prevent issues with shifting index numbers + for (j = this.childs.length; j >= internalValue.childs.length; j--) { + this.removeChild(this.childs[j], notUpdateDom); + } + } + else if (internalValue.type === 'object') { + // object + if (!this.childs) { + this.childs = []; + } + + for (i = 0; i < internalValue.childs.length; i++) { + childValue = internalValue.childs[i]; + if (childValue !== undefined && !(childValue instanceof Function)) { + if (i < this.childs.length) { + // reuse existing child, keep its state + child = this.childs[i]; + + delete child.index; + child.setField(childValue.field, true); + child.setInternalValue(childValue.value); + } + else { + // create a new child + child = new Node(this.editor, { + field: childValue.field, + internalValue: childValue.value + }); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible, notUpdateDom); + } + } + } + + // cleanup redundant childs + // we loop backward to prevent issues with shifting index numbers + for (j = this.childs.length; j >= internalValue.childs.length; j--) { + this.removeChild(this.childs[j], notUpdateDom); + } + } + else { + // value + this.hideChilds(); + + delete this.append; + delete this.showMore; + delete this.expanded; + delete this.childs; + + this.value = internalValue.value; + } + + // recreate the DOM if switching from an object/array to auto/string or vice versa + // needed to recreated the expand button for example + if (Array.isArray(previousChilds) !== Array.isArray(this.childs)) { + this.recreateDom(); + } + + this.updateDom({'updateIndexes': true}); + + this.previousValue = this.value; // used only to check for changes in DOM vs JS model + }; + + /** + * Remove the DOM of this node and it's childs and recreate it again + */ + Node.prototype.recreateDom = function() { + // only recreate dom if there is a dom already + if (!this.dom || ! this.dom.tr || !this.dom.tr.parentNode) { + return; + } + + var domAnchor = this._detachFromDom(); + + // delete the DOM + this.clearDom(); + + this._attachToDom(domAnchor); }; /** @@ -5399,8 +5847,6 @@ return /******/ (function(modules) { // webpackBootstrap * @return {*} value */ Node.prototype.getValue = function() { - //var childs, i, iMax; - if (this.type == 'array') { var arr = []; this.childs.forEach (function (child) { @@ -5424,6 +5870,42 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Get internal value, a structure which maintains ordering and duplicates in objects + * @return {*} value + */ + Node.prototype.getInternalValue = function() { + if (this.type === 'array') { + return { + type: this.type, + childs: this.childs.map (function (child) { + return child.getInternalValue(); + }) + }; + } + else if (this.type === 'object') { + return { + type: this.type, + childs: this.childs.map(function (child) { + return { + field: child.getField(), + value: child.getInternalValue() + } + }) + }; + } + else { + if (this.value === undefined) { + this._getDomValue(); + } + + return { + type: this.type, + value: this.value + }; + } + }; + /** * Get the nesting level of this node * @return {Number} level @@ -5454,8 +5936,10 @@ return /******/ (function(modules) { // webpackBootstrap clone.field = this.field; clone.fieldInnerText = this.fieldInnerText; clone.fieldEditable = this.fieldEditable; + clone.previousField = this.previousField; clone.value = this.value; clone.valueInnerText = this.valueInnerText; + clone.previousValue = this.previousValue; clone.expanded = this.expanded; clone.visibleChilds = this.visibleChilds; @@ -5669,6 +6153,10 @@ return /******/ (function(modules) { // webpackBootstrap if (this.type == 'array') { node.index = this.childs.length; } + if (this.type === 'object' && node.field == undefined) { + // initialize field value if needed + node.setField(''); + } this.childs.push(node); if (this.expanded && visible !== false) { @@ -5714,7 +6202,7 @@ return /******/ (function(modules) { // webpackBootstrap node.parent.removeChild(node); } - if (beforeNode instanceof AppendNode) { + if (beforeNode instanceof AppendNode || !beforeNode) { // the this.childs.length + 1 is to reckon with the node that we're about to add if (this.childs.length + 1 > this.visibleChilds) { var lastVisibleNode = this.childs[this.visibleChilds - 1]; @@ -5734,27 +6222,6 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Move a node from its current parent to this node - * Only applicable when Node value is of type array or object. - * If index is out of range, the node will be appended to the end - * @param {Node} node - * @param {Number} index - */ - Node.prototype.moveTo = function (node, index) { - if (node.parent == this) { - // same parent - var currentIndex = this.childs.indexOf(node); - if (currentIndex < index) { - // compensate the index for removal of the node itself - index++; - } - } - - var beforeNode = this.childs[index] || this.append; - this.moveBefore(node, beforeNode); - }; - /** * Insert a new child before a given node * Only applicable when Node value is of type array or object @@ -5765,7 +6232,12 @@ return /******/ (function(modules) { // webpackBootstrap if (this._hasChilds()) { this.visibleChilds++; - if (beforeNode == this.append) { + // initialize field value if needed + if (this.type === 'object' && node.field == undefined) { + node.setField(''); + } + + if (beforeNode === this.append) { // append to the child nodes // adjust the link to the parent @@ -6124,18 +6596,9 @@ return /******/ (function(modules) { // webpackBootstrap } else { // change from array to object, or from string/auto to object/array - var table = this.dom.tr ? this.dom.tr.parentNode : undefined; - var lastTr; - if (this.expanded) { - lastTr = this.getAppendDom(); - } - else { - lastTr = this.getDom(); - } - var nextTr = (lastTr && lastTr.parentNode) ? lastTr.nextSibling : undefined; + var domAnchor = this._detachFromDom(); - // hide current field and all its childs - this.hide({ resetVisibleChilds: false }); + // delete the old DOM this.clearDom(); // adjust the field and the value @@ -6179,16 +6642,7 @@ return /******/ (function(modules) { // webpackBootstrap this.expanded = false; } - // create new DOM - if (table) { - if (nextTr) { - table.insertBefore(this.getDom(), nextTr); - } - else { - table.appendChild(this.getDom()); - } - } - this.showChilds(); + this._attachToDom(domAnchor); } if (newType == 'auto' || newType == 'string') { @@ -6206,6 +6660,68 @@ return /******/ (function(modules) { // webpackBootstrap this.updateDom({'updateIndexes': true}); }; + /** + * Test whether the JSON contents of this node are deep equal to provided JSON object. + * @param {*} json + */ + Node.prototype.deepEqual = function (json) { + var i; + + if (this.type === 'array') { + if (!Array.isArray(json)) { + return false; + } + + if (this.childs.length !== json.length) { + return false; + } + + for (i = 0; i < this.childs.length; i++) { + if (!this.childs[i].deepEqual(json[i])) { + return false; + } + } + } + else if (this.type === 'object') { + if (typeof json !== 'object') { + return false; + } + + // TODO: for better efficiency, we could create a property `isDuplicate` on all of the childs + // and keep that up to date. This should make deepEqual about 20% faster. + var props = {}; + var propCount = 0; + for (i = 0; i < this.childs.length; i++) { + var child = this.childs[i]; + if (!props[child.field]) { + // We can have childs with duplicate field names. + // We take the first, and ignore the others. + props[child.field] = true; + propCount++; + + if (!(child.field in json)) { + return false; + } + + if (!child.deepEqual(json[child.field])) { + return false; + } + } + } + + if (propCount !== Object.keys(json).length) { + return false; + } + } + else { + if (this.value !== json) { + return false; + } + } + + return true; + }; + /** * Retrieve value from DOM * @param {boolean} [silent] If true (default), no errors will be thrown in @@ -6264,7 +6780,7 @@ return /******/ (function(modules) { // webpackBootstrap } this.editor._onAction('editValue', { - node: this, + path: this.getInternalPath(), oldValue: this.previousValue, newValue: this.value, oldSelection: oldSelection, @@ -6296,7 +6812,8 @@ return /******/ (function(modules) { // webpackBootstrap } this.editor._onAction('editField', { - node: this, + parentPath: this.parent.getInternalPath(), + index: this.getIndex(), oldValue: this.previousField, newValue: this.field, oldSelection: oldSelection, @@ -6645,8 +7162,8 @@ return /******/ (function(modules) { // webpackBootstrap var firstNode = nodes[0]; var lastNode = nodes[nodes.length - 1]; + var parent = firstNode.parent; var draggedNode = Node.getNodeFromTarget(event.target); - var beforeNode = lastNode.nextSibling(); var editor = firstNode.editor; // in case of multiple selected nodes, offsetY prevents the selection from @@ -6669,7 +7186,11 @@ return /******/ (function(modules) { // webpackBootstrap editor.drag = { oldCursor: document.body.style.cursor, oldSelection: editor.getDomSelection(), - oldBeforeNode: beforeNode, + oldPaths: nodes.map(getInternalPath), + oldParent: parent, + oldNextNode: parent.childs[lastNode.getIndex() + 1] || parent.append, + oldParentPathRedo: parent.getInternalPath(), + oldIndexRedo: firstNode.getIndex(), mouseX: event.pageX, offsetY: offsetY, level: firstNode.getLevel() @@ -6860,26 +7381,43 @@ return /******/ (function(modules) { // webpackBootstrap var firstNode = nodes[0]; var editor = firstNode.editor; - var parent = firstNode.parent; - var firstIndex = parent.childs.indexOf(firstNode); - var beforeNode = parent.childs[firstIndex + nodes.length] || parent.append; // set focus to the context menu button of the first node if (nodes[0]) { nodes[0].dom.menu.focus(); } - var params = { - nodes: nodes, - oldSelection: editor.drag.oldSelection, - newSelection: editor.getDomSelection(), - oldBeforeNode: editor.drag.oldBeforeNode, - newBeforeNode: beforeNode - }; + var oldParentPath = editor.drag.oldParent.getInternalPath(); + var newParentPath = firstNode.parent.getInternalPath(); + var sameParent = editor.drag.oldParent === firstNode.parent; + var oldIndex = editor.drag.oldNextNode.getIndex(); + var newIndex = firstNode.getIndex(); + var oldParentPathRedo = editor.drag.oldParentPathRedo; - if (params.oldBeforeNode != params.newBeforeNode) { + var oldIndexRedo = editor.drag.oldIndexRedo; + var newIndexRedo = (sameParent && oldIndexRedo < newIndex) + ? (newIndex + nodes.length) + : newIndex; + + if (!sameParent || oldIndexRedo !== newIndex) { // only register this action if the node is actually moved to another place - editor._onAction('moveNodes', params); + editor._onAction('moveNodes', { + count: nodes.length, + fieldNames: nodes.map(getField), + + oldParentPath: oldParentPath, + newParentPath: newParentPath, + oldIndex: oldIndex, + newIndex: newIndex, + + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: null, // This is a hack, value will be filled in during undo + + oldSelection: editor.drag.oldSelection, + newSelection: editor.getDomSelection() + }); } document.body.style.cursor = editor.drag.oldCursor; @@ -7005,6 +7543,7 @@ return /******/ (function(modules) { // webpackBootstrap */ Node.prototype.updateValue = function (value) { this.value = value; + this.previousValue = value; this.updateDom(); }; @@ -7014,6 +7553,7 @@ return /******/ (function(modules) { // webpackBootstrap */ Node.prototype.updateField = function (field) { this.field = field; + this.previousField = field; this.updateDom(); }; @@ -7553,7 +8093,12 @@ return /******/ (function(modules) { // webpackBootstrap var prevNode, nextNode, nextDom, nextDom2; var editable = this.editor.options.mode === 'tree'; var oldSelection; - var oldBeforeNode; + var oldNextNode; + var oldParent; + var oldIndexRedo; + var newIndexRedo; + var oldParentPathRedo; + var newParentPathRedo; var nodes; var multiselection; var selectedNodes = this.editor.multiselection.nodes.length > 0 @@ -7663,17 +8208,33 @@ return /******/ (function(modules) { // webpackBootstrap !(lastNode.parent.childs.length == 1) && nextNode2 && nextNode2.parent) { oldSelection = this.editor.getDomSelection(); - oldBeforeNode = lastNode.nextSibling(); + oldParent = firstNode.parent; + oldNextNode = oldParent.childs[lastNode.getIndex() + 1] || oldParent.append; + oldIndexRedo = firstNode.getIndex(); + newIndexRedo = nextNode2.getIndex(); + oldParentPathRedo = oldParent.getInternalPath(); + newParentPathRedo = nextNode2.parent.getInternalPath(); selectedNodes.forEach(function (node) { nextNode2.parent.moveBefore(node, nextNode2); }); this.focus(Node.focusElement || this._getElementName(target)); + this.editor._onAction('moveNodes', { - nodes: selectedNodes, - oldBeforeNode: oldBeforeNode, - newBeforeNode: nextNode2, + count: selectedNodes.length, + fieldNames: selectedNodes.map(getField), + + oldParentPath: oldParent.getInternalPath(), + newParentPath: firstNode.parent.getInternalPath(), + oldIndex: oldNextNode.getIndex(), + newIndex: firstNode.getIndex(), + + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: newParentPathRedo, + oldSelection: oldSelection, newSelection: this.editor.getDomSelection() }); @@ -7710,7 +8271,12 @@ return /******/ (function(modules) { // webpackBootstrap prevNode = firstNode._previousNode(); if (prevNode && prevNode.parent) { oldSelection = this.editor.getDomSelection(); - oldBeforeNode = lastNode.nextSibling(); + oldParent = firstNode.parent; + oldNextNode = oldParent.childs[lastNode.getIndex() + 1] || oldParent.append; + oldIndexRedo = firstNode.getIndex(); + newIndexRedo = prevNode.getIndex(); + oldParentPathRedo = oldParent.getInternalPath(); + newParentPathRedo = prevNode.parent.getInternalPath(); selectedNodes.forEach(function (node) { prevNode.parent.moveBefore(node, prevNode); @@ -7718,9 +8284,19 @@ return /******/ (function(modules) { // webpackBootstrap this.focus(Node.focusElement || this._getElementName(target)); this.editor._onAction('moveNodes', { - nodes: selectedNodes, - oldBeforeNode: oldBeforeNode, - newBeforeNode: prevNode, + count: selectedNodes.length, + fieldNames: selectedNodes.map(getField), + + oldParentPath: oldParent.getInternalPath(), + newParentPath: firstNode.parent.getInternalPath(), + oldIndex: oldNextNode.getIndex(), + newIndex: firstNode.getIndex(), + + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: newParentPathRedo, + oldSelection: oldSelection, newSelection: this.editor.getDomSelection() }); @@ -7744,7 +8320,12 @@ return /******/ (function(modules) { // webpackBootstrap prevNode = Node.getNodeFromTarget(prevDom); if (prevNode && prevNode.parent && !prevNode.isVisible()) { oldSelection = this.editor.getDomSelection(); - oldBeforeNode = lastNode.nextSibling(); + oldParent = firstNode.parent; + oldNextNode = oldParent.childs[lastNode.getIndex() + 1] || oldParent.append; + oldIndexRedo = firstNode.getIndex(); + newIndexRedo = prevNode.getIndex(); + oldParentPathRedo = oldParent.getInternalPath(); + newParentPathRedo = prevNode.parent.getInternalPath(); selectedNodes.forEach(function (node) { prevNode.parent.moveBefore(node, prevNode); @@ -7752,9 +8333,19 @@ return /******/ (function(modules) { // webpackBootstrap this.focus(Node.focusElement || this._getElementName(target)); this.editor._onAction('moveNodes', { - nodes: selectedNodes, - oldBeforeNode: oldBeforeNode, - newBeforeNode: prevNode, + count: selectedNodes.length, + fieldNames: selectedNodes.map(getField), + + oldParentPath: oldParent.getInternalPath(), + newParentPath: firstNode.parent.getInternalPath(), + oldIndex: oldNextNode.getIndex(), + newIndex: firstNode.getIndex(), + + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: newParentPathRedo, + oldSelection: oldSelection, newSelection: this.editor.getDomSelection() }); @@ -7807,7 +8398,12 @@ return /******/ (function(modules) { // webpackBootstrap var nextNode2 = nextNode && (nextNode._nextNode() || nextNode.parent.append); if (nextNode2 && nextNode2.parent) { oldSelection = this.editor.getDomSelection(); - oldBeforeNode = lastNode.nextSibling(); + oldParent = firstNode.parent; + oldNextNode = oldParent.childs[lastNode.getIndex() + 1] || oldParent.append; + oldIndexRedo = firstNode.getIndex(); + newIndexRedo = nextNode2.getIndex(); + oldParentPathRedo = oldParent.getInternalPath(); + newParentPathRedo = nextNode2.parent.getInternalPath(); selectedNodes.forEach(function (node) { nextNode2.parent.moveBefore(node, nextNode2); @@ -7815,9 +8411,16 @@ return /******/ (function(modules) { // webpackBootstrap this.focus(Node.focusElement || this._getElementName(target)); this.editor._onAction('moveNodes', { - nodes: selectedNodes, - oldBeforeNode: oldBeforeNode, - newBeforeNode: nextNode2, + count: selectedNodes.length, + fieldNames: selectedNodes.map(getField), + oldParentPath: oldParent.getInternalPath(), + newParentPath: firstNode.parent.getInternalPath(), + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: newParentPathRedo, + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldIndex: oldNextNode.getIndex(), + newIndex: firstNode.getIndex(), oldSelection: oldSelection, newSelection: this.editor.getDomSelection() }); @@ -7881,6 +8484,9 @@ return /******/ (function(modules) { // webpackBootstrap Node.blurNodes(nodes); var newSelection = editor.getDomSelection(); + // store the paths before removing them (needed for history) + var paths = nodes.map(getInternalPath); + // remove the nodes nodes.forEach(function (node) { node.parent._remove(node); @@ -7888,8 +8494,9 @@ return /******/ (function(modules) { // webpackBootstrap // store history action editor._onAction('removeNodes', { - nodes: nodes.slice(0), // store a copy of the array! - parent: parent, + nodes: nodes, + paths: paths, + parentPath: parent.getInternalPath(), index: firstIndex, oldSelection: oldSelection, newSelection: newSelection @@ -7935,9 +8542,10 @@ return /******/ (function(modules) { // webpackBootstrap var newSelection = editor.getDomSelection(); editor._onAction('duplicateNodes', { - afterNode: lastNode, - nodes: clones, - parent: parent, + paths: nodes.map(getInternalPath), + clonePaths: clones.map(getInternalPath), + afterPath: lastNode.getInternalPath(), + parentPath: parent.getInternalPath(), oldSelection: oldSelection, newSelection: newSelection }); @@ -7960,6 +8568,9 @@ return /******/ (function(modules) { // webpackBootstrap type: type }); newNode.expand(true); + + var beforePath = this.getInternalPath(); + this.parent.insertBefore(newNode, this); this.editor.highlighter.unhighlight(); newNode.focus('field'); @@ -7967,8 +8578,9 @@ return /******/ (function(modules) { // webpackBootstrap this.editor._onAction('insertBeforeNodes', { nodes: [newNode], - beforeNode: this, - parent: this.parent, + paths: [newNode.getInternalPath()], + beforePath: beforePath, + parentPath: this.parent.getInternalPath(), oldSelection: oldSelection, newSelection: newSelection }); @@ -7997,8 +8609,9 @@ return /******/ (function(modules) { // webpackBootstrap this.editor._onAction('insertAfterNodes', { nodes: [newNode], - afterNode: this, - parent: this.parent, + paths: [newNode.getInternalPath()], + afterPath: this.getInternalPath(), + parentPath: this.parent.getInternalPath(), oldSelection: oldSelection, newSelection: newSelection }); @@ -8027,7 +8640,8 @@ return /******/ (function(modules) { // webpackBootstrap this.editor._onAction('appendNodes', { nodes: [newNode], - parent: this.parent, + paths: [newNode.getInternalPath()], + parentPath: this.parent.getInternalPath(), oldSelection: oldSelection, newSelection: newSelection }); @@ -8046,7 +8660,7 @@ return /******/ (function(modules) { // webpackBootstrap var newSelection = this.editor.getDomSelection(); this.editor._onAction('changeType', { - node: this, + path: this.getInternalPath(), oldType: oldType, newType: newType, oldSelection: oldSelection, @@ -8109,7 +8723,7 @@ return /******/ (function(modules) { // webpackBootstrap this._updateDomIndexes(); this.editor._onAction('sort', { - node: this, + path: this.getInternalPath(), oldChilds: oldChilds, newChilds: this.childs }); @@ -8117,6 +8731,69 @@ return /******/ (function(modules) { // webpackBootstrap this.showChilds(); }; + /** + * Replace the value of the node, keep it's state + * @param {*} newValue + */ + Node.prototype.update = function (newValue) { + var oldValue = this.getInternalValue(); + + this.setValue(newValue); + + this.editor._onAction('transform', { + path: this.getInternalPath(), + oldValue: oldValue, + newValue: this.getInternalValue() + }); + }; + + /** + * Remove this node from the DOM + * @returns {{table: Element, nextTr?: Element}} + * Returns the DOM elements that which be used to attach the node + * to the DOM again, see _attachToDom. + * @private + */ + Node.prototype._detachFromDom = function () { + var table = this.dom.tr ? this.dom.tr.parentNode : undefined; + var lastTr; + if (this.expanded) { + lastTr = this.getAppendDom(); + } + else { + lastTr = this.getDom(); + } + var nextTr = (lastTr && lastTr.parentNode) ? lastTr.nextSibling : undefined; + + this.hide({ resetVisibleChilds: false }); + + return { + table: table, + nextTr: nextTr + } + }; + + /** + * Attach this node to the DOM again + * @param {{table: Element, nextTr?: Element}} domAnchor + * The DOM elements returned by _detachFromDom. + * @private + */ + Node.prototype._attachToDom = function (domAnchor) { + if (domAnchor.table) { + if (domAnchor.nextTr) { + domAnchor.table.insertBefore(this.getDom(), domAnchor.nextTr); + } + else { + domAnchor.table.appendChild(this.getDom()); + } + } + + if (this.expanded) { + this.showChilds(); + } + }; + /** * Transform the node given a JMESPath query. * @param {String} query JMESPath query to apply @@ -8129,27 +8806,17 @@ return /******/ (function(modules) { // webpackBootstrap this.hideChilds(); // sorting is faster when the childs are not attached to the dom - // copy the childs array (the old one will be kept for an undo action - var oldType = this.type; - var oldChilds = this.childs; - this.childs = this.childs.concat(); - try { // apply the JMESPath query - var oldValue = this.getValue(); + var oldValue = this.getInternalValue(); var newValue = jmespath.search(oldValue, query); this.setValue(newValue); this.editor._onAction('transform', { - node: this, - oldType: oldType, - newType: this.type, + path: this.getInternalPath(), oldValue: oldValue, - newValue: newValue, - oldChilds: oldChilds, - newChilds: this.childs - // TODO: use oldChilds/newChilds in history or clean it up + newValue: this.getInternalValue() }); this.showChilds(); @@ -8858,6 +9525,16 @@ return /******/ (function(modules) { // webpackBootstrap return escaped; }; + // helper function to get the internal path of a node + function getInternalPath (node) { + return node.getInternalPath(); + } + + // helper function to get the field of a node + function getField (node) { + return node.getField(); + } + // TODO: find a nicer solution to resolve this circular dependency between Node and AppendNode // idea: introduce properties .isAppendNode and .isNode and use that instead of instanceof AppendNode checks var AppendNode = appendNodeFactory(Node); @@ -10596,8 +11273,8 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(4); - var ContextMenu = __webpack_require__(7); + var util = __webpack_require__(6); + var ContextMenu = __webpack_require__(5); var translate = __webpack_require__(8).translate; /** @@ -10671,6 +11348,22 @@ return /******/ (function(modules) { // webpackBootstrap return trAppend; }; + /** + * Append node doesn't have a path + * @returns {null} + */ + AppendNode.prototype.getPath = function() { + return null; + }; + + /** + * Append node doesn't have an index + * @returns {null} + */ + AppendNode.prototype.getIndex = function() { + return null; + }; + /** * Update the HTML dom of the Node */ @@ -11727,7 +12420,7 @@ return /******/ (function(modules) { // webpackBootstrap var picoModal = __webpack_require__(16); var Selectr = __webpack_require__(18); var translate = __webpack_require__(8).translate; - var debounce = __webpack_require__(4).debounce; + var debounce = __webpack_require__(6).debounce; var MAX_PREVIEW_LINES = 100; @@ -14211,7 +14904,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var ContextMenu = __webpack_require__(7); + var ContextMenu = __webpack_require__(5); /** * Create a select box to be used in the editor menu's, which allows to switch mode @@ -14721,7 +15414,7 @@ return /******/ (function(modules) { // webpackBootstrap var ace = __webpack_require__(22); var ModeSwitcher = __webpack_require__(19); - var util = __webpack_require__(4); + var util = __webpack_require__(6); // create a mixin with the functions for text mode var textmode = {}; @@ -14739,8 +15432,12 @@ return /******/ (function(modules) { // webpackBootstrap * or "code". * {Number} indentation Number of indentation * spaces. 2 by default. - * {function} onChange Callback method - * triggered on change + * {function} onChange Callback method triggered on change. + * Does not pass the changed contents. + * {function} onChangeText Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as stringified JSON. * {function} onModeChange Callback method * triggered after setMode * {function} onEditable Determine if textarea is readOnly @@ -15037,6 +15734,10 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ textmode._onChange = function () { + if (this.onChangeDisabled) { + return; + } + // validate JSON schema (if configured) this._debouncedValidate(); @@ -15049,6 +15750,16 @@ return /******/ (function(modules) { // webpackBootstrap console.error('Error in onChange callback: ', err); } } + + // trigger the onChangeText callback + if (this.options.onChangeText) { + try { + this.options.onChangeText(this.getText()); + } + catch (err) { + console.error('Error in onChangeText callback: ', err); + } + } }; /** @@ -15262,15 +15973,23 @@ return /******/ (function(modules) { // webpackBootstrap /** * Set json data in the formatter - * @param {Object} json + * @param {*} json */ textmode.set = function(json) { this.setText(JSON.stringify(json, null, this.indentation)); }; + /** + * Update data. Same as calling `set` in text/code mode. + * @param {*} json + */ + textmode.update = function(json) { + this.updateText(JSON.stringify(json, null, this.indentation)); + }; + /** * Get json data from the formatter - * @return {Object} json + * @return {*} json */ textmode.get = function() { var text = this.getText(); @@ -15323,17 +16042,31 @@ return /******/ (function(modules) { // webpackBootstrap } if (this.aceEditor) { // prevent emitting onChange events while setting new text - var originalOnChange = this.options.onChange; - this.options.onChange = null; + this.onChangeDisabled = true; this.aceEditor.setValue(text, -1); - this.options.onChange = originalOnChange; + this.onChangeDisabled = false; } // validate JSON schema this.validate(); }; + /** + * Update the text contents + * @param {string} jsonText + */ + textmode.updateText = function(jsonText) { + // don't update if there are no changes + if (this.getText() === jsonText) { + return; + } + + this.onChangeDisabled = true; // don't fire an onChange event + this.setText(jsonText); + this.onChangeDisabled = false; + }; + /** * Validate current JSON object against the configured JSON schema * Throws an exception when no JSON schema is configured @@ -15518,19 +16251,28 @@ return /******/ (function(modules) { // webpackBootstrap } }; + function load () { + try { + this.format() + } + catch (err) { + // in case of an error, just move on, failing formatting is not a big deal + } + } + // define modes module.exports = [ { mode: 'text', mixin: textmode, data: 'text', - load: textmode.format + load: load }, { mode: 'code', mixin: textmode, data: 'text', - load: textmode.format + load: load } ]; diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index 1ceab56..3f3d143 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","showSortModal","showTransformModal","translate","setLanguages","setLanguage","DEFAULT_MODAL_ANCHOR","document","body","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","navigationBar","onSelectionChange","hasOwnProperty","debounce","bind","languages","language","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","input","scrollableContent","querySelector","menu","collapse","tbody","getDom","treePath","reset","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","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","sort","anchor","modalAnchor","transform","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","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","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","Array","first","expandPathToNode","getSelection","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","onClose","items","click","onDuplicate","onRemove","close","selection1","selection2","serialize","setSelection","_getNodeIntsncesByRange","startNode","endNode","path","findNodeByPath","getIndex","current","nextSibling","getNodesByRange","serializableNodes","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","oldChilds","updateIndexes","showChilds","newChilds","setValue","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","_positionForIndex","textTillIndex","row","column","lastIndexOf","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","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","MAX_SEARCH_RESULTS","Infinity","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","ok","removeText","removeTitle","removeField","selectNode","showAll","showMore","showMoreStatus","sortTitle","sortTitleShort","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","string","transformTitle","transformTitleShort","transformQueryTitle","transformWizardLabel","transformWizardFilter","transformWizardSortBy","transformWizardSelectFields","transformQueryLabel","transformPreviewLabel","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","l","lang","langFound","assign","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","jmespath","naturalSort","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","unshift","shift","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","getField","_getDomField","childValue","visible","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","trTemp","AppendNode","lastVisibleNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","removedNode","_remove","lastTr","clearDom","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","_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","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","blurNodes","clones","newNode","_onAppend","_onChangeType","order","nodeA","getNestedChild","nodeB","valueA","valueB","query","findChildByProperty","getChildPaths","includeObjects","pathsMap","_getChildPaths","rootPath","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","isObject","strictDeepEqual","second","keysSeen","key2","isFalse","objValues","values","isAlpha","isNum","isAlphaNum","Lexer","Parser","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","types","TYPE_NUMBER","avg","_functionAvg","TYPE_ARRAY_NUMBER","ceil","_functionCeil","contains","_functionContains","TYPE_STRING","TYPE_ARRAY","TYPE_ANY","ends_with","_functionEndsWith","floor","_functionFloor","_functionLength","TYPE_OBJECT","_functionMap","TYPE_EXPREF","_functionMax","TYPE_ARRAY_STRING","merge","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","stream","tokenize","expression","trimLeft","basicTokens",".","*","(",")","@","operatorStartToken","<",">","=","!","skipChars"," ","tokens","_current","identifier","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","parseInt","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","_loadTokens","ast","_lookahead","t","_lookaheadToken","rbp","leftToken","_advance","nud","currentToken","led","number","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","tokenType","_parseSliceExpression","indexExpr","parts","comparator","lookahead","expressions","keyToken","keyName","pairs","identifierTypes","visit","collected","sliceParams","computed","computeSliceParams","stop","step","base","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","signature","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","actual","argValue","subtype","searchStr","suffix","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","elements","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","typeName","sortedArray","requiredType","that","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","x","msg","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","y","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","picoModal","overlayClass","modalClass","afterCreate","modal","setDirection","form","modalElem","paths","sortedBy","getAttribute","pathArray","onsubmit","afterClose","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","isNode","nodeType","isString","observable","callbacks","watch","trigger","detail","unprevented","isHidden","getComputedStyle","Elem","buildOverlay","getOption","make","clazz","stylize","zIndex","opacity","background","onClick","buildModal","autoinc","boxSizing","-ms-transform","-moz-transform","-webkit-transform","-o-transform","backgroundColor","borderRadius","attr","anyAncestor","buildClose","border","fontSize","textAlign","lineHeight","buildElemAccessor","builder","manageFocus","iface","isEnabled","matches","selector","msMatchesSelector","webkitMatchesSelector","canFocus","hasAttribute","firstFocusable","getElementsByTagName","lastFocusable","focused","beforeShow","activeElement","afterShow","focusable","tabKey","last","manageBodyOverflow","origOverflow","tag","styles","setAttribute","predicate","escapeKey","documentElement","keycode","opt","defaultValue","forceClose","shadowElem","afterCloseEvent","beforeCloseEvent","returnIface","build","built","overlay","afterCreateEvent","beforeShowEvent","afterShowEvent","closeElem","overlayElem","buildDom","opts","beforeClose","preprocessPath","generateQueryFromWizard","filterField","filterRelation","filterValue","field1","value1","sortField","sortOrder","field2","selectFields","debouncedUpdatePreview","updatePreview","transformed","MAX_PREVIEW_LINES","preview","wizard","fontStyle","formattedPath","filterOption","sortOption","allPaths","selectrFilterField","Selectr","defaultSelected","clearable","allowDeselect","placeholder","selectrFilterRelation","selectrSortField","selectrSortOrder","selectrSelectFields","multiple","on","isset","appendItem","custom","removeClass","textContent","defaultConfig","searchable","sortSelected","closeOnScroll","nativeDropdown","taggable","tagPlaceholder","Events","_events","off","emit","props","src","each","d","hasClass","classList","addClass","trim","remove","closest","isInt","val","isFinite","g","h","rect","w","includes","truncate","render","createDocumentFragment","pagination","pages","pageIndex","customOption","childElementCount","navIndex","dismiss","opened","createItem","renderOption","class","role","aria-selected","requiresPagination","customClass","mobileDevice","tabIndex","aria-expanded","label","dropdown","aria-hidden","notice","tags","selectedValues","getSelectedProperties","selectedIndexes","selectClear","tagIndex","autocorrect","autocapitalize","tagSeperators","inputClear","inputContainer","group","optgroup","Option","paginate","placeEl","setPlaceholder","disable","navigate","navigating","prevEl","searching","lastElementChild","firstElementChild","optsRect","addTag","docFrag","customSelected","renderSelection","btn","$2","ac","bc","ax","by","nn","tg","removeTag","total","page","clearSearch","rendered","originalType","originalIndex","originalOptionCount","bindEvents","update","selectedIndex","getSelected","querySelectorAll","events","changedTouches","toggle","getChangedOptions","added","removed","indexes","changes","k","setMessage","invert","paginateItems","selectedValue","replaceChild","maxSelections","o","force","selIndex","valIndex","toObject","toJson","checkDuplicate","dupe","getOptionByIndex","getOptionByValue","removeAll","removeMessage","firstEl","enable","serialise","v","rt","oh","wh","innerHeight","isInverted","onSwitch","availableModes","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","whiteSpace","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getPropertyValue","marginTop","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","distanceToTop","distanceToBottom","divRow","move","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","format","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","aceSelection","getRange","lead","getSelectionLead","setTextSelection","endPos","setSelectionRange","setRange","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","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","$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","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","MAX_COUNT","getReadOnly","replaceAndFindNext","active","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","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","onChangeJSON","mode","modes","indexOf","Object","keys","forEach","option","VALID_OPTIONS","arguments","length","_create","Ajv","e","code","err","treemode","textmode","prototype","DEBOUNCE_INTERVAL","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","create","data","extend","oldMode","config","asText","clear","mixin","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","showSortModal","showTransformModal","translate","setLanguages","setLanguage","DEFAULT_MODAL_ANCHOR","document","body","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","navigationBar","onSelectionChange","hasOwnProperty","debounce","bind","languages","language","Function","content","table","params","field","value","_setRoot","expand","appendChild","update","deepEqual","getSelection","onChangeDisabled","isEmpty","forceSearch","start","end","startNode","findNodeByPath","path","endNode","setSelection","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateText","updateField","focus","input","scrollableContent","querySelector","menu","hide","treePath","reset","tbody","getDom","text","results","expandAll","collapseAll","collapse","_onAction","action","add","_onChange","onChangeText","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","setDomSelection","paths","findNodeByInternalPath","select","domName","range","assign","setSelectionOffset","getDomSelection","find","getSelectionOffset","nodeName","getInternalPath","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","sort","anchor","modalAnchor","transform","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","index","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","Array","slice","first","expandPathToNode","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","onClose","items","click","onDuplicate","onRemove","close","selection1","selection2","serialize","_getNodeInstancesByRange","getIndex","current","nextSibling","getNodesByRange","serializableNodes","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","parentPath","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","beforeNode","beforePath","insertBefore","insertAfterNodes","afterNode","afterPath","insertAfter","removeNodes","append","duplicateNodes","clonePaths","clone","moveNodes","oldParentNode","oldParentPath","newParentNode","newParentPath","oldBeforeNode","oldIndex","newIndex","count","fieldNames","moveBefore","newParentPathRedo","oldParentPathRedo","newBeforeNode","newIndexRedo","oldIndexRedo","hideChilds","oldChilds","updateIndexes","showChilds","newChilds","setInternalValue","timestamp","Date","splice","oldSelection","newSelection","timeout","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","elem","searchFieldActive","searchValueActive","_clearDelay","MAX_SEARCH_RESULTS","Infinity","activeResultIndex","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","item","separator","li","domItem","button","submenu","divIcon","divText","createTextNode","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","style","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","getBoundingClientRect","parentRect","contentRect","leftGap","left","topGap","anchorHeight","offsetHeight","rootNode","firstChild","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","childsHeight","childNodes","targetIndex","prevButton","nextButton","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","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","iMax","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","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","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","el","_positionForIndex","textTillIndex","row","column","lastIndexOf","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","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","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","_lang","_locales","_defs","en","array","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","ok","removeText","removeTitle","removeField","selectNode","showAll","showMore","showMoreStatus","sortTitle","sortTitleShort","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","string","transformTitle","transformTitleShort","transformQueryTitle","transformWizardLabel","transformWizardFilter","transformWizardSortBy","transformWizardSelectFields","transformQueryLabel","transformPreviewLabel","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","l","lang","langFound","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","internalValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","getField","jmespath","naturalSort","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","unshift","internalPath","childIndex","shift","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","_getDomField","childValue","visible","previousChilds","_getType","childField","findChildByProperty","sortObjectKeys","recreateDom","previousValue","domAnchor","_detachFromDom","clearDom","_attachToDom","arr","_getDomValue","getInternalValue","getLevel","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","trTemp","AppendNode","lastVisibleNode","toLowerCase","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","removedNode","_remove","_stringCast","props","propCount","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","cursor","oldPaths","oldParent","oldNextNode","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","sameParent","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_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","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","blurNodes","clones","newNode","_onAppend","_onChangeType","order","nodeA","getNestedChild","nodeB","valueA","valueB","lastTr","query","getChildPaths","includeObjects","pathsMap","_getChildPaths","rootPath","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","isNaN","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","isObject","strictDeepEqual","second","keysSeen","key2","isFalse","objValues","values","isAlpha","isNum","isAlphaNum","Lexer","Parser","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","types","TYPE_NUMBER","avg","_functionAvg","TYPE_ARRAY_NUMBER","ceil","_functionCeil","contains","_functionContains","TYPE_STRING","TYPE_ARRAY","TYPE_ANY","ends_with","_functionEndsWith","floor","_functionFloor","_functionLength","TYPE_OBJECT","_functionMap","TYPE_EXPREF","_functionMax","TYPE_ARRAY_STRING","merge","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","stream","tokenize","expression","trimLeft","basicTokens",".","*","(",")","@","operatorStartToken","<",">","=","!","skipChars"," ","tokens","_current","identifier","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","parseInt","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","_loadTokens","ast","_lookahead","t","_lookaheadToken","rbp","leftToken","_advance","nud","currentToken","led","number","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","tokenType","_parseSliceExpression","indexExpr","parts","comparator","lookahead","expressions","keyToken","keyName","pairs","identifierTypes","visit","collected","sliceParams","computed","computeSliceParams","stop","step","base","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","signature","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","actual","argValue","subtype","searchStr","suffix","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","elements","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","typeName","sortedArray","requiredType","that","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","x","msg","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","y","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","picoModal","overlayClass","modalClass","afterCreate","modal","setDirection","form","modalElem","sortedBy","getAttribute","pathArray","onsubmit","afterClose","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","isNode","nodeType","isString","observable","callbacks","watch","trigger","detail","unprevented","isHidden","getComputedStyle","Elem","buildOverlay","getOption","make","clazz","stylize","zIndex","opacity","background","onClick","buildModal","autoinc","boxSizing","-ms-transform","-moz-transform","-webkit-transform","-o-transform","backgroundColor","borderRadius","attr","anyAncestor","buildClose","border","fontSize","textAlign","lineHeight","buildElemAccessor","builder","manageFocus","iface","isEnabled","matches","selector","msMatchesSelector","webkitMatchesSelector","canFocus","hasAttribute","firstFocusable","getElementsByTagName","lastFocusable","focused","beforeShow","activeElement","afterShow","focusable","tabKey","last","manageBodyOverflow","origOverflow","tag","styles","setAttribute","predicate","escapeKey","documentElement","keycode","opt","defaultValue","forceClose","shadowElem","afterCloseEvent","beforeCloseEvent","returnIface","build","built","overlay","afterCreateEvent","beforeShowEvent","afterShowEvent","closeElem","overlayElem","buildDom","opts","beforeClose","preprocessPath","generateQueryFromWizard","filterField","filterRelation","filterValue","field1","value1","sortField","sortOrder","field2","selectFields","debouncedUpdatePreview","updatePreview","transformed","MAX_PREVIEW_LINES","preview","wizard","fontStyle","formattedPath","filterOption","sortOption","allPaths","selectrFilterField","Selectr","defaultSelected","clearable","allowDeselect","placeholder","selectrFilterRelation","selectrSortField","selectrSortOrder","selectrSelectFields","multiple","on","isset","appendItem","custom","removeClass","textContent","defaultConfig","searchable","sortSelected","closeOnScroll","nativeDropdown","taggable","tagPlaceholder","Events","_events","off","emit","src","each","d","hasClass","classList","addClass","trim","remove","closest","isInt","val","isFinite","g","h","rect","w","includes","truncate","render","createDocumentFragment","pagination","pages","pageIndex","customOption","childElementCount","navIndex","dismiss","opened","createItem","renderOption","class","role","aria-selected","requiresPagination","customClass","mobileDevice","tabIndex","aria-expanded","label","dropdown","aria-hidden","notice","tags","selectedValues","getSelectedProperties","selectedIndexes","selectClear","tagIndex","autocorrect","autocapitalize","tagSeperators","inputClear","inputContainer","group","optgroup","Option","paginate","placeEl","setPlaceholder","disable","navigate","navigating","prevEl","searching","lastElementChild","firstElementChild","optsRect","addTag","docFrag","customSelected","renderSelection","btn","$2","ac","bc","ax","by","nn","tg","removeTag","total","page","clearSearch","rendered","originalType","originalIndex","originalOptionCount","bindEvents","selectedIndex","getSelected","querySelectorAll","events","changedTouches","toggle","getChangedOptions","added","removed","indexes","changes","k","setMessage","invert","paginateItems","selectedValue","replaceChild","maxSelections","o","force","selIndex","valIndex","toObject","toJson","checkDuplicate","dupe","getOptionByIndex","getOptionByValue","removeAll","removeMessage","firstEl","enable","serialise","v","rt","oh","wh","innerHeight","isInverted","onSwitch","availableModes","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","whiteSpace","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getPropertyValue","marginTop","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","realInnerText","clientWidth","ix","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","distanceToTop","distanceToBottom","divRow","move","wasDropDownHidden","format","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","sanitizedText","resize","validationErrors","marginBottom","paddingBottom","doValidate","hidden","aceSelection","getRange","lead","getSelectionLead","setTextSelection","endPos","setSelectionRange","setRange","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","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","$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","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","MAX_COUNT","getReadOnly","replaceAndFindNext","active","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","Search","isDark","cssClass","cssText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,IACQ,kBAAXG,SAAyBA,OAAOC,IAC9CD,UAAWH,GACe,gBAAZC,SACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,KACpBK,KAAM,WACT,MAAgB,UAAUC,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUP,OAGnC,IAAIC,GAASO,EAAiBD,IAC7BP,WACAS,GAAIF,EACJG,QAAQ,EAUT,OANAL,GAAQE,GAAUI,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOS,QAAS,EAGTT,EAAOD,QAvBf,GAAIQ,KAqCJ,OATAF,GAAoBM,EAAIP,EAGxBC,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,GAGjBR,EAAoB,KAK/B,SAASL,EAAQD,EAASM,GAE/B,YAwEA,SAASS,GAAYC,EAAWC,EAASC,GACvC,KAAMd,eAAgBW,IACpB,KAAM,IAAII,OAAM,+CAIlB,IAAIC,GAAYC,EAAKC,4BACrB,KAAkB,GAAdF,GAAmBA,EAAY,EACjC,KAAM,IAAID,OAAM,iGAIdF,KAEEA,EAAQM,QACVC,QAAQC,KAAK,gDACbR,EAAQS,QAAUT,EAAQM,YACnBN,GAAQM,OAEbN,EAAQU,SACVH,QAAQC,KAAK,kDACbR,EAAQW,SAAWX,EAAQU,aACpBV,GAAQU,QAEbV,EAAQY,WACVL,QAAQC,KAAK,sDACbR,EAAQa,WAAab,EAAQY,eACtBZ,GAAQY,UAIbZ,EAAQc,eACW,SAAjBd,EAAQe,MAAoC,SAAjBf,EAAQe,MAClCf,EAAQgB,SAA6C,IAAnChB,EAAQgB,MAAMC,QAAQ,UAAqD,IAAnCjB,EAAQgB,MAAMC,QAAQ,WACnFV,QAAQC,KAAK,iHAMbR,GACFkB,OAAOC,KAAKnB,GAASoB,QAAQ,SAAUC,IACa,IAA9CvB,EAAWwB,cAAcL,QAAQI,IACnCd,QAAQC,KAAK,mBAAqBa,EAAS,qCAM/CE,UAAUC,QACZrC,KAAKsC,QAAQ1B,EAAWC,EAASC,GAxHrC,GAAIyB,EACJ,KACEA,EAAMrC,GAAsB,WAAkC,GAAIsC,GAAI,GAAIzB,OAAM,2BAA4D,MAA7ByB,GAAEC,KAAO,mBAA0BD,MAEpJ,MAAOE,IAIP,GAAIC,GAAWzC,EAAoB,GAC/B0C,EAAW1C,EAAoB,IAC/Be,EAAOf,EAAoB,EAiI/BS,GAAWkB,SAGXlB,EAAWkC,UAAUC,kBAAoB,IAEzCnC,EAAWwB,eACT,MAAO,SAAU,aAAa,YAC9B,MAAO,QAAQ,eACf,WAAY,eAAgB,eAC5B,aAAc,UAAW,eAAgB,oBAAqB,wBAC9D,gBAAiB,UAAW,SAAU,OAAQ,QAAS,OAAQ,cAC/D,iBAAkB,gBAAiB,YAAa,YAAa,YAU/DxB,EAAWkC,UAAUP,QAAU,SAAU1B,EAAWC,EAASC,GAC3Dd,KAAKY,UAAYA,EACjBZ,KAAKa,QAAUA,MACfb,KAAKc,KAAOA,KAEZ,IAAIc,GAAO5B,KAAKa,QAAQe,MAAS5B,KAAKa,QAAQgB,OAAS7B,KAAKa,QAAQgB,MAAM,IAAO,MACjF7B,MAAK+C,QAAQnB,IAMfjB,EAAWkC,UAAUG,QAAU,aAM/BrC,EAAWkC,UAAUI,IAAM,SAAUnC,GACnCd,KAAKc,KAAOA,GAOdH,EAAWkC,UAAUK,IAAM,WACzB,MAAOlD,MAAKc,MAOdH,EAAWkC,UAAUM,QAAU,SAAUC,GACvCpD,KAAKc,KAAOG,EAAKoC,MAAMD,IAOzBzC,EAAWkC,UAAUS,QAAU,WAC7B,MAAOC,MAAKC,UAAUxD,KAAKc,OAO7BH,EAAWkC,UAAUY,QAAU,SAAUC,GAClC1D,KAAKa,UACRb,KAAKa,YAEPb,KAAKa,QAAQ6C,KAAOA,GAOtB/C,EAAWkC,UAAUc,QAAU,WAC7B,MAAO3D,MAAKa,SAAWb,KAAKa,QAAQ6C,MAStC/C,EAAWkC,UAAUE,QAAU,SAAUnB,GAEvC,GAAIA,IAAS5B,KAAKa,QAAQe,OAAQ5B,KAAK4D,OAAvC,CAIA,GAGIC,GACAH,EAJA9C,EAAYZ,KAAKY,UACjBC,EAAUI,EAAK6C,UAAW9D,KAAKa,SAC/BkD,EAAUlD,EAAQe,IAItBf,GAAQe,KAAOA,CACf,IAAIoC,GAASrD,EAAWkB,MAAMD,EAC9B,KAAIoC,EAqCF,KAAM,IAAIjD,OAAM,iBAAmBF,EAAQe,KAAO,IApClD,KACE,GAAIqC,GAAyB,QAAfD,EAAOH,IAYrB,IAXAH,EAAO1D,KAAK2D,UACZE,EAAO7D,KAAKiE,EAAS,UAAY,SAEjCjE,KAAKgD,UACL/B,EAAKiD,MAAMlE,MACXiB,EAAK6C,OAAO9D,KAAMgE,EAAOG,OACzBnE,KAAK4D,OAAOhD,EAAWC,GAEvBb,KAAKyD,QAAQC,GACb1D,KAAKiE,EAAS,UAAY,OAAOJ,GAEN,kBAAhBG,GAAOI,KAChB,IACEJ,EAAOI,KAAK7D,KAAKP,MAEnB,MAAO0C,GACLtB,QAAQD,MAAMuB,GAIlB,GAAoC,kBAAzB7B,GAAQwD,cAA+BzC,IAASmC,EACzD,IACElD,EAAQwD,aAAazC,EAAMmC,GAE7B,MAAOrB,GACLtB,QAAQD,MAAMuB,IAIpB,MAAOA,GACL1C,KAAKsE,SAAS5B,MAYpB/B,EAAWkC,UAAU0B,QAAU,WAC7B,MAAOvE,MAAKa,QAAQe,MAStBjB,EAAWkC,UAAUyB,SAAW,SAAS5B,GACvC,IAAI1C,KAAKa,SAA2C,kBAAzBb,MAAKa,QAAQS,QAItC,KAAMoB,EAHN1C,MAAKa,QAAQS,QAAQoB,IAczB/B,EAAWkC,UAAU2B,UAAY,SAAUC,EAAQC,GAEjD,GAAID,EAAQ,CACV,GAAIE,EACJ,KAEEA,EAAM3E,KAAKa,QAAQ8D,KAAOpC,GAAMqC,WAAW,EAAMC,SAAS,IAG5D,MAAOnC,GACLtB,QAAQC,KAAK,iMAGf,GAAIsD,EAAK,CACP,GAAGD,EAAY,CACb,IAAK,GAAII,KAAOJ,GACdC,EAAII,aAAaD,GACdJ,EAAWI,IACZH,EAAIK,UAAUN,EAAWI,GAAMA,EAGnC9E,MAAKa,QAAQ6D,WAAaA,EAE5B1E,KAAKiF,eAAiBN,EAAIO,QAAQT,GAIlCzE,KAAKa,QAAQ4D,OAASA,EAGtBzE,KAAKmF,WAGPnF,KAAKoF,cAILpF,MAAKiF,eAAiB,KACtBjF,KAAKa,QAAQ4D,OAAS,KACtBzE,KAAKa,QAAQ6D,WAAa,KAC1B1E,KAAKmF,WACLnF,KAAKoF,WAQTzE,EAAWkC,UAAUsC,SAAW,aAOhCxE,EAAWkC,UAAUuC,QAAU,aAuB/BzE,EAAW0E,aAAe,SAAUzD,GAClC,GAAI0D,GAAGC,CAEP,IAAItE,EAAKuE,QAAQ5D,GAEf,IAAK0D,EAAI,EAAGA,EAAI1D,EAAKS,OAAQiD,IAC3B3E,EAAW0E,aAAazD,EAAK0D,QAG5B,CAEH,KAAM,QAAU1D,IAAO,KAAM,IAAIb,OAAM,0BACvC,MAAM,SAAWa,IAAO,KAAM,IAAIb,OAAM,2BACxC,MAAM,QAAUa,IAAO,KAAM,IAAIb,OAAM,0BACvC,IAAI2C,GAAO9B,EAAKA,IAChB,IAAI8B,IAAQ/C,GAAWkB,MACrB,KAAM,IAAId,OAAM,SAAW2C,EAAO,uBAIpC,IAAiC,kBAAtB9B,GAAKuC,MAAMP,OACpB,KAAM,IAAI7C,OAAM,8CAElB,IAAI0E,IAAY,UAAW,eAAgB,QAC3C,KAAKH,EAAI,EAAGA,EAAIG,EAASpD,OAAQiD,IAE/B,IADAC,EAAOE,EAASH,KACJ1D,GAAKuC,MACf,KAAM,IAAIpD,OAAM,sBAAwBwE,EAAO,yBAInD5E,GAAWkB,MAAM6B,GAAQ9B,IAK7BjB,EAAW0E,aAAa1C,GACxBhC,EAAW0E,aAAazC,GAExB/C,EAAOD,QAAUe,GAKZ,SAASd,EAAQD,EAASM,GAE/B,YAGA,IAAIwF,GAAcxF,EAAoB,GAClCyF,EAAUzF,EAAoB,GAC9B0F,EAAY1F,EAAoB,GAChC2F,EAAc3F,EAAoB,GAClC4F,EAAW5F,EAAoB,GAC/B6F,EAAO7F,EAAoB,IAC3B8F,EAAe9F,EAAoB,IACnCe,EAAOf,EAAoB,GAC3B+F,EAAe/F,EAAoB,IACnCgG,EAAgBhG,EAAoB,IACpCiG,EAAqBjG,EAAoB,IACzCkG,EAAYlG,EAAoB,GAAGkG,UACnCC,EAAenG,EAAoB,GAAGmG,aACtCC,EAAcpG,EAAoB,GAAGoG,YAErCC,EAAuBC,SAASC,KAGhC9D,IAiCJA,GAASiB,OAAS,SAAUhD,EAAWC,GACrC,IAAKD,EACH,KAAM,IAAIG,OAAM,iCAElBf,MAAKY,UAAYA,EACjBZ,KAAK0G,OACL1G,KAAK2G,YAAc,GAAIjB,GACvB1F,KAAK4G,cAAYC,GACjB7G,KAAK8G,gBACHC,UAEF/G,KAAKiF,eAAiB,KACtBjF,KAAKgH,cAELhH,KAAKiH,KAAO,KACZjH,KAAKkH,YAAc,KAEnBlH,KAAKmH,YAAYtG,GAEbA,EAAQoF,eACRjG,KAAKiG,aAAe,GAAIA,GAAapF,EAAQoF,eAE7CjG,KAAKa,QAAQuG,SAAiC,SAAtBpH,KAAKa,QAAQe,OACvC5B,KAAKoH,QAAU,GAAIzB,GAAQ3F,OAG7BA,KAAKqH,eACLrH,KAAKsH,gBAMP3E,EAASK,QAAU,WACbhD,KAAKuH,OAASvH,KAAKY,WAAaZ,KAAKuH,MAAMC,YAAcxH,KAAKY,YAChEZ,KAAKY,UAAU6G,YAAYzH,KAAKuH,OAChCvH,KAAKuH,MAAQ,MAEfvH,KAAKY,UAAY,KAEjBZ,KAAK0G,IAAM,KAEX1G,KAAKkE,QACLlE,KAAKiH,KAAO,KACZjH,KAAKkH,YAAc,KACnBlH,KAAK4G,UAAY,KACjB5G,KAAK8G,eAAiB,KACtB9G,KAAKgH,WAAa,KAClBhH,KAAKiF,eAAiB,KACtBjF,KAAK0H,mBAAqB,KAEtB1H,KAAKoH,UACPpH,KAAKoH,QAAQpE,UACbhD,KAAKoH,QAAU,MAGbpH,KAAK2H,YACP3H,KAAK2H,UAAU3E,UACfhD,KAAK2H,UAAY,MAGf3H,KAAK4H,eACP5H,KAAK4H,aAAa5E,UAClBhD,KAAK4H,aAAe,OASxBjF,EAASwE,YAAc,SAAUtG,GAc/B,GAbAb,KAAKa,SACHgH,QAAQ,EACRT,SAAS,EACTxF,KAAM,OACN8B,SAAMmD,GACNpC,OAAQ,KACRC,WAAY,KACZuB,aAAc,KACd6B,eAAgB,EAChBC,kBAAmB,MAIjBlH,EACF,IAAK,GAAI0E,KAAQ1E,GACXA,EAAQmH,eAAezC,KACzBvF,KAAKa,QAAQ0E,GAAQ1E,EAAQ0E,GAMnCvF,MAAKwE,UAAUxE,KAAKa,QAAQ4D,OAAQzE,KAAKa,QAAQ6D,YAGjD1E,KAAK0H,mBAAqBzG,EAAKgH,SAASjI,KAAKmF,SAAS+C,KAAKlI,MAAOA,KAAK8C,mBAEnEjC,EAAQkH,mBACV/H,KAAK+H,kBAAkBlH,EAAQkH,mBAGjC1B,EAAarG,KAAKa,QAAQsH,WAC1B7B,EAAYtG,KAAKa,QAAQuH,WAS3BzF,EAASM,IAAM,SAAUnC,GAEvB,GAAIA,YAAgBuH,eAAsBxB,KAAT/F,EAC/Bd,KAAKkE,YAEF,CACHlE,KAAKsI,QAAQb,YAAYzH,KAAKuI,MAG9B,IAAIC,IACFC,MAAOzI,KAAKa,QAAQ6C,KACpBgF,MAAO5H,GAELmG,EAAO,GAAIlB,GAAK/F,KAAMwI,EAC1BxI,MAAK2I,SAAS1B,GAGdjH,KAAKmF,UAILnF,MAAKiH,KAAK2B,QADI,GAGd5I,KAAKsI,QAAQO,YAAY7I,KAAKuI,OAI5BvI,KAAKoH,SACPpH,KAAKoH,QAAQlD,QAIXlE,KAAK2H,WACP3H,KAAK2H,UAAUzD,SAUnBvB,EAASmG,OAAS,SAAUhI,GAE1B,IAAId,KAAKiH,KAAK8B,UAAUjI,GAAxB,CAIA,GAAI8F,GAAY5G,KAAKgJ,cAgBrB,IAbAhJ,KAAKiJ,kBAAmB,EACxBjJ,KAAKiH,KAAK6B,OAAOhI,GACjBd,KAAKiJ,kBAAmB,EAGxBjJ,KAAKmF,WAGDnF,KAAK2H,YAAc3H,KAAK2H,UAAUuB,WACpClJ,KAAK2H,UAAUwB,cAIbvC,GAAaA,EAAUwC,OAASxC,EAAUyC,IAAK,CAGjD,GAAIC,GAAYtJ,KAAKiH,KAAKsC,eAAe3C,EAAUwC,MAAMI,MACrDC,EAAUzJ,KAAKiH,KAAKsC,eAAe3C,EAAUyC,IAAIG,KACjDF,IAAaG,EACfzJ,KAAK0J,aAAa9C,EAAUwC,MAAOxC,EAAUyC,KAG7CrJ,KAAK0J,wBAIP1J,MAAK0J,sBAQT/G,EAASO,IAAM,WAEb,GAAIlD,KAAKkH,YAAa,CACpB,GAAID,GAAOlB,EAAK4D,kBAAkB3J,KAAKkH,YACnCD,IACFA,EAAK2C,OAIT,MAAI5J,MAAKiH,KACAjH,KAAKiH,KAAK4C,eAGjB,IAQJlH,EAASW,QAAU,WACjB,MAAOC,MAAKC,UAAUxD,KAAKkD,QAQ7BP,EAASQ,QAAU,SAASC,GAC1B,IACEpD,KAAKiD,IAAIhC,EAAKoC,MAAMD,IAEtB,MAAOV,GAEL,GAAIoH,GAAoB7I,EAAK8I,SAAS3G,EAGtCpD,MAAKiD,IAAIhC,EAAKoC,MAAMyG,MASxBnH,EAASqH,WAAa,SAAS5G,GAC7B,IACEpD,KAAK8I,OAAO7H,EAAKoC,MAAMD,IAEzB,MAAOV,GAEL,GAAIoH,GAAoB7I,EAAK8I,SAAS3G,EAGtCpD,MAAK8I,OAAO7H,EAAKoC,MAAMyG,MAQ3BnH,EAASc,QAAU,SAAUC,GAC3B1D,KAAKa,QAAQ6C,KAAOA,EAChB1D,KAAKiH,MACPjH,KAAKiH,KAAKgD,YAAYjK,KAAKa,QAAQ6C,OAQvCf,EAASgB,QAAU,WACjB,MAAO3D,MAAKa,QAAQ6C,MAUtBf,EAASuH,MAAQ,WACf,GAAIC,GAAQnK,KAAKoK,kBAAkBC,cAAc,yBAC7CF,GACFA,EAAMD,QAEClK,KAAKiH,KAAKP,IAAIkC,OACrB5I,KAAKiH,KAAKP,IAAIkC,OAAOsB,QAEdlK,KAAKiH,KAAKP,IAAI4D,KACrBtK,KAAKiH,KAAKP,IAAI4D,KAAKJ,SAInBC,EAAQnK,KAAKuH,MAAM8C,cAAc,YAE/BF,EAAMD,SAQZvH,EAASuB,MAAQ,WACXlE,KAAKiH,OACPjH,KAAKiH,KAAKsD,aACHvK,MAAKiH,MAGVjH,KAAKwK,UACPxK,KAAKwK,SAASC,SASlB9H,EAASgG,SAAW,SAAU1B,GAC5BjH,KAAKkE,QAELlE,KAAKiH,KAAOA,EAGZjH,KAAK0K,MAAM7B,YAAY5B,EAAK0D,WAe9BhI,EAASkF,OAAS,SAAU+C,GAC1B,GAAIC,EAUJ,OATI7K,MAAKiH,MACPjH,KAAKsI,QAAQb,YAAYzH,KAAKuI,OAC9BsC,EAAU7K,KAAKiH,KAAKY,OAAO+C,GAC3B5K,KAAKsI,QAAQO,YAAY7I,KAAKuI,QAG9BsC,KAGKA,GAMTlI,EAASmI,UAAY,WACf9K,KAAKiH,OACPjH,KAAKsI,QAAQb,YAAYzH,KAAKuI,OAC9BvI,KAAKiH,KAAK2B,SACV5I,KAAKsI,QAAQO,YAAY7I,KAAKuI,SAOlC5F,EAASoI,YAAc,WACjB/K,KAAKiH,OACPjH,KAAKsI,QAAQb,YAAYzH,KAAKuI,OAC9BvI,KAAKiH,KAAK+D,WACVhL,KAAKsI,QAAQO,YAAY7I,KAAKuI,SAkBlC5F,EAASsI,UAAY,SAAUC,EAAQ1C,GAEjCxI,KAAKoH,SACPpH,KAAKoH,QAAQ+D,IAAID,EAAQ1C,GAG3BxI,KAAKoL,aASPzI,EAASyI,UAAY,WACnB,IAAIpL,KAAKiJ,iBAAT,CAQA,GAHAjJ,KAAK0H,qBAGD1H,KAAKa,QAAQW,SACf,IACExB,KAAKa,QAAQW,WAEf,MAAOkB,GACLtB,QAAQD,MAAM,+BAAgCuB,GAKlD,GAAI1C,KAAKa,QAAQc,aACf,IACE3B,KAAKa,QAAQc,aAAa3B,KAAKkD,OAEjC,MAAOR,GACLtB,QAAQD,MAAM,mCAAoCuB,GAKtD,GAAI1C,KAAKa,QAAQwK,aACf,IACErL,KAAKa,QAAQwK,aAAarL,KAAKsD,WAEjC,MAAOZ,GACLtB,QAAQD,MAAM,mCAAoCuB,MASxDC,EAASwC,SAAW,WAEdnF,KAAKgH,YACPhH,KAAKgH,WAAW/E,QAAQ,SAAUgF,GAChCA,EAAKqE,SAAS,OAIlB,IAAI5L,GAAOM,KAAKiH,IAChB,IAAKvH,EAAL,CAKA,GAAI6L,GAAkB7L,EAAKyF,WAGvBqG,IACJ,IAAIxL,KAAKiF,eAAgB,CACXjF,KAAKiF,eAAevF,EAAKmK,cAGnC2B,EAAexL,KAAKiF,eAAewG,OAC9BC,IAAI,SAAUvK,GACb,MAAOF,GAAK0K,mBAAmBxK,KAEhCuK,IAAI,SAAmBvK,GACtB,OACE8F,KAAMvH,EAAKkM,SAASzK,EAAM0K,UAC1B1K,MAAOA,KAGV2K,OAAO,SAAkBC,GACxB,MAAqB,OAAdA,EAAM9E,QAKvB,GAAID,GAAauE,EAAgBS,OAAOR,GACpCS,EAAcjF,EACbkF,OAAO,SAAUC,EAAKJ,GACnB,MAAOA,GAAM9E,KACRmF,cACAN,OAAO,SAAUO,GACd,OAAQF,EAAIG,KAAK,SAAUC,GACzB,MAAOA,GAAK,KAAOF,MAGxBX,IAAI,SAAUW,GACX,OAAQA,EAAQN,EAAM9E,QAEzB+E,OAAOG,OAGpBnM,MAAKgH,WAAaiF,EACbP,IAAI,SAAUa,GACX,OACEtF,KAAMsF,EAAK,GACXC,MAAOD,EAAK,GACZpL,OACEsL,QAA0B,WAAjBF,EAAK,GAAGG,KACX,8BACA,6BAIbV,OAAOhF,GACP0E,IAAI,SAAmBK,GAEtB,MADAA,GAAM9E,KAAKqE,SAASS,EAAM5K,MAAO4K,EAAMS,OAChCT,EAAM9E,SAOrBtE,EAASyC,QAAU,WACbpF,KAAKiH,MACPjH,KAAKiH,KAAK0F,WAAWC,SAAS,KASlCjK,EAASkK,gBAAkB,SAAUC,GACnC,GAAIC,GAAK/M,KACLsI,EAAUtI,KAAKoK,kBACf4C,EAAM/L,EAAKgM,eAAe3E,GAC1B4E,EAAS5E,EAAQ6E,aACjBC,EAASJ,EAAME,CAIdJ,GAASE,EAHD,IAGkB1E,EAAQ+E,UAAY,EACjDrN,KAAKsN,gBAAmBN,EAJb,GAI6BF,GAAU,EAE3CA,EAASM,EANL,IAOTF,EAAS5E,EAAQ+E,UAAY/E,EAAQiF,aACvCvN,KAAKsN,gBAAmBF,EARb,GAQgCN,GAAU,EAGrD9M,KAAKsN,mBAAiBzG,GAGpB7G,KAAKsN,eACFtN,KAAKwN,kBACRxN,KAAKwN,gBAAkBC,YAAY,WAC7BV,EAAGO,eACLhF,EAAQ+E,WAAaN,EAAGO,eAGxBP,EAAGW,kBApBI,KA0Bb1N,KAAK0N,kBAOT/K,EAAS+K,eAAiB,WACpB1N,KAAKwN,kBACPG,aAAa3N,KAAKwN,uBACXxN,MAAKwN,iBAEVxN,KAAKsN,sBACAtN,MAAKsN,gBAehB3K,EAASiL,gBAAkB,SAAUhH,GACnC,GAAKA,EAQL,GAJI,aAAeA,IAAa5G,KAAKoK,oBAEnCpK,KAAKoK,kBAAkBiD,UAAYzG,EAAUyG,WAE3CzG,EAAUiH,MAAO,CAEnB,GAAId,GAAK/M,KACL+G,EAAQH,EAAUiH,MAAMnC,IAAI,SAAUlC,GACxC,MAAOuD,GAAG9F,KAAK6G,uBAAuBtE,IAGxCxJ,MAAK+N,OAAOhH,OAET,CAEH,GAAIE,GAAOL,EAAU4C,KACfxJ,KAAKiH,KAAK6G,uBAAuBlH,EAAU4C,MAC3C,KACF5I,EAAaqG,GAAQL,EAAUoH,QAC7B/G,EAAKP,IAAIE,EAAUoH,SACnB,IACN,IAAIpH,EAAUqH,OAASrN,EAAW,CAChC,GAAIqN,GAAQlM,OAAOmM,UAAWtH,EAAUqH,OAASrN,UAAWA,GAC5DK,GAAKkN,mBAAmBF,OAEjBhH,IACPA,EAAKiD,UAcXvH,EAASyL,gBAAkB,WAIzB,GAAInH,GAAOlB,EAAK4D,kBAAkB3J,KAAKkH,aACnCA,EAAclH,KAAKkH,YACnB8G,EAAU/G,EACRlF,OAAOC,KAAKiF,EAAKP,KAAK2H,KAAK,SAAUL,GACrC,MAAO/G,GAAKP,IAAIsH,KAAa9G,IAE7B,KAEF+G,EAAQhN,EAAKqN,oBAcjB,OAbIL,IAAsC,QAA7BA,EAAMrN,UAAU2N,WAC3BN,EAAQ,MAENA,GAASA,EAAMrN,YAAcsG,IAC/B+G,EAAQ,MAENA,SAIKA,GAAMrN,WAIb4I,KAAMvC,EAAOA,EAAKuH,kBAAoB,KACtCR,QAASA,EACTC,MAAOA,EACPJ,MAAO7N,KAAK8G,eAAezE,OAAS,EAC9BrC,KAAK8G,eAAeC,MAAM2E,IAAI,SAAUzE,GACtC,MAAOA,GAAKuH,oBAEd,KACNnB,UAAWrN,KAAKoK,kBAAoBpK,KAAKoK,kBAAkBiD,UAAY,IAa3E1K,EAAS8L,SAAW,SAAUzB,EAAK0B,GACjC,GAAIpG,GAAUtI,KAAKoK,iBACnB,IAAI9B,EAAS,CACX,GAAIqG,GAAS3O,IAET2O,GAAOC,iBACTjB,aAAagB,EAAOC,sBACbD,GAAOC,gBAEZD,EAAOE,kBACTF,EAAOE,iBAAgB,SAChBF,GAAOE,gBAIhB,IAAI3B,GAAS5E,EAAQ6E,aACjBC,EAAS9E,EAAQiF,aAAeL,EAChC4B,EAAiBC,KAAKC,IAAID,KAAKE,IAAIjC,EAAME,EAAS,EAAG,GAAIE,GAGzD8B,EAAU,WACZ,GAAI7B,GAAY/E,EAAQ+E,UACpB8B,EAAQL,EAAiBzB,CACzB0B,MAAKK,IAAID,GAAQ,GACnB7G,EAAQ+E,WAAa8B,EAAO,EAC5BR,EAAOE,gBAAkBH,EACzBC,EAAOC,eAAiBS,WAAWH,EAAS,MAIxCR,GACFA,GAAS,GAEXpG,EAAQ+E,UAAYyB,QACbH,GAAOC,qBACPD,GAAOE,iBAGlBK,SAGIR,IACFA,GAAS,IASf/L,EAAS0E,aAAe,WAQtB,QAASiI,GAAQC,GAGXZ,EAAOa,UACTb,EAAOa,SAASD,GAVpBvP,KAAKuH,MAAQf,SAASiJ,cAAc,OACpCzP,KAAKuH,MAAMmI,UAAY,8BAAgC1P,KAAKa,QAAQe,KACpE5B,KAAKY,UAAUiI,YAAY7I,KAAKuH,MAGhC,IAAIoH,GAAS3O,IAQbA,MAAKuH,MAAMoI,QAAU,SAAUJ,GAC7B,GAAIK,GAASL,EAAMK,MAEnBN,GAAQC,GAIe,UAAnBK,EAAOrB,UACTgB,EAAMM,kBAGV7P,KAAKuH,MAAMuI,QAAUR,EACrBtP,KAAKuH,MAAMwI,SAAWT,EACtBtP,KAAKuH,MAAMyI,UAAYV,EACvBtP,KAAKuH,MAAM0I,QAAUX,EACrBtP,KAAKuH,MAAM2I,MAAQZ,EACnBtP,KAAKuH,MAAM4I,QAAUb,EACrBtP,KAAKuH,MAAM6I,YAAcd,EACzBtP,KAAKuH,MAAM8I,UAAYf,EACvBtP,KAAKuH,MAAM+I,YAAchB,EACzBtP,KAAKuH,MAAMgJ,WAAajB,EAIxBrO,EAAKuP,iBAAiBxQ,KAAKuH,MAAO,QAAS+H,GAAS,GACpDrO,EAAKuP,iBAAiBxQ,KAAKuH,MAAO,OAAQ+H,GAAS,GACnDtP,KAAKuH,MAAMkJ,UAAYnB,EACvBtP,KAAKuH,MAAMmJ,WAAapB,EAGxBtP,KAAKsK,KAAO9D,SAASiJ,cAAc,OACnCzP,KAAKsK,KAAKoF,UAAY,kBACtB1P,KAAKuH,MAAMsB,YAAY7I,KAAKsK,KAG5B,IAAIQ,GAAYtE,SAASiJ,cAAc,SACvC3E,GAAU4B,KAAO,SACjB5B,EAAU4E,UAAY,wBACtB5E,EAAU6F,MAAQvK,EAAU,aAC5B0E,EAAU6E,QAAU,WAClBhB,EAAO7D,aAET9K,KAAKsK,KAAKzB,YAAYiC,EAGtB,IAAIC,GAAcvE,SAASiJ,cAAc,SACzC1E,GAAY2B,KAAO,SACnB3B,EAAY4F,MAAQvK,EAAU,eAC9B2E,EAAY2E,UAAY,0BACxB3E,EAAY4E,QAAU,WACpBhB,EAAO5D,eAET/K,KAAKsK,KAAKzB,YAAYkC,EAGtB,IAAI6F,GAAOpK,SAASiJ,cAAc,SAClCmB,GAAKlE,KAAO,SACZkE,EAAKlB,UAAY,kBACjBkB,EAAKD,MAAQvK,EAAU,kBACvBwK,EAAKjB,QAAU,WACb,GAAIkB,GAASlC,EAAO9N,QAAQiQ,aAAevK,CAC3CL,GAAcyI,EAAO1H,KAAM4J,IAE7B7Q,KAAKsK,KAAKzB,YAAY+H,EAGtB,IAAIG,GAAYvK,SAASiJ,cAAc,SAWvC,IAVAsB,EAAUrE,KAAO,SACjBqE,EAAUJ,MAAQvK,EAAU,uBAC5B2K,EAAUrB,UAAY,uBACtBqB,EAAUpB,QAAU,WAClB,GAAIkB,GAASlC,EAAO9N,QAAQiQ,aAAevK,CAC3CJ,GAAmBwI,EAAO1H,KAAM4J,IAElC7Q,KAAKsK,KAAKzB,YAAYkI,GAGlB/Q,KAAKoH,QAAS,CAEhB,GAAI4J,GAAOxK,SAASiJ,cAAc,SAClCuB,GAAKtE,KAAO,SACZsE,EAAKtB,UAAY,uCACjBsB,EAAKL,MAAQvK,EAAU,QACvB4K,EAAKrB,QAAU,WACbhB,EAAOsC,WAETjR,KAAKsK,KAAKzB,YAAYmI,GACtBhR,KAAK0G,IAAIsK,KAAOA,CAGhB,IAAIE,GAAO1K,SAASiJ,cAAc,SAClCyB,GAAKxE,KAAO,SACZwE,EAAKxB,UAAY,kBACjBwB,EAAKP,MAAQvK,EAAU,QACvB8K,EAAKvB,QAAU,WACbhB,EAAOwC,WAETnR,KAAKsK,KAAKzB,YAAYqI,GACtBlR,KAAK0G,IAAIwK,KAAOA,EAGhBlR,KAAKoH,QAAQ5F,SAAW,WACtBwP,EAAKI,UAAYzC,EAAOvH,QAAQiK,UAChCH,EAAKE,UAAYzC,EAAOvH,QAAQkK,WAElCtR,KAAKoH,QAAQ5F,WAIf,GAAIxB,KAAKa,SAAWb,KAAKa,QAAQgB,OAAS7B,KAAKa,QAAQgB,MAAMQ,OAAQ,CACnE,GAAI0K,GAAK/M,IACTA,MAAK4H,aAAe,GAAI5B,GAAahG,KAAKsK,KAAMtK,KAAKa,QAAQgB,MAAO7B,KAAKa,QAAQe,KAAM,SAAkBA,GACvGmL,EAAGnF,aAAa5E,UAGhB+J,EAAGhK,QAAQnB,GACXmL,EAAGnF,aAAasC,UAKhBlK,KAAKa,QAAQgH,SACf7H,KAAK2H,UAAY,GAAI/B,GAAU5F,KAAMA,KAAKsK,OAGzCtK,KAAKa,QAAQiH,gBAEd9H,KAAKuR,OAAS/K,SAASiJ,cAAc,OACrCzP,KAAKuR,OAAO7B,UAAY,0CACxB1P,KAAKuH,MAAMsB,YAAY7I,KAAKuR,QAE5BvR,KAAKwK,SAAW,GAAI1E,GAAS9F,KAAKuR,QAClCvR,KAAKwK,SAASgH,kBAAkBxR,KAAKyR,2BAA2BvJ,KAAKlI,OACrEA,KAAKwK,SAASkH,0BAA0B1R,KAAK2R,4BAA4BzJ,KAAKlI,SAQlF2C,EAASsO,QAAU,WACbjR,KAAKoH,UAEPpH,KAAKoH,QAAQ4J,OAGbhR,KAAKoL,cAQTzI,EAASwO,QAAU,WACbnR,KAAKoH,UAEPpH,KAAKoH,QAAQ8J,OAGblR,KAAKoL,cASTzI,EAAS6M,SAAW,SAAUD,GACT,YAAfA,EAAM7C,MACR1M,KAAK4R,WAAWrC,GAGC,UAAfA,EAAM7C,OACR1M,KAAKkH,YAAcqI,EAAMK,QAGR,cAAfL,EAAM7C,MACR1M,KAAK6R,mBAAmBtC,GAEP,cAAfA,EAAM7C,MAAuC,YAAf6C,EAAM7C,MAAqC,UAAf6C,EAAM7C,MAClE1M,KAAK8R,oBAAoBvC,EAG3B,IAAItI,GAAOlB,EAAK4D,kBAAkB4F,EAAMK,OAExC,IAAI3I,GAAQjH,KAAKa,SAAWb,KAAKa,QAAQiH,eAAiBb,IAAwB,YAAfsI,EAAM7C,MAAqC,cAAf6C,EAAM7C,MAAuB,CAE1H,GAAIK,GAAK/M,IACTqP,YAAW,WACTtC,EAAGgF,gBAAgB9K,EAAK+K,iBAI5B,GAAI/K,GAAQA,EAAKgL,SAAU,CACzB,GAAmB,UAAf1C,EAAM7C,KAAkB,CAC1B,GAAI6C,EAAMK,SAAW3I,EAAKP,IAAI4D,KAI5B,WAHAtK,MAAKkS,gBAAgB3C,EAAMK,OAOxBL,GAAM4C,UACTnS,KAAKoS,WAIU,cAAf7C,EAAM7C,MAER3G,EAAKsM,YAAYrS,KAAK8G,eAAeC,MAAOwI,OAI3B,cAAfA,EAAM7C,OACR1M,KAAKoS,WAEDnL,GAAQsI,EAAMK,SAAW3I,EAAKP,IAAI4L,KAEpCvM,EAAKsM,YAAYpL,EAAMsI,KAEftI,GAASsI,EAAMK,SAAW3I,EAAKP,IAAI+B,OAAS8G,EAAMK,SAAW3I,EAAKP,IAAIgC,OAAS6G,EAAMK,SAAW3I,EAAKP,IAAIqH,SAEjH/N,KAAKuS,oBAAoBhD,GAK3BtI,IACFA,EAAKqI,QAAQC,IASjB5M,EAASoP,gBAAkB,SAAUS,GA0BnC,QAAS7O,GAAQsD,GACf,MAAOA,GAAKoF,OACiB,UAArBpF,EAAKoF,OAAOK,KAAoBzF,EAAKwL,MAAQxL,EAAKwB,MACpDxB,EAAKyF,KA5Bb,GAAI8F,GAAaA,EAAUnQ,OAAQ,CACjCpB,EAAKyR,gBAAgB1S,KAAKuR,OAAQ,gBAElC,IAAIoB,KACJH,GAAUvQ,QAAQ,SAAUgF,GAC1B,GAAI2L,IACFlP,KAAMC,EAAQsD,GACdA,KAAMA,EACN4L,YAEE5L,GAAK6L,QAAU7L,EAAK6L,OAAOzQ,QAC7B4E,EAAK6L,OAAO7Q,QAAQ,SAAU8Q,GAC5BH,EAAQC,SAASG,MACftP,KAAMC,EAAQoP,GACd9L,KAAM8L,MAIZJ,EAASK,KAAKJ,KAEhB5S,KAAKwK,SAASyI,QAAQN,OAEtB1R,GAAKiS,aAAalT,KAAKuR,OAAQ,kBAenC5O,EAAS8O,2BAA6B,SAAUmB,GAC3CA,GAAWA,EAAQ3L,OACpB2L,EAAQ3L,KAAKkM,WACbP,EAAQ3L,KAAKiD,UAUjBvH,EAASgP,4BAA8B,SAAUiB,EAAShM,GACxD,GAAGgM,GAAWA,EAAQC,SAASxQ,OAAQ,CACrC,GAAI+Q,GAAeR,EAAQC,SAASxE,KAAK,SAAUgF,GACjD,MAAOA,GAAI3P,OAASkD,GAEnBwM,IAAgBA,EAAanM,OAC9BjH,KAAK+R,gBAAgBqB,EAAanM,KAAK+K,eACvCoB,EAAanM,KAAKkM,WAClBC,EAAanM,KAAKiD,WAKxBvH,EAASkP,mBAAqB,SAAUtC,GACtCvP,KAAKsT,mBACHC,cAAehE,EAAMK,OACrB4D,aAAcjE,EAAMkE,MACpBC,aAAcnE,EAAMoE,MACpBC,aAAc,EACdzB,UAAU,IAIdxP,EAASmP,oBAAsB,SAAUvC,GAClCvP,KAAKsT,mBACRtT,KAAK6R,mBAAmBtC,EAG1B,IAAIsE,GAAQtE,EAAMkE,MAAQzT,KAAKsT,kBAAkBE,aAC7CM,EAAQvE,EAAMoE,MAAQ3T,KAAKsT,kBAAkBI,YASjD,OAPA1T,MAAKsT,kBAAkBM,aAAe7E,KAAKgF,KAAKF,EAAQA,EAAQC,EAAQA,GACxE9T,KAAKsT,kBAAkBnB,SACnBnS,KAAKsT,kBAAkBnB,UAAYnS,KAAKsT,kBAAkBM,aAAe,GAE7ErE,EAAMqE,aAAe5T,KAAKsT,kBAAkBM,aAC5CrE,EAAM4C,SAAWnS,KAAKsT,kBAAkBnB,SAEjC5C,EAAMqE,cAQfjR,EAAS4P,oBAAsB,SAAUhD,GACvC,GAAItI,GAAOlB,EAAK4D,kBAAkB4F,EAAMK,OAExC,IAA0B,SAAtB5P,KAAKa,QAAQe,UAA+CiF,KAA5B7G,KAAKa,QAAQa,WAAjD,CAMA1B,KAAK8G,gBACHsC,MAAOnC,GAAQ,KACfoC,IAAK,KACLtC,UAGF/G,KAAK6R,mBAAmBtC,EAExB,IAAIZ,GAAS3O,IACRA,MAAKgU,YACRhU,KAAKgU,UAAY/S,EAAKuP,iBAAiByD,OAAQ,YAAa,SAAU1E,GACpEZ,EAAOuF,eAAe3E,MAGrBvP,KAAKmU,UACRnU,KAAKmU,QAAUlT,EAAKuP,iBAAiByD,OAAQ,UAAW,SAAU1E,GAChEZ,EAAOyF,kBAAkB7E,QAW/B5M,EAASuR,eAAiB,SAAU3E,GAIlC,GAHAA,EAAMM,iBAEN7P,KAAK8R,oBAAoBvC,GACpBA,EAAM4C,SAAX,CAIA,GAAIlL,GAAOlB,EAAK4D,kBAAkB4F,EAAMK,OAEpC3I,KAC+B,MAA7BjH,KAAK8G,eAAesC,QACtBpJ,KAAK8G,eAAesC,MAAQnC,GAE9BjH,KAAK8G,eAAeuC,IAAMpC,GAI5BjH,KAAKoS,UAGL,IAAIhJ,GAAQpJ,KAAK8G,eAAesC,MAC5BC,EAAMrJ,KAAK8G,eAAeuC,KAAOrJ,KAAK8G,eAAesC,KACzD,IAAIA,GAASC,EAAK,CAGhB,GADArJ,KAAK8G,eAAeC,MAAQ/G,KAAKqU,mBAAmBjL,EAAOC,GACvDrJ,KAAK8G,eAAeC,OAAS/G,KAAK8G,eAAeC,MAAM1E,OAAQ,CACjE,GAAIiS,GAAYtU,KAAK8G,eAAeC,MAAM,EACtC/G,MAAK8G,eAAesC,QAAUkL,GAAatU,KAAK8G,eAAesC,MAAMmL,eAAeD,GACtFtU,KAAK8G,eAAe0N,UAAY,OAEhCxU,KAAK8G,eAAe0N,UAAY,KAGpCxU,KAAK+N,OAAO/N,KAAK8G,eAAeC,UASpCpE,EAASyR,kBAAoB,SAAU7E,GAEjCvP,KAAK8G,eAAeC,MAAM,IAC5B/G,KAAK8G,eAAeC,MAAM,GAAGL,IAAI4D,KAAKJ,QAGxClK,KAAK8G,eAAesC,MAAQ,KAC5BpJ,KAAK8G,eAAeuC,IAAM,KAGtBrJ,KAAKgU,YACP/S,EAAKwT,oBAAoBR,OAAQ,YAAajU,KAAKgU,iBAC5ChU,MAAKgU,WAEVhU,KAAKmU,UACPlT,EAAKwT,oBAAoBR,OAAQ,UAAWjU,KAAKmU,eAC1CnU,MAAKmU,UAShBxR,EAASyP,SAAW,SAAUsC,GAC5B,GAAIC,KAAqB3U,KAAK8G,eAAeC,MAAM1E,MACnDrC,MAAK8G,eAAeC,MAAM9E,QAAQ,SAAUgF,GAC1CA,EAAK2N,aAAY,KAEnB5U,KAAK8G,eAAeC,SAEhB2N,IACF1U,KAAK8G,eAAesC,MAAQ,KAC5BpJ,KAAK8G,eAAeuC,IAAM,MAGxBsL,GACE3U,KAAK6U,0BACP7U,KAAK6U,4BASXlS,EAASoL,OAAS,SAAUhH,GAC1B,IAAK+N,MAAMtP,QAAQuB,GACjB,MAAO/G,MAAK+N,QAAQhH,GAGtB,IAAIA,EAAO,CACT/G,KAAKoS,WAELpS,KAAK8G,eAAeC,MAAQA,EAAMgO,MAAM,EAExC,IAAIC,GAAQjO,EAAM,EAMlB,IALAA,EAAM9E,QAAQ,SAAUgF,GACtBA,EAAKgO,mBACLhO,EAAK2N,aAAY,EAAM3N,IAAS+N,KAG9BhV,KAAK6U,yBAA0B,CACjC,GAAIjO,GAAY5G,KAAKgJ,cACrBhJ,MAAK6U,yBAAyBjO,EAAUwC,MAAOxC,EAAUyC,QAc/D1G,EAAS0R,mBAAqB,SAAUjL,EAAOC,GAI7C,IAHA,GAAI6L,GAAY9L,EAAM4I,cAClBmD,EAAU9L,EAAI2I,cACd1M,EAAI,EACDA,EAAI4P,EAAU7S,QAAU6S,EAAU5P,KAAO6P,EAAQ7P,IACtDA,GAEF,IAAI5F,GAAOwV,EAAU5P,EAAI,GACrB8P,EAAaF,EAAU5P,GACvB+P,EAAWF,EAAQ7P,EAgBvB,IAdK8P,GAAeC,IACd3V,EAAK2M,QAEP+I,EAAa1V,EACb2V,EAAW3V,EACXA,EAAOA,EAAK2M,SAIZ+I,EAAa1V,EAAKoT,OAAO,GACzBuC,EAAW3V,EAAKoT,OAAOpT,EAAKoT,OAAOzQ,OAAS,KAI5C3C,GAAQ0V,GAAcC,EAAU,CAClC,GAAIC,GAAa5V,EAAKoT,OAAOhR,QAAQsT,GACjCG,EAAW7V,EAAKoT,OAAOhR,QAAQuT,GAC/BG,EAAazG,KAAKC,IAAIsG,EAAYC,GAClCE,EAAY1G,KAAKE,IAAIqG,EAAYC,EAErC,OAAO7V,GAAKoT,OAAOiC,MAAMS,EAAYC,EAAY,GAGjD,UASJ9S,EAASiP,WAAa,SAAUrC,GAC9B,GAAImG,GAASnG,EAAMoG,OAASpG,EAAMqG,QAC9BC,EAAStG,EAAMsG,OACfC,EAAUvG,EAAMuG,QAChBC,EAAUxG,EAAMwG,QAChBC,EAAWzG,EAAMyG,SACjBC,GAAU,CAEd,IAAc,GAAVP,EAAa,CACf,GAAI3I,GAAK/M,IACTqP,YAAW,WAETpO,EAAKiV,sBAAsBnJ,EAAG7F,cAC7B,GAGL,GAAIlH,KAAK2H,UACP,GAAImO,GAAqB,IAAVJ,EACb1V,KAAK2H,UAAUjB,IAAImB,OAAOqC,QAC1BlK,KAAK2H,UAAUjB,IAAImB,OAAOkG,SAC1BkI,GAAU,MAEP,IAAc,KAAVP,GAAkBI,GAAqB,IAAVJ,EAAe,CAE9CM,EAMHhW,KAAK2H,UAAUwO,UAPL,GAGVnW,KAAK2H,UAAUyO,MAHL,GAUZH,GAAU,EAiBd,GAbIjW,KAAKoH,UACH0O,IAAYE,GAAsB,IAAVN,GAE1B1V,KAAKiR,UACLgF,GAAU,GAEHH,GAAWE,GAAsB,IAAVN,IAE9B1V,KAAKmR,UACL8E,GAAU,IAITjW,KAAKa,QAAoB,eAAOoV,KAC5BH,GAAYD,GAAWE,GAAgC,GAApBxG,EAAM8G,IAAIhU,QAAyB,GAAVqT,GAAyB,IAAVA,GAAe,CAC3FO,GAAU,CACV,IAAIK,GAAkB,EAClB/G,GAAMK,OAAOF,UAAU5N,QAAQ,qBAAuB,IAAGwU,EAAkB,SAC3E/G,EAAMK,OAAOF,UAAU5N,QAAQ,qBAAuB,IAAGwU,EAAkB,QAE/E,IAAIrP,GAAOlB,EAAK4D,kBAAkB4F,EAAMK,OAExCP,YAAW,SAAUkH,EAAOC,GACxB,GAAIA,EAAQC,UAAUpU,OAAS,EAAG,CAC9B,GAAIqU,GAAS1W,KAAKa,QAAQoF,aAAa0Q,WAAWH,EAAQC,UAAWF,EAAMK,UAAWN,EAAiBC,EAAM5H,OAC9F,QAAX+H,EACA1W,KAAKiG,aAAa4Q,eACY,kBAAhBH,GAAOI,KAEjBJ,EAAOI,KAAK,SAAUzD,GACV,OAARA,EACArT,KAAKiG,aAAa4Q,eACXxD,EAAIxS,QACXb,KAAKiG,aAAa8Q,KAAKP,EAASnD,EAAI2D,UAAW3D,EAAIxS,SAEnDb,KAAKiG,aAAa8Q,KAAKP,EAAS,EAAGnD,IAEzCnL,KAAKlI,OAGH0W,EAAO7V,QACPb,KAAKiG,aAAa8Q,KAAKP,EAASE,EAAOM,UAAWN,EAAO7V,SAEzDb,KAAKiG,aAAa8Q,KAAKP,EAAS,EAAGE,OAI3C1W,MAAKiG,aAAa4Q,gBAExB3O,KAAKlI,KAAMiH,EAAMsI,EAAMK,QAAS,IAItCqG,IACF1G,EAAMM,iBACNN,EAAM0H,oBAQVtU,EAAS2E,aAAe,WACtB,GAAI4P,GAAe1Q,SAASiJ,cAAc,MAC1CyH,GAAaxH,UAAY,mBACtB1P,KAAKa,QAAQiH,eACd7G,EAAKiS,aAAagE,EAAc,eAElClX,KAAKkX,aAAeA,EAEpBlX,KAAKoK,kBAAoB5D,SAASiJ,cAAc,OAChDzP,KAAKoK,kBAAkBsF,UAAY,kBACnCwH,EAAarO,YAAY7I,KAAKoK,mBAO9BpK,KAAKsI,QAAU9B,SAASiJ,cAAc,OACtCzP,KAAKsI,QAAQoH,UAAY,wBACzB1P,KAAKoK,kBAAkBvB,YAAY7I,KAAKsI,SAExCtI,KAAKuI,MAAQ/B,SAASiJ,cAAc,SACpCzP,KAAKuI,MAAMmH,UAAY,kBACvB1P,KAAKsI,QAAQO,YAAY7I,KAAKuI,MAI9B,IAAI4O,EACJnX,MAAKoX,gBAAkB5Q,SAASiJ,cAAc,YACpB,SAAtBzP,KAAKa,QAAQe,OACfuV,EAAM3Q,SAASiJ,cAAc,OAC7B0H,EAAIE,MAAQ,OACZrX,KAAKoX,gBAAgBvO,YAAYsO,IAEnCA,EAAM3Q,SAASiJ,cAAc,OAC7B0H,EAAIE,MAAQ,OACZrX,KAAKoX,gBAAgBvO,YAAYsO,GACjCA,EAAM3Q,SAASiJ,cAAc,OAC7BzP,KAAKoX,gBAAgBvO,YAAYsO,GACjCnX,KAAKuI,MAAMM,YAAY7I,KAAKoX,iBAE5BpX,KAAK0K,MAAQlE,SAASiJ,cAAc,SACpCzP,KAAKuI,MAAMM,YAAY7I,KAAK0K,OAE5B1K,KAAKuH,MAAMsB,YAAYqO,IAUzBvU,EAASuP,gBAAkB,SAAUrB,EAAQyG,GAC3C,GAAIC,MACA5I,EAAS3O,IAGbuX,GAAMvE,MACJpI,KAAMxE,EAAU,iBAChBuK,MAAOvK,EAAU,kBACjBsJ,UAAW,uBACX8H,MAAO,WACLzR,EAAK0R,YAAY9I,EAAO7H,eAAeC,UAK3CwQ,EAAMvE,MACJpI,KAAMxE,EAAU,UAChBuK,MAAOvK,EAAU,eACjBsJ,UAAW,oBACX8H,MAAO,WACLzR,EAAK2R,SAAS/I,EAAO7H,eAAeC,UAI7B,GAAIlB,GAAY0R,GAAQI,MAAOL,IACrCP,KAAKlG,EAAQ7Q,KAAKsI,UAOzB3F,EAASqG,aAAe,WACtB,GAAIpC,IACFwC,MAAO,KACPC,IAAK,KAEP,IAAIrJ,KAAK8G,eAAeC,OAAS/G,KAAK8G,eAAeC,MAAM1E,QACrDrC,KAAK8G,eAAeC,MAAM1E,OAAQ,CACpC,GAAIuV,GAAa5X,KAAK8G,eAAeC,MAAM,GACvC8Q,EAAa7X,KAAK8G,eAAeC,MAAM/G,KAAK8G,eAAeC,MAAM1E,OAAS,EACxC,UAAlCrC,KAAK8G,eAAe0N,WACtB5N,EAAUwC,MAAQwO,EAAWE,YAC7BlR,EAAUyC,IAAMwO,EAAWC,cAE3BlR,EAAUwC,MAAQyO,EAAWC,YAC7BlR,EAAUyC,IAAMuO,EAAWE,aAIjC,MAAOlR,IAWTjE,EAASoF,kBAAoB,SAAU2G,GACb,kBAAbA,KACT1O,KAAK6U,yBAA2B5T,EAAKgH,SAASyG,EAAU1O,KAAK8C,qBAYjEH,EAAS+G,aAAe,SAAUN,EAAOC,GAEnCD,GAASA,EAAM1C,KAAO0C,EAAM6E,QAC9B7M,QAAQC,KAAK,6IACbrB,KAAK4N,gBAAgBxE,GAGvB,IAAIrC,GAAQ/G,KAAK+X,yBAAyB3O,EAAOC,EAEjDtC,GAAM9E,QAAQ,SAASgF,GACrBA,EAAKkM,aAEPnT,KAAK+N,OAAOhH,IAUdpE,EAASoV,yBAA2B,SAAU3O,EAAOC,GACnD,GAAIC,GAAWG,CAEXL,IAASA,EAAMI,OACjBF,EAAYtJ,KAAKiH,KAAKsC,eAAeH,EAAMI,MACvCH,GAAOA,EAAIG,OACbC,EAAUzJ,KAAKiH,KAAKsC,eAAeF,EAAIG,OAI3C,IAAIzC,KACJ,IAAIuC,YAAqBvD,GACvB,GAAI0D,YAAmB1D,IAAQ0D,IAAYH,EACzC,GAAIA,EAAU+C,SAAW5C,EAAQ4C,OAAQ,CACvC,GAAIjD,GAAOC,CACPC,GAAU0O,WAAavO,EAAQuO,YACjC5O,EAAQE,EACRD,EAAMI,IAENL,EAAQK,EACRJ,EAAMC,EAER,IAAI2O,GAAU7O,CACdrC,GAAMiM,KAAKiF,EACX,IACEA,EAAUA,EAAQC,cAClBnR,EAAMiM,KAAKiF,SACJA,GAAWA,IAAY5O,OAEhCtC,GAAQ/G,KAAKqU,mBAAmB/K,EAAWG,OAG7C1C,GAAMiM,KAAK1J,EAIf,OAAOvC,IAITpE,EAASwV,gBAAkB,SAAU/O,EAAOC,GAC1C,GAAItC,GAAQ/G,KAAK+X,yBAAyB3O,EAAOC,GAC7C+O,IAMJ,OAJArR,GAAM9E,QAAQ,SAAUgF,GACtBmR,EAAkBpF,KAAK/L,EAAK6Q,eAGvBM,GAITvY,EAAOD,UAEHgC,KAAM,OACNuC,MAAOxB,EACPkB,KAAM,SAGNjC,KAAM,OACNuC,MAAOxB,EACPkB,KAAM,SAGNjC,KAAM,OACNuC,MAAOxB,EACPkB,KAAM,UAOL,SAAShE,EAAQD,GAEtB,YAOA,SAAS8F,KACP1F,KAAKqY,QAAS,EAOhB3S,EAAY7C,UAAUyV,UAAY,SAAUrR,GACtCjH,KAAKqY,SAILrY,KAAKiH,MAAQA,IAEXjH,KAAKiH,MACPjH,KAAKiH,KAAKsR,cAAa,GAIzBvY,KAAKiH,KAAOA,EACZjH,KAAKiH,KAAKsR,cAAa,IAIzBvY,KAAKwY,uBAOP9S,EAAY7C,UAAU4V,YAAc,WAClC,IAAIzY,KAAKqY,OAAT,CAIA,GAAItL,GAAK/M,IACLA,MAAKiH,OACPjH,KAAKwY,qBAKLxY,KAAK0Y,iBAAmBrJ,WAAW,WACjCtC,EAAG9F,KAAKsR,cAAa,GACrBxL,EAAG9F,SAAOJ,GACVkG,EAAG2L,qBAAmB7R,IACrB,MAQPnB,EAAY7C,UAAU2V,mBAAqB,WACrCxY,KAAK0Y,mBACP/K,aAAa3N,KAAK0Y,kBAClB1Y,KAAK0Y,qBAAmB7R,KAQ5BnB,EAAY7C,UAAU8V,KAAO,WAC3B3Y,KAAKqY,QAAS,GAMhB3S,EAAY7C,UAAU+V,OAAS,WAC7B5Y,KAAKqY,QAAS,GAGhBxY,EAAOD,QAAU8F,GAKZ,SAAS7F,EAAQD,GAEtB,YAOA,SAAS+F,GAASgJ,GAQhB,QAAS/C,GAASpC,GAChB,MAAOmF,GAAO1H,KAAK6G,uBAAuBtE,GAR5CxJ,KAAK2O,OAASA,EACd3O,KAAKoH,WACLpH,KAAKyS,OAAS,EAEdzS,KAAKkE,QAQLlE,KAAK6Y,SACHC,WACE9H,KAAQ,SAAUxI,GACCoD,EAASpD,EAAOuQ,YACXjG,OAAOtK,EAAOiK,OAC/BxI,YAAYzB,EAAOwQ,WAE1B9H,KAAQ,SAAU1I,GACCoD,EAASpD,EAAOuQ,YACXjG,OAAOtK,EAAOiK,OAC/BxI,YAAYzB,EAAOyQ,YAG5BC,WACElI,KAAQ,SAAUxI,GAChBoD,EAASpD,EAAOgB,MAAM2P,YAAY3Q,EAAOwQ,WAE3C9H,KAAQ,SAAU1I,GAChBoD,EAASpD,EAAOgB,MAAM2P,YAAY3Q,EAAOyQ,YAG7CG,YACEpI,KAAQ,SAAUxI,GAChBoD,EAASpD,EAAOgB,MAAM4P,WAAW5Q,EAAO6Q,UAE1CnI,KAAQ,SAAU1I,GAChBoD,EAASpD,EAAOgB,MAAM4P,WAAW5Q,EAAO8Q,WAI5CC,aACEvI,KAAQ,SAAUxI,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,WACjCvQ,GAAOqF,MAAMnC,IAAIE,GAAU3J,QAAQ,SAAUgF,GAC3CO,EAAWC,YAAYR,MAG3BiK,KAAQ,SAAU1I,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,WACjCvQ,GAAOzB,MAAM9E,QAAQ,SAAUgF,GAC7BO,EAAWqB,YAAY5B,OAI7BuS,mBACExI,KAAQ,SAAUxI,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,WACjCvQ,GAAOqF,MAAMnC,IAAIE,GAAU3J,QAAQ,SAAUgF,GAC3CO,EAAWC,YAAYR,MAG3BiK,KAAQ,SAAU1I,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,YAC7BU,EAAa7N,EAASpD,EAAOkR,WACjClR,GAAOzB,MAAM9E,QAAQ,SAAUgF,GAC7BO,EAAWmS,aAAa1S,EAAMwS,OAIpCG,kBACE5I,KAAQ,SAAUxI,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,WACjCvQ,GAAOqF,MAAMnC,IAAIE,GAAU3J,QAAQ,SAAUgF,GAC3CO,EAAWC,YAAYR,MAG3BiK,KAAQ,SAAU1I,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,YAC7Bc,EAAYjO,EAASpD,EAAOsR,UAChCtR,GAAOzB,MAAM9E,QAAQ,SAAUgF,GAC7BO,EAAWuS,YAAY9S,EAAM4S,GAC7BA,EAAY5S,MAIlB+S,aACEhJ,KAAQ,SAAUxI,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,YAC7BU,EAAajS,EAAWsL,OAAOtK,EAAOiK,QAAUjL,EAAWyS,MAC/DzR,GAAOzB,MAAM9E,QAAQ,SAAUgF,GAC7BO,EAAWmS,aAAa1S,EAAMwS,MAGlCvI,KAAQ,SAAU1I,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,WACjCvQ,GAAOqF,MAAMnC,IAAIE,GAAU3J,QAAQ,SAAUgF,GAC3CO,EAAWC,YAAYR,OAI7BiT,gBACElJ,KAAQ,SAAUxI,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,WACjCvQ,GAAO2R,WAAWzO,IAAIE,GAAU3J,QAAQ,SAAUgF,GAChDO,EAAWC,YAAYR,MAG3BiK,KAAQ,SAAU1I,GAChB,GAAIhB,GAAaoE,EAASpD,EAAOuQ,YAC7Bc,EAAYjO,EAASpD,EAAOsR,UACpBtR,GAAOqF,MAAMnC,IAAIE,GACvB3J,QAAQ,SAAUgF,GACtB,GAAImT,GAAQnT,EAAKmT,OACjB5S,GAAWuS,YAAYK,EAAOP,GAC9BA,EAAYO,MAIlBC,WACErJ,KAAQ,SAAUxI,GAChB,GAAI8R,GAAgB1O,EAASpD,EAAO+R,eAChCC,EAAgB5O,EAASpD,EAAOiS,eAChCC,EAAgBJ,EAAcxH,OAAOtK,EAAOmS,WAAaL,EAAcL,MAG/DO,GAAc1H,OAAOiC,MAAMvM,EAAOoS,SAAUpS,EAAOoS,SAAWpS,EAAOqS,OAE3E5Y,QAAQ,SAAUgF,EAAMwL,GAC5BxL,EAAKwB,MAAQD,EAAOsS,WAAWrI,GAC/B6H,EAAcS,WAAW9T,EAAMyT,KAKA,OAA7BlS,EAAOwS,oBACTxS,EAAOwS,kBAAoBR,EAAchM,oBAG7C0C,KAAQ,SAAU1I,GAChB,GAAI8R,GAAgB1O,EAASpD,EAAOyS,mBAChCT,EAAgB5O,EAASpD,EAAOwS,mBAChCE,EAAgBV,EAAc1H,OAAOtK,EAAO2S,eAAiBX,EAAcP,MAGnEK,GAAcxH,OAAOiC,MAAMvM,EAAO4S,aAAc5S,EAAO4S,aAAe5S,EAAOqS,OAEnF5Y,QAAQ,SAAUgF,EAAMwL,GAC5BxL,EAAKwB,MAAQD,EAAOsS,WAAWrI,GAC/B+H,EAAcO,WAAW9T,EAAMiU,OAKrCtK,MACEI,KAAQ,SAAUxI,GAChB,GAAIvB,GAAO2E,EAASpD,EAAOgB,KAC3BvC,GAAKoU,aACLpU,EAAK6L,OAAStK,EAAO8S,UACrBrU,EAAK0F,WAAW4O,eAAe,IAC/BtU,EAAKuU,cAEPtK,KAAQ,SAAU1I,GAChB,GAAIvB,GAAO2E,EAASpD,EAAOgB,KAC3BvC,GAAKoU,aACLpU,EAAK6L,OAAStK,EAAOiT,UACrBxU,EAAK0F,WAAW4O,eAAe,IAC/BtU,EAAKuU,eAITzK,WACEC,KAAQ,SAAUxI,GAChBoD,EAASpD,EAAOgB,MAAMkS,iBAAiBlT,EAAOwQ,WAIhD9H,KAAQ,SAAU1I,GAChBoD,EAASpD,EAAOgB,MAAMkS,iBAAiBlT,EAAOyQ,aAetDtT,EAAQ9C,UAAUrB,SAAW,aAa7BmE,EAAQ9C,UAAUsI,IAAM,SAAUD,EAAQ1C,GACxCxI,KAAKyS,QACLzS,KAAKoH,QAAQpH,KAAKyS,QAChBvH,OAAUA,EACV1C,OAAUA,EACVmT,UAAa,GAAIC,OAIf5b,KAAKyS,MAAQzS,KAAKoH,QAAQ/E,OAAS,GACrCrC,KAAKoH,QAAQyU,OAAO7b,KAAKyS,MAAQ,EAAGzS,KAAKoH,QAAQ/E,OAASrC,KAAKyS,MAAQ,GAIzEzS,KAAKwB,YAMPmE,EAAQ9C,UAAUqB,MAAQ,WACxBlE,KAAKoH,WACLpH,KAAKyS,OAAS,EAGdzS,KAAKwB,YAOPmE,EAAQ9C,UAAUwO,QAAU,WAC1B,MAAQrR,MAAKyS,OAAS,GAOxB9M,EAAQ9C,UAAUyO,QAAU,WAC1B,MAAQtR,MAAKyS,MAAQzS,KAAKoH,QAAQ/E,OAAS,GAM7CsD,EAAQ9C,UAAUmO,KAAO,WACvB,GAAIhR,KAAKqR,UAAW,CAClB,GAAIgC,GAAMrT,KAAKoH,QAAQpH,KAAKyS,MAC5B,IAAIY,EAAK,CACP,GAAInI,GAASlL,KAAK6Y,QAAQxF,EAAInI,OAC9B,IAAIA,GAAUA,EAAO8F,MAEnB,GADA9F,EAAO8F,KAAKqC,EAAI7K,QACZ6K,EAAI7K,OAAOsT,aACb,IACE9b,KAAK2O,OAAOf,gBAAgByF,EAAI7K,OAAOsT,cAEzC,MAAOpZ,GACLtB,QAAQD,MAAMuB,QAKlBtB,SAAQD,MAAM,GAAIJ,OAAM,mBAAqBsS,EAAInI,OAAS,MAG9DlL,KAAKyS,QAGLzS,KAAKwB,aAOTmE,EAAQ9C,UAAUqO,KAAO,WACvB,GAAIlR,KAAKsR,UAAW,CAClBtR,KAAKyS,OAEL,IAAIY,GAAMrT,KAAKoH,QAAQpH,KAAKyS,MAC5B,IAAIY,EAAK,CACP,GAAInI,GAASlL,KAAK6Y,QAAQxF,EAAInI,OAC9B,IAAIA,GAAUA,EAAOgG,MAEnB,GADAhG,EAAOgG,KAAKmC,EAAI7K,QACZ6K,EAAI7K,OAAOuT,aACb,IACE/b,KAAK2O,OAAOf,gBAAgByF,EAAI7K,OAAOuT,cAEzC,MAAOrZ,GACLtB,QAAQD,MAAMuB,QAKlBtB,SAAQD,MAAM,GAAIJ,OAAM,mBAAqBsS,EAAInI,OAAS,MAK9DlL,KAAKwB,aAOTmE,EAAQ9C,UAAUG,QAAU,WAC1BhD,KAAK2O,OAAS,KAEd3O,KAAKoH,WACLpH,KAAKyS,OAAS,GAGhB5S,EAAOD,QAAU+F,GAKZ,SAAS9F,EAAQD,GAEtB,YASA,SAASgG,GAAW+I,EAAQ/N,GAC1B,GAAI+G,GAAY3H,IAEhBA,MAAK2O,OAASA,EACd3O,KAAKgc,YAAUnV,GACf7G,KAAKic,MAAQ,IACbjc,KAAKkc,aAAWrV,GAEhB7G,KAAK0G,OACL1G,KAAK0G,IAAI9F,UAAYA,CAErB,IAAI2H,GAAQ/B,SAASiJ,cAAc,QACnCzP,MAAK0G,IAAI6B,MAAQA,EACjBA,EAAMmH,UAAY,oBAClB9O,EAAUiI,YAAYN,EACtB,IAAImC,GAAQlE,SAASiJ,cAAc,QACnCzP,MAAK0G,IAAIgE,MAAQA,EACjBnC,EAAMM,YAAY6B,EAClB,IAAIyR,GAAK3V,SAASiJ,cAAc,KAChC/E,GAAM7B,YAAYsT,EAElB,IAAIC,GAAK5V,SAASiJ,cAAc,KAChC0M,GAAGtT,YAAYuT,EACf,IAAIvR,GAAUrE,SAASiJ,cAAc,MACrCzP,MAAK0G,IAAImE,QAAUA,EACnBA,EAAQ6E,UAAY,qBACpB0M,EAAGvT,YAAYgC,GAEfuR,EAAK5V,SAASiJ,cAAc,MAC5B0M,EAAGtT,YAAYuT,EACf,IAAIC,GAAW7V,SAASiJ,cAAc,MACtCzP,MAAK0G,IAAIyD,MAAQkS,EACjBA,EAAS3M,UAAY,mBACrB2M,EAAS1L,MAAQ,2BACjByL,EAAGvT,YAAYwT,EAGf,IAAIC,GAAa9V,SAASiJ,cAAc,QACxC4M,GAASxT,YAAYyT,EACrB,IAAIC,GAAc/V,SAASiJ,cAAc,QACzC6M,GAAWzT,YAAY0T,GACvBJ,EAAK3V,SAASiJ,cAAc,MAC5B8M,EAAY1T,YAAYsT,EAExB,IAAIK,GAAgBhW,SAASiJ,cAAc,SAC3C+M,GAAc9P,KAAO,SACrB8P,EAAc9M,UAAY,qBAC1B0M,EAAK5V,SAASiJ,cAAc,MAC5B2M,EAAGvT,YAAY2T,GACfL,EAAGtT,YAAYuT,EAEf,IAAIvU,GAASrB,SAASiJ,cAAc,QAEpCzP,MAAK0G,IAAImB,OAASA,EAClBA,EAAOiI,QAAU,SAAUP,GACzB5H,EAAU8U,iBAAiBlN,IAE7B1H,EAAOkI,SAAW,SAAUR,GAC1B5H,EAAU+U,aAEZ7U,EAAOmI,UAAY,SAAUT,GAC3B5H,EAAUiK,WAAWrC,IAEvB1H,EAAOoI,QAAU,SAAUV,GACzB5H,EAAUgV,SAASpN,IAErBiN,EAAc7M,QAAU,SAAUJ,GAChC1H,EAAOkG,UAITqO,EAAK5V,SAASiJ,cAAc,MAC5B2M,EAAGvT,YAAYhB,GACfsU,EAAGtT,YAAYuT,EAEf,IAAIQ,GAAapW,SAASiJ,cAAc,SACxCmN,GAAWlQ,KAAO,SAClBkQ,EAAWjM,MAAQ,sBACnBiM,EAAWlN,UAAY,kBACvBkN,EAAWjN,QAAU,WACnBhI,EAAUyO,QAEZgG,EAAK5V,SAASiJ,cAAc,MAC5B2M,EAAGvT,YAAY+T,GACfT,EAAGtT,YAAYuT,EAEf,IAAIS,GAAiBrW,SAASiJ,cAAc,SAC5CoN,GAAenQ,KAAO,SACtBmQ,EAAelM,MAAQ,gCACvBkM,EAAenN,UAAY,sBAC3BmN,EAAelN,QAAU,WACvBhI,EAAUwO,YAEZiG,EAAK5V,SAASiJ,cAAc,MAC5B2M,EAAGvT,YAAYgU,GACfV,EAAGtT,YAAYuT,GAQjBxW,EAAU/C,UAAUuT,KAAO,SAASlM,GAClC,OAAoBrD,IAAhB7G,KAAK6K,QAAsB,CAC7B,GAAI4H,OAA6B5L,IAApB7G,KAAK8c,YAA4B9c,KAAK8c,YAAc,EAAI,CACjErK,GAAQzS,KAAK6K,QAAQxI,OAAS,IAChCoQ,EAAQ,GAEVzS,KAAK+c,iBAAiBtK,EAAOvI,KASjCtE,EAAU/C,UAAUsT,SAAW,SAASjM,GACtC,OAAoBrD,IAAhB7G,KAAK6K,QAAsB,CAC7B,GAAIoE,GAAMjP,KAAK6K,QAAQxI,OAAS,EAC5BoQ,MAA6B5L,IAApB7G,KAAK8c,YAA4B9c,KAAK8c,YAAc,EAAI7N,CACjEwD,GAAQ,IACVA,EAAQxD,GAEVjP,KAAK+c,iBAAiBtK,EAAOvI,KAWjCtE,EAAU/C,UAAUka,iBAAmB,SAAStK,EAAOvI,GAErD,GAAIlK,KAAKgd,aAAc,CACrB,GAAIC,GAAWjd,KAAKgd,aAAa/V,IAEjB,UADDjH,KAAKgd,aAAaE,WAExBD,GAASE,wBAGTF,GAASG,kBAElBH,EAAStQ,YAGX,IAAK3M,KAAK6K,UAAY7K,KAAK6K,QAAQ4H,GAIjC,MAFAzS,MAAK8c,gBAAcjW,QACnB7G,KAAKgd,iBAAenW,GAItB7G,MAAK8c,YAAcrK,CAGnB,IAAIxL,GAAOjH,KAAK6K,QAAQ7K,KAAK8c,aAAa7V,KACtCiW,EAAOld,KAAK6K,QAAQ7K,KAAK8c,aAAaI,IAC9B,UAARA,EACFjW,EAAKkW,mBAAoB,EAGzBlW,EAAKmW,mBAAoB,EAE3Bpd,KAAKgd,aAAehd,KAAK6K,QAAQ7K,KAAK8c,aACtC7V,EAAK0F,YAGL1F,EAAKwH,SAAS,WACRvE,GACFjD,EAAKiD,MAAMgT,MASjBtX,EAAU/C,UAAUwa,YAAc,eACZxW,IAAhB7G,KAAKgc,UACPrO,aAAa3N,KAAKgc,eACXhc,MAAKgc,UAUhBpW,EAAU/C,UAAU4Z,iBAAmB,SAAUlN,GAG/CvP,KAAKqd,aACL,IAAI1V,GAAY3H,IAChBA,MAAKgc,QAAU3M,WAAW,SAAUE,GAClC5H,EAAU+U,aAEZ1c,KAAKic,QAUPrW,EAAU/C,UAAU6Z,UAAY,SAAUvT,GACxCnJ,KAAKqd,aAEL,IAAI3U,GAAQ1I,KAAK0G,IAAImB,OAAOa,MACxBkC,EAAQlC,EAAMrG,OAAS,EAAKqG,MAAQ7B,EACxC,IAAI+D,IAAS5K,KAAKkc,UAAY/S,EAAa,CAEzCnJ,KAAKkc,SAAWtR,EAChB5K,KAAK6K,QAAU7K,KAAK2O,OAAO9G,OAAO+C,EAClC,IAAI0S,GAAqBtd,KAAK6K,QAAQ,GAChC7K,KAAK6K,QAAQ,GAAG5D,KAAKqW,mBACrBC,EAAAA,EAGFC,EAAoB,CACxB,IAAIxd,KAAKgd,aACP,IAAK,GAAI1X,GAAI,EAAGA,EAAItF,KAAK6K,QAAQxI,OAAQiD,IACvC,GAAItF,KAAK6K,QAAQvF,GAAG2B,OAASjH,KAAKgd,aAAa/V,KAAM,CACnDuW,EAAoBlY,CACpB,OAQN,GAHAtF,KAAK+c,iBAAiBS,GAAmB,OAG5B3W,KAAT+D,EAAoB,CACtB,GAAI6S,GAAczd,KAAK6K,QAAQxI,MAE7BrC,MAAK0G,IAAImE,QAAQ6S,UADC,IAAhBD,EAC2B,kBAEN,IAAhBA,EACsB,gBAEtBA,EAAcH,EACQA,EAAqB,iBAGrBG,EAAc,oBAI7Czd,MAAK0G,IAAImE,QAAQ6S,UAAY,KAUnC9X,EAAU/C,UAAU+O,WAAa,SAAUrC,GACzC,GAAImG,GAASnG,EAAMoG,KACL,KAAVD,GACF1V,KAAK0G,IAAImB,OAAOa,MAAQ,GACxB1I,KAAK0c,YACLnN,EAAMM,iBACNN,EAAM0H,mBAEW,IAAVvB,IACHnG,EAAMuG,QAER9V,KAAK0c,WAAU,GAERnN,EAAMyG,SAEbhW,KAAKmW,WAILnW,KAAKoW,OAEP7G,EAAMM,iBACNN,EAAM0H,oBASVrR,EAAU/C,UAAU8Z,SAAW,SAAUpN,GACvC,GAAImG,GAASnG,EAAMqG,OACL,KAAVF,GAA0B,IAAVA,GAClB1V,KAAKyc,iBAAiBlN,IAO1B3J,EAAU/C,UAAUqB,MAAQ,WAC1BlE,KAAK0G,IAAImB,OAAOa,MAAQ,GACxB1I,KAAK0c,aAMP9W,EAAU/C,UAAUsG,YAAc,WAChCnJ,KAAK0c,WAAU,IAOjB9W,EAAU/C,UAAUqG,QAAU,WAC5B,MAAiC,KAA1BlJ,KAAK0G,IAAImB,OAAOa,OAMzB9C,EAAU/C,UAAUG,QAAU,WAC5BhD,KAAK2O,OAAS,KACd3O,KAAK0G,IAAI9F,UAAU6G,YAAYzH,KAAK0G,IAAI6B,OACxCvI,KAAK0G,IAAM,KAEX1G,KAAK6K,QAAU,KACf7K,KAAKgd,aAAe,KAEpBhd,KAAKqd,eAIPxd,EAAOD,QAAUgG,GAKZ,SAAS/F,EAAQD,EAASM,GAE/B,YAUA,SAASyd,GAAY1W,GACjB,MAAOA,GAAK0W,aAAe1W,EAAK0W,eAAiB1J,OAYrD,QAASpO,GAAa0R,EAAO1W,GAuC3B,QAAS+c,GAAiBC,EAAMC,EAAUvG,GACxCA,EAAMtV,QAAQ,SAAU8b,GACtB,GAAiB,aAAbA,EAAKrR,KAAqB,CAE5B,GAAIsR,GAAYxX,SAASiJ,cAAc,MACvCuO,GAAUtO,UAAY,uBACtBuO,EAAKzX,SAASiJ,cAAc,MAC5BwO,EAAGpV,YAAYmV,GACfH,EAAKhV,YAAYoV,OAEd,CACH,GAAIC,MAGAD,EAAKzX,SAASiJ,cAAc,KAChCoO,GAAKhV,YAAYoV,EAGjB,IAAIE,GAAS3X,SAASiJ,cAAc,SAiBpC,IAhBA0O,EAAOzR,KAAO,SACdyR,EAAOzO,UAAYqO,EAAKrO,UACxBwO,EAAQC,OAASA,EACbJ,EAAKpN,QACPwN,EAAOxN,MAAQoN,EAAKpN,OAElBoN,EAAKvG,QACP2G,EAAOxO,QAAU,SAAUJ,GACzBA,EAAMM,iBACN9C,EAAGxC,OACHwT,EAAKvG,UAGTyG,EAAGpV,YAAYsV,GAGXJ,EAAKK,QAAS,CAEhB,GAAIC,GAAU7X,SAASiJ,cAAc,MACrC4O,GAAQ3O,UAAY,kBACpByO,EAAOtV,YAAYwV,EACnB,IAAIC,GAAU9X,SAASiJ,cAAc,MACrC6O,GAAQ5O,UAAY,mBACfqO,EAAKvG,MAAQ,GAAK,4BACvB8G,EAAQzV,YAAYrC,SAAS+X,eAAeR,EAAKnT,OACjDuT,EAAOtV,YAAYyV,EAEnB,IAAIE,EACJ,IAAIT,EAAKvG,MAAO,CAEd2G,EAAOzO,WAAa,qBAEpB,IAAI+O,GAAejY,SAASiJ,cAAc,SAC1CgP,GAAa/R,KAAO,SACpBwR,EAAQO,aAAeA,EACvBA,EAAa/O,UAAY,oBACzB+O,EAAaf,UAAY,wCACzBO,EAAGpV,YAAY4V,GACXV,EAAKW,eACPD,EAAa9N,MAAQoN,EAAKW,cAG5BF,EAAgBC,MAEb,CAEH,GAAIE,GAAYnY,SAASiJ,cAAc,MACvCkP,GAAUjP,UAAY,oBACtByO,EAAOtV,YAAY8V,GAEnBH,EAAgBL,EAIlBK,EAAc7O,QAAU,SAAUJ,GAChCA,EAAMM,iBACN9C,EAAG6R,cAAcV,GACjBM,EAActU,QAIhB,IAAI2U,KACJX,GAAQY,SAAWD,CACnB,IAAIE,GAAKvY,SAASiJ,cAAc,KAChCyO,GAAQa,GAAKA,EACbA,EAAGrP,UAAY,kBACfqP,EAAGC,MAAM9R,OAAS,IAClB+Q,EAAGpV,YAAYkW,GACfnB,EAAgBmB,EAAIF,EAAad,EAAKK,aAItCD,GAAOT,UAAY,mEACmBtX,EAAU2X,EAAKnT,MAAQ,QAG/DkT,GAAS9K,KAAKkL,MArIpBle,KAAK0G,MAEL,IAAIqG,GAAK/M,KACL0G,EAAM1G,KAAK0G,GACf1G,MAAK6Q,WAAShK,GACd7G,KAAKuX,MAAQA,EACbvX,KAAKif,kBACLjf,KAAK4G,cAAYC,GACjB7G,KAAKsX,QAAUzW,EAAUA,EAAQ8W,UAAQ9Q,EAGzC,IAAInH,GAAO8G,SAASiJ,cAAc,MAClC/P,GAAKgQ,UAAY,8BACjBhJ,EAAIhH,KAAOA,CAGX,IAAI4K,GAAO9D,SAASiJ,cAAc,MAClCnF,GAAKoF,UAAY,yBACjBhJ,EAAI4D,KAAOA,EACX5K,EAAKmJ,YAAYyB,EAGjB,IAAIuT,GAAOrX,SAASiJ,cAAc,KAClCoO,GAAKnO,UAAY,kBACjBpF,EAAKzB,YAAYgV,GACjBnX,EAAImX,KAAOA,EACXnX,EAAI6Q,QAGJ,IAAI2H,GAAc1Y,SAASiJ,cAAc,SACzCyP,GAAYxS,KAAO,SACnBhG,EAAIwY,YAAcA,CAClB,IAAIjB,GAAKzX,SAASiJ,cAAc,KAChCwO,GAAGe,MAAMG,SAAW,SACpBlB,EAAGe,MAAM9R,OAAS,IAClB+Q,EAAGpV,YAAYqW,GACfrB,EAAKhV,YAAYoV,GAqGjBL,EAAgBC,EAAM7d,KAAK0G,IAAI6Q,MAAOA,GAKtCvX,KAAKof,UAAY,EACjB7H,EAAMtV,QAAQ,SAAU8b,GACtB,GAAI7Q,GAAqE,IAA3DqK,EAAMlV,QAAU0b,EAAKK,QAAUL,EAAKK,QAAQ/b,OAAS,GACnE0K,GAAGqS,UAAYrQ,KAAKE,IAAIlC,EAAGqS,UAAWlS,KAvK1C,GAAIjM,GAAOf,EAAoB,GAC3BkG,EAAYlG,EAAoB,GAAGkG,SA+KvCP,GAAYhD,UAAUwc,mBAAqB,WACzC,GAAIC,MACAvS,EAAK/M,IAiBT,OAhBAA,MAAK0G,IAAI6Q,MAAMtV,QAAQ,SAAU8b,GAC/BuB,EAAQtM,KAAK+K,EAAKI,QACdJ,EAAKU,cACPa,EAAQtM,KAAK+K,EAAKU,cAEhBV,EAAKe,UAAYf,GAAQhR,EAAGwS,cAC9BxB,EAAKe,SAAS7c,QAAQ,SAAUud,GAC9BF,EAAQtM,KAAKwM,EAAQrB,QACjBqB,EAAQf,cACVa,EAAQtM,KAAKwM,EAAQf,kBAOtBa,GAITzZ,EAAY4Z,gBAAc5Y,GAQ1BhB,EAAYhD,UAAUkU,KAAO,SAAUlG,EAAQ6O,GAC7C1f,KAAKuK,MAGL,IAAIoV,IAAY,EACZtT,EAASwE,EAAOrJ,WAChBoY,EAAa/O,EAAOgP,wBACpBC,EAAazT,EAAOwT,uBAExB,IAAIH,EAAe,CAEjB,GAAIK,GAAcL,EAAcG,uBAE5BD,GAAWxS,OAASpN,KAAKof,UAAYW,EAAY3S,QAG5CwS,EAAW5S,IAAMhN,KAAKof,UAAYW,EAAY/S,MAErD2S,GAAY,GAOhB,GAAIK,GAAUJ,EAAWK,KAAOH,EAAWG,KACvCC,EAASN,EAAW5S,IAAM8S,EAAW9S,GAGzC,IAAI2S,EAAW,CAEb,GAAIQ,GAAetP,EAAOuP,YAC1BpgB,MAAK0G,IAAI4D,KAAK0U,MAAMiB,KAAOD,EAAU,KACrChgB,KAAK0G,IAAI4D,KAAK0U,MAAMhS,IAAMkT,EAASC,EAAe,KAClDngB,KAAK0G,IAAI4D,KAAK0U,MAAM5R,OAAS,OAI7BpN,MAAK0G,IAAI4D,KAAK0U,MAAMiB,KAAOD,EAAU,KACrChgB,KAAK0G,IAAI4D,KAAK0U,MAAMhS,IAAMkT,EAAS,KACnClgB,KAAK0G,IAAI4D,KAAK0U,MAAM5R,OAAS,KAI/BpN,MAAKqgB,SAAW1C,EAAY9M,GAG5BxE,EAAOsN,aAAa3Z,KAAK0G,IAAIhH,KAAM2M,EAAOiU,WAG1C,IAAIvT,GAAK/M,KACL6d,EAAO7d,KAAK0G,IAAImX,IACpB7d,MAAKif,eAAesB,UAAYtf,EAAKuP,iBAAiBxQ,KAAKqgB,SAAU,YAAa,SAAU9Q,GAE1F,GAAIK,GAASL,EAAMK,MACdA,IAAUiO,GAAU9Q,EAAGyT,WAAW5Q,EAAQiO,KAC7C9Q,EAAGxC,OACHgF,EAAM0H,kBACN1H,EAAMM,oBAGV7P,KAAKif,eAAewB,QAAUxf,EAAKuP,iBAAiBxQ,KAAKqgB,SAAU,UAAW,SAAU9Q,GACtFxC,EAAG6E,WAAWrC,KAIhBvP,KAAK4G,UAAY3F,EAAK+H,eACtBhJ,KAAK6Q,OAASA,EACdxB,WAAW,WACTtC,EAAGrG,IAAIwY,YAAYhV,SAClB,GAECrE,EAAY4Z,aACd5Z,EAAY4Z,YAAYlV,OAE1B1E,EAAY4Z,YAAczf,MAM5B6F,EAAYhD,UAAU0H,KAAO,WAEvBvK,KAAK0G,IAAIhH,KAAK8H,aAChBxH,KAAK0G,IAAIhH,KAAK8H,WAAWC,YAAYzH,KAAK0G,IAAIhH,MAC1CM,KAAKsX,SACPtX,KAAKsX,UAMT,KAAK,GAAI5T,KAAQ1D,MAAKif,eACpB,GAAIjf,KAAKif,eAAejX,eAAetE,GAAO,CAC5C,GAAIgd,GAAK1gB,KAAKif,eAAevb,EACzBgd,IACFzf,EAAKwT,oBAAoBzU,KAAKqgB,SAAU3c,EAAMgd,SAEzC1gB,MAAKif,eAAevb,GAI3BmC,EAAY4Z,aAAezf,OAC7B6F,EAAY4Z,gBAAc5Y,KAU9BhB,EAAYhD,UAAU+b,cAAgB,SAAUV,GAC9C,GAAInR,GAAK/M,KACL2gB,EAAkBzC,GAAWle,KAAKuf,aAGlCA,EAAevf,KAAKuf,YAcxB,IAbIA,IAEFA,EAAaR,GAAGC,MAAM9R,OAAS,IAC/BqS,EAAaR,GAAGC,MAAM4B,QAAU,GAChCvR,WAAW,WACLtC,EAAGwS,cAAgBA,IACrBA,EAAaR,GAAGC,MAAM6B,QAAU,GAChC5f,EAAKyR,gBAAgB6M,EAAaR,GAAGvX,WAAY,yBAElD,KACHxH,KAAKuf,iBAAe1Y,KAGjB8Z,EAAgB,CACnB,GAAI5B,GAAKb,EAAQa,EACjBA,GAAGC,MAAM6B,QAAU,OACN9B,GAAG5R,YAChBkC,YAAW,WACT,GAAItC,EAAGwS,cAAgBrB,EAAS,CAE9B,IAAK,GADD4C,GAAe,EACVxb,EAAI,EAAGA,EAAIyZ,EAAGgC,WAAW1e,OAAQiD,IACxCwb,GAAgB/B,EAAGgC,WAAWzb,GAAG6H,YAEnC4R,GAAGC,MAAM9R,OAAS4T,EAAe,KACjC/B,EAAGC,MAAM4B,QAAU,aAEpB,GACH3f,EAAKiS,aAAa6L,EAAGvX,WAAY,uBACjCxH,KAAKuf,aAAerB,IASxBrY,EAAYhD,UAAU+O,WAAa,SAAUrC,GAC3C,GAGI+P,GAAS0B,EAAaC,EAAYC,EAHlCtR,EAASL,EAAMK,OACf8F,EAASnG,EAAMoG,MACfM,GAAU,CAGA,KAAVP,GAIE1V,KAAK4G,WACP3F,EAAKyI,aAAa1J,KAAK4G,WAErB5G,KAAK6Q,QACP7Q,KAAK6Q,OAAO3G,QAGdlK,KAAKuK,OAEL0L,GAAU,GAEO,GAAVP,EACFnG,EAAMyG,UAUTsJ,EAAUtf,KAAKqf,qBAEI,IADnB2B,EAAc1B,EAAQxd,QAAQ8N,MAG5B0P,EAAQA,EAAQjd,OAAS,GAAG6H,QAC5B+L,GAAU,KAdZqJ,EAAUtf,KAAKqf,sBACf2B,EAAc1B,EAAQxd,QAAQ8N,KACX0P,EAAQjd,OAAS,IAElCid,EAAQ,GAAGpV,QACX+L,GAAU,IAaG,IAAVP,GACiB,qBAApB9F,EAAOF,YACT4P,EAAUtf,KAAKqf,qBACf2B,EAAc1B,EAAQxd,QAAQ8N,IAC9BqR,EAAa3B,EAAQ0B,EAAc,KAEjCC,EAAW/W,SAGf+L,GAAU,GAEO,IAAVP,GACP4J,EAAUtf,KAAKqf,qBACf2B,EAAc1B,EAAQxd,QAAQ8N,GAC9BqR,EAAa3B,EAAQ0B,EAAc,GAC/BC,GAAsC,qBAAxBA,EAAWvR,YAE3BuR,EAAa3B,EAAQ0B,EAAc,IAEhCC,IAEHA,EAAa3B,EAAQA,EAAQjd,OAAS,IAEpC4e,GACFA,EAAW/W,QAEb+L,GAAU,GAEO,IAAVP,GACP4J,EAAUtf,KAAKqf,qBACf2B,EAAc1B,EAAQxd,QAAQ8N,GAC9BsR,EAAa5B,EAAQ0B,EAAc,GAC/BE,GAAsC,qBAAxBA,EAAWxR,WAC3BwR,EAAWhX,QAEb+L,GAAU,GAEO,IAAVP,IACP4J,EAAUtf,KAAKqf,qBACf2B,EAAc1B,EAAQxd,QAAQ8N,GAC9BsR,EAAa5B,EAAQ0B,EAAc,GAC/BE,GAAsC,qBAAxBA,EAAWxR,YAE3BwR,EAAa5B,EAAQ0B,EAAc,IAEhCE,IAEHA,EAAa5B,EAAQ,IAEnB4B,IACFA,EAAWhX,QACX+L,GAAU,GAEZA,GAAU,GAIRA,IACF1G,EAAM0H,kBACN1H,EAAMM,mBAUVhK,EAAYhD,UAAU2d,WAAa,SAAUhU,EAAOH,GAElD,IADA,GAAI7J,GAAIgK,EAAMhF,WACPhF,GAAG,CACR,GAAIA,GAAK6J,EACP,OAAO,CAET7J,GAAIA,EAAEgF,WAGR,OAAO,GAGT3H,EAAOD,QAAUiG,GAKZ,SAAShG,EAAQD,EAASM,GAE/B,YAEA,IAAIihB,GAAWjhB,EAAoB,EAQnCN,GAAQyD,MAAQ,SAAe+d,GAC7B,IACE,MAAO7d,MAAKF,MAAM+d,GAEpB,MAAO1e,GAKL,KAHA9C,GAAQuF,SAASic,GAGX1e,IAYV9C,EAAQmK,SAAW,SAAUsX,GA+B3B,QAASC,KAAU,MAAOD,GAASE,OAAOjc,GAC1C,QAAS8Q,KAAU,MAAOiL,GAASE,OAAOjc,EAAI,GAC9C,QAASkc,KAAU,MAAOH,GAASE,OAAOjc,EAAI,GAmC9C,QAASmc,GAAYC,GACnBC,EAAM3O,KAAK,KACX1N,GAEA,KADA,GAAI7E,GAAI6gB,IACDhc,EAAI+b,EAAShf,QAAU5B,IAAMihB,GACxB,MAANjhB,GAAwB,OAAX+gB,IAEfG,EAAM3O,KAAK,OAEJ4O,EAAa5Z,eAAevH,GAEnCkhB,EAAM3O,KAAK4O,EAAanhB,IAEX,OAANA,GAEP6E,IACA7E,EAAI6gB,IACM,MAAN7gB,GACFkhB,EAAM3O,KAAK,MAEb2O,EAAM3O,KAAKvS,IAIXkhB,EAAM3O,KAAKvS,GAGb6E,IACA7E,EAAI6gB,GAEF7gB,KAAMihB,IACRC,EAAM3O,KAAK,KACX1N,KAlGJ,GAAIqc,MACArc,EAAI,EAKJuc,EAAQR,EAASQ,MAAM,uEACvBA,KACFR,EAAWQ,EAAM,GAmHnB,KAhHA,GAAID,IACFE,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,OA2GF5c,EAAI+b,EAAShf,QAAQ,CACzB,GAAI5B,GAAI6gB,GAEE,OAAN7gB,GAAwB,MAAX2V,IA7EnB,WAEE,IADA9Q,GAAK,EACEA,EAAI+b,EAAShf,SAAsB,MAAXif,KAA6B,MAAXlL,MAC/C9Q,GAEFA,IAAK,KA2EU,MAAN7E,GAAwB,MAAX2V,IAvExB,WAEE,IADA9Q,GAAK,EACEA,EAAI+b,EAAShf,QAAsB,OAAXif,KAC7Bhc,OAuEa,MAAN7E,GAAmBA,GAAK,KAAYA,GAAK,KAAmB,MAANA,GAAwB,MAANA,GAAwB,MAANA,GAEjGkhB,EAAM3O,KAAK,KACX1N,KApHQ,MAsHD7E,EACPghB,EAvHQ,KACG,MAwHJhhB,EACPghB,EAzHW,KAKG,MAsHPhhB,EACPghB,EAtHc,KALF,MA6HLhhB,EACPghB,EA7Ha,KACE,MA8HRhhB,EACPghB,EA9HgB,KAgIT,aAAaU,KAAK1hB,KAAmD,KAA5C,IAAK,KAAKqB,QAtH9C,WAGE,IAFA,GAAIpB,GAAIihB,EAAMtf,OAAS,EAEhB3B,GAAK,GAAG,CACb,GAAI0hB,GAAKT,EAAMjhB,EACf,IAAW,MAAP0hB,GAAqB,OAAPA,GAAsB,OAAPA,GAAsB,OAAPA,EAC9C,MAAOA,EAET1hB,KAGF,MAAO,OA0DT,WAME,IALA,GAAI2hB,IAAiB,OAAQ,OAAQ,SACjChM,EAAM,GACN5V,EAAI6gB,IAEJgB,EAAS,eACNA,EAAOH,KAAK1hB,IACjB4V,GAAO5V,EACP6E,IACA7E,EAAI6gB,KAG8B,IAAhCe,EAAcvgB,QAAQuU,GACxBsL,EAAM3O,KAAK,IAAMqD,EAAM,KAGvBsL,EAAM3O,KAAKqD,OAsCXsL,EAAM3O,KAAKvS,GACX6E,KAIJ,MAAOqc,GAAMY,KAAK,KASpB3iB,EAAQ4iB,mBAAqB,SAAU5X,GAIrC,MAAOA,GAAK6X,QAAQ,mBAAoB,SAAShiB,GAC/C,MAAO,OAAO,OAASA,EAAEiiB,WAAW,GAAGC,SAAS,KAAK5N,OAAO,MAWhEnV,EAAQuF,SAAW,SAAkBic,OACX,KAAd,EACRD,EAAS9d,MAAM+d,GAGf7d,KAAKF,MAAM+d,IAUfxhB,EAAQkE,OAAS,SAAgB8e,EAAGC,GAClC,IAAK,GAAItd,KAAQsd,GACXA,EAAE7a,eAAezC,KACnBqd,EAAErd,GAAQsd,EAAEtd,GAGhB,OAAOqd,IAQThjB,EAAQsE,MAAQ,SAAgB0e,GAC9B,IAAK,GAAIrd,KAAQqd,GACXA,EAAE5a,eAAezC,UACZqd,GAAErd,EAGb,OAAOqd,IAQThjB,EAAQ8M,KAAO,SAAeoW,GAC5B,MAAe,QAAXA,EACK,WAEMjc,KAAXic,EACK,YAEJA,YAAkBC,SAA8B,gBAAXD,GACjC,SAEJA,YAAkBE,SAA8B,gBAAXF,GACjC,SAEJA,YAAkBG,UAA+B,iBAAXH,GAClC,UAEJA,YAAkBI,SAA8B,gBAAXJ,GACjC,SAELljB,EAAQ4F,QAAQsd,GACX,QAGF,SAQT,IAAIK,GAAa,kBACjBvjB,GAAQwjB,MAAQ,SAAgBxY,GAC9B,OAAuB,gBAARA,IAAoBA,YAAgBoY,UAC/CG,EAAWhB,KAAKvX,IAQtBhL,EAAQ4F,QAAU,SAAU6N,GAC1B,MAA+C,mBAAxCtR,OAAOc,UAAU8f,SAASpiB,KAAK8S,IASxCzT,EAAQyjB,gBAAkB,SAAyBnG,GAEjD,MADWA,GAAK2C,wBACJI,KAAOhM,OAAOqP,aAAe9c,SAAS+c,YAAc,GASlE3jB,EAAQqN,eAAiB,SAAwBiQ,GAE/C,MADWA,GAAK2C,wBACJ7S,IAAMiH,OAAOuP,aAAehd,SAAS6G,WAAa,GAQhEzN,EAAQsT,aAAe,SAAsBgK,EAAMxN,GACjD,GAAI+T,GAAUvG,EAAKxN,UAAUgU,MAAM,MACA,GAA/BD,EAAQ3hB,QAAQ4N,KAClB+T,EAAQzQ,KAAKtD,GACbwN,EAAKxN,UAAY+T,EAAQlB,KAAK,OASlC3iB,EAAQ8S,gBAAkB,SAAyBwK,EAAMxN,GACvD,GAAI+T,GAAUvG,EAAKxN,UAAUgU,MAAM,KAC/BjR,EAAQgR,EAAQ3hB,QAAQ4N,IACd,GAAV+C,IACFgR,EAAQ5H,OAAOpJ,EAAO,GACtByK,EAAKxN,UAAY+T,EAAQlB,KAAK,OASlC3iB,EAAQ+jB,gBAAkB,SAAyBC,GAEjD,IAAK,GADD9Q,GAAS8Q,EAAW7C,WACfzb,EAAI,EAAGue,EAAO/Q,EAAOzQ,OAAQiD,EAAIue,EAAMve,IAAK,CACnD,GAAIkH,GAAQsG,EAAOxN,EAGfkH,GAAMwS,OAERxS,EAAMsX,gBAAgB,QAIxB,IAAIC,GAAavX,EAAMuX,UACvB,IAAIA,EACF,IAAK,GAAIC,GAAID,EAAW1hB,OAAS,EAAG2hB,GAAK,EAAGA,IAAK,CAC/C,GAAIC,GAAYF,EAAWC,IACC,IAAxBC,EAAUC,WACZ1X,EAAMsX,gBAAgBG,EAAUvgB,MAMtC9D,EAAQ+jB,gBAAgBnX,KAW5B5M,EAAQukB,wBAA0B,SAAiCC,GACjE,GAAInW,GAAOrH,CACRJ,UAAS6d,cACVpW,EAAQzH,SAAS6d,cACjBpW,EAAMqW,mBAAmBF,GACzBnW,EAAMjD,UAAS,GACfpE,EAAYqN,OAAOjL,eACnBpC,EAAU2d,kBACV3d,EAAU4d,SAASvW,KASvBrO,EAAQsW,sBAAwB,SAA+BkO,GAC7D,GAAKA,GAA6D,OAAnCA,EAAuB7V,SAAtD,CAIA,GAAIkW,GAAKxW,CACLgG,QAAOjL,cAAgBxC,SAAS6d,cAClCpW,EAAQzH,SAAS6d,cACjBpW,EAAMqW,mBAAmBF,GACzBK,EAAMxQ,OAAOjL,eACbyb,EAAIF,kBACJE,EAAID,SAASvW,MASjBrO,EAAQoJ,aAAe,WACrB,GAAIiL,OAAOjL,aAAc,CACvB,GAAIyb,GAAMxQ,OAAOjL,cACjB,IAAIyb,EAAIC,YAAcD,EAAIE,WACxB,MAAOF,GAAIC,WAAW,GAG1B,MAAO,OAQT9kB,EAAQ8J,aAAe,SAAsBuE,GAC3C,GAAIA,GACEgG,OAAOjL,aAAc,CACvB,GAAIyb,GAAMxQ,OAAOjL,cACjByb,GAAIF,kBACJE,EAAID,SAASvW,KAcnBrO,EAAQ0O,mBAAqB,WAC3B,GAAIL,GAAQrO,EAAQoJ,cAEpB,OAAIiF,IAAS,eAAiBA,IAAS,aAAeA,IAClDA,EAAM2W,gBAAmB3W,EAAM2W,gBAAkB3W,EAAM4W,cAEvDC,YAAa7W,EAAM6W,YACnBC,UAAW9W,EAAM8W,UACjBnkB,UAAWqN,EAAM2W,eAAepd,YAI7B,MAUT5H,EAAQuO,mBAAqB,SAA4B3F,GACvD,GAAIhC,SAAS6d,aAAepQ,OAAOjL,aAAc,CAE/C,GADgBiL,OAAOjL,eACT,CACZ,GAAIiF,GAAQzH,SAAS6d,aAEhB7b,GAAO5H,UAAU0f,YACpB9X,EAAO5H,UAAUiI,YAAYrC,SAAS+X,eAAe,KAKvDtQ,EAAM+W,SAASxc,EAAO5H,UAAU0f,WAAY9X,EAAOsc,aACnD7W,EAAMgX,OAAOzc,EAAO5H,UAAU0f,WAAY9X,EAAOuc,WAEjDnlB,EAAQ8J,aAAauE,MAW3BrO,EAAQslB,aAAe,SAAsB1O,EAAS2O,GAiBpD,OAhBuBte,IAAVse,IAEXA,GACEva,KAAQ,GACRwa,MAAS,WACP,GAAIxa,GAAO5K,KAAK4K,IAEhB,OADA5K,MAAK4K,KAAO,GACLA,GAET3H,IAAO,SAAU2H,GACf5K,KAAK4K,KAAOA,KAMd4L,EAAQ6O,UACV,MAAOF,GAAOC,QAAU5O,EAAQ6O,SAIlC,IAAI7O,EAAQ8O,gBAAiB,CAI3B,IAAK,GAHDvE,GAAavK,EAAQuK,WACrBtK,EAAY,GAEPnR,EAAI,EAAGue,EAAO9C,EAAW1e,OAAQiD,EAAIue,EAAMve,IAAK,CACvD,GAAIkH,GAAQuU,EAAWzb,EAEvB,IAAsB,OAAlBkH,EAAM+B,UAAuC,KAAlB/B,EAAM+B,SAAiB,CACpD,GAAIgX,GAAYxE,EAAWzb,EAAI,GAC3BkgB,EAAWD,EAAYA,EAAUhX,aAAW1H,EAC5C2e,IAAwB,OAAZA,GAAiC,KAAZA,GAA+B,MAAZA,IACtD/O,GAAa,KACb0O,EAAOC,SAET3O,GAAa7W,EAAQslB,aAAa1Y,EAAO2Y,GACzCA,EAAOliB,IAAI,UAEc,MAAlBuJ,EAAM+B,UACbkI,GAAa0O,EAAOC,QACpBD,EAAOliB,IAAI,OAGXwT,GAAa7W,EAAQslB,aAAa1Y,EAAO2Y,GAI7C,MAAO1O,GAGP,MAAwB,KAApBD,EAAQjI,WAA4D,GAAzC3O,EAAQsB,6BAM9BikB,EAAOC,QAKX,IASTxlB,EAAQsB,2BAA6B,WACnC,IAAmB,GAAfukB,EAAkB,CACpB,GAAIC,IAAM,CACV,IAAyB,mBAAdC,YAAkD,+BAArBA,UAAUC,QAA0C,CAC1F,GAAIC,GAAKF,UAAUG,SAEA,OADT,GAAI5C,QAAO,8BACd6C,KAAKF,KACVH,EAAKM,WAAY9C,OAAO+C,KAI5BR,EAAaC,EAGf,MAAOD,IAOT7lB,EAAQsmB,UAAY,WAClB,MAA6B,mBAAdP,aAAyE,IAA5CA,UAAUG,UAAUhkB,QAAQ,WAQ1E,IAAI2jB,IAAc,CAWlB7lB,GAAQ4Q,iBAAmB,SAA0BgG,EAAStL,EAAQib,EAAUC,GAC9E,GAAI5P,EAAQhG,iBASV,WARmB3J,KAAfuf,IACFA,GAAa,GAEA,eAAXlb,GAA2BtL,EAAQsmB,cACrChb,EAAS,kBAGXsL,EAAQhG,iBAAiBtF,EAAQib,EAAUC,GACpCD,CACF,IAAI3P,EAAQ6P,YAAa,CAE9B,GAAIC,GAAI,WACN,MAAOH,GAAS5lB,KAAKiW,EAASvC,OAAO1E,OAGvC,OADAiH,GAAQ6P,YAAY,KAAOnb,EAAQob,GAC5BA,IAWX1mB,EAAQ6U,oBAAsB,SAA6B+B,EAAStL,EAAQib,EAAUC,GAChF5P,EAAQ/B,yBACS5N,KAAfuf,IACFA,GAAa,GAEA,eAAXlb,GAA2BtL,EAAQsmB,cACrChb,EAAS,kBAGXsL,EAAQ/B,oBAAoBvJ,EAAQib,EAAUC,IACrC5P,EAAQ+P,aAEjB/P,EAAQ+P,YAAY,KAAOrb,EAAQib,IASvCvmB,EAAQ4mB,UAAY,QAASA,GAAUC,GACrC,GAAIlhB,GAAMmhB,CAEV,IAAwB,IAApBD,EAASpkB,OACX,QAIF,IAAIwf,GAAQ4E,EAAS5E,MAAM,WAC3B,IAAIA,EACFtc,EAAOsc,EAAM,GACb6E,EAAYD,EAASE,OAAOphB,EAAKlD,OAAS,OAEvC,CAAA,GAAoB,MAAhBokB,EAAS,GAqBhB,KAAM,IAAIG,aAAY,uBAnBtB,IAAIvd,GAAMod,EAAS3kB,QAAQ,IAC3B,KAAa,IAATuH,EACF,KAAM,IAAIud,aAAY,+BAExB,IAAY,IAARvd,EACF,KAAM,IAAIud,aAAY,yBAGxB,IAAIle,GAAQ+d,EAASI,UAAU,EAAGxd,EACjB,OAAbX,EAAM,KAGRA,EAAQ,IAAOA,EAAMme,UAAU,EAAGne,EAAMrG,OAAS,GAAK,KAGxDkD,EAAiB,MAAVmD,EAAgBA,EAAQnF,KAAKF,MAAMqF,GAC1Cge,EAAYD,EAASE,OAAOtd,EAAM,GAMpC,OAAQ9D,GAAMyG,OAAOwa,EAAUE,KAQjC9mB,EAAQ+L,mBAAqB,SAAUxK,GACrC,GAAsB,SAAlBA,EAAM2lB,SAAsBhS,MAAMtP,QAAQrE,EAAMsD,QAAS,CAC3D,GAAIsiB,GAAQ5lB,EAAMsD,MAClB,IAAIsiB,EAAO,CAKT,GAJAA,EAAQA,EAAMrb,IAAI,SAAUhD,GAC1B,MAAOnF,MAAKC,UAAUkF,KAGpBqe,EAAM1kB,OAAS,EAAG,CACpB,GAAI2kB,IAAQ,KAAOD,EAAM1kB,OAAS,GAAK,YACvC0kB,GAAQA,EAAMhS,MAAM,EAAG,GACvBgS,EAAM/T,KAAKgU,GAEb7lB,EAAMsL,QAAU,8BAAgCsa,EAAMxE,KAAK,OAQ/D,MAJsB,yBAAlBphB,EAAM2lB,UACR3lB,EAAMsL,QAAU,wCAA0CtL,EAAMqH,OAAOye,oBAGlE9lB,GASTvB,EAAQsnB,WAAa,SAAU7a,EAAQG,EAAO2a,GAC5C,GAAIC,OAAqBvgB,KAAXsgB,EAAuBA,EAAS,CAC9C,OAAO3a,GAAMyT,KAASmH,GAAW/a,EAAO4T,MACjCzT,EAAM6a,MAASD,GAAW/a,EAAOgb,OACjC7a,EAAMQ,IAASoa,GAAW/a,EAAOW,KACjCR,EAAMY,OAASga,GAAW/a,EAAOe,QAiB1CxN,EAAQqI,SAAW,SAAkBqf,EAAMC,EAAMC,GAC/C,GAAIxL,EACJ,OAAO,YACL,GAAIyL,GAAUznB,KAAM0nB,EAAOtlB,UACvBulB,EAAQ,WACV3L,EAAU,KACLwL,GAAWF,EAAKM,MAAMH,EAASC,IAElCG,EAAUL,IAAcxL,CAC5BrO,cAAaqO,GACbA,EAAU3M,WAAWsY,EAAOJ,GACxBM,GAASP,EAAKM,MAAMH,EAASC,KAYrC9nB,EAAQkoB,SAAW,SAAkBC,EAASC,GAM5C,IALA,GAAIC,GAAMD,EAAQ3lB,OACd+G,EAAQ,EACR8e,EAASH,EAAQ1lB,OACjB8lB,EAASH,EAAQ3lB,OAEd2lB,EAAQzG,OAAOnY,KAAW2e,EAAQxG,OAAOnY,IAC7CA,EAAQ6e,GACT7e,GAGF,MAAO4e,EAAQzG,OAAO4G,EAAS,KAAOJ,EAAQxG,OAAO2G,EAAS,IAC3DC,EAAS/e,GAAS8e,EAAS,GAC5BC,IACAD,GAGF,QAAQ9e,MAAOA,EAAOC,IAAK8e,IAW7BvoB,EAAQwoB,kBAAoB,SAASC,GAmDnC,QAASC,GAAkB7V,GACzB,GAAI8V,GAAgBF,EAAG3f,MAAMme,UAAU,EAAEpU,EAIzC,QACE+V,KAJSD,EAAc1G,MAAM,YAAcxf,OAAS,EAKpDomB,OAJQF,EAAclmB,OAASkmB,EAAcG,YAAY,OArD7D,GAAkCC,GAAiB1a,EAAO2a,EAAgBX,EAAKY,EAA3EvT,EAAa,EAAGC,EAAW,CAsC/B,OApCgC,gBAArB8S,GAAGS,gBAAwD,gBAAnBT,GAAGU,cAClDzT,EAAa+S,EAAGS,eAChBvT,EAAW8S,EAAGU,eAEd9a,EAAQzH,SAASI,UAAUyd,gBAEdpW,EAAM+a,iBAAmBX,IAClCJ,EAAMI,EAAG3f,MAAMrG,OACfsmB,EAAkBN,EAAG3f,MAAM+Z,QAAQ,QAAS,MAG5CmG,EAAiBP,EAAGY,kBACpBL,EAAeM,eAAejb,EAAMkb,eAKpCN,EAAWR,EAAGY,kBACdJ,EAAS7d,UAAS,GAEd4d,EAAeQ,iBAAiB,aAAcP,IAAa,EAC3DvT,EAAaC,EAAW0S,GAExB3S,GAAcsT,EAAeS,UAAU,aAAcpB,GACrD3S,GAAcqT,EAAgB5T,MAAM,EAAGO,GAAYoO,MAAM,MAAMrhB,OAAS,EAEpEumB,EAAeQ,iBAAiB,WAAYP,IAAa,EACzDtT,EAAW0S,GAEX1S,GAAYqT,EAAeU,QAAQ,aAAcrB,GACjD1S,GAAYoT,EAAgB5T,MAAM,EAAGQ,GAAUmO,MAAM,MAAMrhB,OAAS,MAOhFiT,WAAYA,EACZC,SAAUA,EACVnM,MAAOkf,EAAkBhT,GACzBjM,IAAKif,EAAkB/S,KA2B7B3V,EAAQ2pB,oBAAsB,SAASlB,EAAIG,EAAKC,GAC9C,GAAI7d,GAAOyd,EAAG3f,OAAS,EACvB,IAAI8f,EAAM,GAAKC,EAAS,EAAG,CACzB,GAAIe,GAAO5e,EAAK8Y,MAAM,KAAM8E,EAC5BA,GAAMzZ,KAAKC,IAAIwa,EAAKnnB,OAAQmmB,GAC5BC,EAAS1Z,KAAKC,IAAIwa,EAAKhB,EAAM,GAAGnmB,OAAQomB,EAAS,EACjD,IAAIgB,GAAsB,GAAPjB,EAAWC,EAASA,EAAS,CAChD,OAAOe,GAAKzU,MAAM,EAAGyT,EAAM,GAAGjG,KAAK,MAAMlgB,OAASonB,EAEpD,OAAQ,GAIa,mBAAZC,UAET,WACE,QAASC,GAAU5L,GACbA,EAAK/V,eAAe,WAGxBjG,OAAO6nB,eAAe7L,EAAM,UAC1B8L,cAAc,EACdC,YAAY,EACZC,UAAU,EACVrhB,MAAO,WACkB,MAAnB1I,KAAKwH,YACPxH,KAAKwH,WAAWC,YAAYzH,SAKb,mBAAZ0pB,UAAiCC,EAASD,QAAQ7mB,WAChC,mBAAlBmnB,gBAAiCL,EAASK,cAAcnnB,WACvC,mBAAjBonB,eAAiCN,EAASM,aAAapnB,cAMjEmgB,OAAOngB,UAAUqnB,aAClBlH,OAAOngB,UAAUqnB,WAAa,SAAUC,EAAcC,GAElD,MADAA,GAAWA,GAAY,EAChBpqB,KAAK2mB,OAAOyD,EAAUD,EAAa9nB,UAAY8nB,IAKzDrV,MAAMjS,UAAUwL,OACnByG,MAAMjS,UAAUwL,KAAO,SAASK,GAC9B,IAAK,GAAIpJ,GAAI,EAAGA,EAAItF,KAAKqC,OAAQiD,IAAK,CACpC,GAAIkR,GAAUxW,KAAKsF,EACnB,IAAKoJ,EAASnO,KAAKP,KAAMwW,EAASlR,EAAGtF,MACnC,MAAOwW,OAQV,SAAS3W,EAAQD,EAASM,GAG/B,GAAIihB,GAAW,WACf,GAAIkJ,IAAUC,MAAO,aACrBC,MACAC,UAAWrpB,MAAQ,EAAEspB,WAAa,EAAEC,OAAS,EAAEC,WAAa,EAAEC,OAAS,EAAEC,gBAAkB,EAAEC,KAAO,EAAEC,mBAAqB,EAAEC,KAAO,GAAGC,MAAQ,GAAGC,SAAW,GAAGC,UAAY,GAAGC,IAAM,GAAGC,WAAa,GAAGC,UAAY,GAAGC,IAAI,GAAGC,IAAI,GAAGC,eAAiB,GAAGC,WAAa,GAAGC,IAAI,GAAGC,IAAI,GAAGC,IAAI,GAAGC,IAAI,GAAGC,gBAAkB,GAAGC,QAAU,EAAEC,KAAO,GAC7UC,YAAaC,EAAE,QAAQC,EAAE,SAASC,EAAE,SAASC,EAAE,OAAOC,GAAG,OAAOC,GAAG,QAAQC,GAAG,MAAMC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,KAC1HC,cAAe,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAC5JC,cAAe,SAAmBC,EAAOC,EAAOC,EAAS7C,EAAG8C,EAAQC,EAAGC,GAEvE,GAAIC,GAAKF,EAAGjrB,OAAS,CACrB,QAAQgrB,GACR,IAAK,GACKrtB,KAAKytB,EAAIP,EAAOzK,QAAQ,YAAa,MACzBA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,KAErC,MACA,KAAK,GAAEziB,KAAKytB,EAAI1K,OAAOmK,EACvB,MACA,KAAK,GAAEltB,KAAKytB,EAAI,IAChB,MACA,KAAK,GAAEztB,KAAKytB,GAAI,CAChB,MACA,KAAK,GAAEztB,KAAKytB,GAAI,CAChB,MACA,KAAK,GAAE,MAAOztB,MAAKytB,EAAIH,EAAGE,EAAG,EAE7B,KAAK,IAAGxtB,KAAKytB,IACb,MACA,KAAK,IAAGztB,KAAKytB,EAAIH,EAAGE,EAAG,EACvB,MACA,KAAK,IAAGxtB,KAAKytB,GAAKH,EAAGE,EAAG,GAAIF,EAAGE,GAC/B,MACA,KAAK,IAAGxtB,KAAKytB,KAAQztB,KAAKytB,EAAEH,EAAGE,GAAI,IAAMF,EAAGE,GAAI,EAChD,MACA,KAAK,IAAGxtB,KAAKytB,EAAIH,EAAGE,EAAG,GAAIF,EAAGE,EAAG,GAAGF,EAAGE,GAAI,IAAMF,EAAGE,GAAI,EACxD,MACA,KAAK,IAAGxtB,KAAKytB,IACb,MACA,KAAK,IAAGztB,KAAKytB,EAAIH,EAAGE,EAAG,EACvB,MACA,KAAK,IAAGxtB,KAAKytB,GAAKH,EAAGE,GACrB,MACA,KAAK,IAAGxtB,KAAKytB,EAAIH,EAAGE,EAAG,GAAIF,EAAGE,EAAG,GAAGxa,KAAKsa,EAAGE,MAI5CjlB,QAASmlB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIsB,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAMoB,GAAG,KAAKzB,IAAI,EAAE,MAAMA,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKW,EAAE,GAAGtB,GAAG,EAAE,IAAIO,IAAI,EAAE,IAAIwB,GAAG,GAAGC,GAAG,KAAKV,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIsB,GAAG,KAAKH,GAAG,EAAE,KAAKzB,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMJ,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMD,IAAI,EAAE,MAAMH,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMW,EAAE,GAAGtB,GAAG,EAAE,IAAIgC,GAAG,KAAKV,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAML,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMW,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAMH,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMA,IAAI,EAAE,IAAIE,IAAI,EAAE,MACtwCuB,gBAAiBL,IAAI,EAAE,IACvBM,WAAY,SAAoBC,EAAKC,GACjC,KAAM,IAAI1tB,OAAMytB,IAEpBnrB,MAAO,SAAe8G,GAgClB,QAASukB,KACL,GAAIC,EAMJ,OALAA,GAAQC,EAAKC,MAAMH,OAAS,EAEP,gBAAVC,KACPA,EAAQC,EAAKpE,SAASmE,IAAUA,GAE7BA,EAtCX,GAAIC,GAAO5uB,KACP8uB,GAAS,GACTC,GAAU,MACVC,KACAzmB,EAAQvI,KAAKuI,MACb2kB,EAAS,GACTE,EAAW,EACXD,EAAS,EACT8B,EAAa,EACbC,EAAS,CAKblvB,MAAK6uB,MAAMM,SAAShlB,GACpBnK,KAAK6uB,MAAMtE,GAAKvqB,KAAKuqB,GACrBvqB,KAAKuqB,GAAGsE,MAAQ7uB,KAAK6uB,UACW,KAArB7uB,KAAK6uB,MAAMO,SAClBpvB,KAAK6uB,MAAMO,UACf,IAAIC,GAAQrvB,KAAK6uB,MAAMO,MACvBJ,GAAOhc,KAAKqc,GAEsB,kBAAvBrvB,MAAKuqB,GAAGgE,aACfvuB,KAAKuuB,WAAavuB,KAAKuqB,GAAGgE,WAmB9B,KADA,GAAIe,GAAQC,EAAgBC,EAAOtkB,EAAWukB,EAAY/uB,EAAEunB,EAAIyH,EAAUC,EAAzBC,OACpC,CAgBT,GAdAJ,EAAQV,EAAMA,EAAMzsB,OAAO,GAGvBrC,KAAKsuB,eAAekB,GACpBtkB,EAASlL,KAAKsuB,eAAekB,IAEf,MAAVF,IACAA,EAASZ,KAEbxjB,EAAS3C,EAAMinB,IAAUjnB,EAAMinB,GAAOF,QAKpB,KAAXpkB,IAA2BA,EAAO7I,SAAW6I,EAAO,GAAI,CAE/D,IAAK+jB,EAAY,CAEbU,IACA,KAAKjvB,IAAK6H,GAAMinB,GAAYxvB,KAAKksB,WAAWxrB,IAAMA,EAAI,GAClDivB,EAAS3c,KAAK,IAAIhT,KAAKksB,WAAWxrB,GAAG,IAEzC,IAAImvB,GAAS,EAETA,GADA7vB,KAAK6uB,MAAMiB,aACF,wBAAwB1C,EAAS,GAAG,MAAMptB,KAAK6uB,MAAMiB,eAAe,eAAeH,EAASpN,KAAK,MAAQ,UAAYviB,KAAKksB,WAAWoD,GAAS,IAE9I,wBAAwBlC,EAAS,GAAG,iBACpB,GAAVkC,EAAsB,eACV,KAAKtvB,KAAKksB,WAAWoD,IAAWA,GAAQ,KAEvEtvB,KAAKuuB,WAAWsB,GACXjlB,KAAM5K,KAAK6uB,MAAMhN,MAAO8M,MAAO3uB,KAAKksB,WAAWoD,IAAWA,EAAQS,KAAM/vB,KAAK6uB,MAAMzB,SAAU4C,IAAKX,EAAOM,SAAUA,IAI5H,GAAkB,GAAdV,EAAiB,CACjB,GAtEF,GAsEMK,EACA,KAAM,IAAIvuB,OAAM8uB,GAAU,kBAI9B1C,GAASntB,KAAK6uB,MAAM1B,OACpBD,EAASltB,KAAK6uB,MAAM3B,OACpBE,EAAWptB,KAAK6uB,MAAMzB,SACtBiC,EAAQrvB,KAAK6uB,MAAMO,OACnBE,EAASZ,IAIb,OAAU,CAEN,GAAKQ,EAAOvM,YAAepa,GAAMinB,GAC7B,KAEJ,IAAa,GAATA,EACA,KAAM,IAAIzuB,OAAM8uB,GAAU,oBA1E1C,SAAmBI,GACfnB,EAAMzsB,OAASysB,EAAMzsB,OAAS,EAAE4tB,EAChClB,EAAO1sB,OAAS0sB,EAAO1sB,OAAS4tB,EAChCjB,EAAO3sB,OAAS2sB,EAAO3sB,OAAS4tB,GAyEf,GACTT,EAAQV,EAAMA,EAAMzsB,OAAO,GAG/BktB,EAAiBD,EACjBA,EAASJ,EACTM,EAAQV,EAAMA,EAAMzsB,OAAO,GAC3B6I,EAAS3C,EAAMinB,IAAUjnB,EAAMinB,GAAON,GACtCD,EAAa,EAIjB,GAAI/jB,EAAO,YAAc4J,QAAS5J,EAAO7I,OAAS,EAC9C,KAAM,IAAItB,OAAM,oDAAoDyuB,EAAM,YAAYF,EAG1F,QAAQpkB,EAAO,IAEX,IAAK,GAGD4jB,EAAM9b,KAAKsc,GACXP,EAAO/b,KAAKhT,KAAK6uB,MAAM3B,QACvB8B,EAAOhc,KAAKhT,KAAK6uB,MAAMO,QACvBN,EAAM9b,KAAK9H,EAAO,IAClBokB,EAAS,KACJC,GAQDD,EAASC,EACTA,EAAiB,OARjBpC,EAASntB,KAAK6uB,MAAM1B,OACpBD,EAASltB,KAAK6uB,MAAM3B,OACpBE,EAAWptB,KAAK6uB,MAAMzB,SACtBiC,EAAQrvB,KAAK6uB,MAAMO,OACfH,EAAa,GACbA,IAKR,MAEJ,KAAK,GAgBD,GAbAhH,EAAMjoB,KAAKgtB,aAAa9hB,EAAO,IAAI,GAGnC0kB,EAAMnC,EAAIsB,EAAOA,EAAO1sB,OAAO4lB,GAE/B2H,EAAMrC,IACF2C,WAAYlB,EAAOA,EAAO3sB,QAAQ4lB,GAAK,IAAIiI,WAC3CC,UAAWnB,EAAOA,EAAO3sB,OAAO,GAAG8tB,UACnCC,aAAcpB,EAAOA,EAAO3sB,QAAQ4lB,GAAK,IAAImI,aAC7CC,YAAarB,EAAOA,EAAO3sB,OAAO,GAAGguB,iBAIxB,MAFjBZ,EAAIzvB,KAAKitB,cAAc1sB,KAAKqvB,EAAO1C,EAAQC,EAAQC,EAAUptB,KAAKuqB,GAAIrf,EAAO,GAAI6jB,EAAQC,IAGrF,MAAOS,EAIPxH,KACA6G,EAAQA,EAAM/Z,MAAM,GAAG,EAAEkT,EAAI,GAC7B8G,EAASA,EAAOha,MAAM,GAAI,EAAEkT,GAC5B+G,EAASA,EAAOja,MAAM,GAAI,EAAEkT,IAGhC6G,EAAM9b,KAAKhT,KAAKgtB,aAAa9hB,EAAO,IAAI,IACxC6jB,EAAO/b,KAAK4c,EAAMnC,GAClBuB,EAAOhc,KAAK4c,EAAMrC,IAElBmC,EAAWnnB,EAAMumB,EAAMA,EAAMzsB,OAAO,IAAIysB,EAAMA,EAAMzsB,OAAO,IAC3DysB,EAAM9b,KAAK0c,EACX,MAEJ,KAAK,GACD,OAAO,GAKnB,OAAO,IAGPb,EAAQ,WACZ,GAAIA,IAAUzD,IAAI,EAClBmD,WAAW,SAAoBC,EAAKC,GAC5B,IAAIzuB,KAAKuqB,GAAGgE,WAGR,KAAM,IAAIxtB,OAAMytB,EAFhBxuB,MAAKuqB,GAAGgE,WAAWC,EAAKC,IAKpCU,SAAS,SAAUhlB,GAOX,MANAnK,MAAKswB,OAASnmB,EACdnK,KAAKuwB,MAAQvwB,KAAKwwB,MAAQxwB,KAAKywB,MAAO,EACtCzwB,KAAKotB,SAAWptB,KAAKmtB,OAAS,EAC9BntB,KAAKktB,OAASltB,KAAK0wB,QAAU1wB,KAAK6hB,MAAQ,GAC1C7hB,KAAK2wB,gBAAkB,WACvB3wB,KAAKovB,QAAUc,WAAW,EAAEE,aAAa,EAAED,UAAU,EAAEE,YAAY,GAC5DrwB,MAEfmK,MAAM,WACE,GAAIymB,GAAK5wB,KAAKswB,OAAO,EAQrB,OAPAtwB,MAAKktB,QAAQ0D,EACb5wB,KAAKmtB,SACLntB,KAAK6hB,OAAO+O,EACZ5wB,KAAK0wB,SAASE,EACFA,EAAG/O,MAAM,OACV7hB,KAAKotB,WAChBptB,KAAKswB,OAAStwB,KAAKswB,OAAOvb,MAAM,GACzB6b,GAEfC,MAAM,SAAUD,GAER,MADA5wB,MAAKswB,OAASM,EAAK5wB,KAAKswB,OACjBtwB,MAEfgnB,KAAK,WAEG,MADAhnB,MAAKuwB,OAAQ,EACNvwB,MAEf8wB,KAAK,SAAUb,GACPjwB,KAAKswB,OAAStwB,KAAK6hB,MAAM9M,MAAMkb,GAAKjwB,KAAKswB,QAEjDS,UAAU,WACF,GAAIC,GAAOhxB,KAAK0wB,QAAQ/J,OAAO,EAAG3mB,KAAK0wB,QAAQruB,OAASrC,KAAK6hB,MAAMxf,OACnE,QAAQ2uB,EAAK3uB,OAAS,GAAK,MAAM,IAAM2uB,EAAKrK,QAAQ,IAAIlE,QAAQ,MAAO,KAE/EwO,cAAc,WACN,GAAI7a,GAAOpW,KAAK6hB,KAIhB,OAHIzL,GAAK/T,OAAS,KACd+T,GAAQpW,KAAKswB,OAAO3J,OAAO,EAAG,GAAGvQ,EAAK/T,UAElC+T,EAAKuQ,OAAO,EAAE,KAAKvQ,EAAK/T,OAAS,GAAK,MAAM,KAAKogB,QAAQ,MAAO,KAEhFqN,aAAa,WACL,GAAIoB,GAAMlxB,KAAK+wB,YACXtwB,EAAI,GAAIqU,OAAMoc,EAAI7uB,OAAS,GAAGkgB,KAAK,IACvC,OAAO2O,GAAMlxB,KAAKixB,gBAAkB,KAAOxwB,EAAE,KAErD2V,KAAK,WACG,GAAIpW,KAAKywB,KACL,MAAOzwB,MAAKorB,GAEXprB,MAAKswB,SAAQtwB,KAAKywB,MAAO,EAE9B,IAAI9B,GACA9M,EACAsP,EACA1e,EAEA2e,CACCpxB,MAAKuwB,QACNvwB,KAAKktB,OAAS,GACdltB,KAAK6hB,MAAQ,GAGjB,KAAK,GADDwP,GAAQrxB,KAAKsxB,gBACRhsB,EAAE,EAAEA,EAAI+rB,EAAMhvB,WACnB8uB,EAAYnxB,KAAKswB,OAAOzO,MAAM7hB,KAAKqxB,MAAMA,EAAM/rB,OAC5Buc,KAASsP,EAAU,GAAG9uB,OAASwf,EAAM,GAAGxf,UACvDwf,EAAQsP,EACR1e,EAAQnN,EACHtF,KAAKa,QAAQ0wB,OALKjsB,KAQ/B,MAAIuc,IACAuP,EAAQvP,EAAM,GAAGA,MAAM,SACnBuP,IAAOpxB,KAAKotB,UAAYgE,EAAM/uB,QAClCrC,KAAKovB,QAAUc,WAAYlwB,KAAKovB,OAAOe,UACxBA,UAAWnwB,KAAKotB,SAAS,EACzBgD,aAAcpwB,KAAKovB,OAAOiB,YAC1BA,YAAae,EAAQA,EAAMA,EAAM/uB,OAAO,GAAGA,OAAO,EAAIrC,KAAKovB,OAAOiB,YAAcxO,EAAM,GAAGxf,QACxGrC,KAAKktB,QAAUrL,EAAM,GACrB7hB,KAAK6hB,OAASA,EAAM,GACpB7hB,KAAKmtB,OAASntB,KAAKktB,OAAO7qB,OAC1BrC,KAAKuwB,OAAQ,EACbvwB,KAAKswB,OAAStwB,KAAKswB,OAAOvb,MAAM8M,EAAM,GAAGxf,QACzCrC,KAAK0wB,SAAW7O,EAAM,GACtB8M,EAAQ3uB,KAAKitB,cAAc1sB,KAAKP,KAAMA,KAAKuqB,GAAIvqB,KAAMqxB,EAAM5e,GAAOzS,KAAK2wB,eAAe3wB,KAAK2wB,eAAetuB,OAAO,IAC7GrC,KAAKywB,MAAQzwB,KAAKswB,SAAQtwB,KAAKywB,MAAO,GACtC9B,OACC,IAEW,KAAhB3uB,KAAKswB,OACEtwB,KAAKorB,QAEZprB,MAAKuuB,WAAW,0BAA0BvuB,KAAKotB,SAAS,GAAG,yBAAyBptB,KAAK8vB,gBAChFllB,KAAM,GAAI+jB,MAAO,KAAMoB,KAAM/vB,KAAKotB,YAGvDsB,IAAI,WACI,GAAIe,GAAIzvB,KAAKoW,MACb,YAAiB,KAANqZ,EACAA,EAEAzvB,KAAK0uB,OAGxB8C,MAAM,SAAeC,GACbzxB,KAAK2wB,eAAe3d,KAAKye,IAEjCC,SAAS,WACD,MAAO1xB,MAAK2wB,eAAegB,OAEnCL,cAAc,WACN,MAAOtxB,MAAK4xB,WAAW5xB,KAAK2wB,eAAe3wB,KAAK2wB,eAAetuB,OAAO,IAAIgvB,OAElFQ,SAAS,WACD,MAAO7xB,MAAK2wB,eAAe3wB,KAAK2wB,eAAetuB,OAAO,IAE9DyvB,UAAU,SAAeL,GACjBzxB,KAAKwxB,MAAMC,IA0CnB,OAxCA5C,GAAMhuB,WACNguB,EAAM5B,cAAgB,SAAmB1C,EAAGwH,EAAIC,EAA0BC,GAG1E,OAAOD,GACP,IAAK,GACL,KACA,KAAK,GAAE,MAAO,EAEd,KAAK,GAAkD,MAAhDD,GAAI7E,OAAS6E,EAAI7E,OAAOvG,OAAO,EAAEoL,EAAI5E,OAAO,GAAW,CAE9D,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,IAAG,MAAO,GAEf,KAAK,IAAG,MAAO,EAEf,KAAK,IAAG,MAAO,GAEf,KAAK,IAAG,MAAO,YAIf0B,EAAMwC,OAAS,WAAW,8DAA8D,sEAAqE,UAAU,UAAU,UAAU,UAAU,SAAS,SAAS,cAAc,eAAe,cAAc,SAAS,UAC3QxC,EAAM+C,YAAcM,SAAWb,OAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAIc,WAAY,IAI9EtD,IAEP,OADAxE,GAAOwE,MAAQA,EACRxE,IAGLzqB,GAAQyqB,OAASlJ,EACjBvhB,EAAQyD,MAAQ8d,EAAS9d,MAAM6E,KAAKiZ,IAKjC,SAASthB,EAAQD,GAEtB,YAEA,IA2KIwyB,GA3KAC,GAAY,KAAM,SAClBC,GACFC,IACEC,MAAS,QACTC,KAAQ,OACRC,WAAc,SACdC,YAAe,wEACfC,mBAAsB,8CACtBC,gBAAmB,uDACnBC,UAAa,YACbC,eAAkB,qDAClBC,YAAe,0CACfjoB,YAAe,sBACfkoB,WAAc,aACdC,gBAAmB,sDACnB5gB,KAAQ,6CACR6gB,aAAgB,gBAChBC,cAAiB,YACjBC,eAAkB,qCAClBC,eAAkB,gCAClBC,MAAS,QACTzoB,UAAa,oBACb0oB,YAAe,sGAEfC,OAAU,SACVC,YAAe,mEACfC,UAAa,8CACb7Q,OAAU,SACV8Q,GAAM,KACN1iB,KAAQ,sBACR2iB,WAAc,SACdC,YAAe,oCACfC,YAAe,+BACfC,WAAc,mBACdC,QAAW,WACXC,SAAY,YACZC,eAAkB,uDAClBvjB,KAAQ,OACRwjB,UAAa,kCACbC,eAAkB,gBAClBC,eAAkB,SAClBC,mBAAsB,aACtBC,eAAkB,+DAClBC,cAAiB,YACjBC,mBAAsB,6CACtBC,eAAkB,aAClBC,oBAAuB,8CACvBC,OAAU,SACV9jB,UAAa,YACb+jB,eAAkB,wDAClBC,oBAAuB,sCACvBC,oBAAuB,yBACvBC,qBAAwB,SACxBC,sBAAyB,SACzBC,sBAAyB,UACzBC,4BAA+B,gBAC/BC,oBAAuB,QACvBC,sBAAyB,UACzB5oB,KAAQ,OACR6oB,UAAa,gCACbC,QAAW,qDACXxkB,KAAQ,4BACRykB,qBAAwB,6CACxBC,SAAY,8HAGZC,WAAc,+EAEdC,UAAa,yEAEbC,WAAc,oGAIhBC,SACEtD,MAAS,QACTC,KAAQ,aACRC,WAAc,YACdC,YAAe,2EACfC,mBAAsB,6CACtBC,gBAAmB,wDACnBC,UAAa,aACbC,eAAkB,gDAClBC,YAAe,6CACfjoB,YAAe,sBACfkoB,WAAc,cACdC,gBAAmB,oDACnBC,aAAgB,kBAChB7gB,KAAQ,mDACR8gB,cAAiB,WACjBC,eAAkB,wCAClBC,eAAkB,+BAClBC,MAAS,QACTzoB,UAAa,wBACb0oB,YAAe,oHAEfC,OAAU,UACVC,YAAe,oEACfC,UAAa,4CACb7Q,OAAU,SACV8Q,GAAM,KACN1iB,KAAQ,yBACR2iB,WAAc,UACdC,YAAe,yCACfC,YAAe,gCAEfC,WAAc,mBAEdC,QAAW,cAEXC,SAAY,cAEZC,eAAkB,qDAClBvjB,KAAQ,YACRwjB,UAAa,oCAEbC,eAAkB,sBAElBC,eAAkB,SAElBC,mBAAsB,aAEtBC,eAAkB,+DAElBC,cAAiB,YAEjBC,mBAAsB,6CAEtBC,eAAkB,aAElBC,oBAAuB,8CACvBC,OAAU,QAEV9jB,UAAa,YAEb+jB,eAAkB,wDAElBC,oBAAuB,sCAEvBC,oBAAuB,yBAEvBC,qBAAwB,SAExBC,sBAAyB,SAEzBC,sBAAyB,UAEzBC,4BAA+B,gBAE/BC,oBAAuB,QAEvBC,sBAAyB,UACzB5oB,KAAQ,OACR6oB,UAAa,2BACbC,QAAW,0DACXxkB,KAAQ,gCACRykB,qBAAwB,gDACxBC,SAAY,4IAGZC,WAAc,iFAEdC,UAAa,4EAEbC,WAAc,iHAQdE,EAAgC,mBAAdpQ,WAChBA,UAAUvd,UAAYud,UAAUqQ,iBAChCnvB,EACNurB,GAAQC,EAAShkB,KAAK,SAAU4nB,GAC9B,MAAOA,KAAMF,IAEV3D,IACHA,EATiB,MAYnBvyB,EAAOD,SAELyyB,SAAUA,EACVC,MAAOA,EACPF,MAAOA,EACP9rB,YAAa,SAAU4vB,GACrB,GAAKA,EAAL,CAGA,GAAIC,GAAY9D,EAAShkB,KAAK,SAAU4nB,GACtC,MAAOA,KAAMC,GAEXC,GACF/D,EAAQ+D,EAER/0B,QAAQD,MAAM,wBAGlBkF,aAAc,SAAU8B,GACtB,GAAKA,EAGL,IAAK,GAAIkO,KAAOlO,GAAW,CACzB,GAAIguB,GAAY9D,EAAShkB,KAAK,SAAU4nB,GACtC,MAAOA,KAAM5f,GAEV8f,IACH9D,EAASrf,KAAKqD,GAEhBic,EAAMjc,GAAOtU,OAAOmM,UAAWokB,EAAkB,GAAGA,EAAMjc,GAAMlO,EAAUkO,MAG9EjQ,UAAW,SAAUiQ,EAAKxS,EAAMqyB,GACzBA,IACHA,EAAO9D,EAET,IAAIxnB,GAAO0nB,EAAM4D,GAAM7f,EACvB,IAAIxS,EACF,IAAKwS,IAAOxS,GACV+G,EAAOA,EAAK6X,QAAQ,KAAOpM,EAAM,IAAKxS,EAAKwS,GAG/C,OAAOzL,IAAQyL,KAMd,SAASxW,EAAQD,EAASM,GAE/B,YAUA,SAAS4F,GAASlF,GACZA,IACFZ,KAAKwJ,KAAOhD,SAASiJ,cAAc,OACnCzP,KAAKwJ,KAAKkG,UAAY,sBACtB9O,EAAUiI,YAAY7I,KAAKwJ,MAC3BxJ,KAAKyK,SAbT,GAAI5E,GAAc3F,EAAoB,GAClCkG,EAAYlG,EAAoB,GAAGkG,SAmBvCN,GAASjD,UAAU4H,MAAQ,WACzBzK,KAAKwJ,KAAKkU,UAAYtX,EAAU,eAQlCN,EAASjD,UAAUoQ,QAAU,SAAUN,GA6CrC,QAASyjB,GAAgBxjB,GACnB5S,KAAKq2B,mBACPr2B,KAAKq2B,kBAAkBzjB,GAI3B,QAAS0jB,GAAwB1jB,EAAShM,GACpC5G,KAAKu2B,qBACPv2B,KAAKu2B,oBAAoB3jB,EAAShM,GApDtC,GAAImG,GAAK/M,IAETA,MAAKwJ,KAAKkU,UAAY,GAElB/K,GAAYA,EAAStQ,QACvBsQ,EAAS1Q,QAAQ,SAAU2Q,EAAS4jB,GAClC,GACIC,GADAC,EAASlwB,SAASiJ,cAAc,OA6BpC,IA3BAinB,EAAOhnB,UAAY,8BACnBgnB,EAAOjgB,UAAY7D,EAAQlP,KAC3BgzB,EAAO/mB,QAAUymB,EAAgBluB,KAAK6E,EAAI6F,GAE1C7F,EAAGvD,KAAKX,YAAY6tB,GAEhB9jB,EAAQC,SAASxQ,SACnBo0B,EAAQjwB,SAASiJ,cAAc,QAC/BgnB,EAAM/mB,UAAY,gCAClB+mB,EAAM/Y,UAAY,UAElB+Y,EAAM9mB,QAAU,WACd,GAAI4H,KACJ3E,GAAQC,SAAS5Q,QAAQ,SAAUuK,GACjC+K,EAAMvE,MACJpI,KAAQ4B,EAAM9I,KACdgM,UAAa,yBAA2BiD,EAAS6jB,EAAM,GAAK,GAAK7jB,EAAS6jB,EAAM,GAAG9yB,OAAS8I,EAAM9I,KAAO,uBAAyB,IAClI8T,MAAS8e,EAAwBpuB,KAAK6E,EAAI6F,EAASpG,EAAM9I,UAGlD,GAAImC,GAAY0R,GACtBR,KAAK0f,IAGZ1pB,EAAGvD,KAAKX,YAAY4tB,EAAO1pB,EAAGnM,YAG7B41B,IAAQ7jB,EAAStQ,OAAS,EAAG,CAC9B,GAAIs0B,IAAeF,GAASC,GAAQ7W,wBAAwBI,IACzDlT,GAAGvD,KAAKotB,YAAcD,IACvB5pB,EAAGvD,KAAK+Z,WAAaoT,OAuB/B7wB,EAASjD,UAAU2O,kBAAoB,SAAU9C,GACvB,kBAAbA,KACT1O,KAAKq2B,kBAAoB3nB,IAQ7B5I,EAASjD,UAAU6O,0BAA4B,SAAUhD,GAC/B,kBAAbA,KACT1O,KAAKu2B,oBAAsB7nB,IAI/B7O,EAAOD,QAAUkG,GAIZ,SAASjG,EAAQD,EAASM,GAE/B,YAyBA,SAAS6F,GAAM4I,EAAQnG,GAErBxI,KAAK2O,OAASA,EACd3O,KAAK0G,OACL1G,KAAK62B,UAAW,EAEbruB,GAAWA,YAAkBzG,SAC9B/B,KAAK82B,SAAStuB,EAAOC,MAAOD,EAAOuuB,eAC/B,SAAWvuB,IACbxI,KAAKg3B,SAASxuB,EAAOE,MAAOF,EAAOkE,MAEjC,iBAAmBlE,IACrBxI,KAAK0b,iBAAiBlT,EAAOyuB,iBAI/Bj3B,KAAK82B,SAAS,IACd92B,KAAKg3B,SAAS,OAGhBh3B,KAAKk3B,wBAA0Bj2B,EAAKgH,SAASjI,KAAKm3B,eAAejvB,KAAKlI,MAAO+F,EAAKlD,UAAUC,mBAC5F9C,KAAKo3B,wBAA0Bn2B,EAAKgH,SAASjI,KAAKq3B,eAAenvB,KAAKlI,MAAO+F,EAAKlD,UAAUC,mBAqqI9F,QAAS0L,GAAiBvH,GACxB,MAAOA,GAAKuH,kBAId,QAAS8oB,GAAUrwB,GACjB,MAAOA,GAAKqwB,WAvtId,GAAIC,GAAWr3B,EAAoB,IAC/Bs3B,EAAct3B,EAAoB,IAClC2F,EAAc3F,EAAoB,GAClCu3B,EAAoBv3B,EAAoB,IACxCw3B,EAAsBx3B,EAAoB,IAC1CgG,EAAgBhG,EAAoB,IACpCiG,EAAqBjG,EAAoB,IACzCe,EAAOf,EAAoB,GAC3BkG,EAAYlG,EAAoB,GAAGkG,UAEnCG,EAAuBC,SAASC,IAsCpCV,GAAKlD,UAAUC,kBAAoB,IAGnCiD,EAAKlD,UAAUya,mBAAqB,IAGpCvX,EAAKlD,UAAU80B,mBAAqB,IAGpC5xB,EAAKlD,UAAU+0B,cAAgB7xB,EAAKlD,UAAU80B,mBAM9C5xB,EAAKlD,UAAUg1B,mBAAqB,WAMlC,GALA73B,KAAKyB,UACHgH,OAAO,EACPC,OAAO,GAGL1I,KAAK2O,SACP3O,KAAKyB,SAASgH,MAAqC,SAA7BzI,KAAK2O,OAAO9N,QAAQe,KAC1C5B,KAAKyB,SAASiH,MAAqC,SAA7B1I,KAAK2O,OAAO9N,QAAQe,MAER,SAA7B5B,KAAK2O,OAAO9N,QAAQe,MAAgD,SAA7B5B,KAAK2O,OAAO9N,QAAQe,OACjB,kBAAnC5B,MAAK2O,OAAO9N,QAAQa,YAA4B,CAC1D,GAAID,GAAWzB,KAAK2O,OAAO9N,QAAQa,YACjC+G,MAAOzI,KAAKyI,MACZC,MAAO1I,KAAK0I,MACZc,KAAMxJ,KAAK4W,WAGW,kBAAbnV,IACTzB,KAAKyB,SAASgH,MAAQhH,EACtBzB,KAAKyB,SAASiH,MAAQjH,IAGQ,iBAAnBA,GAASgH,QAAqBzI,KAAKyB,SAASgH,MAAQhH,EAASgH,OAC1C,iBAAnBhH,GAASiH,QAAqB1I,KAAKyB,SAASiH,MAAQjH,EAASiH,UAUhF3C,EAAKlD,UAAU+T,QAAU,WAGvB,IAFA,GAAI3P,GAAOjH,KACPwJ,KACGvC,GAAM,CACX,GAAIwB,GAAQxB,EAAKtD,cACHkD,KAAV4B,GACFe,EAAKsuB,QAAQrvB,GAEfxB,EAAOA,EAAKoF,OAEd,MAAO7C,IAOTzD,EAAKlD,UAAU2L,gBAAkB;uCAG/B,IAFA,GAAIvH,GAAOjH,KACP+3B,KACG9wB,GACDA,EAAKoF,QACP0rB,EAAaD,QAAQ7wB,EAAK+Q,YAE5B/Q,EAAOA,EAAKoF,MAEd,OAAO0rB,IAOThyB,EAAKlD,UAAUc,QAAU,WACxB,MAAQ3D,MAAKqM,OAEW,SAApBrM,KAAKqM,OAAOK,KACV1M,KAAKyI,MACLzI,KAAKyS,UAHT5L,IAUHd,EAAKlD,UAAU0G,eAAiB,SAAUC,GACxC,GAAKA,EAAL,CAIA,GAAmB,GAAfA,EAAKnH,OACP,MAAOrC,KAGT,IAAIwJ,EAAKnH,QAAUrC,KAAK8S,QAAU9S,KAAK8S,OAAOzQ,OAC5C,IAAK,GAAIiD,GAAE,EAAGA,EAAItF,KAAK8S,OAAOzQ,SAAUiD,EACtC,GAAK,GAAKkE,EAAK,IAAS,GAAKxJ,KAAK8S,OAAOxN,GAAG3B,UAC1C,MAAO3D,MAAK8S,OAAOxN,GAAGiE,eAAeC,EAAKuL,MAAM,MAYxDhP,EAAKlD,UAAUiL,uBAAyB,SAAUiqB,GAChD,GAAKA,EAAL,CAKA,IAAK,GADD9wB,GAAOjH,KACFsF,EAAI,EAAGA,EAAIyyB,EAAa11B,QAAU4E,EAAM3B,IAAK,CACpD,GAAI0yB,GAAaD,EAAazyB,EAC9B2B,GAAOA,EAAK6L,OAAOklB,GAGrB,MAAO/wB,KASTlB,EAAKlD,UAAUiV,UAAY,WACzB,OACEpP,MAAO1I,KAAK6J,WACZL,KAAMxJ,KAAK4W,YASf7Q,EAAKlD,UAAU+I,SAAW,SAAU6a,GAGlC,IAFA,GAAIjd,GAAOvI,EAAKulB,UAAUC,GACtBxf,EAAOjH,KACJiH,GAAQuC,EAAKnH,OAAS,GAAG,CAC9B,GAAIkD,GAAOiE,EAAKyuB,OAChB,IAAoB,gBAAT1yB,GAAmB,CAC5B,GAAkB,UAAd0B,EAAKyF,KACP,KAAM,IAAI3L,OAAM,kCAAoCwE,EAAO,qBAE7D0B,GAAOA,EAAK6L,OAAOvN,OAEhB,CACH,GAAkB,WAAd0B,EAAKyF,KACP,KAAM,IAAI3L,OAAM,yBAA2BwE,EAAO,sBAEpD0B,GAAOA,EAAK6L,OAAOhH,OAAO,SAAUU,GAClC,MAAOA,GAAM/D,QAAUlD,IACtB,IAIP,MAAO0B,IAQTlB,EAAKlD,UAAUuJ,YAAc,WAG3B,IAFA,GAAI8rB,MACA7rB,EAASrM,KAAKqM,OACXA,GACL6rB,EAAQJ,QAAQzrB,GAChBA,EAASA,EAAOA,MAElB,OAAO6rB,IAWTnyB,EAAKlD,UAAUyI,SAAW,SAAUnK,EAAOqL,GACzCxM,KAAKmB,MAAQA,EACbnB,KAAKm4B,WAAa3rB,EAEdxM,KAAK0G,KAAO1G,KAAK0G,IAAIyV,IACvBnc,KAAKo4B,eAOTryB,EAAKlD,UAAUu1B,YAAc,WAC3B,GAAIj3B,GAAQnB,KAAKmB,MACbk3B,EAAUr4B,KAAK0G,IAAI2xB,OACvB,IAAIl3B,GAASnB,KAAK0G,KAAO1G,KAAK0G,IAAIyV,GAAI,CAC/Bkc,IACHA,EAAU7xB,SAASiJ,cAAc,MACjCzP,KAAK0G,IAAI2xB,QAAUA,EACnBr4B,KAAK0G,IAAI4xB,QAAQ9wB,WAAWqB,YAAYwvB,GAG1C,IAAIE,GAAU/xB,SAASiJ,cAAc,MACrC8oB,GAAQ7oB,UAAY,sCACpB6oB,EAAQ1vB,YAAYrC,SAAS+X,eAAepd,EAAMsL,SAElD,IAAI0R,GAAS3X,SAASiJ,cAAc,SACpC0O,GAAOzR,KAAO,SACdyR,EAAOzO,UAAY,0BACnByO,EAAOtV,YAAY0vB,GAGnBpa,EAAO7N,YAAc6N,EAAOqa,QAAU,WAEpC,IAAK,GADDC,IAAc,QAAS,QAAS,QAAS,QACpCnzB,EAAI,EAAGA,EAAImzB,EAAWp2B,OAAQiD,IAAK,CAC1C,GAAIkP,GAAYikB,EAAWnzB,EAC3BizB,GAAQ7oB,UAAY,iCAAmC8E,CAEvD,IAAIuL,GAAc/f,KAAK2O,OAAOrG,QAAQuX,wBAClC6Y,EAAcH,EAAQ1Y,uBAI1B,IAFU5e,EAAKimB,WAAWnH,EAAa2Y,EAD1B,IAIX,QAGJxwB,KAAKlI,KAIP,IAAIwM,GAAQxM,KAAKm4B,UAcjB,KAbI3rB,IACF2R,EAAOxO,QAAU,WACfnD,EAAMJ,cAAcnK,QAAQ,SAAUoK,GACpCA,EAAOzD,QAAO,KAGhB4D,EAAMiC,SAAS,WACbjC,EAAMtC,YAMLmuB,EAAQ/X,YACb+X,EAAQ5wB,YAAY4wB,EAAQ/X,WAE9B+X,GAAQxvB,YAAYsV,OAGhBka,KACFr4B,KAAK0G,IAAI2xB,QAAQ7wB,WAAWC,YAAYzH,KAAK0G,IAAI2xB,eAC1Cr4B,MAAK0G,IAAI2xB,UAUtBtyB,EAAKlD,UAAUmV,SAAW,WACxB,GAAIhY,KAAKqM,OAAQ,CACf,GAAIoG,GAAQzS,KAAKqM,OAAOyG,OAAOhR,QAAQ9B,KACvC,QAAkB,IAAXyS,EAAeA,EAAQ,KAG9B,OAAQ,GAQZ1M,EAAKlD,UAAU81B,UAAY,SAAStsB,GAClCrM,KAAKqM,OAASA,GAQhBtG,EAAKlD,UAAUi0B,SAAW,SAASruB,EAAOsuB,GACxC/2B,KAAKyI,MAAQA,EACbzI,KAAK44B,cAAgBnwB,EACrBzI,KAAK+2B,eAAmC,IAAlBA,GAOxBhxB,EAAKlD,UAAUy0B,SAAW,WAKxB,WAJmBzwB,KAAf7G,KAAKyI,OACPzI,KAAK64B,eAGA74B,KAAKyI,OASd1C,EAAKlD,UAAUm0B,SAAW,SAAStuB,EAAOgE,GACxC,GAAIosB,GAAYtsB,EAAOusB,EACnBzzB,EAAG0e,EAEHgV,EAAiBh5B,KAAK8S,MAK1B,IAHA9S,KAAK0M,KAAO1M,KAAKi5B,SAASvwB,GAGtBgE,GAAQA,IAAS1M,KAAK0M,KAAM,CAC9B,GAAa,WAATA,GAAmC,SAAd1M,KAAK0M,KAI5B,KAAM,IAAI3L,OAAM,6CACoBf,KAAK0M,KACrC,2BAA6BA,EAAO,IALxC1M,MAAK0M,KAAOA,EAShB,GAAkB,UAAd1M,KAAK0M,KAAkB,CAMzB,IAJK1M,KAAK8S,SACR9S,KAAK8S,WAGFxN,EAAI,EAAGA,EAAIoD,EAAMrG,OAAQiD,QAETuB,MADnBiyB,EAAapwB,EAAMpD,KACewzB,YAAsBzwB,YAClD/C,EAAItF,KAAK8S,OAAOzQ,QAElBmK,EAAQxM,KAAK8S,OAAOxN,GAEpBkH,EAAMuqB,eAAgB,EACtBvqB,EAAMiG,MAAQnN,EACdkH,EAAMwqB,SAAS8B,KAIftsB,EAAQ,GAAIzG,GAAK/F,KAAK2O,QACpBjG,MAAOowB,IAETC,EAAUzzB,EAAItF,KAAK23B,mBACnB33B,KAAK6I,YAAY2D,EAAOusB,GAxCb,IA+CjB,KAAK/U,EAAIhkB,KAAK8S,OAAOzQ,OAAQ2hB,GAAKtb,EAAMrG,OAAQ2hB,IAC9ChkB,KAAKyH,YAAYzH,KAAK8S,OAAOkR,IAhDd,OAmDd,IAAkB,WAAdhkB,KAAK0M,KAAmB,CAQ/B,IANK1M,KAAK8S,SACR9S,KAAK8S,WAKFkR,EAAIhkB,KAAK8S,OAAOzQ,OAAS,EAAG2hB,GAAK,EAAGA,IAClCtb,EAAMV,eAAehI,KAAK8S,OAAOkR,GAAGvb,QACvCzI,KAAKyH,YAAYzH,KAAK8S,OAAOkR,IA7DhB,EAiEjB1e,GAAI,CACJ,KAAK,GAAI4zB,KAAcxwB,GACjBA,EAAMV,eAAekxB,KACvBJ,EAAapwB,EAAMwwB,OACAryB,KAAfiyB,GAA8BA,YAAsBzwB,YACtDmE,EAAQxM,KAAKm5B,oBAAoBD,GAE7B1sB,GAEFA,EAAMsqB,SAASoC,GAAY,GAC3B1sB,EAAMwqB,SAAS8B,KAIftsB,EAAQ,GAAIzG,GAAK/F,KAAK2O,QACpBlG,MAAOywB,EACPxwB,MAAOowB,IAETC,EAAUzzB,EAAItF,KAAK23B,mBACnB33B,KAAK6I,YAAY2D,EAAOusB,GApFf,KAuFbzzB,IAIJtF,MAAK0I,MAAQ,IAG8B,IAAvC1I,KAAK2O,OAAO9N,QAAQu4B,gBACtBp5B,KAAK4Q,QAAS,WAKhB5Q,MAAKqb,mBAEErb,MAAKia,aACLja,MAAKk0B,eACLl0B,MAAK62B,eACL72B,MAAK8S,OAEZ9S,KAAK0I,MAAQA,CAKXoM,OAAMtP,QAAQwzB,KAAoBlkB,MAAMtP,QAAQxF,KAAK8S,SACvD9S,KAAKq5B,cAGPr5B,KAAK2M,WAAW4O,eAAiB,IAEjCvb,KAAKs5B,cAAgBt5B,KAAK0I,OAQ5B3C,EAAKlD,UAAU6Y,iBAAmB,SAASub,GACzC,GAAI6B,GAAYtsB,EAAOusB,EACnBzzB,EAAG0e,EAEHgV,EAAiBh5B,KAAK8S,MAI1B,IAFA9S,KAAK0M,KAAOuqB,EAAcvqB,KAEC,UAAvBuqB,EAAcvqB,KAAkB,CAMlC,IAJK1M,KAAK8S,SACR9S,KAAK8S,WAGFxN,EAAI,EAAGA,EAAI2xB,EAAcnkB,OAAOzQ,OAAQiD,QAExBuB,MADnBiyB,EAAa7B,EAAcnkB,OAAOxN,KACAwzB,YAAsBzwB,YAClD/C,EAAItF,KAAK8S,OAAOzQ,QAElBmK,EAAQxM,KAAK8S,OAAOxN,GAEpBkH,EAAMuqB,eAAgB,EACtBvqB,EAAMiG,MAAQnN,EACdkH,EAAMkP,iBAAiBod,KAIvBtsB,EAAQ,GAAIzG,GAAK/F,KAAK2O,QACpBsoB,cAAe6B,IAEjBC,EAAUzzB,EAAItF,KAAK23B,mBACnB33B,KAAK6I,YAAY2D,EAAOusB,GA5Bb,IAmCjB,KAAK/U,EAAIhkB,KAAK8S,OAAOzQ,OAAQ2hB,GAAKiT,EAAcnkB,OAAOzQ,OAAQ2hB,IAC7DhkB,KAAKyH,YAAYzH,KAAK8S,OAAOkR,IApCd,OAuCd,IAA2B,WAAvBiT,EAAcvqB,KAAmB,CAMxC,IAJK1M,KAAK8S,SACR9S,KAAK8S,WAGFxN,EAAI,EAAGA,EAAI2xB,EAAcnkB,OAAOzQ,OAAQiD,QAExBuB,MADnBiyB,EAAa7B,EAAcnkB,OAAOxN,KACAwzB,YAAsBzwB,YAClD/C,EAAItF,KAAK8S,OAAOzQ,QAElBmK,EAAQxM,KAAK8S,OAAOxN,SAEbkH,GAAMiG,MACbjG,EAAMsqB,SAASgC,EAAWrwB,OAAO,GACjC+D,EAAMkP,iBAAiBod,EAAWpwB,SAIlC8D,EAAQ,GAAIzG,GAAK/F,KAAK2O,QACpBlG,MAAOqwB,EAAWrwB,MAClBwuB,cAAe6B,EAAWpwB,QAE5BqwB,EAAUzzB,EAAItF,KAAK23B,mBACnB33B,KAAK6I,YAAY2D,EAAOusB,GA/Db,IAsEjB,KAAK/U,EAAIhkB,KAAK8S,OAAOzQ,OAAQ2hB,GAAKiT,EAAcnkB,OAAOzQ,OAAQ2hB,IAC7DhkB,KAAKyH,YAAYzH,KAAK8S,OAAOkR,IAvEd,OA4EjBhkB,MAAKqb,mBAEErb,MAAKia,aACLja,MAAKk0B,eACLl0B,MAAK62B,eACL72B,MAAK8S,OAEZ9S,KAAK0I,MAAQuuB,EAAcvuB,KAKzBoM,OAAMtP,QAAQwzB,KAAoBlkB,MAAMtP,QAAQxF,KAAK8S,SACvD9S,KAAKq5B,cAGPr5B,KAAK2M,WAAW4O,eAAiB,IAEjCvb,KAAKs5B,cAAgBt5B,KAAK0I,OAM5B3C,EAAKlD,UAAUw2B,YAAc,WAE3B,GAAKr5B,KAAK0G,KAAS1G,KAAK0G,IAAIyV,IAAOnc,KAAK0G,IAAIyV,GAAG3U,WAA/C,CAIA,GAAI+xB,GAAYv5B,KAAKw5B,gBAGrBx5B,MAAKy5B,WAELz5B,KAAK05B,aAAaH,KAOpBxzB,EAAKlD,UAAUgH,SAAW,WACxB,GAAiB,SAAb7J,KAAK0M,KAAiB,CACxB,GAAIitB,KAIJ,OAHA35B,MAAK8S,OAAO7Q,QAAS,SAAUuK,GAC7BmtB,EAAI3mB,KAAKxG,EAAM3C,cAEV8vB,EAEJ,GAAiB,UAAb35B,KAAK0M,KAAkB,CAC9B,GAAI2G,KAIJ,OAHArT,MAAK8S,OAAO7Q,QAAS,SAAUuK,GAC7B6G,EAAI7G,EAAM8qB,YAAc9qB,EAAM3C,aAEzBwJ,EAOP,WAJmBxM,KAAf7G,KAAK0I,OACP1I,KAAK45B,eAGA55B,KAAK0I,OAQhB3C,EAAKlD,UAAUg3B,iBAAmB,WAChC,MAAkB,UAAd75B,KAAK0M,MAELA,KAAM1M,KAAK0M,KACXoG,OAAQ9S,KAAK8S,OAAOpH,IAAK,SAAUc,GACjC,MAAOA,GAAMqtB,sBAII,WAAd75B,KAAK0M,MAEVA,KAAM1M,KAAK0M,KACXoG,OAAQ9S,KAAK8S,OAAOpH,IAAI,SAAUc,GAChC,OACE/D,MAAO+D,EAAM8qB,WACb5uB,MAAO8D,EAAMqtB,4BAMAhzB,KAAf7G,KAAK0I,OACP1I,KAAK45B,gBAILltB,KAAM1M,KAAK0M,KACXhE,MAAO1I,KAAK0I,SASlB3C,EAAKlD,UAAUi3B,SAAW,WACxB,MAAQ95B,MAAKqM,OAASrM,KAAKqM,OAAOytB,WAAa,EAAI,GAOrD/zB,EAAKlD,UAAUmP,YAAc,WAC3B,GAAIxI,GAAOxJ,KAAKqM,OAASrM,KAAKqM,OAAO2F,gBAErC,OADAxI,GAAKwJ,KAAKhT,MACHwJ,GASTzD,EAAKlD,UAAUuX,MAAQ,WACrB,GAAIA,GAAQ,GAAIrU,GAAK/F,KAAK2O,OAY1B,IAXAyL,EAAM1N,KAAO1M,KAAK0M,KAClB0N,EAAM3R,MAAQzI,KAAKyI,MACnB2R,EAAM2f,eAAiB/5B,KAAK+5B,eAC5B3f,EAAM2c,cAAgB/2B,KAAK+2B,cAC3B3c,EAAMwe,cAAgB54B,KAAK44B,cAC3Bxe,EAAM1R,MAAQ1I,KAAK0I,MACnB0R,EAAM4f,eAAiBh6B,KAAKg6B,eAC5B5f,EAAMkf,cAAgBt5B,KAAKs5B,cAC3Blf,EAAMyc,SAAW72B,KAAK62B,SACtBzc,EAAMwd,cAAgB53B,KAAK43B,cAEvB53B,KAAK8S,OAAQ,CAEf,GAAImnB,KACJj6B,MAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5B,GAAI0tB,GAAa1tB,EAAM4N,OACvB8f,GAAWvB,UAAUve,GACrB6f,EAAYjnB,KAAKknB,KAEnB9f,EAAMtH,OAASmnB,MAIf7f,GAAMtH,WAASjM,EAGjB,OAAOuT,IAQTrU,EAAKlD,UAAU+F,OAAS,SAASgE,GAC1B5M,KAAK8S,SAKV9S,KAAK62B,UAAW,EACZ72B,KAAK0G,IAAIkC,SACX5I,KAAK0G,IAAIkC,OAAO8G,UAAY,uBAG9B1P,KAAKwb,cAEW,IAAZ5O,GACF5M,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAM5D,OAAOgE,OAUnB7G,EAAKlD,UAAUmI,SAAW,SAAS4B,GAC5B5M,KAAK8S,SAIV9S,KAAKqb,cAGW,IAAZzO,GACF5M,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAMxB,SAAS4B,KAMf5M,KAAK0G,IAAIkC,SACX5I,KAAK0G,IAAIkC,OAAO8G,UAAY,wBAE9B1P,KAAK62B,UAAW,IAMlB9wB,EAAKlD,UAAU2Y,WAAa,WAE1B,GADaxb,KAAK8S,QAIb9S,KAAK62B,SAAV,CAIA,GAAI1a,GAAKnc,KAAK0G,IAAIyV,GACd5T,EAAQ4T,EAAKA,EAAG3U,eAAaX,EACjC,IAAI0B,EAAO,CAET,GAAI0R,GAASja,KAAKm6B,cAClB,KAAKlgB,EAAOzS,WAAY,CACtB,GAAI4yB,GAASje,EAAGjE,WACZkiB,GACF7xB,EAAMoR,aAAaM,EAAQmgB,GAG3B7xB,EAAMM,YAAYoR,GAOtB,IAAK,GAFD4J,GAAO9U,KAAKC,IAAIhP,KAAK8S,OAAOzQ,OAAQrC,KAAK43B,eACzCwC,EAASp6B,KAAKq6B,aACT/0B,EAAI,EAAGA,EAAIue,EAAMve,IAAK,CAC7B,GAAIkH,GAAQxM,KAAK8S,OAAOxN,EACnBkH,GAAM7B,SAASnD,YAClBe,EAAMoR,aAAanN,EAAM7B,SAAUyvB,GAErC5tB,EAAMgP,aAIR,GAAI0Y,GAAWl0B,KAAKs6B,iBAChBF,EAASp6B,KAAKq6B,YACbnG,GAAS1sB,YACZe,EAAMoR,aAAaua,EAAUkG,GAE/Bp6B,KAAKk0B,SAASvnB,eAIlB5G,EAAKlD,UAAUw3B,WAAa,WAC1B,MAAIr6B,MAAKk0B,UAAYl0B,KAAKk0B,SAASvpB,SAASnD,WACnCxH,KAAKk0B,SAASvpB,SAGnB3K,KAAKia,QAAUja,KAAKia,OAAOtP,SAASnD,WAC/BxH,KAAKia,OAAOtP,aADrB,IASF5E,EAAKlD,UAAU0H,KAAO,SAAS1J,GAC7B,GAAIsb,GAAKnc,KAAK0G,IAAIyV,GACd5T,EAAQ4T,EAAKA,EAAG3U,eAAaX,EAC7B0B,IACFA,EAAMd,YAAY0U,GAEpBnc,KAAKqb,WAAWxa,IAQlBkF,EAAKlD,UAAUwY,WAAa,SAASxa,GAEnC,GADab,KAAK8S,QAIb9S,KAAK62B,SAAV,CAKA,GAAI5c,GAASja,KAAKm6B,cACdlgB,GAAOzS,YACTyS,EAAOzS,WAAWC,YAAYwS,GAIhCja,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAMjC,QAIR,IAAI2pB,GAAWl0B,KAAKs6B,gBAChBpG,GAAS1sB,YACX0sB,EAAS1sB,WAAWC,YAAYysB,GAI7BrzB,IAAWA,EAAQ05B,0BACfv6B,MAAK43B,gBAQhB7xB,EAAKlD,UAAUsQ,SAAW,WAExB,IADA,GAAIqnB,GAAcx6B,KAAKqM,OAChBmuB,GACAA,EAAY3D,UACf2D,EAAY5xB,SAEd4xB,EAAcA,EAAYnuB,QAc9BtG,EAAKlD,UAAUgG,YAAc,SAAS5B,EAAM8xB,EAASpsB,GACnD,GAAI3M,KAAKy6B,aAAc,CAarB,GAXAxzB,EAAK0xB,UAAU34B,MACfiH,EAAK8vB,cAA8B,UAAb/2B,KAAK0M,KACV,SAAb1M,KAAK0M,OACPzF,EAAKwL,MAAQzS,KAAK8S,OAAOzQ,QAET,WAAdrC,KAAK0M,UAAmC7F,IAAdI,EAAKwB,OAEjCxB,EAAK6vB,SAAS,IAEhB92B,KAAK8S,OAAOE,KAAK/L,GAEbjH,KAAK62B,WAAwB,IAAZkC,EAAmB,CAEtC,GAAI2B,GAAQzzB,EAAK0D,SACbyvB,EAASp6B,KAAKq6B,aACd9xB,EAAQ6xB,EAASA,EAAO5yB,eAAaX,EACrCuzB,IAAU7xB,GACZA,EAAMoR,aAAa+gB,EAAON,GAG5BnzB,EAAKuU,aAELxb,KAAK43B,iBAGW,IAAdjrB,IACF3M,KAAK2M,WAAW4O,eAAiB,IACjCtU,EAAK0F,WAAWC,SAAW,OAYjC7G,EAAKlD,UAAUkY,WAAa,SAAS9T,EAAMwS,GACzC,GAAIzZ,KAAKy6B,aAAc,CAGrB,GAAI/vB,GAAS1K,KAAK0G,IAAM,GAAI1G,KAAK0G,IAAIyV,GAAG3U,eAAaX,EACrD,IAAI6D,EAAO,CACT,GAAIiwB,GAASn0B,SAASiJ,cAAc,KACpCkrB,GAAO3b,MAAM9R,OAASxC,EAAMyC,aAAe,KAC3CzC,EAAM7B,YAAY8xB,GAOpB,GAJI1zB,EAAKoF,QACPpF,EAAKoF,OAAO5E,YAAYR,GAGtBwS,YAAsBmhB,KAAenhB,EAEvC,GAAIzZ,KAAK8S,OAAOzQ,OAAS,EAAIrC,KAAK43B,cAAe,CAC/C,GAAIiD,GAAkB76B,KAAK8S,OAAO9S,KAAK43B,cAAgB,EACvD53B,MAAK2Z,aAAa1S,EAAM4zB,OAGxB76B,MAAK6I,YAAY5B,OAInBjH,MAAK2Z,aAAa1S,EAAMwS,EAGtB/O,IACFA,EAAMjD,YAAYkzB,KAWxB50B,EAAKlD,UAAU8W,aAAe,SAAS1S,EAAMwS,GAC3C,GAAIzZ,KAAKy6B,aAAc,CAQrB,GAPAz6B,KAAK43B,gBAGa,WAAd53B,KAAK0M,UAAmC7F,IAAdI,EAAKwB,OACjCxB,EAAK6vB,SAAS,IAGZrd,IAAezZ,KAAKia,OAItBhT,EAAK0xB,UAAU34B,MACfiH,EAAK8vB,cAA8B,UAAb/2B,KAAK0M,KAC3B1M,KAAK8S,OAAOE,KAAK/L,OAEd,CAEH,GAAIwL,GAAQzS,KAAK8S,OAAOhR,QAAQ2X,EAChC,KAAc,GAAVhH,EACF,KAAM,IAAI1R,OAAM,iBAIlBkG,GAAK0xB,UAAU34B,MACfiH,EAAK8vB,cAA8B,UAAb/2B,KAAK0M,KAC3B1M,KAAK8S,OAAO+I,OAAOpJ,EAAO,EAAGxL,GAG/B,GAAIjH,KAAK62B,SAAU,CAEjB,GAAI6D,GAAQzzB,EAAK0D,SACbyvB,EAAS3gB,EAAW9O,SACpBpC,EAAQ6xB,EAASA,EAAO5yB,eAAaX,EACrCuzB,IAAU7xB,GACZA,EAAMoR,aAAa+gB,EAAON,GAG5BnzB,EAAKuU,aACLxb,KAAKwb,aAGPxb,KAAK2M,WAAW4O,eAAiB,IACjCtU,EAAK0F,WAAWC,SAAW,MAU/B7G,EAAKlD,UAAUkX,YAAc,SAAS9S,EAAM4S,GAC1C,GAAI7Z,KAAKy6B,aAAc,CACrB,GAAIhoB,GAAQzS,KAAK8S,OAAOhR,QAAQ+X,GAC5BJ,EAAazZ,KAAK8S,OAAOL,EAAQ,EACjCgH,GACFzZ,KAAK2Z,aAAa1S,EAAMwS,GAGxBzZ,KAAK6I,YAAY5B,KAavBlB,EAAKlD,UAAUgF,OAAS,SAAS+C,EAAMC,GAChCiK,MAAMtP,QAAQqF,KACjBA,KAEF,IAAI4H,GACA5K,EAAS+C,EAAOA,EAAKkwB,kBAAgBj0B,EAOzC,UAJO7G,MAAK+6B,kBACL/6B,MAAKg7B,gBAGOn0B,KAAf7G,KAAKyI,OAAuBoC,EAAQxI,QAAUrC,KAAKsd,mBAAoB,CAEzE7K,EADYuQ,OAAOhjB,KAAKyI,OAAOqyB,cACjBh5B,QAAQ+F,IACP,IAAX4K,IACFzS,KAAK+6B,aAAc,EACnBlwB,EAAQmI,MACN/L,KAAQjH,KACRkd,KAAQ,WAKZld,KAAKi7B,kBAIP,GAAIj7B,KAAKy6B,aAIHz6B,KAAK8S,QACP9S,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAM3E,OAAO+C,EAAMC,SAMvB,QAAmBhE,KAAf7G,KAAK0I,OAAwBmC,EAAQxI,QAAUrC,KAAKsd,mBAAoB,CAC1E,GAAI5U,GAAQsa,OAAOhjB,KAAK0I,OAAOoyB,aAC/BroB,GAAQ/J,EAAM5G,QAAQ+F,IACP,IAAX4K,IACFzS,KAAKg7B,aAAc,EACnBnwB,EAAQmI,MACN/L,KAAQjH,KACRkd,KAAQ,WAKZld,KAAKk7B,kBAIT,MAAOrwB,IAQT9E,EAAKlD,UAAU4L,SAAW,SAASC,GACjC1O,KAAKiV,mBAEDjV,KAAK0G,IAAIyV,IAAMnc,KAAK0G,IAAIyV,GAAG3U,YAC7BxH,KAAK2O,OAAOF,SAASzO,KAAK0G,IAAIyV,GAAGgf,UAAWzsB,IAOhD3I,EAAKlD,UAAUoS,iBAAmB,WAGhC,IAFA,GAAIhO,GAAOjH,KAEJiH,GAAQA,EAAKoF,QAAQ,CAK1B,IAHA,GAAIoG,GAA6B,UAArBxL,EAAKoF,OAAOK,KAClBzF,EAAKwL,MACLxL,EAAKoF,OAAOyG,OAAOhR,QAAQmF,GAC1BA,EAAKoF,OAAOurB,cAAgBnlB,EAAQ,GACzCxL,EAAKoF,OAAOurB,eAAiB7xB,EAAKlD,UAAU80B,kBAI9C1wB,GAAKoF,OAAOzD,QAXA,GAYZ3B,EAAOA,EAAKoF,SAMhBtG,EAAKq1B,iBAAev0B,GAQpBd,EAAKlD,UAAUqH,MAAQ,SAASmxB,GAG9B,GAFAt1B,EAAKq1B,aAAeC,EAEhBr7B,KAAK0G,IAAIyV,IAAMnc,KAAK0G,IAAIyV,GAAG3U,WAAY,CACzC,GAAId,GAAM1G,KAAK0G,GAEf,QAAQ20B,GACN,IAAK,OACC30B,EAAI4L,KACN5L,EAAI4L,KAAKpI,QAGTxD,EAAI4D,KAAKJ,OAEX,MAEF,KAAK,OACHxD,EAAI4D,KAAKJ,OACT,MAEF,KAAK,SACClK,KAAKy6B,aACP/zB,EAAIkC,OAAOsB,QAEJxD,EAAI+B,OAASzI,KAAK+2B,eACzBrwB,EAAI+B,MAAMyB,QACVjJ,EAAKiV,sBAAsBxP,EAAI+B,QAExB/B,EAAIgC,QAAU1I,KAAKy6B,cAC1B/zB,EAAIgC,MAAMwB,QACVjJ,EAAKiV,sBAAsBxP,EAAIgC,QAG/BhC,EAAI4D,KAAKJ,OAEX,MAEF,KAAK,QACCxD,EAAI+B,OAASzI,KAAK+2B,eACpBrwB,EAAI+B,MAAMyB,QACVjJ,EAAKiV,sBAAsBxP,EAAI+B,QAExB/B,EAAIgC,QAAU1I,KAAKy6B,cAC1B/zB,EAAIgC,MAAMwB,QACVjJ,EAAKiV,sBAAsBxP,EAAIgC,QAExB1I,KAAKy6B,aACZ/zB,EAAIkC,OAAOsB,QAGXxD,EAAI4D,KAAKJ,OAEX,MAEF,KAAK,QACL,QACMxD,EAAIqH,OAENrH,EAAIqH,OAAO7D,QAEJxD,EAAIgC,QAAU1I,KAAKy6B,cAC1B/zB,EAAIgC,MAAMwB,QACVjJ,EAAKiV,sBAAsBxP,EAAIgC,QAExBhC,EAAI+B,OAASzI,KAAK+2B,eACzBrwB,EAAI+B,MAAMyB,QACVjJ,EAAKiV,sBAAsBxP,EAAI+B,QAExBzI,KAAKy6B,aACZ/zB,EAAIkC,OAAOsB,QAGXxD,EAAI4D,KAAKJ,WAWnBnE,EAAKgI,OAAS,SAASutB,GACrBjsB,WAAW,WACTpO,EAAKiV,sBAAsBolB,IAC1B,IAMLv1B,EAAKlD,UAAU+G,KAAO,WAEpB5J,KAAK45B,cAAa,GAClB55B,KAAK64B,cAAa,IASpB9yB,EAAKlD,UAAU04B,aAAe,SAASt0B,GACrC,GAAIjH,MAAQiH,EACV,OAAO,CAGT,IAAI6L,GAAS9S,KAAK8S,MAClB,IAAIA,EAEF,IAAK,GAAIxN,GAAI,EAAGue,EAAO/Q,EAAOzQ,OAAQiD,EAAIue,EAAMve,IAC9C,GAAIwN,EAAOxN,GAAGi2B,aAAat0B,GACzB,OAAO,CAKb,QAAO,GAYTlB,EAAKlD,UAAU4E,YAAc,SAASR,EAAM0F,GAC1C,GAAI3M,KAAK8S,OAAQ,CACf,GAAIL,GAAQzS,KAAK8S,OAAOhR,QAAQmF,EAEhC,KAAe,IAAXwL,EAAc,CACZA,EAAQzS,KAAK43B,eAAiB53B,KAAK62B,UACrC72B,KAAK43B,gBAGP3wB,EAAKsD,aAGEtD,GAAK8zB,kBACL9zB,GAAK+zB,WAEZ,IAAIQ,GAAcx7B,KAAK8S,OAAO+I,OAAOpJ,EAAO,GAAG,EAO/C,OANA+oB,GAAYnvB,OAAS,MAEH,IAAdM,GACF3M,KAAK2M,WAAW4O,eAAiB,IAG5BigB,KAcbz1B,EAAKlD,UAAU44B,QAAU,SAAUx0B,GACjCjH,KAAKyH,YAAYR,IAOnBlB,EAAKlD,UAAUuW,WAAa,SAAUE,GACpC,GAAID,GAAUrZ,KAAK0M,IAEnB,IAAI2M,GAAWC,EAAf,CAKA,GAAgB,UAAXA,GAAkC,QAAXA,GACZ,UAAXD,GAAkC,QAAXA,EAIvB,CAEH,GAAIkgB,GAAYv5B,KAAKw5B,gBAGrBx5B,MAAKy5B,WAGLz5B,KAAK0M,KAAO4M,EAGG,UAAXA,GACGtZ,KAAK8S,SACR9S,KAAK8S,WAGP9S,KAAK8S,OAAO7Q,QAAQ,SAAUuK,EAAOiG,GACnCjG,EAAMitB,iBACCjtB,GAAMiG,MACbjG,EAAMuqB,eAAgB,MACHlwB,IAAf2F,EAAM/D,QACR+D,EAAM/D,MAAQ,MAIH,UAAX4Q,GAAkC,QAAXA,IACzBrZ,KAAK62B,UAAW,IAGA,SAAXvd,GACFtZ,KAAK8S,SACR9S,KAAK8S,WAGP9S,KAAK8S,OAAO7Q,QAAQ,SAAUuK,EAAOiG,GACnCjG,EAAMitB,WACNjtB,EAAMuqB,eAAgB,EACtBvqB,EAAMiG,MAAQA,IAGD,UAAX4G,GAAkC,QAAXA,IACzBrZ,KAAK62B,UAAW,IAIlB72B,KAAK62B,UAAW,EAGlB72B,KAAK05B,aAAaH,OAlDlBv5B,MAAK0M,KAAO4M,CAqDC,SAAXA,GAAgC,UAAXA,IAGrBtZ,KAAK0I,MADQ,UAAX4Q,EACW0J,OAAOhjB,KAAK0I,OAGZ1I,KAAK07B,YAAY1Y,OAAOhjB,KAAK0I,QAG5C1I,KAAKkK,SAGPlK,KAAK2M,WAAW4O,eAAiB,MAOnCxV,EAAKlD,UAAUkG,UAAY,SAAUjI,GACnC,GAAIwE,EAEJ,IAAkB,UAAdtF,KAAK0M,KAAkB,CACzB,IAAKoI,MAAMtP,QAAQ1E,GACjB,OAAO,CAGT,IAAId,KAAK8S,OAAOzQ,SAAWvB,EAAKuB,OAC9B,OAAO,CAGT,KAAKiD,EAAI,EAAGA,EAAItF,KAAK8S,OAAOzQ,OAAQiD,IAClC,IAAKtF,KAAK8S,OAAOxN,GAAGyD,UAAUjI,EAAKwE,IACjC,OAAO,MAIR,IAAkB,WAAdtF,KAAK0M,KAAmB,CAC/B,GAAoB,gBAAT5L,GACT,OAAO,CAKT,IAAI66B,MACAC,EAAY,CAChB,KAAKt2B,EAAI,EAAGA,EAAItF,KAAK8S,OAAOzQ,OAAQiD,IAAK,CACvC,GAAIkH,GAAQxM,KAAK8S,OAAOxN,EACxB,KAAKq2B,EAAMnvB,EAAM/D,OAAQ,CAMvB,GAHAkzB,EAAMnvB,EAAM/D,QAAS,EACrBmzB,MAEMpvB,EAAM/D,QAAS3H,IACnB,OAAO,CAGT,KAAK0L,EAAMzD,UAAUjI,EAAK0L,EAAM/D,QAC9B,OAAO,GAKb,GAAImzB,IAAc75B,OAAOC,KAAKlB,GAAMuB,OAClC,OAAO,MAIT,IAAIrC,KAAK0I,QAAU5H,EACjB,OAAO,CAIX,QAAO,GASTiF,EAAKlD,UAAU+2B,aAAe,SAASiC,GAKrC,GAJI77B,KAAK0G,IAAIgC,OAAsB,SAAb1I,KAAK0M,MAAgC,UAAb1M,KAAK0M,OACjD1M,KAAKg6B,eAAiB/4B,EAAKikB,aAAallB,KAAK0G,IAAIgC,YAGxB7B,IAAvB7G,KAAKg6B,eACP,IAEE,GAAItxB,EACJ,IAAiB,UAAb1I,KAAK0M,KACPhE,EAAQ1I,KAAK87B,cAAc97B,KAAKg6B,oBAE7B,CACH,GAAIxL,GAAMxuB,KAAK87B,cAAc97B,KAAKg6B,eAClCtxB,GAAQ1I,KAAK07B,YAAYlN,GAEvB9lB,IAAU1I,KAAK0I,QACjB1I,KAAK0I,MAAQA,EACb1I,KAAKk3B,2BAGT,MAAOx0B,GAGL,GAFA1C,KAAK0I,UAAQ7B,IAEE,IAAXg1B,EACF,KAAMn5B,KAUdqD,EAAKlD,UAAUs0B,eAAiB,WAG9B,GAAIrb,GAAe9b,KAAK2O,OAAOP,iBAC/B,IAAI0N,EAAa7N,MAAO,CACtB,GAAI8tB,GAAW96B,EAAK6mB,SAAS9E,OAAOhjB,KAAK0I,OAAQsa,OAAOhjB,KAAKs5B,eAC7Dxd,GAAa7N,MAAM6W,YAAciX,EAAS3yB,MAC1C0S,EAAa7N,MAAM8W,UAAYgX,EAAS1yB,IAE1C,GAAI0S,GAAe/b,KAAK2O,OAAOP,iBAC/B,IAAI2N,EAAa9N,MAAO,CACtB,GAAI+tB,GAAW/6B,EAAK6mB,SAAS9E,OAAOhjB,KAAKs5B,eAAgBtW,OAAOhjB,KAAK0I,OACrEqT,GAAa9N,MAAM6W,YAAckX,EAAS5yB,MAC1C2S,EAAa9N,MAAM8W,UAAYiX,EAAS3yB,IAG1CrJ,KAAK2O,OAAO1D,UAAU,aACpBzB,KAAMxJ,KAAKwO,kBACXwK,SAAUhZ,KAAKs5B,cACfrgB,SAAUjZ,KAAK0I,MACfoT,aAAcA,EACdC,aAAcA,IAGhB/b,KAAKs5B,cAAgBt5B,KAAK0I,OAO5B3C,EAAKlD,UAAUw0B,eAAiB,WAG9B,GAAIvb,GAAe9b,KAAK2O,OAAOP,kBAC3B+H,EAAWnW,KAAK44B,eAAiB,EACrC,IAAI9c,EAAa7N,MAAO,CACtB,GAAI8tB,GAAW96B,EAAK6mB,SAAS9nB,KAAKyI,MAAO0N,EACzC2F,GAAa7N,MAAM6W,YAAciX,EAAS3yB,MAC1C0S,EAAa7N,MAAM8W,UAAYgX,EAAS1yB,IAE1C,GAAI0S,GAAe/b,KAAK2O,OAAOP,iBAC/B,IAAI2N,EAAa9N,MAAO,CACtB,GAAI+tB,GAAW/6B,EAAK6mB,SAAS3R,EAAUnW,KAAKyI,MAC5CsT,GAAa9N,MAAM6W,YAAckX,EAAS5yB,MAC1C2S,EAAa9N,MAAM8W,UAAYiX,EAAS3yB,IAG1CrJ,KAAK2O,OAAO1D,UAAU,aACpB8N,WAAY/Y,KAAKqM,OAAOmC,kBACxBiE,MAAOzS,KAAKgY,WACZgB,SAAUhZ,KAAK44B,cACf3f,SAAUjZ,KAAKyI,MACfqT,aAAcA,EACdC,aAAcA,IAGhB/b,KAAK44B,cAAgB54B,KAAKyI,OAU5B1C,EAAKlD,UAAUq4B,gBAAkB,WAC/B,GAAIe,GAAWj8B,KAAK0G,IAAIgC,KACxB,IAAIuzB,EAAU,CACZ,GAAIC,IAAc,oBAIdxzB,EAAQ1I,KAAK0I,MACbgE,EAAqB,QAAb1M,KAAK0M,KAAkBzL,EAAKyL,KAAKhE,GAAS1I,KAAK0M,KACvD0W,EAAgB,UAAR1W,GAAoBzL,EAAKmiB,MAAM1a,EAC3CwzB,GAAWlpB,KAAK,cAAgBtG,GAC5B0W,GACF8Y,EAAWlpB,KAAK,iBAoBlB,IAhBqC,IAAtBgQ,OAAOhjB,KAAK0I,QAA6B,SAAb1I,KAAK0M,MAAgC,UAAb1M,KAAK0M,MAEtEwvB,EAAWlpB,KAAK,oBAIdhT,KAAKod,mBACP8e,EAAWlpB,KAAK,+BAEdhT,KAAKg7B,aACPkB,EAAWlpB,KAAK,wBAGlBipB,EAASvsB,UAAYwsB,EAAW3Z,KAAK,KAGzB,SAAR7V,GAA2B,UAARA,EAAkB,CACvC,GAAImO,GAAQ7a,KAAK8S,OAAS9S,KAAK8S,OAAOzQ,OAAS,CAC/C45B,GAAStrB,MAAQ3Q,KAAK0M,KAAO,eAAiBmO,EAAQ,aAE/CuI,IAASpjB,KAAKyB,SAASiH,MAC9BuzB,EAAStrB,MAAQvK,EAAU,WAG3B61B,EAAStrB,MAAQ,EA0BnB,IAtBa,YAATjE,GAAsB1M,KAAKyB,SAASiH,OACjC1I,KAAK0G,IAAIy1B,WACZn8B,KAAK0G,IAAIy1B,SAAW31B,SAASiJ,cAAc,SAC3CzP,KAAK0G,IAAIy1B,SAASzvB,KAAO,WACzB1M,KAAK0G,IAAI01B,WAAa51B,SAASiJ,cAAc,MAC7CzP,KAAK0G,IAAI01B,WAAW1sB,UAAY,kBAChC1P,KAAK0G,IAAI01B,WAAWvzB,YAAY7I,KAAK0G,IAAIy1B,UAEzCn8B,KAAK0G,IAAI4xB,QAAQ9wB,WAAWmS,aAAa3Z,KAAK0G,IAAI01B,WAAYp8B,KAAK0G,IAAI4xB,UAGzEt4B,KAAK0G,IAAIy1B,SAASE,QAAUr8B,KAAK0I,OAI7B1I,KAAK0G,IAAI01B,aACXp8B,KAAK0G,IAAI01B,WAAW50B,WAAWC,YAAYzH,KAAK0G,IAAI01B,kBAC7Cp8B,MAAK0G,IAAI01B,iBACTp8B,MAAK0G,IAAIy1B,UAIhBn8B,KAAKs8B,MAAQt8B,KAAKyB,SAASiH,MAAO,CAEpC,IAAK1I,KAAK0G,IAAIqH,OAAQ,CACpB/N,KAAK0G,IAAIqH,OAASvH,SAASiJ,cAAc,UACzCzP,KAAKK,GAAKL,KAAKyI,MAAQ,KAAM,GAAImT,OAAO2gB,qBACxCv8B,KAAK0G,IAAIqH,OAAO1N,GAAKL,KAAKK,GAC1BL,KAAK0G,IAAIqH,OAAOrK,KAAO1D,KAAK0G,IAAIqH,OAAO1N,GAGvCL,KAAK0G,IAAIqH,OAAO7L,OAASsE,SAASiJ,cAAc,UAChDzP,KAAK0G,IAAIqH,OAAO7L,OAAOwG,MAAQ,GAC/B1I,KAAK0G,IAAIqH,OAAO7L,OAAOwb,UAAY,KACnC1d,KAAK0G,IAAIqH,OAAOlF,YAAY7I,KAAK0G,IAAIqH,OAAO7L,OAG5C,KAAI,GAAIoD,GAAI,EAAGA,EAAItF,KAAKs8B,KAAKj6B,OAAQiD,IACnCtF,KAAK0G,IAAIqH,OAAO7L,OAASsE,SAASiJ,cAAc,UAChDzP,KAAK0G,IAAIqH,OAAO7L,OAAOwG,MAAQ1I,KAAKs8B,KAAKh3B,GACzCtF,KAAK0G,IAAIqH,OAAO7L,OAAOwb,UAAY1d,KAAKs8B,KAAKh3B,GAC1CtF,KAAK0G,IAAIqH,OAAO7L,OAAOwG,OAAS1I,KAAK0I,QACtC1I,KAAK0G,IAAIqH,OAAO7L,OAAO+P,UAAW,GAEpCjS,KAAK0G,IAAIqH,OAAOlF,YAAY7I,KAAK0G,IAAIqH,OAAO7L,OAG9ClC,MAAK0G,IAAI81B,SAAWh2B,SAASiJ,cAAc,MAC3CzP,KAAK0G,IAAI81B,SAAS9sB,UAAY,kBAC9B1P,KAAK0G,IAAI81B,SAAS3zB,YAAY7I,KAAK0G,IAAIqH,QACvC/N,KAAK0G,IAAI4xB,QAAQ9wB,WAAWmS,aAAa3Z,KAAK0G,IAAI81B,SAAUx8B,KAAK0G,IAAI4xB,UAKpEt4B,KAAKyE,QACHzE,KAAKyE,OAAOuD,eAAe,UAC3BhI,KAAKyE,OAAOuD,eAAe,UAC3BhI,KAAKyE,OAAOuD,eAAe,eAMvBhI,MAAKy8B,gBAJZz8B,KAAKy8B,eAAiBz8B,KAAK0G,IAAI4xB,QAAQ5a,UACvC1d,KAAK0G,IAAI4xB,QAAQtZ,MAAM0d,WAAa,SACpC18B,KAAK0G,IAAI4xB,QAAQ5a,UAAY,QAO3B1d,MAAK0G,IAAI81B,WACXx8B,KAAK0G,IAAI81B,SAASh1B,WAAWC,YAAYzH,KAAK0G,IAAI81B,gBAC3Cx8B,MAAK0G,IAAI81B,eACTx8B,MAAK0G,IAAIqH,OAChB/N,KAAK0G,IAAI4xB,QAAQ5a,UAAY1d,KAAKy8B,eAClCz8B,KAAK0G,IAAI4xB,QAAQtZ,MAAM0d,WAAa,SAC7B18B,MAAKy8B,eAKhBx7B,GAAK0iB,gBAAgBsY,KAWzBl2B,EAAKlD,UAAUo4B,gBAAkB,WAC/B,GAAI0B,GAAW38B,KAAK0G,IAAI+B,KACxB,IAAIk0B,EAAU,CAEyB,IAAtB3Z,OAAOhjB,KAAKyI,QAAoC,SAApBzI,KAAKqM,OAAOK,KAErDzL,EAAKiS,aAAaypB,EAAU,oBAG5B17B,EAAKyR,gBAAgBiqB,EAAU,oBAI7B38B,KAAKmd,kBACPlc,EAAKiS,aAAaypB,EAAU,+BAG5B17B,EAAKyR,gBAAgBiqB,EAAU,+BAE7B38B,KAAK+6B,YACP95B,EAAKiS,aAAaypB,EAAU,wBAG5B17B,EAAKyR,gBAAgBiqB,EAAU,wBAIjC17B,EAAK0iB,gBAAgBgZ,KAUzB52B,EAAKlD,UAAUg2B,aAAe,SAASgD,GAKrC,GAJI77B,KAAK0G,IAAI+B,OAASzI,KAAK+2B,gBACzB/2B,KAAK+5B,eAAiB94B,EAAKikB,aAAallB,KAAK0G,IAAI+B,YAGxB5B,IAAvB7G,KAAK+5B,eACP,IACE,GAAItxB,GAAQzI,KAAK87B,cAAc97B,KAAK+5B,eAEhCtxB,KAAUzI,KAAKyI,QACjBzI,KAAKyI,MAAQA,EACbzI,KAAKo3B,2BAGT,MAAO10B,GAGL,GAFA1C,KAAKyI,UAAQ5B,IAEE,IAAXg1B,EACF,KAAMn5B,KAUdqD,EAAKlD,UAAUsC,SAAW,WACxB,GAAIsG,KAGJ,IAAkB,WAAdzL,KAAK0M,KAAmB,CAG1B,IAAK,GAFD1K,MACA46B,KACKt3B,EAAI,EAAGA,EAAItF,KAAK8S,OAAOzQ,OAAQiD,IAAK,CAC3C,GAAIkH,GAAQxM,KAAK8S,OAAOxN,EACpBtD,GAAKgG,eAAewE,EAAM/D,QAC5Bm0B,EAAc5pB,KAAKxG,EAAM/D,OAE3BzG,EAAKwK,EAAM/D,QAAS,EAGlBm0B,EAAcv6B,OAAS,IACzBoJ,EAASzL,KAAK8S,OACThH,OAAO,SAAU7E,GAChB,OAA8C,IAAvC21B,EAAc96B,QAAQmF,EAAKwB,SAEnCiD,IAAI,SAAUzE,GACb,OACEA,KAAMA,EACN9F,OACEsL,QAASrG,EAAU,gBAAkB,KAAOa,EAAKwB,MAAQ,SAQvE,GAAIzI,KAAK8S,OACP,IAAK,GAAIxN,GAAI,EAAGA,EAAItF,KAAK8S,OAAOzQ,OAAQiD,IAAK,CAC3C,GAAI9C,GAAIxC,KAAK8S,OAAOxN,GAAGH,UACnB3C,GAAEH,OAAS,IACboJ,EAASA,EAAOO,OAAOxJ,IAK7B,MAAOiJ,IAMT1F,EAAKlD,UAAU42B,SAAW,WAKxBz5B,KAAK0G,QAQPX,EAAKlD,UAAU8H,OAAS,WACtB,GAAIjE,GAAM1G,KAAK0G,GACf,IAAIA,EAAIyV,GACN,MAAOzV,GAAIyV,EASb,IANAnc,KAAK63B,qBAGLnxB,EAAIyV,GAAK3V,SAASiJ,cAAc,MAChC/I,EAAIyV,GAAGlV,KAAOjH,KAEmB,SAA7BA,KAAK2O,OAAO9N,QAAQe,KAAiB,CACvC,GAAIi7B,GAASr2B,SAASiJ,cAAc,KACpC,IAAIzP,KAAKyB,SAASgH,OAEZzI,KAAKqM,OAAQ,CACf,GAAIywB,GAAUt2B,SAASiJ,cAAc,SACrCqtB,GAAQpwB,KAAO,SACfhG,EAAI4L,KAAOwqB,EACXA,EAAQptB,UAAY,sBACpBotB,EAAQnsB,MAAQvK,EAAU,QAC1By2B,EAAOh0B,YAAYi0B,GAGvBp2B,EAAIyV,GAAGtT,YAAYg0B,EAGnB,IAAIE,GAASv2B,SAASiJ,cAAc,MAChCnF,EAAO9D,SAASiJ,cAAc,SAClCnF,GAAKoC,KAAO,SACZhG,EAAI4D,KAAOA,EACXA,EAAKoF,UAAY,yBACjBpF,EAAKqG,MAAQvK,EAAU,eACvB22B,EAAOl0B,YAAYnC,EAAI4D,MACvB5D,EAAIyV,GAAGtT,YAAYk0B,GAIrB,GAAIC,GAAUx2B,SAASiJ,cAAc,KAOrC,OANA/I,GAAIyV,GAAGtT,YAAYm0B,GACnBt2B,EAAIu2B,KAAOj9B,KAAKk9B,iBAChBF,EAAQn0B,YAAYnC,EAAIu2B,MAExBj9B,KAAK2M,WAAW4O,eAAiB,IAE1B7U,EAAIyV,IAObpW,EAAKlD,UAAUs6B,UAAY,WACzB,MAAOn9B,MAAK0G,KAAO1G,KAAK0G,IAAIyV,IAAMnc,KAAK0G,IAAIyV,GAAG3U,aAAc,GAQ9DzB,EAAKsM,YAAc,SAAUtL,EAAOwI,GAClC,IAAKuF,MAAMtP,QAAQuB,GACjB,MAAOhB,GAAKsM,aAAatL,GAAQwI,EAEnC,IAAqB,IAAjBxI,EAAM1E,OAAV,CAIA,GAAIiS,GAAYvN,EAAM,GAClBq2B,EAAWr2B,EAAMA,EAAM1E,OAAS,GAChCgK,EAASiI,EAAUjI,OACnBgxB,EAAct3B,EAAK4D,kBAAkB4F,EAAMK,QAC3CjB,EAAS2F,EAAU3F,OAInB2uB,EAAUr8B,EAAKgM,eAAeowB,EAAY32B,IAAIyV,IAAMlb,EAAKgM,eAAeqH,EAAU5N,IAAIyV,GAErFxN,GAAOqF,YACVrF,EAAOqF,UAAY/S,EAAKuP,iBAAiByD,OAAQ,YAAa,SAAU1E,GACtExJ,EAAKw3B,OAAOx2B,EAAOwI,MAIlBZ,EAAOwF,UACVxF,EAAOwF,QAAUlT,EAAKuP,iBAAiByD,OAAQ,UAAU,SAAU1E,GACjExJ,EAAKy3B,UAAUz2B,EAAOwI,MAI1BZ,EAAOhI,YAAYgS,OACnBhK,EAAO2D,MACLmrB,UAAWj3B,SAASC,KAAKuY,MAAM0e,OAC/B5hB,aAAcnN,EAAOP,kBACrBuvB,SAAU52B,EAAM2E,IAAI8C,GACpBovB,UAAWvxB,EACXwxB,YAAaxxB,EAAOyG,OAAOsqB,EAASplB,WAAa,IAAM3L,EAAO4N,OAC9DgB,kBAAmB5O,EAAOmC,kBAC1B4M,aAAc9G,EAAU0D,WACxB8lB,OAAQvuB,EAAMkE,MACd6pB,QAASA,EACTS,MAAOzpB,EAAUwlB,YAEnBtzB,SAASC,KAAKuY,MAAM0e,OAAS,OAE7BnuB,EAAMM,mBAQR9J,EAAKw3B,OAAS,SAAUx2B,EAAOwI,GAC7B,IAAKuF,MAAMtP,QAAQuB,GACjB,MAAOhB,GAAKw3B,QAAQx2B,GAAQwI,EAE9B,IAAqB,IAAjBxI,EAAM1E,OAAV,CAKA,GAGI27B,GAAQC,EAAQC,EAAQC,EAASC,EAAQC,EACzCC,EAAUC,EACVC,EAASC,EAASC,EAAUC,EAAYC,EAAYC,EALpDlwB,EAAS5H,EAAM,GAAG4H,OAClB7B,EAASyC,EAAMoE,MAAQhF,EAAO2D,KAAKgrB,QACnCQ,EAASvuB,EAAMkE,MAIfqrB,GAAQ,EAKRxqB,EAAYvN,EAAM,EAItB,IAHAi3B,EAAS1pB,EAAU5N,IAAIyV,GACvBqiB,EAAUv9B,EAAKgM,eAAe+wB,GAC9BW,EAAaX,EAAO5d,aAChBtT,EAAS0xB,EAAS,CAEpBP,EAASD,CACT,IACEC,EAASA,EAAOc,gBAChBT,EAAWv4B,EAAK4D,kBAAkBs0B,GAClCQ,EAAUR,EAASh9B,EAAKgM,eAAegxB,GAAU,QAE5CA,GAAUnxB,EAAS2xB,EAEtBH,KAAaA,EAASjyB,SACxBiyB,MAAWz3B,IAGRy3B,IAEHD,EAASL,EAAOx2B,WAAW8Y,WAC3B2d,EAASI,EAASA,EAAOnmB,gBAAcrR,IACvCy3B,EAAWv4B,EAAK4D,kBAAkBs0B,KAClB3pB,IACdgqB,MAAWz3B,KAIXy3B,GAAYA,EAASnB,cAEvBc,EAASK,EAAS53B,IAAIyV,GACtBsiB,EAAUR,EAASh9B,EAAKgM,eAAegxB,GAAU,EAC7CnxB,EAAS2xB,EAAUE,IACrBL,MAAWz3B,KAIXy3B,IACFv3B,EAAM9E,QAAQ,SAAUgF,GACtBq3B,EAASjyB,OAAO0O,WAAW9T,EAAMq3B,KAEnCQ,GAAQ,OAGP,CAEH,GAAI1B,GAAWr2B,EAAMA,EAAM1E,OAAS,EAGpC,IAFA+7B,EAAUhB,EAASvG,UAAYuG,EAASnjB,OAAUmjB,EAASnjB,OAAOtP,SAAWyyB,EAAS12B,IAAIyV,GAC1FgiB,EAAUC,EAASA,EAAOlmB,gBAAcrR,GAC3B,CACX63B,EAAWz9B,EAAKgM,eAAekxB,GAC/BD,EAASC,CACT,IACEI,EAAWx4B,EAAK4D,kBAAkBu0B,GAC9BA,IACFU,EAAaV,EAAOhmB,YAChBjX,EAAKgM,eAAeixB,EAAOhmB,aAAe,EAC9C2mB,EAAaX,EAAUU,EAAaF,EAAY,EAE5CH,GACAA,EAASlyB,OAAOyG,OAAOzQ,QAAU0E,EAAM1E,QACvCk8B,EAASlyB,OAAOyG,OAAO/L,EAAM1E,OAAS,IAAM+6B,IAG9CoB,GAAW,IAIbN,EAASA,EAAOhmB,mBAGbgmB,GAAUpxB,EAAS0xB,EAAUK,EAEpC,IAAIN,GAAYA,EAASlyB,OAAQ,CAE/B,GAAIwH,GAASiqB,EAASnvB,EAAO2D,KAAKwrB,OAC9BkB,EAAYjwB,KAAKkwB,MAAMprB,EAAQ,GAAK,GACpCkqB,EAAQpvB,EAAO2D,KAAKyrB,MAAQiB,EAC5BE,EAAYX,EAASzE,UAIzB,KADAmE,EAASM,EAAS73B,IAAIyV,IAAMoiB,EAAS73B,IAAIyV,GAAG4iB,gBACrCG,EAAYnB,GAASE,GAAQ,CAClCK,EAAWv4B,EAAK4D,kBAAkBs0B,EAMlC,IAJoBl3B,EAAMuF,KAAK,SAAUrF,GACvC,MAAOA,KAASq3B,GAAYA,EAAS/pB,eAAetN,UAMjD,CAAA,KAAIq3B,YAAoB1D,IAe3B,KAdA,IAAI9nB,GAASwrB,EAASjyB,OAAOyG,MAC7B,IAAIA,EAAOzQ,QAAU0E,EAAM1E,QAAUyQ,EAAO/L,EAAM1E,OAAS,IAAM+6B,EAS/D,KAJAmB,GAAWx4B,EAAK4D,kBAAkBs0B,GAClCiB,EAAYX,EAASzE,WAUzBmE,EAASA,EAAOc,gBAGdR,YAAoB3D,KAAe2D,EAASpB,aAC5CoB,EAASlyB,OAAO6nB,SAASiJ,cAC3BoB,EAAWA,EAASY,aAIlBZ,GAAYA,EAAS73B,IAAIyV,IAAMiiB,EAAOlmB,aAAeqmB,EAAS73B,IAAIyV,KACpEpV,EAAM9E,QAAQ,SAAUgF,GACtBs3B,EAASlyB,OAAO0O,WAAW9T,EAAMs3B,KAEnCO,GAAQ,KAMZA,IAEFnwB,EAAO2D,KAAKwrB,OAASA,EACrBnvB,EAAO2D,KAAKyrB,MAAQzpB,EAAUwlB,YAIhCnrB,EAAO9B,gBAAgBC,GAEvByC,EAAMM,mBAQR9J,EAAKy3B,UAAY,SAAUz2B,EAAOwI,GAChC,IAAKuF,MAAMtP,QAAQuB,GACjB,MAAOhB,GAAKw3B,QAAQx2B,GAAQwI,EAE9B,IAAqB,IAAjBxI,EAAM1E,OAAV,CAIA,GAAIiS,GAAYvN,EAAM,GAClB4H,EAAS2F,EAAU3F,MAGnB5H,GAAM,IACRA,EAAM,GAAGL,IAAI4D,KAAKJ,OAGpB,IAAIqQ,GAAgB5L,EAAO2D,KAAKsrB,UAAUpvB,kBACtCiM,EAAgBnG,EAAUjI,OAAOmC,kBACjC4wB,EAAazwB,EAAO2D,KAAKsrB,YAActpB,EAAUjI,OACjDsO,EAAWhM,EAAO2D,KAAKurB,YAAY7lB,WACnC4C,EAAWtG,EAAU0D,WACrBiD,EAAoBtM,EAAO2D,KAAK2I,kBAEhCG,EAAezM,EAAO2D,KAAK8I,aAC3BD,EAAgBikB,GAAchkB,EAAeR,EAC1CA,EAAW7T,EAAM1E,OAClBuY,CAEDwkB,IAAchkB,IAAiBR,GAElCjM,EAAO1D,UAAU,aACf4P,MAAO9T,EAAM1E,OACbyY,WAAY/T,EAAM2E,IAAI4rB,GAEtB/c,cAAeA,EACfE,cAAeA,EACfE,SAAUA,EACVC,SAAUA,EAEVQ,aAAcA,EACdD,aAAcA,EACdF,kBAAmBA,EACnBD,kBAAmB,KAEnBc,aAAcnN,EAAO2D,KAAKwJ,aAC1BC,aAAcpN,EAAOP,oBAIzB5H,SAASC,KAAKuY,MAAM0e,OAAS/uB,EAAO2D,KAAKmrB,UACzC9uB,EAAOhI,YAAYiS,SACnB7R,EAAM9E,QAAQ,SAAUgF,GAClBsI,EAAMK,SAAW3I,EAAKP,IAAI4L,MAAQ/C,EAAMK,SAAW3I,EAAKP,IAAI4D,MAC9DqE,EAAOhI,YAAY8R,sBAGhB9J,GAAO2D,KAEV3D,EAAOqF,YACT/S,EAAKwT,oBAAoBR,OAAQ,YAAatF,EAAOqF,iBAC9CrF,GAAOqF,WAEZrF,EAAOwF,UACTlT,EAAKwT,oBAAoBR,OAAQ,UAAWtF,EAAOwF,eAC5CxF,GAAOwF,SAIhBxF,EAAOjB,iBAEP6B,EAAMM,mBASR9J,EAAKlD,UAAU0R,eAAiB,SAAUtN,GAExC,IADA,GAAIgpB,GAAIjwB,KAAKqM,OACN4jB,GAAG,CACR,GAAIA,GAAKhpB,EACP,OAAO,CAETgpB,GAAIA,EAAE5jB,OAGR,OAAO,GAQTtG,EAAKlD,UAAUw8B,gBAAkB,WAC/B,MAAO74B,UAASiJ,cAAc,QAQhC1J,EAAKlD,UAAU0V,aAAe,SAAUD,GAClCtY,KAAK0G,IAAIyV,KACP7D,EACFrX,EAAKiS,aAAalT,KAAK0G,IAAIyV,GAAI,wBAG/Blb,EAAKyR,gBAAgB1S,KAAK0G,IAAIyV,GAAI,wBAGhCnc,KAAKia,QACPja,KAAKia,OAAO1B,aAAaD,GAGvBtY,KAAK8S,QACP9S,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAM+L,aAAaD,OAW3BvS,EAAKlD,UAAU+R,YAAc,SAAU3C,EAAUqtB,GAC/Ct/B,KAAKiS,SAAWA,EAEZjS,KAAK0G,IAAIyV,KACPlK,EACFhR,EAAKiS,aAAalT,KAAK0G,IAAIyV,GAAI,uBAG/Blb,EAAKyR,gBAAgB1S,KAAK0G,IAAIyV,GAAI,uBAGhCmjB,EACFr+B,EAAKiS,aAAalT,KAAK0G,IAAIyV,GAAI,oBAG/Blb,EAAKyR,gBAAgB1S,KAAK0G,IAAIyV,GAAI,oBAGhCnc,KAAKia,QACPja,KAAKia,OAAOrF,YAAY3C,GAGtBjS,KAAKk0B,UACPl0B,KAAKk0B,SAAStf,YAAY3C,GAGxBjS,KAAK8S,QACP9S,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAMoI,YAAY3C,OAW1BlM,EAAKlD,UAAUsW,YAAc,SAAUzQ,GACrC1I,KAAK0I,MAAQA,EACb1I,KAAKs5B,cAAgB5wB,EACrB1I,KAAK2M,aAOP5G,EAAKlD,UAAUoH,YAAc,SAAUxB,GACrCzI,KAAKyI,MAAQA,EACbzI,KAAK44B,cAAgBnwB,EACrBzI,KAAK2M,aAaP5G,EAAKlD,UAAU8J,UAAY,SAAU9L,GAEnC,GAAI0+B,GAAUv/B,KAAK0G,IAAIu2B,IACnBsC,KACFA,EAAQvgB,MAAMwgB,WAA+B,GAAlBx/B,KAAK85B,WAAkB,KAIpD,IAAI6C,GAAW38B,KAAK0G,IAAI+B,KACxB,IAAIk0B,EAAU,CACR38B,KAAK+2B,eAEP4F,EAAS8C,gBAAkBz/B,KAAKyB,SAASgH,MACzCk0B,EAAS+C,YAAa,EACtB/C,EAASjtB,UAAY,oBAIrBitB,EAASjtB,UAAY,qBAGvB,IAAIiwB,EAEFA,OADgB94B,IAAd7G,KAAKyS,MACKzS,KAAKyS,UAEI5L,IAAd7G,KAAKyI,MACAzI,KAAKyI,MAEVzI,KAAKy6B,aACAz6B,KAAK0M,KAGL,GAEdiwB,EAASjf,UAAY1d,KAAK4/B,YAAYD,GAEtC3/B,KAAK6/B,gBAIP,GAAI5D,GAAWj8B,KAAK0G,IAAIgC,KACxB,IAAIuzB,EAAU,CACZ,GAAIphB,GAAQ7a,KAAK8S,OAAS9S,KAAK8S,OAAOzQ,OAAS,CAC9B,UAAbrC,KAAK0M,MACPuvB,EAASve,UAAY,IAAM7C,EAAQ,IACnC5Z,EAAKiS,aAAalT,KAAK0G,IAAIyV,GAAI,0BAEX,UAAbnc,KAAK0M,MACZuvB,EAASve,UAAY,IAAM7C,EAAQ,IACnC5Z,EAAKiS,aAAalT,KAAK0G,IAAIyV,GAAI,2BAG/B8f,EAASve,UAAY1d,KAAK4/B,YAAY5/B,KAAK0I,OAC3CzH,EAAKyR,gBAAgB1S,KAAK0G,IAAIyV,GAAI,0BAKtCnc,KAAKi7B,kBACLj7B,KAAKk7B,kBAGDr6B,IAAqC,IAA1BA,EAAQ0a,eAErBvb,KAAK8/B,oBAIHj/B,IAA+B,IAApBA,EAAQ+L,SACjB5M,KAAK8S,QACP9S,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAMG,UAAU9L,KAMlBb,KAAKmB,OACPnB,KAAKo4B,cAIHp4B,KAAKia,QACPja,KAAKia,OAAOtN,YAIV3M,KAAKk0B,UACPl0B,KAAKk0B,SAASvnB,aAQlB5G,EAAKlD,UAAUg9B,cAAgB,WAE1B7/B,KAAK2O,QAAU3O,KAAK2O,OAAO9N,UAE5Bb,KAAKyE,OAASzE,KAAK2O,OAAO9N,QAAQ4D,OAC5BsB,EAAKg6B,YAAY//B,KAAK2O,OAAO9N,QAAQ4D,OAAQzE,KAAK4W,WAClD,KACF5W,KAAKyE,OACPzE,KAAKs8B,KAAOv2B,EAAKi6B,UAAUhgC,KAAKyE,cAGzBzE,MAAKs8B,OAYlBv2B,EAAKi6B,UAAY,SAAUv7B,GACzB,GAAIA,EAAO63B,KACT,MAAO73B,GAAO63B,IAGhB,IAAI2D,GAAYx7B,EAAOy7B,OAASz7B,EAAO07B,OAAS17B,EAAO27B,KACvD,IAAIH,EAAW,CACb,GAAIpe,GAAQoe,EAAUn0B,OAAO,SAAUC,GAAQ,MAAOA,GAAMuwB,MAC5D,IAAIza,EAAMxf,OAAS,EACjB,MAAOwf,GAAM,GAAGya,KAIpB,MAAO,OAUTv2B,EAAKg6B,YAAc,SAAUt7B,EAAQ+E,GACnC,GAAI62B,GAAc57B,EACd67B,EAAcD,EAEdE,EAAa97B,EAAOy7B,OAASz7B,EAAO07B,OAAS17B,EAAO27B,KACnDG,KACHA,GAAc97B,GAGhB,KAAK,GAAIuf,GAAI,EAAGA,EAAIuc,EAAWl+B,OAAQ2hB,IAAK,CAC1Cqc,EAAcE,EAAWvc,EAEzB,KAAK,GAAI1e,GAAI,EAAGA,EAAIkE,EAAKnH,QAAUg+B,EAAa/6B,IAAK,CACnD,GAAI+Q,GAAM7M,EAAKlE,EAEf,IAAmB,gBAAR+Q,IAAoBgqB,EAAYG,mBAAqBl7B,GAAKkE,EAAKnH,OAAS,EACjF,IAAK,GAAIkD,KAAQ86B,GAAYG,kBAC3BF,EAAcv6B,EAAKg6B,YAAYM,EAAYG,kBAAkBj7B,GAAOiE,EAAKuL,MAAMzP,EAAGkE,EAAKnH,aAGlFg+B,GAAY9oB,OAAS8oB,EAAY9oB,MAAMkpB,YAC9CJ,EAAcA,EAAY9oB,MAAMkpB,WAAWpqB,MAEzCiqB,EAAcv6B,EAAKg6B,YAAYM,EAAa72B,EAAKuL,MAAMzP,EAAGkE,EAAKnH,UAG3C,gBAARgU,IAAoBgqB,EAAYI,YAC9CJ,EAAcA,EAAYI,WAAWpqB,IAAQ,QAE3CiqB,EAAcv6B,EAAKg6B,YAAYM,EAAa72B,EAAKuL,MAAMzP,EAAGkE,EAAKnH,UAG3C,gBAARgU,IAAoBgqB,EAAY9oB,QAC9C8oB,EAAcA,EAAY9oB,SAExB+oB,EAAcv6B,EAAKg6B,YAAYM,EAAa72B,EAAKuL,MAAMzP,EAAGkE,EAAKnH,WAMvE,MAAOi+B,IASTv6B,EAAKlD,UAAUi9B,kBAAoB,WACjC,GAAI7D,GAAWj8B,KAAK0G,IAAIgC,MACpBoK,EAAS9S,KAAK8S,MACdmpB,IAAYnpB,IACG,SAAb9S,KAAK0M,KACPoG,EAAO7Q,QAAQ,SAAUuK,EAAOiG,GAC9BjG,EAAMiG,MAAQA,CACd,IAAIymB,GAAa1sB,EAAM9F,IAAI+B,KACvBywB,KACFA,EAAWxb,UAAYjL,KAIP,UAAbzS,KAAK0M,MACZoG,EAAO7Q,QAAQ,SAAUuK,OACJ3F,IAAf2F,EAAMiG,cACDjG,GAAMiG,UAEM5L,IAAf2F,EAAM/D,QACR+D,EAAM/D,MAAQ,SAY1B1C,EAAKlD,UAAU69B,gBAAkB,WAC/B,GAAIzE,EA0BJ,OAxBiB,SAAbj8B,KAAK0M,MACPuvB,EAAWz1B,SAASiJ,cAAc,OAClCwsB,EAASve,UAAY,SAED,UAAb1d,KAAK0M,MACZuvB,EAAWz1B,SAASiJ,cAAc,OAClCwsB,EAASve,UAAY,UAGhB1d,KAAKyB,SAASiH,OAASzH,EAAKmiB,MAAMpjB,KAAK0I,QAE1CuzB,EAAWz1B,SAASiJ,cAAc,KAClCwsB,EAAS0E,KAAO3gC,KAAK0I,MACrBuzB,EAASve,UAAY1d,KAAK4/B,YAAY5/B,KAAK0I,SAI3CuzB,EAAWz1B,SAASiJ,cAAc,OAClCwsB,EAASwD,gBAAkBz/B,KAAKyB,SAASiH,MACzCuzB,EAASyD,YAAa,EACtBzD,EAASve,UAAY1d,KAAK4/B,YAAY5/B,KAAK0I,QAIxCuzB,GAQTl2B,EAAKlD,UAAU+9B,uBAAyB,WAEtC,GAAIh4B,GAASpC,SAASiJ,cAAc,SAWpC,OAVA7G,GAAO8D,KAAO,SACV1M,KAAKy6B,cACP7xB,EAAO8G,UAAY1P,KAAK62B,SAAW,sBAAwB,uBAC3DjuB,EAAO+H,MAAQvK,EAAU,iBAGzBwC,EAAO8G,UAAY,uBACnB9G,EAAO+H,MAAQ,IAGV/H,GAST7C,EAAKlD,UAAUq6B,eAAiB,WAC9B,GAAIx2B,GAAM1G,KAAK0G,IACX64B,EAAU/4B,SAASiJ,cAAc,SACjC/E,EAAQlE,SAASiJ,cAAc,QACnC8vB,GAAQvgB,MAAM6hB,eAAiB,WAC/BtB,EAAQ7vB,UAAY,oBACpB6vB,EAAQ12B,YAAY6B,EACpB,IAAIyR,GAAK3V,SAASiJ,cAAc,KAChC/E,GAAM7B,YAAYsT,EAGlB,IAAI2kB,GAAWt6B,SAASiJ,cAAc,KACtCqxB,GAASpxB,UAAY,kBACrByM,EAAGtT,YAAYi4B,GACfp6B,EAAIkC,OAAS5I,KAAK4gC,yBAClBE,EAASj4B,YAAYnC,EAAIkC,QACzBlC,EAAIo6B,SAAWA,CAGf,IAAI9D,GAAUx2B,SAASiJ,cAAc,KACrCutB,GAAQttB,UAAY,kBACpByM,EAAGtT,YAAYm0B,GACft2B,EAAI+B,MAAQzI,KAAKq/B,kBACjBrC,EAAQn0B,YAAYnC,EAAI+B,OACxB/B,EAAIs2B,QAAUA,CAGd,IAAI+D,GAAcv6B,SAASiJ,cAAc,KACzCsxB,GAAYrxB,UAAY,kBACxByM,EAAGtT,YAAYk4B,GACE,UAAb/gC,KAAK0M,MAAiC,SAAb1M,KAAK0M,OAChCq0B,EAAYl4B,YAAYrC,SAAS+X,eAAe,MAChDwiB,EAAYrxB,UAAY,wBAE1BhJ,EAAIq6B,YAAcA,CAGlB,IAAIzI,GAAU9xB,SAASiJ,cAAc,KAOrC,OANA6oB,GAAQ5oB,UAAY,kBACpByM,EAAGtT,YAAYyvB,GACf5xB,EAAIgC,MAAQ1I,KAAK0gC,kBACjBpI,EAAQzvB,YAAYnC,EAAIgC,OACxBhC,EAAI4xB,QAAUA,EAEPiH,GAOTx5B,EAAKlD,UAAUyM,QAAU,SAAUC,GACjC,GAAI7C,GAAO6C,EAAM7C,KACbkD,EAASL,EAAMK,QAAUL,EAAMyxB,WAC/Bt6B,EAAM1G,KAAK0G,IACXO,EAAOjH,KACPihC,EAAajhC,KAAKy6B,YActB,IAVI7qB,GAAUlJ,EAAI4L,MAAQ1C,GAAUlJ,EAAI4D,OAC1B,aAARoC,EACF1M,KAAK2O,OAAOhI,YAAY2R,UAAUtY,MAEnB,YAAR0M,GACP1M,KAAK2O,OAAOhI,YAAY8R,eAKhB,SAAR/L,GAAmBkD,GAAUlJ,EAAI4D,KAAM,CACzC,GAAI3D,GAAcM,EAAK0H,OAAOhI,WAC9BA,GAAY2R,UAAUrR,GACtBN,EAAYgS,OACZ1X,EAAKiS,aAAaxM,EAAI4D,KAAM,uBAC5BtK,KAAKkS,gBAAgBxL,EAAI4D,KAAM,WAC7BrJ,EAAKyR,gBAAgBhM,EAAI4D,KAAM,uBAC/B3D,EAAYiS,SACZjS,EAAY8R,gBAKhB,GAAY,SAAR/L,IACEkD,GAAUlJ,EAAIkC,SACiB,SAA7B3B,EAAK0H,OAAO9N,QAAQe,MAAgD,SAA7BqF,EAAK0H,OAAO9N,QAAQe,OAAwC,QAApBgO,EAAOrB,WACtF0yB,EAAY,CACd,GAAIr0B,GAAU2C,EAAMuG,OACpB9V,MAAKkhC,UAAUt0B,GAMT,UAARF,GAAoBkD,GAAUlJ,EAAIy1B,WACpCn8B,KAAK0G,IAAIgC,MAAMgV,WAAa1d,KAAK0I,MACjC1I,KAAK45B,gBAIK,UAARltB,GAAoBkD,GAAUlJ,EAAIqH,SACpC/N,KAAK0G,IAAIgC,MAAMgV,UAAYhX,EAAIqH,OAAOrF,MACtC1I,KAAK45B,eACL55B,KAAKk7B,kBAIP,IAAIe,GAAWv1B,EAAIgC,KACnB,IAAIkH,GAAUqsB,EAEZ,OAAQvvB,GACN,IAAK,OACL,IAAK,SACH1M,KAAK45B,cAAa,GAClB55B,KAAKk7B,kBACDl7B,KAAK0I,QACPuzB,EAASve,UAAY1d,KAAK4/B,YAAY5/B,KAAK0I,OAE7C,MAEF,KAAK,QAEH1I,KAAK45B,cAAa,GAClB55B,KAAKk7B,iBACL,MAEF,KAAK,UACL,IAAK,YAEHl7B,KAAK2O,OAAO/H,UAAY5G,KAAK2O,OAAOP,iBACpC,MAEF,KAAK,QACCmB,EAAMuG,SAAW9V,KAAKyB,SAASiH,OAE7BzH,EAAKmiB,MAAMpjB,KAAK0I,SAClB6G,EAAMM,iBACNoE,OAAOktB,KAAKnhC,KAAK0I,MAAO,UAG5B,MAEF,KAAK,QAEH1I,KAAK45B,cAAa,GAClB55B,KAAKk7B,iBACL,MAEF,KAAK,MACL,IAAK,QACH7rB,WAAW,WACTpI,EAAK2yB,cAAa,GAClB3yB,EAAKi0B,mBACJ,GAMT,GAAIyB,GAAWj2B,EAAI+B,KACnB,IAAImH,GAAU+sB,EACZ,OAAQjwB,GACN,IAAK,OACL,IAAK,SACH1M,KAAK64B,cAAa,GAClB74B,KAAKi7B,kBACDj7B,KAAKyI,QACPk0B,EAASjf,UAAY1d,KAAK4/B,YAAY5/B,KAAKyI,OAE7C,MAEF,KAAK,QACHzI,KAAK64B,cAAa,GAClB74B,KAAK6/B,gBACL7/B,KAAKi7B,kBACLj7B,KAAKk7B,iBACL,MAEF,KAAK,UACL,IAAK,YACHl7B,KAAK2O,OAAO/H,UAAY5G,KAAK2O,OAAOP,iBACpC,MAEF,KAAK,QACHpO,KAAK64B,cAAa,GAClB74B,KAAKi7B,iBACL,MAEF,KAAK,MACL,IAAK,QACH5rB,WAAW,WACTpI,EAAK4xB,cAAa,GAClB5xB,EAAKg0B,mBACJ,GAOT,GAAIsE,GAAU74B,EAAIu2B,IAClB,IAAIsC,GAAW3vB,GAAU2vB,EAAQ/3B,YAAsB,SAARkF,IAAoB6C,EAAM4C,SAAU,MACpDtL,IAAjB0I,EAAM6xB,QACb7xB,EAAM6xB,QAAkC,IAAvBphC,KAAK85B,WAAa,GACnCvqB,EAAMkE,MAAQxS,EAAKoiB,gBAAgB3c,EAAIq6B,eAChCE,EAENtE,IACF17B,EAAKkjB,wBAAwBwY,GAC7BA,EAASzyB,SAIP+xB,IAAaj8B,KAAKs8B,OACpBr7B,EAAKkjB,wBAAwB8X,GAC7BA,EAAS/xB,UAIT0F,GAAUlJ,EAAIo6B,UAAaG,IAAerxB,GAAUlJ,EAAIs2B,SAAWptB,GAAUlJ,EAAIq6B,aAC1E,SAARr0B,GAAoB6C,EAAM4C,UACzBwqB,IACF17B,EAAKkjB,wBAAwBwY,GAC7BA,EAASzyB,SAID,WAARwC,GACF1M,KAAKqhC,UAAU9xB,IAQnBxJ,EAAKlD,UAAUw+B,UAAY,SAAU9xB,GACnC,GAMI0N,GAAUqkB,EAAUC,EAASC,EAE7B1lB,EACA+hB,EACAD,EACAxiB,EACAD,EACAF,EACAD,EACAjU,EACAD,EAhBA4O,EAASnG,EAAMoG,OAASpG,EAAMqG,QAC9BhG,EAASL,EAAMK,QAAUL,EAAMyxB,WAC/BlrB,EAAUvG,EAAMuG,QAChBE,EAAWzG,EAAMyG,SACjBH,EAAStG,EAAMsG,OACfI,GAAU,EAEVxU,EAAwC,SAA7BzB,KAAK2O,OAAO9N,QAAQe,KAU/B6/B,EAAgBzhC,KAAK2O,OAAO7H,eAAeC,MAAM1E,OAAS,EACxDrC,KAAK2O,OAAO7H,eAAeC,OAC1B/G,MACHsU,EAAYmtB,EAAc,GAC1BrE,EAAWqE,EAAcA,EAAcp/B,OAAS,EAGpD,IAAc,IAAVqT,GACF,GAAI9F,GAAU5P,KAAK0G,IAAIgC,MAChB1I,KAAKyB,SAASiH,QAAS6G,EAAMuG,SAC5B7U,EAAKmiB,MAAMpjB,KAAK0I,SAClBuL,OAAOktB,KAAKnhC,KAAK0I,MAAO,UACxBuN,GAAU,OAIX,IAAIrG,GAAU5P,KAAK0G,IAAIkC,OAAQ,CAClC,GAAIq4B,GAAajhC,KAAKy6B,YACtB,IAAIwG,EAAY,CACd,GAAIr0B,GAAU2C,EAAMuG,OACpB9V,MAAKkhC,UAAUt0B,GACfgD,EAAO1F,QACP+L,GAAU,QAIX,IAAc,IAAVP,EACHI,GAAWrU,IACbsE,EAAK0R,YAAYgqB,GACjBxrB,GAAU,OAGT,IAAc,IAAVP,EACHI,IACF9V,KAAKkhC,UAAUlrB,GACfpG,EAAO1F,QACP+L,GAAU,OAGT,IAAc,IAAVP,GAAgBjU,EACnBqU,IACF9V,KAAKkS,gBAAgBtC,GACrBqG,GAAU,OAGT,IAAc,IAAVP,GAAgBjU,EACnBqU,IACF/P,EAAK2R,SAAS+pB,GACdxrB,GAAU,OAGT,IAAc,IAAVP,GAAgBjU,EACnBqU,IAAYE,GACdhW,KAAK0hC,kBACLzrB,GAAU,GAEHH,GAAWE,IAClBhW,KAAK2hC,iBACL1rB,GAAU,OAGT,IAAc,IAAVP,GACP,GAAIG,EAAQ,CAEV,GAAIpM,GAAUzJ,KAAK4hC,WACfn4B,IACFA,EAAQS,MAAMnE,EAAKq1B,cAAgBp7B,KAAK6hC,gBAAgBjyB,IAE1DqG,GAAU,OAGT,IAAc,IAAVP,GACP,GAAIG,EAAQ,CAEV,GAAIisB,GAAW9hC,KAAK+hC,YAChBD,IACFA,EAAS53B,MAAMnE,EAAKq1B,cAAgBp7B,KAAK6hC,gBAAgBjyB,IAE3DqG,GAAU,OAGT,IAAc,IAAVP,GACP,GAAIG,IAAWG,EAAU,CAEvB,GAAIgsB,GAAchiC,KAAKiiC,iBAAiBryB,EACpCoyB,IACFhiC,KAAKkK,MAAMlK,KAAK6hC,gBAAgBG,IAElC/rB,GAAU,MAEP,IAAIJ,GAAUG,GAAYvU,EAAU,CACvC,GAAI27B,EAASvG,SAAU,CACrB,GAAIqL,GAAY9E,EAASjD,cACzBoH,GAAUW,EAAYA,EAAUhqB,gBAAcrR,OAE3C,CACH,GAAIH,GAAM02B,EAASzyB,QACnB42B,GAAU76B,EAAIwR,YAEZqpB,IACFD,EAAWv7B,EAAK4D,kBAAkB43B,GAClCC,EAAWD,EAAQrpB,YACnBiqB,EAAYp8B,EAAK4D,kBAAkB63B,GAC/BF,GAAYA,YAAoB1G,IACG,GAAjCwC,EAAS/wB,OAAOyG,OAAOzQ,QACzB8/B,GAAaA,EAAU91B,SACzByP,EAAe9b,KAAK2O,OAAOP,kBAC3BwvB,EAAYtpB,EAAUjI,OACtBwxB,EAAcD,EAAU9qB,OAAOsqB,EAASplB,WAAa,IAAM4lB,EAAU3jB,OACrEmB,EAAe9G,EAAU0D,WACzBmD,EAAegnB,EAAUnqB,WACzBiD,EAAoB2iB,EAAUpvB,kBAC9BwM,EAAoBmnB,EAAU91B,OAAOmC,kBAErCizB,EAAcx/B,QAAQ,SAAUgF,GAC9Bk7B,EAAU91B,OAAO0O,WAAW9T,EAAMk7B,KAEpCniC,KAAKkK,MAAMnE,EAAKq1B,cAAgBp7B,KAAK6hC,gBAAgBjyB,IAGrD5P,KAAK2O,OAAO1D,UAAU,aACpB4P,MAAO4mB,EAAcp/B,OACrByY,WAAY2mB,EAAc/1B,IAAI4rB,GAE9B/c,cAAeqjB,EAAUpvB,kBACzBiM,cAAenG,EAAUjI,OAAOmC,kBAChCmM,SAAUkjB,EAAY7lB,WACtB4C,SAAUtG,EAAU0D,WAEpBoD,aAAcA,EACdD,aAAcA,EACdF,kBAAmBA,EACnBD,kBAAmBA,EAEnBc,aAAcA,EACdC,aAAc/b,KAAK2O,OAAOP,2BAM/B,IAAc,IAAVsH,EACHG,IAAWG,GAEbiH,EAAWjd,KAAKoiC,gBACZnlB,IACFjd,KAAK2O,OAAOyD,UAAS,GACrB6K,EAAS/S,MAAMnE,EAAKq1B,cAAgBp7B,KAAK6hC,gBAAgBjyB,KAE3DqG,GAAU,IAEFJ,GAAUC,GAAWE,GAAYvU,GAEzCwb,EAAWjd,KAAKoiC,gBACZnlB,IACFnW,EAAiB9G,KAAK2O,OAAO7H,eAC7BA,EAAesC,MAAQtC,EAAesC,OAASpJ,KAC/C8G,EAAeuC,IAAM4T,EACrBlW,EAAQ/G,KAAK2O,OAAO0F,mBAAmBvN,EAAesC,MAAOtC,EAAeuC,KAE5ErJ,KAAK2O,OAAOZ,OAAOhH,GACnBkW,EAAS/S,MAAM,UAEjB+L,GAAU,GAEHJ,GAAUG,GAAYvU,IAE7Bwb,EAAW3I,EAAU8tB,gBACjBnlB,GAAYA,EAAS5Q,SACvByP,EAAe9b,KAAK2O,OAAOP,kBAC3BwvB,EAAYtpB,EAAUjI,OACtBwxB,EAAcD,EAAU9qB,OAAOsqB,EAASplB,WAAa,IAAM4lB,EAAU3jB,OACrEmB,EAAe9G,EAAU0D,WACzBmD,EAAe8B,EAASjF,WACxBiD,EAAoB2iB,EAAUpvB,kBAC9BwM,EAAoBiC,EAAS5Q,OAAOmC,kBAEpCizB,EAAcx/B,QAAQ,SAAUgF,GAC9BgW,EAAS5Q,OAAO0O,WAAW9T,EAAMgW,KAEnCjd,KAAKkK,MAAMnE,EAAKq1B,cAAgBp7B,KAAK6hC,gBAAgBjyB,IAErD5P,KAAK2O,OAAO1D,UAAU,aACpB4P,MAAO4mB,EAAcp/B,OACrByY,WAAY2mB,EAAc/1B,IAAI4rB,GAE9B/c,cAAeqjB,EAAUpvB,kBACzBiM,cAAenG,EAAUjI,OAAOmC,kBAChCmM,SAAUkjB,EAAY7lB,WACtB4C,SAAUtG,EAAU0D,WAEpBoD,aAAcA,EACdD,aAAcA,EACdF,kBAAmBA,EACnBD,kBAAmBA,EAEnBc,aAAcA,EACdC,aAAc/b,KAAK2O,OAAOP,qBAG9B6H,GAAU,OAGT,IAAc,IAAVP,GACP,GAAIG,IAAWG,EAAU,CAEvB,GAAIqsB,GAAcriC,KAAKsiC,aAAa1yB,EAChCyyB,IACFriC,KAAKkK,MAAMlK,KAAK6hC,gBAAgBQ,IAElCpsB,GAAU,MAEP,IAAIJ,GAAUG,GAAYvU,EAAU,CACvCiF,EAAM4N,EAAU3J,QAChB,IAAI43B,GAAU77B,EAAIq4B,eACdwD,KACFtlB,EAAWlX,EAAK4D,kBAAkB44B,KAClBtlB,EAAS5Q,SAAW4Q,EAASkgB,cAC3CrhB,EAAe9b,KAAK2O,OAAOP,kBAC3BwvB,EAAYtpB,EAAUjI,OACtBwxB,EAAcD,EAAU9qB,OAAOsqB,EAASplB,WAAa,IAAM4lB,EAAU3jB,OACrEmB,EAAe9G,EAAU0D,WACzBmD,EAAe8B,EAASjF,WACxBiD,EAAoB2iB,EAAUpvB,kBAC9BwM,EAAoBiC,EAAS5Q,OAAOmC,kBAEpCizB,EAAcx/B,QAAQ,SAAUgF,GAC9BgW,EAAS5Q,OAAO0O,WAAW9T,EAAMgW,KAEnCjd,KAAKkK,MAAMnE,EAAKq1B,cAAgBp7B,KAAK6hC,gBAAgBjyB,IAErD5P,KAAK2O,OAAO1D,UAAU,aACpB4P,MAAO4mB,EAAcp/B,OACrByY,WAAY2mB,EAAc/1B,IAAI4rB,GAE9B/c,cAAeqjB,EAAUpvB,kBACzBiM,cAAenG,EAAUjI,OAAOmC,kBAChCmM,SAAUkjB,EAAY7lB,WACtB4C,SAAUtG,EAAU0D,WAEpBoD,aAAcA,EACdD,aAAcA,EACdF,kBAAmBA,EACnBD,kBAAmBA,EAEnBc,aAAcA,EACdC,aAAc/b,KAAK2O,OAAOP,0BAM/B,IAAc,IAAVsH,EACP,GAAIG,IAAWG,EAEbsrB,EAAWthC,KAAKm/B,YACZmC,IACFthC,KAAK2O,OAAOyD,UAAS,GACrBkvB,EAASp3B,MAAMnE,EAAKq1B,cAAgBp7B,KAAK6hC,gBAAgBjyB,KAE3DqG,GAAU,MAEP,KAAKJ,GAAUC,GAAWE,GAAYvU,EAEzC6/B,EAAWthC,KAAKm/B,YACZmC,IACFx6B,EAAiB9G,KAAK2O,OAAO7H,eAC7BA,EAAesC,MAAQtC,EAAesC,OAASpJ,KAC/C8G,EAAeuC,IAAMi4B,EACrBv6B,EAAQ/G,KAAK2O,OAAO0F,mBAAmBvN,EAAesC,MAAOtC,EAAeuC,KAE5ErJ,KAAK2O,OAAOZ,OAAOhH,GACnBu6B,EAASp3B,MAAM,UAEjB+L,GAAU,MAEP,IAAIJ,GAAUG,GAAYvU,EAAU,CAGrC6/B,EADElE,EAASvG,SACAuG,EAASnjB,OAASmjB,EAASnjB,OAAOklB,gBAAct4B,GAGhDu2B,EAAS+B,YAIlBmC,IAAaA,EAASnE,cACxBmE,EAAWA,EAASj1B,OAAO6nB,UAGzBoN,GAAYA,YAAoB1G,KAClC0G,EAAWlE,EAGb,IAAI+E,GAAYb,IAAaA,EAASnC,aAAemC,EAASj1B,OAAO4N,OACjEkoB,IAAaA,EAAU91B,SACzByP,EAAe9b,KAAK2O,OAAOP,kBAC3BwvB,EAAYtpB,EAAUjI,OACtBwxB,EAAcD,EAAU9qB,OAAOsqB,EAASplB,WAAa,IAAM4lB,EAAU3jB,OACrEmB,EAAe9G,EAAU0D,WACzBmD,EAAegnB,EAAUnqB,WACzBiD,EAAoB2iB,EAAUpvB,kBAC9BwM,EAAoBmnB,EAAU91B,OAAOmC,kBAErCizB,EAAcx/B,QAAQ,SAAUgF,GAC9Bk7B,EAAU91B,OAAO0O,WAAW9T,EAAMk7B,KAEpCniC,KAAKkK,MAAMnE,EAAKq1B,cAAgBp7B,KAAK6hC,gBAAgBjyB,IAErD5P,KAAK2O,OAAO1D,UAAU,aACpB4P,MAAO4mB,EAAcp/B,OACrByY,WAAY2mB,EAAc/1B,IAAI4rB,GAC9B/c,cAAeqjB,EAAUpvB,kBACzBiM,cAAenG,EAAUjI,OAAOmC,kBAChCyM,kBAAmBA,EACnBD,kBAAmBA,EACnBI,aAAcA,EACdD,aAAcA,EACdR,SAAUkjB,EAAY7lB,WACtB4C,SAAUtG,EAAU0D,WACpB8D,aAAcA,EACdC,aAAc/b,KAAK2O,OAAOP,qBAG9B6H,GAAU,EAIVA,IACF1G,EAAMM,iBACNN,EAAM0H,oBASVlR,EAAKlD,UAAUq+B,UAAY,SAAUt0B,GACnC,GAAIA,EAAS,CAEX,GAAIrE,GAAQvI,KAAK0G,IAAIyV,GAAG3U,WACpBD,EAAQgB,EAAMf,WACd6F,EAAY9F,EAAM8F,SACtB9F,GAAME,YAAYc,GAGhBvI,KAAK62B,SACP72B,KAAKgL,SAAS4B,GAGd5M,KAAK4I,OAAOgE,GAGVA,IAEFrF,EAAMsB,YAAYN,GAClBhB,EAAM8F,UAAYA,IAQtBtH,EAAK2R,SAAW,SAAS3Q,GACvB,IAAK+N,MAAMtP,QAAQuB,GACjB,MAAOhB,GAAK2R,UAAU3Q,GAGxB,IAAIA,GAASA,EAAM1E,OAAS,EAAG,CAC7B,GAAIiS,GAAYvN,EAAM,GAClBsF,EAASiI,EAAUjI,OACnBsC,EAAS2F,EAAU3F,OACnB6G,EAAalB,EAAU0D,UAC3BrJ,GAAOhI,YAAY8R,aAGnB,IAAIqD,GAAenN,EAAOP,iBAC1BrI,GAAKy8B,UAAUz7B,EACf,IAAIgV,GAAepN,EAAOP,kBAGtBP,EAAQ9G,EAAM2E,IAAI8C,EAGtBzH,GAAM9E,QAAQ,SAAUgF,GACtBA,EAAKoF,OAAOovB,QAAQx0B,KAItB0H,EAAO1D,UAAU,eACflE,MAAOA,EACP8G,MAAOA,EACPkL,WAAY1M,EAAOmC,kBACnBiE,MAAO+C,EACPsG,aAAcA,EACdC,aAAcA,MAWpBhW,EAAK0R,YAAc,SAAS1Q,GAC1B,IAAK+N,MAAMtP,QAAQuB,GACjB,MAAOhB,GAAK0R,aAAa1Q,GAG3B,IAAIA,GAASA,EAAM1E,OAAS,EAAG,CAC7B,GAAI+6B,GAAWr2B,EAAMA,EAAM1E,OAAS,GAChCgK,EAAS+wB,EAAS/wB,OAClBsC,EAASyuB,EAASzuB,MAEtBA,GAAOyD,SAASzD,EAAO7H,eAAeC,MAGtC,IAAI+U,GAAenN,EAAOP,kBACtByL,EAAYujB,EACZqF,EAAS17B,EAAM2E,IAAI,SAAUzE,GAC/B,GAAImT,GAAQnT,EAAKmT,OAGjB,OAFA/N,GAAO0N,YAAYK,EAAOP,GAC1BA,EAAYO,EACLA,GAIY,KAAjBrT,EAAM1E,OACRogC,EAAO,GAAGv4B,QAGVyE,EAAOZ,OAAO00B,EAEhB,IAAI1mB,GAAepN,EAAOP,iBAE1BO,GAAO1D,UAAU,kBACf4C,MAAO9G,EAAM2E,IAAI8C,GACjB2L,WAAYsoB,EAAO/2B,IAAI8C,GACvBsL,UAAWsjB,EAAS5uB,kBACpBuK,WAAY1M,EAAOmC,kBACnBsN,aAAcA,EACdC,aAAcA,MAYpBhW,EAAKlD,UAAU6+B,gBAAkB,SAAUj5B,EAAOC,EAAOgE,GACvD,GAAIoP,GAAe9b,KAAK2O,OAAOP,kBAE3Bs0B,EAAU,GAAI38B,GAAK/F,KAAK2O,QAC1BlG,UAAiB5B,IAAT4B,EAAsBA,EAAQ,GACtCC,UAAiB7B,IAAT6B,EAAsBA,EAAQ,GACtCgE,KAAMA,GAERg2B,GAAQ95B,QAAO,EAEf,IAAI8Q,GAAa1Z,KAAKwO,iBAEtBxO,MAAKqM,OAAOsN,aAAa+oB,EAAS1iC,MAClCA,KAAK2O,OAAOhI,YAAY8R,cACxBiqB,EAAQx4B,MAAM,QACd,IAAI6R,GAAe/b,KAAK2O,OAAOP,iBAE/BpO,MAAK2O,OAAO1D,UAAU,qBACpBlE,OAAQ27B,GACR70B,OAAQ60B,EAAQl0B,mBAChBkL,WAAYA,EACZX,WAAY/Y,KAAKqM,OAAOmC,kBACxBsN,aAAcA,EACdC,aAAcA,KAWlBhW,EAAKlD,UAAU8+B,eAAiB,SAAUl5B,EAAOC,EAAOgE,GACtD,GAAIoP,GAAe9b,KAAK2O,OAAOP,kBAE3Bs0B,EAAU,GAAI38B,GAAK/F,KAAK2O,QAC1BlG,UAAiB5B,IAAT4B,EAAsBA,EAAQ,GACtCC,UAAiB7B,IAAT6B,EAAsBA,EAAQ,GACtCgE,KAAMA,GAERg2B,GAAQ95B,QAAO,GACf5I,KAAKqM,OAAO0N,YAAY2oB,EAAS1iC,MACjCA,KAAK2O,OAAOhI,YAAY8R,cACxBiqB,EAAQx4B,MAAM,QACd,IAAI6R,GAAe/b,KAAK2O,OAAOP,iBAE/BpO,MAAK2O,OAAO1D,UAAU,oBACpBlE,OAAQ27B,GACR70B,OAAQ60B,EAAQl0B,mBAChBsL,UAAW9Z,KAAKwO,kBAChBuK,WAAY/Y,KAAKqM,OAAOmC,kBACxBsN,aAAcA,EACdC,aAAcA,KAWlBhW,EAAKlD,UAAU8/B,UAAY,SAAUl6B,EAAOC,EAAOgE,GACjD,GAAIoP,GAAe9b,KAAK2O,OAAOP,kBAE3Bs0B,EAAU,GAAI38B,GAAK/F,KAAK2O,QAC1BlG,UAAiB5B,IAAT4B,EAAsBA,EAAQ,GACtCC,UAAiB7B,IAAT6B,EAAsBA,EAAQ,GACtCgE,KAAMA,GAERg2B,GAAQ95B,QAAO,GACf5I,KAAKqM,OAAOxD,YAAY65B,GACxB1iC,KAAK2O,OAAOhI,YAAY8R,cACxBiqB,EAAQx4B,MAAM,QACd,IAAI6R,GAAe/b,KAAK2O,OAAOP,iBAE/BpO,MAAK2O,OAAO1D,UAAU,eACpBlE,OAAQ27B,GACR70B,OAAQ60B,EAAQl0B,mBAChBuK,WAAY/Y,KAAKqM,OAAOmC,kBACxBsN,aAAcA,EACdC,aAAcA,KASlBhW,EAAKlD,UAAU+/B,cAAgB,SAAUtpB,GACvC,GAAID,GAAUrZ,KAAK0M,IACnB,IAAI4M,GAAWD,EAAS,CACtB,GAAIyC,GAAe9b,KAAK2O,OAAOP,iBAC/BpO,MAAKoZ,WAAWE,EAChB,IAAIyC,GAAe/b,KAAK2O,OAAOP,iBAE/BpO,MAAK2O,OAAO1D,UAAU,cACpBzB,KAAMxJ,KAAKwO,kBACX6K,QAASA,EACTC,QAASA,EACTwC,aAAcA,EACdC,aAAcA,MAYpBhW,EAAKlD,UAAU+N,KAAO,SAAUpH,EAAMgL,GACpC,GAAKxU,KAAKy6B,aAAV,CAIAz6B,KAAKqb,YAGL,IAAIC,GAAYtb,KAAK8S,MACrB9S,MAAK8S,OAAS9S,KAAK8S,OAAO9G,QAG1B,IAAI62B,GAAuB,SAAdruB,GAAyB,EAAI,CAExB,YAAdxU,KAAK0M,KACP1M,KAAK8S,OAAOlC,KAAK,SAAUgS,EAAGC,GAC5B,MAAOggB,GAAQrL,EAAY5U,EAAEna,MAAOoa,EAAEpa,SAIxCzI,KAAK8S,OAAOlC,KAAK,SAAUgS,EAAGC,GAC5B,GAAIigB,GAAQlgB,EAAEmgB,eAAev5B,GACzBw5B,EAAQngB,EAAEkgB,eAAev5B,EAE7B,KAAKs5B,EACH,MAAOD,EAET,KAAKG,EACH,OAAQH,CAGV,IAAII,GAASH,EAAMp6B,MACfw6B,EAASF,EAAMt6B,KAEnB,OAAsB,gBAAXu6B,IAAyC,gBAAXC,GAEhCD,EAASC,EAASL,EAAQI,EAASC,GAAUL,EAAQ,EAGvDA,EAAQrL,EAAYyL,EAAQC,KAKvCljC,KAAK8/B,oBAEL9/B,KAAK2O,OAAO1D,UAAU,QACpBzB,KAAMxJ,KAAKwO,kBACX8M,UAAWA,EACXG,UAAWzb,KAAK8S,SAGlB9S,KAAKwb,eAOPzV,EAAKlD,UAAUiG,OAAS,SAAUmQ,GAChC,GAAID,GAAWhZ,KAAK65B,kBAEpB75B,MAAKg3B,SAAS/d,GAEdjZ,KAAK2O,OAAO1D,UAAU,aACpBzB,KAAMxJ,KAAKwO,kBACXwK,SAAUA,EACVC,SAAUjZ,KAAK65B,sBAWnB9zB,EAAKlD,UAAU22B,eAAiB,WAC9B,GACI2J,GADA56B,EAAQvI,KAAK0G,IAAIyV,GAAKnc,KAAK0G,IAAIyV,GAAG3U,eAAaX,EAGjDs8B,GADEnjC,KAAK62B,SACE72B,KAAKm6B,eAGLn6B,KAAK2K,QAEhB,IAAIyvB,GAAU+I,GAAUA,EAAO37B,WAAc27B,EAAOjrB,gBAAcrR,EAIlE,OAFA7G,MAAKuK,MAAOgwB,oBAAoB,KAG9BhyB,MAAOA,EACP6xB,OAAQA,IAUZr0B,EAAKlD,UAAU62B,aAAe,SAAUH,GAClCA,EAAUhxB,QACRgxB,EAAUa,OACZb,EAAUhxB,MAAMoR,aAAa3Z,KAAK2K,SAAU4uB,EAAUa,QAGtDb,EAAUhxB,MAAMM,YAAY7I,KAAK2K,WAIjC3K,KAAK62B,UACP72B,KAAKwb,cASTzV,EAAKlD,UAAUkO,UAAY,SAAUqyB,GACnC,GAAKpjC,KAAKy6B,aAAV,CAIAz6B,KAAKqb,YAEL,KAEE,GAAIrC,GAAWhZ,KAAK65B,mBAChB5gB,EAAWse,EAAS1vB,OAAOmR,EAAUoqB,EAEzCpjC,MAAKg3B,SAAS/d,GAEdjZ,KAAK2O,OAAO1D,UAAU,aACpBzB,KAAMxJ,KAAKwO,kBACXwK,SAAUA,EACVC,SAAUjZ,KAAK65B,qBAGjB75B,KAAKwb,aAEP,MAAO9Y,GACL1C,KAAKwb,aAELxb,KAAK2O,OAAOrK,SAAS5B,MASzBqD,EAAKlD,UAAUkgC,eAAiB,SAAUv5B,GAIxC,IAHA,GAAIlE,GAAI,EACJkH,EAAQxM,KAELwM,GAASlH,EAAIkE,EAAKnH,QACvBmK,EAAQA,EAAM2sB,oBAAoB3vB,EAAKlE,IACvCA,GAGF,OAAOkH,IAQTzG,EAAKlD,UAAUs2B,oBAAsB,SAAS5zB,GAC5C,GAAkB,WAAdvF,KAAK0M,KAIT,MAAO1M,MAAK8S,OAAOzE,KAAK,SAAU7B,GAChC,MAAOA,GAAM/D,QAAUlD,KAS3BQ,EAAKlD,UAAUwgC,cAAgB,SAAUC,GACvC,GAAIC,KAUJ,OARAvjC,MAAKwjC,eAAeD,EAAU,GAAID,GAEhB,UAAdtjC,KAAK0M,MACP1M,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAMg3B,eAAeD,EAAU,GAAID,KAIhCvhC,OAAOC,KAAKuhC,GAAU3yB,QAS/B7K,EAAKlD,UAAU2gC,eAAiB,SAAUD,EAAUE,EAAUH,IAC1C,SAAdtjC,KAAK0M,MAAiC,WAAd1M,KAAK0M,MAAqB42B,KACpDC,EAASE,GAAY,MAAO,GAGZ,WAAdzjC,KAAK0M,MACP1M,KAAK8S,OAAO7Q,QAAQ,SAAUuK,GAC5BA,EAAMg3B,eAAeD,EAAUE,EAAW,IAAMj3B,EAAM/D,MAAO66B,MASnEv9B,EAAKlD,UAAUs3B,aAAe,WAK5B,MAJKn6B,MAAKia,SACRja,KAAKia,OAAS,GAAI2gB,GAAW56B,KAAK2O,QAClC3O,KAAKia,OAAO0e,UAAU34B,OAEjBA,KAAKia,OAAOtP,UAOrB5E,EAAKlD,UAAUy3B,eAAiB,WAI9B,MAHKt6B,MAAKk0B,WACRl0B,KAAKk0B,SAAW,GAAIwP,GAAa1jC,KAAK2O,OAAQ3O,OAEzCA,KAAKk0B,SAASvpB,UASvB5E,EAAK4D,kBAAoB,SAAUiG,GACjC,KAAOA,GAAQ,CACb,GAAIA,EAAO3I,KACT,MAAO2I,GAAO3I,IAEhB2I,GAASA,EAAOpI,aAWpBzB,EAAKy8B,UAAY,SAAUz7B,GACzB,IAAK+N,MAAMtP,QAAQuB,GAEjB,WADAhB,GAAKy8B,WAAWz7B,GAIlB,IAAIuN,GAAYvN,EAAM,GAClBsF,EAASiI,EAAUjI,OACnBmJ,EAAalB,EAAU0D,UAEvB3L,GAAOyG,OAAO0C,EAAazO,EAAM1E,QACnCgK,EAAOyG,OAAO0C,EAAazO,EAAM1E,QAAQ6H,QAElCmC,EAAOyG,OAAO0C,EAAa,GAClCnJ,EAAOyG,OAAO0C,EAAa,GAAGtL,QAG9BmC,EAAOnC,SAQXnE,EAAKlD,UAAUqV,YAAc,WAC3B,GAAIzF,GAAQzS,KAAKqM,OAAOyG,OAAOhR,QAAQ9B,KACvC,OAAOA,MAAKqM,OAAOyG,OAAOL,EAAQ,IAAMzS,KAAKqM,OAAO4N,QAOtDlU,EAAKlD,UAAUu/B,cAAgB,WAC7B,GAAInlB,GAAW,KACXvW,EAAM1G,KAAK2K,QACf,IAAIjE,GAAOA,EAAIc,WAAY,CAEzB,GAAI+6B,GAAU77B,CACd,IACE67B,EAAUA,EAAQxD,gBAClB9hB,EAAWlX,EAAK4D,kBAAkB44B,SAE7BA,GAAWtlB,GAAaA,YAAoB2d,KAAe3d,EAASkgB,aAE7E,MAAOlgB,IAQTlX,EAAKlD,UAAUs8B,UAAY,WACzB,GAAImC,GAAW,KACX56B,EAAM1G,KAAK2K,QACf,IAAIjE,GAAOA,EAAIc,WAAY,CAEzB,GAAI+5B,GAAU76B,CACd,IACE66B,EAAUA,EAAQrpB,YAClBopB,EAAWv7B,EAAK4D,kBAAkB43B,SAE7BA,GAAWD,GAAaA,YAAoB1G,KAAe0G,EAASnE,aAG7E,MAAOmE,IAQTv7B,EAAKlD,UAAUk/B,WAAa,WAC1B,GAAIztB,GAAY,KACZ5N,EAAM1G,KAAK2K,QACf,IAAIjE,GAAOA,EAAIc,WAAY,CACzB,GAAIm8B,GAAWj9B,EAAIc,WAAW8Y,UAC9BhM,GAAYvO,EAAK4D,kBAAkBg6B,GAGrC,MAAOrvB,IAQTvO,EAAKlD,UAAU++B,UAAY,WACzB,GAAIxE,GAAW,KACX12B,EAAM1G,KAAK2K,QACf,IAAIjE,GAAOA,EAAIc,WAAY,CACzB,GAAIo8B,GAAUl9B,EAAIc,WAAWq8B,SAE7B,KADAzG,EAAYr3B,EAAK4D,kBAAkBi6B,GAC5BA,GAAWxG,IAAaA,EAASD,aACtCyG,EAAUA,EAAQ7E,gBAClB3B,EAAYr3B,EAAK4D,kBAAkBi6B,GAGvC,MAAOxG,IASTr3B,EAAKlD,UAAUo/B,iBAAmB,SAAU/kB,GAC1C,GAAIxW,GAAM1G,KAAK0G,GAEf,QAAQwW,GACN,IAAKxW,GAAIgC,MACP,GAAI1I,KAAK+2B,cACP,MAAOrwB,GAAI+B,KAGf,KAAK/B,GAAI+B,MACP,GAAIzI,KAAKy6B,aACP,MAAO/zB,GAAIkC,MAGf,KAAKlC,GAAIkC,OACP,MAAOlC,GAAI4D,IACb,KAAK5D,GAAI4D,KACP,GAAI5D,EAAI4L,KACN,MAAO5L,GAAI4L,IAGf,SACE,MAAO,QAUbvM,EAAKlD,UAAUy/B,aAAe,SAAUplB,GACtC,GAAIxW,GAAM1G,KAAK0G,GAEf,QAAQwW,GACN,IAAKxW,GAAI4L,KACP,MAAO5L,GAAI4D,IACb,KAAK5D,GAAI4D,KACP,GAAItK,KAAKy6B,aACP,MAAO/zB,GAAIkC,MAGf,KAAKlC,GAAIkC,OACP,GAAI5I,KAAK+2B,cACP,MAAOrwB,GAAI+B,KAGf,KAAK/B,GAAI+B,MACP,IAAKzI,KAAKy6B,aACR,MAAO/zB,GAAIgC,KAEf,SACE,MAAO,QAYb3C,EAAKlD,UAAUg/B,gBAAkB,SAAUrrB,GACzC,GAAI9P,GAAM1G,KAAK0G,GACf,KAAK,GAAIhD,KAAQgD,GACf,GAAIA,EAAIsB,eAAetE,IACjBgD,EAAIhD,IAAS8S,EACf,MAAO9S,EAIb,OAAO,OASTqC,EAAKlD,UAAU43B,WAAa,WAC1B,MAAoB,SAAbz6B,KAAK0M,MAAgC,UAAb1M,KAAK0M,MAItC3G,EAAK+9B,aACHrR,KAAQrsB,EAAU,YAClB0c,OAAU1c,EAAU,cACpBosB,MAASpsB,EAAU,aACnByuB,OAAUzuB,EAAU,eAGtBL,EAAKlD,UAAUkhC,aAAe,SAAUz5B,EAAM2P,GAC1C,GAAIhT,GAAOjH,KACPgkC,EAAY/8B,EAAK0H,OAAO9N,QAAQmjC,SACpC,IAAiB,MAAbA,EAAJ,CACIA,EAAU3hC,QAEViI,EAAK0I,MACDtG,KAAQ,aAGhB,IAAIu3B,GAAa,SAAUvgC,EAAMG,GAC7BoD,EAAK07B,UAAUj/B,EAAMG,IAErBqgC,EAAa,SAAUxgC,EAAMG,GAC7BoD,EAAKy6B,gBAAgBh+B,EAAMG,GAE/BmgC,GAAU/hC,QAAQ,SAAUkiC,GACxB75B,EAAK0I,MACDpI,KAAMu5B,EAASv5B,KACf8E,UAAYy0B,EAASz0B,WAAa,yBAClCiB,MAAOwzB,EAASxzB,MAChB6G,MAAQyC,EAASgqB,EAAW/7B,KAAKlI,KAAMmkC,EAAS17B,MAAO07B,EAASz7B,OAASw7B,EAAWh8B,KAAKlI,KAAMmkC,EAAS17B,MAAO07B,EAASz7B,aAYpI3C,EAAKlD,UAAUqP,gBAAkB,SAAUrB,EAAQyG,GACjD,GAAIrQ,GAAOjH,KACPokC,EAASr+B,EAAK+9B,YACdvsB,IAsEJ,IApEIvX,KAAKyB,SAASiH,OAChB6O,EAAMvE,MACJpI,KAAMxE,EAAU,QAChBuK,MAAOvK,EAAU,aACjBsJ,UAAW,mBAAqB1P,KAAK0M,KACrC0R,UAEIxT,KAAMxE,EAAU,QAChBsJ,UAAW,wBACO,QAAb1P,KAAK0M,KAAiB,uBAAyB,IACpDiE,MAAOyzB,EAAO3R,KACdjb,MAAO,WACLvQ,EAAK27B,cAAc,WAIrBh4B,KAAMxE,EAAU,SAChBsJ,UAAW,yBACO,SAAb1P,KAAK0M,KAAkB,uBAAyB,IACrDiE,MAAOyzB,EAAO5R,MACdhb,MAAO,WACLvQ,EAAK27B,cAAc,YAIrBh4B,KAAMxE,EAAU,UAChBsJ,UAAW,0BACO,UAAb1P,KAAK0M,KAAmB,uBAAyB,IACtDiE,MAAOyzB,EAAOthB,OACdtL,MAAO,WACLvQ,EAAK27B,cAAc,aAIrBh4B,KAAMxE,EAAU,UAChBsJ,UAAW,0BACO,UAAb1P,KAAK0M,KAAmB,uBAAyB,IACtDiE,MAAOyzB,EAAOvP,OACdrd,MAAO,WACLvQ,EAAK27B,cAAc,eAOzB5iC,KAAKy6B,eACPljB,EAAMvE,MACJpI,KAAMxE,EAAU,QAChBuK,MAAOvK,EAAU,aAAcsG,KAAM1M,KAAK0M,OAC1CgD,UAAW,sBACX8H,MAAO,WACL,GAAI3G,GAAS5J,EAAK0H,OAAO9N,QAAQiQ,aAAevK,CAChDL,GAAce,EAAM4J,MAIxB0G,EAAMvE,MACJpI,KAAMxE,EAAU,aAChBuK,MAAOvK,EAAU,kBAAmBsG,KAAM1M,KAAK0M,OAC/CgD,UAAW,uBACX8H,MAAO,WACL,GAAI3G,GAAS5J,EAAK0H,OAAO9N,QAAQiQ,aAAevK,CAChDJ,GAAmBc,EAAM4J,OAK3B7Q,KAAKqM,QAAUrM,KAAKqM,OAAOouB,aAAc,CACvCljB,EAAMlV,QAERkV,EAAMvE,MACJtG,KAAQ,aAKZ,IAAIoG,GAAS7L,EAAKoF,OAAOyG,MACzB,IAAI7L,GAAQ6L,EAAOA,EAAOzQ,OAAS,GAAI,CACnC,GAAIgiC,KAEIz5B,KAAMxE,EAAU,QAChBsJ,UAAW,uBACXiB,MAAOyzB,EAAO3R,KACdjb,MAAO,WACHvQ,EAAK07B,UAAU,GAAI,GAAI,WAI3B/3B,KAAMxE,EAAU,SAChBsJ,UAAW,wBACXiB,MAAOyzB,EAAO5R,MACdhb,MAAO,WACHvQ,EAAK07B,UAAU,UAInB/3B,KAAMxE,EAAU,UAChBsJ,UAAW,yBACXiB,MAAOyzB,EAAOthB,OACdtL,MAAO,WACHvQ,EAAK07B,UAAU,UAInB/3B,KAAMxE,EAAU,UAChBsJ,UAAW,yBACXiB,MAAOyzB,EAAOvP,OACdrd,MAAO,WACHvQ,EAAK07B,UAAU,GAAI,GAAI,YAInC17B,GAAK88B,aAAaM,GAAe,GACjC9sB,EAAMvE,MACFpI,KAAMxE,EAAU,cAChBuK,MAAOvK,EAAU,eACjBsY,aAActY,EAAU,sBACxBsJ,UAAW,oBACX8H,MAAO,WACHvQ,EAAK07B,UAAU,GAAI,GAAI,SAE3BvkB,QAASimB,IAOjB,GAAIC,KAEI15B,KAAMxE,EAAU,QAChBsJ,UAAW,uBACXiB,MAAOyzB,EAAO3R,KACdjb,MAAO,WACHvQ,EAAKy6B,gBAAgB,GAAI,GAAI,WAIjC92B,KAAMxE,EAAU,SAChBsJ,UAAW,wBACXiB,MAAOyzB,EAAO5R,MACdhb,MAAO,WACHvQ,EAAKy6B,gBAAgB,UAIzB92B,KAAMxE,EAAU,UAChBsJ,UAAW,yBACXiB,MAAOyzB,EAAOthB,OACdtL,MAAO,WACHvQ,EAAKy6B,gBAAgB,UAIzB92B,KAAMxE,EAAU,UAChBsJ,UAAW,yBACXiB,MAAOyzB,EAAOvP,OACdrd,MAAO,WACHvQ,EAAKy6B,gBAAgB,GAAI,GAAI,YAIzCz6B,GAAK88B,aAAaO,GAAe,GACjC/sB,EAAMvE,MACJpI,KAAMxE,EAAU,UAChBuK,MAAOvK,EAAU,eACjBsY,aAActY,EAAU,aACxBsJ,UAAW,oBACX8H,MAAO,WACLvQ,EAAKy6B,gBAAgB,GAAI,GAAI,SAE/BtjB,QAASkmB,IAGPtkC,KAAKyB,SAASgH,QAEhB8O,EAAMvE,MACJpI,KAAMxE,EAAU,iBAChBuK,MAAOvK,EAAU,kBACjBsJ,UAAW,uBACX8H,MAAO,WACLzR,EAAK0R,YAAYxQ,MAKrBsQ,EAAMvE,MACJpI,KAAMxE,EAAU,cAChBuK,MAAOvK,EAAU,eACjBsJ,UAAW,oBACX8H,MAAO,WACLzR,EAAK2R,SAASzQ,OAMX,GAAIpB,GAAY0R,GAAQI,MAAOL,IACrCP,KAAKlG,EAAQ7Q,KAAK2O,OAAOrG,UAShCvC,EAAKlD,UAAUo2B,SAAW,SAASvwB,GACjC,MAAIA,aAAiBoM,OACZ,QAELpM,YAAiB3G,QACZ,SAEY,gBAAX,IAA0D,gBAA5B/B,MAAK07B,YAAYhzB,GAChD,SAGF,QAUT3C,EAAKlD,UAAU64B,YAAc,SAASlN,GACpC,GAAI+V,GAAQ/V,EAAIsM,cACZ0J,EAAMzhB,OAAOyL,GACbiW,EAAWze,WAAWwI,EAE1B,OAAW,IAAPA,EACK,GAES,QAAT+V,EACA,KAES,QAATA,GAGS,SAATA,IAGCG,MAAMF,IAASE,MAAMD,GAItBjW,EAHAgW,IAaXz+B,EAAKlD,UAAU+8B,YAAc,SAAUh1B,GACrC,GAAoB,gBAATA,GACT,MAAOoY,QAAOpY,EAGd,IAAI+5B,GAAc3hB,OAAOpY,GACpB6X,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,MAAO,WACfA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UAEf3hB,EAAOyC,KAAKC,UAAUmhC,GACtBC,EAAO9jC,EAAK+lB,UAAU,EAAG/lB,EAAKuB,OAAS,EAI3C,QAH0C,IAAtCrC,KAAK2O,OAAO9N,QAAQgkC,gBACtBD,EAAO3jC,EAAKuhB,mBAAmBoiB,IAE1BA,GAUX7+B,EAAKlD,UAAUi5B,cAAgB,SAAUgJ,GACvC,GAAIhkC,GAAO,IAAMd,KAAK+kC,YAAYD,GAAe,GAGjD,OAFkB7jC,GAAKoC,MAAMvC,GAGxB2hB,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,iBAAkB,KAC1BA,QAAQ,SAAU,MAYzB1c,EAAKlD,UAAUkiC,YAAc,SAAUn6B,GAIrC,IAFA,GAAIo6B,GAAU,GACV1/B,EAAI,EACDA,EAAIsF,EAAKvI,QAAQ,CACtB,GAAI5B,GAAImK,EAAK2W,OAAOjc,EACX,OAAL7E,EACFukC,GAAW,MAEC,MAALvkC,GACPukC,GAAWvkC,EACX6E,IAEA7E,EAAImK,EAAK2W,OAAOjc,GACN,KAAN7E,IAAwC,GAA5B,aAAaqB,QAAQrB,KACnCukC,GAAW,MAEbA,GAAWvkC,GAGXukC,GADY,KAALvkC,EACI,MAGAA,EAEb6E,IAGF,MAAO0/B,GAeT,IAAIpK,GAAanD,EAAkB1xB,GAC/B29B,EAAehM,EAAoB3xB,EAEvClG,GAAOD,QAAUmG,GAKZ,SAASlG,EAAQD,EAASM,IAE/B,SAAUN,GACR,YAEA,SAAS4F,GAAQ6N,GACf,MAAY,QAARA,GAC6C,mBAAxCtR,OAAOc,UAAU8f,SAASpiB,KAAK8S,GAM1C,QAAS4xB,GAAS5xB,GAChB,MAAY,QAARA,GAC6C,oBAAxCtR,OAAOc,UAAU8f,SAASpiB,KAAK8S,GAM1C,QAAS6xB,GAAgBlwB,EAAOmwB,GAE9B,GAAInwB,IAAUmwB,EACZ,OAAO,CAKT,IADgBpjC,OAAOc,UAAU8f,SAASpiB,KAAKyU,KAC7BjT,OAAOc,UAAU8f,SAASpiB,KAAK4kC,GAC/C,OAAO,CAIT,KAAuB,IAAnB3/B,EAAQwP,GAAiB,CAE3B,GAAIA,EAAM3S,SAAW8iC,EAAO9iC,OAC1B,OAAO,CAET,KAAK,GAAIiD,GAAI,EAAGA,EAAI0P,EAAM3S,OAAQiD,IAChC,IAA6C,IAAzC4/B,EAAgBlwB,EAAM1P,GAAI6/B,EAAO7/B,IACnC,OAAO,CAGX,QAAO,EAET,IAAwB,IAApB2/B,EAASjwB,GAAiB,CAE5B,GAAIowB,KACJ,KAAK,GAAI/uB,KAAOrB,GACd,GAAIhN,eAAezH,KAAKyU,EAAOqB,GAAM,CACnC,IAAiD,IAA7C6uB,EAAgBlwB,EAAMqB,GAAM8uB,EAAO9uB,IACrC,OAAO,CAET+uB,GAAS/uB,IAAO,EAKpB,IAAK,GAAIgvB,KAAQF,GACf,GAAIn9B,eAAezH,KAAK4kC,EAAQE,KACP,IAAnBD,EAASC,GACX,OAAO,CAIb,QAAO,EAET,OAAO,EAGT,QAASC,GAAQjyB,GAUf,GAAY,KAARA,IAAsB,IAARA,GAAyB,OAARA,EAC/B,OAAO,CACJ,IAAI7N,EAAQ6N,IAAuB,IAAfA,EAAIhR,OAE3B,OAAO,CACJ,IAAI4iC,EAAS5xB,GAAM,CAEtB,IAAK,GAAIgD,KAAOhD,GAIZ,GAAIA,EAAIrL,eAAeqO,GACrB,OAAO,CAGb,QAAO,EAEP,OAAO,EAIb,QAASkvB,GAAUlyB,GAGjB,IAAK,GAFDrR,GAAOD,OAAOC,KAAKqR,GACnBmyB,KACKlgC,EAAI,EAAGA,EAAItD,EAAKK,OAAQiD,IAC/BkgC,EAAOxyB,KAAKK,EAAIrR,EAAKsD,IAEvB,OAAOkgC,GAoGT,QAASC,GAAQ7U,GACb,MAAQA,IAAM,KAAOA,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACb,MAAPA,EAGX,QAAS8U,GAAM9U,GACX,MAAQA,IAAM,KAAOA,GAAM,KACb,MAAPA,EAEX,QAAS+U,GAAW/U,GAChB,MAAQA,IAAM,KAAOA,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACb,MAAPA,EAGX,QAASgV,MA2QT,QAASC,MA6WT,QAASC,GAAgBC,GACvB/lC,KAAK+lC,QAAUA,EA4QjB,QAASC,GAAQC,GACfjmC,KAAKkmC,aAAeD,EACpBjmC,KAAKmmC,eAcD/2B,KAAMg3B,MAAOpmC,KAAKqmC,aAAcC,aAAcC,OAAQC,MACtDC,KAAML,MAAOpmC,KAAK0mC,aAAcJ,aAAcC,OAAQI,MACtDC,MAAOR,MAAOpmC,KAAK6mC,cAAeP,aAAcC,OAAQC,MACxDM,UACIV,MAAOpmC,KAAK+mC,kBACZT,aAAcC,OAAQS,EAAaC,KACtBV,OAAQW,MACzBC,WACIf,MAAOpmC,KAAKonC,kBACZd,aAAcC,OAAQS,KAAgBT,OAAQS,MAClDK,OAAQjB,MAAOpmC,KAAKsnC,eAAgBhB,aAAcC,OAAQC,MAC1DnkC,QACI+jC,MAAOpmC,KAAKunC,gBACZjB,aAAcC,OAAQS,EAAaC,EAAYO,MACnD97B,KACI06B,MAAOpmC,KAAKynC,aACZnB,aAAcC,OAAQmB,KAAgBnB,OAAQU,MAClDh4B,KACIm3B,MAAOpmC,KAAK2nC,aACZrB,aAAcC,OAAQI,EAAmBiB,MAC7CC,OACIzB,MAAOpmC,KAAK8nC,eACZxB,aAAcC,OAAQiB,GAAcO,UAAU,KAElDC,QACE5B,MAAOpmC,KAAKioC,eACZ3B,aAAcC,OAAQU,KAAeV,OAAQmB,MAE/CQ,KAAM9B,MAAOpmC,KAAKmoC,aAAc7B,aAAcC,OAAQI,MACtDyB,aACIhC,MAAOpmC,KAAKqoC,oBACZ/B,aAAcC,OAAQS,KAAgBT,OAAQS,MAClDh4B,KACIo3B,MAAOpmC,KAAKsoC,aACZhC,aAAcC,OAAQI,EAAmBiB,MAC7CW,QACEnC,MAAOpmC,KAAKwoC,eACZlC,aAAcC,OAAQU,KAAeV,OAAQmB,MAE/Ch7B,MAAO05B,MAAOpmC,KAAKyoC,cAAenC,aAAcC,OAAQW,MACxDllC,MAAOokC,MAAOpmC,KAAK0oC,cAAepC,aAAcC,OAAQiB,MACxDhC,QAASY,MAAOpmC,KAAK2oC,gBAAiBrC,aAAcC,OAAQiB,MAC5D52B,MAAOw1B,MAAOpmC,KAAK4oC,cAAetC,aAAcC,OAAQqB,EAAmBjB,MAC3EkC,SACEzC,MAAOpmC,KAAK8oC,gBACZxC,aAAcC,OAAQU,KAAeV,OAAQmB,MAE/CnlB,MACI6jB,MAAOpmC,KAAK+oC,cACZzC,aACKC,OAAQS,KACRT,OAAQqB,MAGjBoB,SACI5C,MAAOpmC,KAAKipC,iBACZ3C,aAAcC,OAAQS,EAAaC,MACvCiC,UAAa9C,MAAOpmC,KAAKmpC,iBAAkB7C,aAAcC,OAAQW,MACjEkC,WAAchD,MAAOpmC,KAAKqpC,kBAAmB/C,aAAcC,OAAQW,MACnEoC,WAAclD,MAAOpmC,KAAKupC,kBAAmBjD,aAAcC,OAAQW,MACnEsC,UACIpD,MAAOpmC,KAAKypC,iBACZnD,aAAcC,OAAQW,GAAWa,UAAU,MAqbrD,QAAS7iC,GAAQwkC,GAGf,OAFa,GAAI7D,IACAxiC,MAAMqmC,GAIzB,QAASC,GAASD,GAEd,OADY,GAAI9D,IACH+D,SAASD,GAG1B,QAAS7hC,GAAOhE,EAAM+lC,GAClB,GAAIvf,GAAS,GAAIwb,GAIbE,EAAU,GAAIC,GACdC,EAAc,GAAIH,GAAgBC,EACtCA,GAAQG,aAAeD,CACvB,IAAIh/B,GAAOojB,EAAOhnB,MAAMumC,EACxB,OAAO3D,GAAYp+B,OAAOZ,EAAMpD,GAngDpC,GAAIgmC,EAEFA,GADuC,kBAA9B7mB,QAAOngB,UAAUgnC,SACf,SAASrb,GAClB,MAAOA,GAAIqb,YAGF,SAASrb,GAClB,MAAOA,GAAI3M,MAAM,YAAY,GAKjC,IAAI2kB,GAAc,EACdU,EAAW,EACXF,EAAc,EACdC,EAAa,EACbO,EAAc,EAEdE,EAAc,EAEdf,EAAoB,EACpBiB,EAAoB,EAsCpBkC,GACFC,IAdY,MAeZC,IAjBa,OAkBbpe,IAlCc,QAmCdD,IAlCc,QAmCdJ,IAhBe,SAiBfC,IAnCe,SAoCfM,IAxCiB,WAyCjBme,IAjBc,SAkBdC,IAzCe,SA0CfC,IArCgB,WAwCdC,GACAC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,GAGLC,GACAC,KAAK,EACLxoB,MAAM,EACNF,MAAM,EAuBV4jB,GAAM/iC,WACF8mC,SAAU,SAASD,GACf,GAAIiB,KACJ3qC,MAAK4qC,SAAW,CAIhB,KAHA,GAAIxhC,GACAyhC,EACAlc,EACG3uB,KAAK4qC,SAAWlB,EAAOrnC,QAC1B,GAAIojC,EAAQiE,EAAO1pC,KAAK4qC,WACpBxhC,EAAQpJ,KAAK4qC,SACbC,EAAa7qC,KAAK8qC,2BAA2BpB,GAC7CiB,EAAO33B,MAAMtG,KA5FA,qBA6FAhE,MAAOmiC,EACPzhC,MAAOA,QACjB,QAA2CvC,KAAvCijC,EAAYJ,EAAO1pC,KAAK4qC,WAC/BD,EAAO33B,MAAMtG,KAAMo9B,EAAYJ,EAAO1pC,KAAK4qC,WAC/BliC,MAAOghC,EAAO1pC,KAAK4qC,UACnBxhC,MAAOpJ,KAAK4qC,WACxB5qC,KAAK4qC,eACF,IAAIlF,EAAMgE,EAAO1pC,KAAK4qC,WACzBjc,EAAQ3uB,KAAK+qC,eAAerB,GAC5BiB,EAAO33B,KAAK2b,OACT,IAA8B,MAA1B+a,EAAO1pC,KAAK4qC,UAGnBjc,EAAQ3uB,KAAKgrC,iBAAiBtB,GAC9BiB,EAAO33B,KAAK2b,OACT,IAA8B,MAA1B+a,EAAO1pC,KAAK4qC,UACnBxhC,EAAQpJ,KAAK4qC,SACbC,EAAa7qC,KAAKirC,yBAAyBvB,GAC3CiB,EAAO33B,MAAMtG,KA9GF,mBA+GEhE,MAAOmiC,EACPzhC,MAAOA,QACjB,IAA8B,MAA1BsgC,EAAO1pC,KAAK4qC,UACnBxhC,EAAQpJ,KAAK4qC,SACbC,EAAa7qC,KAAKkrC,yBAAyBxB,GAC3CiB,EAAO33B,MAAMtG,KA1FZ,UA2FYhE,MAAOmiC,EACPzhC,MAAOA,QACjB,IAA8B,MAA1BsgC,EAAO1pC,KAAK4qC,UAAmB,CACtCxhC,EAAQpJ,KAAK4qC,QACb,IAAIO,GAAUnrC,KAAKorC,gBAAgB1B,EACnCiB,GAAO33B,MAAMtG,KAhGZ,UAiGYhE,MAAOyiC,EACP/hC,MAAOA,QACjB,QAAkDvC,KAA9CujC,EAAmBV,EAAO1pC,KAAK4qC,WACtCD,EAAO33B,KAAKhT,KAAKqrC,iBAAiB3B,QAC/B,QAAyC7iC,KAArC4jC,EAAUf,EAAO1pC,KAAK4qC,WAE7B5qC,KAAK4qC,eACF,IAA8B,MAA1BlB,EAAO1pC,KAAK4qC,UACnBxhC,EAAQpJ,KAAK4qC,SACb5qC,KAAK4qC,WACyB,MAA1BlB,EAAO1pC,KAAK4qC,WACZ5qC,KAAK4qC,WACLD,EAAO33B,MAAMtG,KA5HnB,MA4HkChE,MAAO,KAAMU,MAAOA,KAEhDuhC,EAAO33B,MAAMtG,KAjIhB,SAiIkChE,MAAO,IAAKU,MAAOA,QAEnD,CAAA,GAA8B,MAA1BsgC,EAAO1pC,KAAK4qC,UAShB,CACH,GAAIzpC,GAAQ,GAAIJ,OAAM,qBAAuB2oC,EAAO1pC,KAAK4qC,UAEzD,MADAzpC,GAAMuC,KAAO,aACPvC,EAXNiI,EAAQpJ,KAAK4qC,SACb5qC,KAAK4qC,WACyB,MAA1BlB,EAAO1pC,KAAK4qC,WACZ5qC,KAAK4qC,WACLD,EAAO33B,MAAMtG,KAtIpB,KAsIkChE,MAAO,KAAMU,MAAOA,KAE/CuhC,EAAO33B,MAAMtG,KAzIlB,OAyIkChE,MAAO,IAAKU,MAAOA,IAQ5D,MAAOuhC,IAGXG,2BAA4B,SAASpB,GACjC,GAAItgC,GAAQpJ,KAAK4qC,QAEjB,KADA5qC,KAAK4qC,WACE5qC,KAAK4qC,SAAWlB,EAAOrnC,QAAUsjC,EAAW+D,EAAO1pC,KAAK4qC,YAC3D5qC,KAAK4qC,UAET,OAAOlB,GAAO30B,MAAM3L,EAAOpJ,KAAK4qC,WAGpCK,yBAA0B,SAASvB,GAC/B,GAAItgC,GAAQpJ,KAAK4qC,QACjB5qC,MAAK4qC,UAEL,KADA,GAAIU,GAAY5B,EAAOrnC,OACU,MAA1BqnC,EAAO1pC,KAAK4qC,WAAsB5qC,KAAK4qC,SAAWU,GAAW,CAEhE,GAAIrzB,GAAUjY,KAAK4qC,QACK,QAApBlB,EAAOzxB,IAA8C,OAAxByxB,EAAOzxB,EAAU,IACO,MAAxByxB,EAAOzxB,EAAU,GAG9CA,IAFAA,GAAW,EAIfjY,KAAK4qC,SAAW3yB,EAGpB,MADAjY,MAAK4qC,WACErnC,KAAKF,MAAMqmC,EAAO30B,MAAM3L,EAAOpJ,KAAK4qC,YAG/CM,yBAA0B,SAASxB,GAC/B,GAAItgC,GAAQpJ,KAAK4qC,QACjB5qC,MAAK4qC,UAEL,KADA,GAAIU,GAAY5B,EAAOrnC,OACU,MAA1BqnC,EAAO1pC,KAAK4qC,WAAqB5qC,KAAK4qC,SAAWU,GAAW,CAE/D,GAAIrzB,GAAUjY,KAAK4qC,QACK,QAApBlB,EAAOzxB,IAA8C,OAAxByxB,EAAOzxB,EAAU,IACO,MAAxByxB,EAAOzxB,EAAU,GAG9CA,IAFAA,GAAW,EAIfjY,KAAK4qC,SAAW3yB,EAIpB,MAFAjY,MAAK4qC,WACSlB,EAAO30B,MAAM3L,EAAQ,EAAGpJ,KAAK4qC,SAAW,GACvCnoB,QAAQ,MAAO,MAGlCsoB,eAAgB,SAASrB,GACrB,GAAItgC,GAAQpJ,KAAK4qC,QACjB5qC,MAAK4qC,UAEL,KADA,GAAIU,GAAY5B,EAAOrnC,OAChBqjC,EAAMgE,EAAO1pC,KAAK4qC,YAAc5qC,KAAK4qC,SAAWU,GACnDtrC,KAAK4qC,UAGT,QAAQl+B,KA/MC,SA+MiBhE,MADd6iC,SAAS7B,EAAO30B,MAAM3L,EAAOpJ,KAAK4qC,WACNxhC,MAAOA,IAGnD4hC,iBAAkB,SAAStB,GACvB,GAAItgC,GAAQpJ,KAAK4qC,QAEjB,OADA5qC,MAAK4qC,WACyB,MAA1BlB,EAAO1pC,KAAK4qC,WACZ5qC,KAAK4qC,YACGl+B,KAzMH,SAyMqBhE,MAAO,KAAMU,MAAOA,IACb,MAA1BsgC,EAAO1pC,KAAK4qC,WACnB5qC,KAAK4qC,YACGl+B,KA9MF,UA8MqBhE,MAAO,KAAMU,MAAOA,KAEvCsD,KA1MD,WA0MqBhE,MAAO,IAAKU,MAAOA,IAIvDiiC,iBAAkB,SAAS3B,GACvB,GAAItgC,GAAQpJ,KAAK4qC,SACbY,EAAe9B,EAAOtgC,EAE1B,OADApJ,MAAK4qC,WACgB,MAAjBY,EAC8B,MAA1B9B,EAAO1pC,KAAK4qC,WACZ5qC,KAAK4qC,YACGl+B,KA5NX,KA4NyBhE,MAAO,KAAMU,MAAOA,KAEpCsD,KAzNR,MAyNuBhE,MAAO,IAAKU,MAAOA,GAEpB,MAAjBoiC,EACuB,MAA1B9B,EAAO1pC,KAAK4qC,WACZ5qC,KAAK4qC,YACGl+B,KApOV,MAoOyBhE,MAAO,KAAMU,MAAOA,KAEnCsD,KAxOX,KAwOyBhE,MAAO,IAAKU,MAAOA,GAErB,MAAjBoiC,EACuB,MAA1B9B,EAAO1pC,KAAK4qC,WACZ5qC,KAAK4qC,YACGl+B,KA5OV,MA4OyBhE,MAAO,KAAMU,MAAOA,KAEnCsD,KAhPX,KAgPyBhE,MAAO,IAAKU,MAAOA,GAErB,MAAjBoiC,GACuB,MAA1B9B,EAAO1pC,KAAK4qC,WACZ5qC,KAAK4qC,YACGl+B,KAtPX,KAsPyBhE,MAAO,KAAMU,MAAOA,QAH3C,IAQXgiC,gBAAiB,SAAS1B,GACtB1pC,KAAK4qC,UAIL,KAHA,GAEIO,GAFA/hC,EAAQpJ,KAAK4qC,SACbU,EAAY5B,EAAOrnC,OAES,MAA1BqnC,EAAO1pC,KAAK4qC,WAAqB5qC,KAAK4qC,SAAWU,GAAW,CAE9D,GAAIrzB,GAAUjY,KAAK4qC,QACK,QAApBlB,EAAOzxB,IAA8C,OAAxByxB,EAAOzxB,EAAU,IACO,MAAxByxB,EAAOzxB,EAAU,GAG9CA,IAFAA,GAAW,EAIfjY,KAAK4qC,SAAW3yB,EAEpB,GAAIwzB,GAAgB5B,EAASH,EAAO30B,MAAM3L,EAAOpJ,KAAK4qC,UAUtD,OATAa,GAAgBA,EAAchpB,QAAQ,MAAO,KAEzC0oB,EADAnrC,KAAK0rC,eAAeD,GACVloC,KAAKF,MAAMooC,GAGXloC,KAAKF,MAAM,IAAOooC,EAAgB,KAGhDzrC,KAAK4qC,WACEO,GAGXO,eAAgB,SAASD,GACrB,GAAIE,GAAgB,MAChBC,GAAgB,OAAQ,QAAS,QACjCC,EAAgB,aAEpB,IAAsB,KAAlBJ,EACA,OAAO,CACJ,IAAIE,EAAc7pC,QAAQ2pC,EAAc,KAAO,EAClD,OAAO,CACJ,IAAIG,EAAa9pC,QAAQ2pC,IAAkB,EAC9C,OAAO,CACJ,MAAII,EAAc/pC,QAAQ2pC,EAAc,KAAO,GAQlD,OAAO,CAPP,KAEI,MADAloC,MAAKF,MAAMooC,IACJ,EACT,MAAOK,GACL,OAAO,IAQnB,IAAIC,KACJA,GAAoB,IAAI,EACxBA,EAAmC,mBAAI,EACvCA,EAAiC,iBAAI,EACrCA,EAAyB,SAAI,EAC7BA,EAAuB,OAAI,EAC3BA,EAAsB,MAAI,EAC1BA,EAAuB,OAAI,EAC3BA,EAAuB,OAAI,EAC3BA,EAAwB,QAAI,EAC5BA,EAAuB,OAAI,EAC3BA,EAAqB,KAAI,EACzBA,EAAmB,GAAI,EACvBA,EAAoB,IAAI,EACxBA,EAAmB,GAAI,EACvBA,EAAmB,GAAI,EACvBA,EAAmB,GAAI,EACvBA,EAAoB,IAAI,EACxBA,EAAoB,IAAI,EACxBA,EAAmB,GAAI,EACvBA,EAAwB,QAAI,EAC5BA,EAAqB,KAAI,GACzBA,EAAuB,OAAI,GAC3BA,EAAoB,IAAI,GACxBA,EAAoB,IAAI,GACxBA,EAAuB,OAAI,GAC3BA,EAAyB,SAAI,GAC7BA,EAAuB,OAAI,GAK/BlG,EAAOhjC,WACHQ,MAAO,SAASumC,GACZ5pC,KAAKgsC,YAAYpC,GACjB5pC,KAAKyS,MAAQ,CACb,IAAIw5B,GAAMjsC,KAAK4pC,WAAW,EAC1B,IAnWM,QAmWF5pC,KAAKksC,WAAW,GAAgB,CAChC,GAAIC,GAAInsC,KAAKosC,gBAAgB,GACzBjrC,EAAQ,GAAIJ,OACZ,0BAA4BorC,EAAEz/B,KAAO,YAAcy/B,EAAEzjC,MAEzD,MADAvH,GAAMuC,KAAO,cACPvC,EAEV,MAAO8qC,IAGXD,YAAa,SAASpC,GAClB,GAAI/a,GAAQ,GAAI+W,GACZ+E,EAAS9b,EAAM8a,SAASC,EAC5Be,GAAO33B,MAAMtG,KAhXP,MAgXsBhE,MAAO,GAAIU,MAAOwgC,EAAWvnC,SACzDrC,KAAK2qC,OAASA,GAGlBf,WAAY,SAASyC,GACjB,GAAIC,GAAYtsC,KAAKosC,gBAAgB,EACrCpsC,MAAKusC,UAGL,KAFA,GAAItsB,GAAOjgB,KAAKwsC,IAAIF,GAChBG,EAAezsC,KAAKksC,WAAW,GAC5BG,EAAMN,EAAaU,IACtBzsC,KAAKusC,WACLtsB,EAAOjgB,KAAK0sC,IAAID,EAAcxsB,GAC9BwsB,EAAezsC,KAAKksC,WAAW,EAEnC,OAAOjsB,IAGXisB,WAAY,SAASS,GACjB,MAAO3sC,MAAK2qC,OAAO3qC,KAAKyS,MAAQk6B,GAAQjgC,MAG5C0/B,gBAAiB,SAASO,GACtB,MAAO3sC,MAAK2qC,OAAO3qC,KAAKyS,MAAQk6B,IAGpCJ,SAAU,WACNvsC,KAAKyS,SAGT+5B,IAAK,SAAS7d,GACZ,GAAI1O,GACAoH,EACAuiB,CACJ,QAAQjb,EAAMjiB,MACZ,IAtXS,UAuXP,OAAQA,KAAM,UAAWhE,MAAOimB,EAAMjmB,MACxC,KAnZqB,qBAoZnB,OAAQgE,KAAM,QAAShJ,KAAMirB,EAAMjmB,MACrC,KApZmB,mBAqZjB,GAAIzB,IAAQyF,KAAM,QAAShJ,KAAMirB,EAAMjmB,MACvC,IA7XM,WA6XF1I,KAAKksC,WAAW,GAChB,KAAM,IAAInrC,OAAM,oDAEhB,OAAOkG,EAGb,KAtYM,MAwYJ,MADAogB,GAAQrnB,KAAK4pC,WAAWmC,EAAaa,MAC7BlgC,KAAM,gBAAiBmG,UAAWwU,GAC5C,KA5YO,OAsZL,MATApH,IAAQvT,KAAM,YACd2a,EAAQ,KAIJA,EApaK,aAiaLrnB,KAAKksC,WAAW,IAGPx/B,KAAM,YAEP1M,KAAK6sC,oBAAoBd,EAAae,OAE1CpgC,KAAM,kBAAmBmG,UAAWoN,EAAMoH,GACpD,KAtZS,SAuZP,MAAOrnB,MAAK0sC,IAAI/d,EAAMjiB,MAAOA,KAAM,YACrC,KArZS,SAsZP,MAAO1M,MAAK+sC,uBACd,KA5ZU,UA+ZR,MAFA9sB,IAAQvT,KA7ZA,UA6ZmBmG,WAAYnG,KAAM,cAC7C2a,EAAQrnB,KAAK6sC,oBAAoBd,EAAaiB,UACtCtgC,KAAM,aAAcmG,UAAWoN,EAAMoH,GAC/C,KA1ZW,WA2ZT,MA7aO,WA6aHrnB,KAAKksC,WAAW,IA/ad,UA+amClsC,KAAKksC,WAAW,IACrD7kB,EAAQrnB,KAAKitC,wBACNjtC,KAAKktC,iBAAiBxgC,KAAM,YAAa2a,IAla/C,SAmaMrnB,KAAKksC,WAAW,IArblB,aAsbElsC,KAAKksC,WAAW,IACvBlsC,KAAKusC,WACLvsC,KAAKusC,WACLllB,EAAQrnB,KAAK6sC,oBAAoBd,EAAae,OACtCpgC,KAAM,aACNmG,WAAYnG,KAAM,YAAa2a,KAEhCrnB,KAAKmtC,uBAGlB,KA1bU,UA2bR,OAAQzgC,KA3bA,UA4bV,KA3bS,SA6bP,MADAk9B,GAAa5pC,KAAK4pC,WAAWmC,EAAaqB,SAClC1gC,KAAM,sBAAuBmG,UAAW+2B,GAClD,KA7aQ,SA+aN,IADA,GAAIliB,MArcG,WAscA1nB,KAAKksC,WAAW,IAjcf,YAkcFlsC,KAAKksC,WAAW,IAClBtC,GAAcl9B,KAncV,WAocJ1M,KAAKusC,YAEL3C,EAAa5pC,KAAK4pC,WAAW,GAE/BliB,EAAK1U,KAAK42B,EAGZ,OADA5pC,MAAKqtC,OA/cE,UAgdA3lB,EAAK,EACd,SACE1nB,KAAKstC,YAAY3e,KAIvB+d,IAAK,SAASa,EAAWttB,GACvB,GAAIoH,EACJ,QAAOkmB,GACL,IAtcM,MAucJ,GAAIlB,GAAMN,EAAayB,GACvB,OA1cK,SA0cDxtC,KAAKksC,WAAW,IAChB7kB,EAAQrnB,KAAKytC,aAAapB,IAClB3/B,KAAM,gBAAiBmG,UAAWoN,EAAMoH,MAGhDrnB,KAAKusC,WACLllB,EAAQrnB,KAAK6sC,oBAAoBR,IACzB3/B,KAAM,kBAAmBmG,UAAWoN,EAAMoH,IAGxD,KA9dO,OAgeL,MADAA,GAAQrnB,KAAK4pC,WAAWmC,EAAa2B,OAC7BhhC,KAheH,OAgemBmG,UAAWoN,EAAMoH,GAC3C,KAheK,KAkeH,MADAA,GAAQrnB,KAAK4pC,WAAWmC,EAAa4B,KAC7BjhC,KAAM,eAAgBmG,UAAWoN,EAAMoH,GACjD,KAleM,MAoeJ,MADAA,GAAQrnB,KAAK4pC,WAAWmC,EAAa6B,MAC7BlhC,KAAM,gBAAiBmG,UAAWoN,EAAMoH,GAClD,KAvdQ,SA2dN,IAHA,GAEIuiB,GAFAlmC,EAAOuc,EAAKvc,KACZgkB,KAhfG,WAkfA1nB,KAAKksC,WAAW,IA7ef,YA8eFlsC,KAAKksC,WAAW,IAClBtC,GAAcl9B,KA/eV,WAgfJ1M,KAAKusC,YAEL3C,EAAa5pC,KAAK4pC,WAAW,GAtf3B,UAwfA5pC,KAAKksC,WAAW,IAClBlsC,KAAKqtC,OAzfH,SA2fJ3lB,EAAK1U,KAAK42B,EAIZ,OAFA5pC,MAAKqtC,OA9fE,WA+fC3gC,KAAM,WAAYhJ,KAAMA,EAAMmP,SAAU6U,EAElD,KA/eS,SAgfP,GAAI+J,GAAYzxB,KAAK4pC,WAAW,EAOhC,OANA5pC,MAAKqtC,OApgBI,YAsgBPhmB,EArfM,YAofJrnB,KAAKksC,WAAW,IACTx/B,KAAM,YAEP1M,KAAK6sC,oBAAoBd,EAAa8B,SAExCnhC,KAAM,mBAAoBmG,UAAWoN,EAAMoH,EAAOoK,GAC5D,KA1fU,UA6fR,OAAQ/kB,KAAM,aAAcmG,WAFZnG,KA3fR,UA2f2BmG,UAAWoN,IAC9BjgB,KAAK6sC,oBAAoBd,EAAaiB,UAExD,KApgBK,KAqgBL,IAhgBK,KAigBL,IArgBK,KAsgBL,IApgBM,MAqgBN,IAtgBK,KAugBL,IArgBM,MAsgBJ,MAAOhtC,MAAK8tC,iBAAiB7tB,EAAMstB,EACrC,KA/fW,WAggBT,GAAI5e,GAAQ3uB,KAAKosC,gBAAgB,EACjC,OAnhBO,WAmhBHzd,EAAMjiB,MArhBJ,UAqhB2BiiB,EAAMjiB,MACnC2a,EAAQrnB,KAAKitC,wBACNjtC,KAAKktC,gBAAgBjtB,EAAMoH,KAElCrnB,KAAKqtC,OA1gBJ,QA2gBDrtC,KAAKqtC,OA7hBA,YA8hBLhmB,EAAQrnB,KAAK6sC,oBAAoBd,EAAae,OACtCpgC,KAAM,aAAcmG,UAAWoN,EAAMoH,IAGnD,SACErnB,KAAKstC,YAAYttC,KAAKosC,gBAAgB,MAI5CiB,OAAQ,SAASU,GACb,GAAI/tC,KAAKksC,WAAW,KAAO6B,EAEpB,CACH,GAAI5B,GAAInsC,KAAKosC,gBAAgB,GACzBjrC,EAAQ,GAAIJ,OAAM,YAAcgtC,EAAY,UAAY5B,EAAEz/B,KAE9D,MADAvL,GAAMuC,KAAO,cACPvC,EALNnB,KAAKusC,YASbe,YAAa,SAAS3e,GAClB,GAAIxtB,GAAQ,GAAIJ,OAAM,kBACA4tB,EAAMjiB,KAAO,OACbiiB,EAAMjmB,MAAQ,IAEpC,MADAvH,GAAMuC,KAAO,cACPvC,GAIV8rC,sBAAuB,WACnB,GAzjBQ,UAyjBJjtC,KAAKksC,WAAW,IAzjBZ,UAyjBgClsC,KAAKksC,WAAW,GACpD,MAAOlsC,MAAKguC,uBAEZ,IAAI/mC,IACAyF,KAAM,QACNhE,MAAO1I,KAAKosC,gBAAgB,GAAG1jC,MAGnC,OAFA1I,MAAKusC,WACLvsC,KAAKqtC,OAnkBE,YAokBApmC,GAIfimC,gBAAiB,SAASjtB,EAAMoH,GAC5B,GAAI4mB,IAAavhC,KAAM,kBAAmBmG,UAAWoN,EAAMoH,GAC3D,OAAmB,UAAfA,EAAM3a,MAEFA,KAAM,aACNmG,UAAWo7B,EAAWjuC,KAAK6sC,oBAAoBd,EAAae,QAGzDmB,GAIfD,sBAAuB,WAMnB,IAHA,GAAIE,IAAS,KAAM,KAAM,MACrBz7B,EAAQ,EACRg6B,EAAezsC,KAAKksC,WAAW,GAzlBxB,aA0lBJO,GAAiCh6B,EAAQ,GAAG,CAC/C,GAxlBI,UAwlBAg6B,EACAh6B,IACAzS,KAAKusC,eACF,CAAA,GAzlBF,WAylBME,EAGJ,CACH,GAAIN,GAAInsC,KAAKksC,WAAW,GACpB/qC,EAAQ,GAAIJ,OAAM,mCACAorC,EAAEzjC,MAAQ,IAAMyjC,EAAEz/B,KAAO,IAE/C,MADAvL,GAAMuC,KAAO,cACPvC,EAPN+sC,EAAMz7B,GAASzS,KAAKosC,gBAAgB,GAAG1jC,MACvC1I,KAAKusC,WAQTE,EAAezsC,KAAKksC,WAAW,GAGnC,MADAlsC,MAAKqtC,OA1mBM,aA4mBP3gC,KAAM,QACNmG,SAAUq7B,IAIlBJ,iBAAkB,SAAS7tB,EAAMkuB,GAE/B,OAAQzhC,KAAM,aAAchJ,KAAMyqC,EAAYt7B,UAAWoN,EAD7CjgB,KAAK4pC,WAAWmC,EAAaoC,OAI3CV,aAAc,SAASpB,GACnB,GAAI+B,GAAYpuC,KAAKksC,WAAW,EAEhC,QA3nBqB,qBACF,mBAmBZ,QAumBQpqC,QAAQssC,IAAc,EAC1BpuC,KAAK4pC,WAAWyC,GAnmBhB,aAomBA+B,GACPpuC,KAAKqtC,OArmBE,YAsmBArtC,KAAKmtC,yBAvmBP,WAwmBEiB,GACPpuC,KAAKqtC,OAzmBA,UA0mBErtC,KAAK+sC,6BAFT,IAMXF,oBAAqB,SAASR,GAC1B,GAAIhlB,EACJ,IAAI0kB,EAAa/rC,KAAKksC,WAAW,IAAM,GACnC7kB,GAAS3a,KAAM,gBACZ,IAjnBI,aAinBA1M,KAAKksC,WAAW,GACvB7kB,EAAQrnB,KAAK4pC,WAAWyC,OACrB,IAvnBE,WAunBErsC,KAAKksC,WAAW,GACvB7kB,EAAQrnB,KAAK4pC,WAAWyC,OACrB,CAAA,GAxnBD,QAwnBKrsC,KAAKksC,WAAW,GAGpB,CACH,GAAIC,GAAInsC,KAAKosC,gBAAgB,GACzBjrC,EAAQ,GAAIJ,OAAM,mCACAorC,EAAEzjC,MAAQ,IAAMyjC,EAAEz/B,KAAO,IAE/C,MADAvL,GAAMuC,KAAO,cACPvC,EAPNnB,KAAKqtC,OAznBH,OA0nBFhmB,EAAQrnB,KAAKytC,aAAapB,GAQ9B,MAAOhlB,IAGX8lB,sBAAuB,WAEnB,IADA,GAAIkB,MA1pBO,aA2pBJruC,KAAKksC,WAAW,IAAqB,CACxC,GAAItC,GAAa5pC,KAAK4pC,WAAW,EAEjC,IADAyE,EAAYr7B,KAAK42B,GA3pBb,UA4pBA5pC,KAAKksC,WAAW,KAChBlsC,KAAKqtC,OA7pBL,SAFG,aAgqBCrtC,KAAKksC,WAAW,IAClB,KAAM,IAAInrC,OAAM,6BAK1B,MADAf,MAAKqtC,OArqBM,aAsqBH3gC,KAAM,kBAAmBmG,SAAUw7B,IAG/CtB,sBAAuB,WAIrB,IAHA,GAEIuB,GAAUC,EAAS7lC,EAAOzB,EAF1BunC,KACAC,GA7qBmB,qBACF,sBA8qBZ,CAEP,GADAH,EAAWtuC,KAAKosC,gBAAgB,GAC5BqC,EAAgB3sC,QAAQwsC,EAAS5hC,MAAQ,EAC3C,KAAM,IAAI3L,OAAM,uCACAutC,EAAS5hC,KAQ3B,IANA6hC,EAAUD,EAAS5lC,MACnB1I,KAAKusC,WACLvsC,KAAKqtC,OAlrBG,SAmrBR3kC,EAAQ1I,KAAK4pC,WAAW,GACxB3iC,GAAQyF,KAAM,eAAgBhJ,KAAM6qC,EAAS7lC,MAAOA,GACpD8lC,EAAMx7B,KAAK/L,GAtrBH,UAurBJjH,KAAKksC,WAAW,GAClBlsC,KAAKqtC,OAxrBC,aAyrBD,IAvrBE,WAurBErtC,KAAKksC,WAAW,GAAmB,CAC5ClsC,KAAKqtC,OAxrBE,SAyrBP,QAGJ,OAAQ3gC,KAAM,kBAAmBmG,SAAU27B,KASjD1I,EAAgBjjC,WACZgF,OAAQ,SAASZ,EAAMyB,GACnB,MAAO1I,MAAK0uC,MAAMznC,EAAMyB,IAG5BgmC,MAAO,SAASznC,EAAMyB,GAClB,GAAIgoB,GAASzY,EAASvB,EAAQ1B,EAAOmwB,EAAQ18B,EAAOwX,EAAa0uB,EAAWrpC,CAC5E,QAAQ2B,EAAKyF,MACX,IAAK,QACH,MAAc,QAAVhE,EACO,KACAu8B,EAASv8B,IAChBD,EAAQC,EAAMzB,EAAKvD,UACLmD,KAAV4B,EACO,KAEAA,GAGN,IAGX,KAAK,gBAEH,IADAiO,EAAS1W,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,GACjCpD,EAAI,EAAGA,EAAI2B,EAAK4L,SAASxQ,OAAQiD,IAElC,GAAe,QADfoR,EAAS1W,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAI6D,IAElC,MAAO,KAGf,OAAOA,EACT,KAAK,kBAGH,MAFAuJ,GAAOjgB,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,GAC5B1I,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAIoN,EAEvC,KAAK,QACH,IAAKza,EAAQkD,GACX,MAAO,KAET,IAAI+J,GAAQxL,EAAKyB,KAQjB,OAPI+J,GAAQ,IACVA,EAAQ/J,EAAMrG,OAASoQ,GAEzBiE,EAAShO,EAAM+J,OACA5L,KAAX6P,IACFA,EAAS,MAEJA,CACT,KAAK,QACH,IAAKlR,EAAQkD,GACX,MAAO,KAET,IAAIkmC,GAAc3nC,EAAK4L,SAASkC,MAAM,GAClC85B,EAAW7uC,KAAK8uC,mBAAmBpmC,EAAMrG,OAAQusC,GACjDxlC,EAAQylC,EAAS,GACjBE,EAAOF,EAAS,GAChBG,EAAOH,EAAS,EAEpB,IADAn4B,KACIs4B,EAAO,EACP,IAAK1pC,EAAI8D,EAAO9D,EAAIypC,EAAMzpC,GAAK0pC,EAC3Bt4B,EAAO1D,KAAKtK,EAAMpD,QAGtB,KAAKA,EAAI8D,EAAO9D,EAAIypC,EAAMzpC,GAAK0pC,EAC3Bt4B,EAAO1D,KAAKtK,EAAMpD,GAG1B,OAAOoR,EACT,KAAK,aAEH,GAAIu4B,GAAOjvC,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,EACxC,KAAKlD,EAAQypC,GACX,MAAO,KAGT,KADAN,KACKrpC,EAAI,EAAGA,EAAI2pC,EAAK5sC,OAAQiD,IAEX,QADhB2S,EAAUjY,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAIo8B,EAAK3pC,MAE1CqpC,EAAU37B,KAAKiF,EAGnB,OAAO02B,EACT,KAAK,kBAGH,GADAM,EAAOjvC,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,IAC/Bu8B,EAASgK,GACZ,MAAO,KAETN,KACA,IAAInJ,GAASD,EAAU0J,EACvB,KAAK3pC,EAAI,EAAGA,EAAIkgC,EAAOnjC,OAAQiD,IAEb,QADhB2S,EAAUjY,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAI2yB,EAAOlgC,MAE5CqpC,EAAU37B,KAAKiF,EAGnB,OAAO02B,EACT,KAAK,mBAEH,GADAM,EAAOjvC,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,IAC/BlD,EAAQypC,GACX,MAAO,KAET,IAAIC,MACAC,IACJ,KAAK7pC,EAAI,EAAGA,EAAI2pC,EAAK5sC,OAAQiD,IAC3BorB,EAAU1wB,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAIo8B,EAAK3pC,IACvCggC,EAAQ5U,IACXwe,EAASl8B,KAAKi8B,EAAK3pC,GAGvB,KAAK,GAAI0e,GAAI,EAAGA,EAAIkrB,EAAS7sC,OAAQ2hB,IAEnB,QADhB/L,EAAUjY,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAIq8B,EAASlrB,MAE9CmrB,EAAan8B,KAAKiF,EAGtB,OAAOk3B,EACT,KAAK,aAGH,OAFAn6B,EAAQhV,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,GACrCy8B,EAASnlC,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,GAC/BzB,EAAKvD,MACV,IAvzBD,KAwzBGgT,EAASwuB,EAAgBlwB,EAAOmwB,EAChC,MACF,KArzBD,KAszBGzuB,GAAUwuB,EAAgBlwB,EAAOmwB,EACjC,MACF,KA5zBD,KA6zBGzuB,EAAS1B,EAAQmwB,CACjB,MACF,KA7zBA,MA8zBEzuB,EAAS1B,GAASmwB,CAClB,MACF,KAj0BD,KAk0BGzuB,EAAS1B,EAAQmwB,CACjB,MACF,KAl0BA,MAm0BEzuB,EAAS1B,GAASmwB,CAClB,MACF,SACE,KAAM,IAAIpkC,OAAM,uBAAyBkG,EAAKvD,MAElD,MAAOgT,EACT,KAv0BQ,UAw0BN,GAAI04B,GAAWpvC,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,EAC5C,KAAKlD,EAAQ4pC,GACX,MAAO,KAET,IAAIC,KACJ,KAAK/pC,EAAI,EAAGA,EAAI8pC,EAAS/sC,OAAQiD,IAC/B2S,EAAUm3B,EAAS9pC,GACfE,EAAQyS,GACVo3B,EAAOr8B,KAAK4U,MAAMynB,EAAQp3B,GAE1Bo3B,EAAOr8B,KAAKiF,EAGhB,OAAOo3B,EACT,KAAK,WACH,MAAO3mC,EACT,KAAK,kBACH,GAAc,OAAVA,EACF,MAAO,KAGT,KADAimC,KACKrpC,EAAI,EAAGA,EAAI2B,EAAK4L,SAASxQ,OAAQiD,IAClCqpC,EAAU37B,KAAKhT,KAAK0uC,MAAMznC,EAAK4L,SAASvN,GAAIoD,GAEhD,OAAOimC,EACT,KAAK,kBACH,GAAc,OAAVjmC,EACF,MAAO,KAETimC,KACA,IAAIniC,EACJ,KAAKlH,EAAI,EAAGA,EAAI2B,EAAK4L,SAASxQ,OAAQiD,IACpCkH,EAAQvF,EAAK4L,SAASvN,GACtBqpC,EAAUniC,EAAM9I,MAAQ1D,KAAK0uC,MAAMliC,EAAM9D,MAAOA,EAElD,OAAOimC,EACT,KAAK,eAKH,MAJAje,GAAU1wB,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,GACnC48B,EAAQ5U,KACRA,EAAU1wB,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,IAEpCgoB,CACT,KAAK,gBAGH,MAFA1b,GAAQhV,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,IAEd,IAAnB48B,EAAQtwB,GACHA,EAEFhV,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,EACtC,KAAK,gBAEH,MADAsM,GAAQhV,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,GAC9B48B,EAAQtwB,EACjB,KAAK,UACH,MAAO/N,GAAKyB,KACd,KAv4BK,OAy4BH,MADAuX,GAAOjgB,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAInK,GAC7B1I,KAAK0uC,MAAMznC,EAAK4L,SAAS,GAAIoN,EACtC,KA54BQ,UA64BN,MAAOvX,EACT,KAAK,WACH,GAAI4mC,KACJ,KAAKhqC,EAAI,EAAGA,EAAI2B,EAAK4L,SAASxQ,OAAQiD,IAClCgqC,EAAat8B,KAAKhT,KAAK0uC,MAAMznC,EAAK4L,SAASvN,GAAIoD,GAEnD,OAAO1I,MAAK+lC,QAAQwJ,aAAatoC,EAAKvD,KAAM4rC,EAC9C,KAAK,sBACH,GAAIE,GAAUvoC,EAAK4L,SAAS,EAI5B,OADA28B,GAAQC,aAv5BH,SAw5BED,CACT,SACE,KAAM,IAAIzuC,OAAM,sBAAwBkG,EAAKyF,QAIrDoiC,mBAAoB,SAASY,EAAad,GACxC,GAAIxlC,GAAQwlC,EAAY,GACpBG,EAAOH,EAAY,GACnBI,EAAOJ,EAAY,GACnBC,GAAY,KAAM,KAAM,KAC5B,IAAa,OAATG,EACFA,EAAO,MACF,IAAa,IAATA,EAAY,CACrB,GAAI7tC,GAAQ,GAAIJ,OAAM,kCAEtB,MADAI,GAAMuC,KAAO,eACPvC,EAER,GAAIwuC,GAAoBX,EAAO,CAgB/B,OAbI5lC,GADU,OAAVA,EACQumC,EAAoBD,EAAc,EAAI,EAEtC1vC,KAAK4vC,cAAcF,EAAatmC,EAAO4lC,GAI/CD,EADS,OAATA,EACOY,GAAqB,EAAID,EAEzB1vC,KAAK4vC,cAAcF,EAAaX,EAAMC;4CAEjDH,EAAS,GAAKzlC,EACdylC,EAAS,GAAKE,EACdF,EAAS,GAAKG,EACPH,GAGTe,cAAe,SAASF,EAAaG,EAAab,GAS9C,MARIa,GAAc,GACdA,GAAeH,GACG,IACdG,EAAcb,EAAO,GAAK,EAAI,GAE3Ba,GAAeH,IACtBG,EAAcb,EAAO,EAAIU,EAAc,EAAIA,GAExCG,IAwFf7J,EAAQnjC,WACN0sC,aAAc,SAAS7rC,EAAM4rC,GAC3B,GAAIQ,GAAgB9vC,KAAKmmC,cAAcziC,EACvC,QAAsBmD,KAAlBipC,EACA,KAAM,IAAI/uC,OAAM,qBAAuB2C,EAAO,KAGlD,OADA1D,MAAK+vC,cAAcrsC,EAAM4rC,EAAcQ,EAAcxJ,YAC9CwJ,EAAc1J,MAAM7lC,KAAKP,KAAMsvC,IAGxCS,cAAe,SAASrsC,EAAMgkB,EAAMsoB,GAMhC,GAAIC,EACJ,IAAID,EAAUA,EAAU3tC,OAAS,GAAG0lC,UAChC,GAAIrgB,EAAKrlB,OAAS2tC,EAAU3tC,OAExB,KADA4tC,GAAkC,IAArBD,EAAU3tC,OAAe,YAAc,aAC9C,GAAItB,OAAM,kBAAoB2C,EAAO,oBACRssC,EAAU3tC,OAAS4tC,EACtC,iBAAmBvoB,EAAKrlB,YAEzC,IAAIqlB,EAAKrlB,SAAW2tC,EAAU3tC,OAEjC,KADA4tC,GAAkC,IAArBD,EAAU3tC,OAAe,YAAc,aAC9C,GAAItB,OAAM,kBAAoB2C,EAAO,YAChBssC,EAAU3tC,OAAS4tC,EAC9B,iBAAmBvoB,EAAKrlB,OAK5C,KAAK,GAHD6tC,GACAC,EACAC,EACK9qC,EAAI,EAAGA,EAAI0qC,EAAU3tC,OAAQiD,IAAK,CACvC8qC,GAAc,EACdF,EAAcF,EAAU1qC,GAAGihC,MAC3B4J,EAAanwC,KAAKqwC,aAAa3oB,EAAKpiB,GACpC,KAAK,GAAI0e,GAAI,EAAGA,EAAIksB,EAAY7tC,OAAQ2hB,IACpC,GAAIhkB,KAAKswC,aAAaH,EAAYD,EAAYlsB,GAAI0D,EAAKpiB,IAAK,CACxD8qC,GAAc,CACd,OAGR,IAAKA,EACD,KAAM,IAAIrvC,OAAM,cAAgB2C,EAAO,yBACC4B,EAAI,GAC5B,eAAiB4qC,EACjB,sBAAwBC,EACxB,eAK5BG,aAAc,SAASC,EAAQ5gB,EAAU6gB,GACrC,GAAI7gB,IAAauX,EACb,OAAO,CAEX,IAAIvX,IAAaiY,GACbjY,IAAagX,GACbhX,IAAasX,EA0Bb,MAAOsJ,KAAW5gB,CArBlB,IAAIA,IAAasX,EACb,MAAOsJ,KAAWtJ,CACf,IAAIsJ,IAAWtJ,EAAY,CAG9B,GAAIwJ,EACA9gB,KAAagX,EACf8J,EAAUjK,EACD7W,IAAaiY,IACtB6I,EAAUzJ,EAEZ,KAAK,GAAI1hC,GAAI,EAAGA,EAAIkrC,EAASnuC,OAAQiD,IACjC,IAAKtF,KAAKswC,aACFtwC,KAAKqwC,aAAaG,EAASlrC,IAAKmrC,EACfD,EAASlrC,IAC9B,OAAO,CAGf,QAAO,IAMnB+qC,aAAc,SAASh9B,GACnB,OAAQtR,OAAOc,UAAU8f,SAASpiB,KAAK8S,IACnC,IAAK,kBACH,MAAO2zB,EACT,KAAK,kBACH,MAAOR,EACT,KAAK,iBACH,MAAOS,EACT,KAAK,mBACH,MA/oCO,EAgpCT,KAAK,gBACH,MA/oCI,EAgpCN,KAAK,kBAGH,MAroCK,WAqoCD5zB,EAAIo8B,aACC/H,EAEAF,IAKnBa,oBAAqB,SAASiH,GAC1B,MAAwD,KAAjDA,EAAa,GAAG5mB,YAAY4mB,EAAa,KAGpDlI,kBAAmB,SAASkI,GACxB,GAAIoB,GAAYpB,EAAa,GACzBqB,EAASrB,EAAa,EAC1B,QAAwE,IAAjEoB,EAAU5uC,QAAQ6uC,EAAQD,EAAUruC,OAASsuC,EAAOtuC,SAG/D4mC,iBAAkB,SAASqG,GAEvB,GADetvC,KAAKqwC,aAAaf,EAAa,MAC7BtI,EAAa,CAG5B,IAAK,GAFD4J,GAActB,EAAa,GAC3BuB,EAAc,GACTvrC,EAAIsrC,EAAYvuC,OAAS,EAAGiD,GAAK,EAAGA,IACzCurC,GAAeD,EAAYtrC,EAE/B,OAAOurC,GAEP,GAAIC,GAAgBxB,EAAa,GAAGv6B,MAAM,EAE1C,OADA+7B,GAAc9H,UACP8H,GAIbzK,aAAc,SAASiJ,GACrB,MAAOvgC,MAAKK,IAAIkgC,EAAa,KAG/BzI,cAAe,SAASyI,GACpB,MAAOvgC,MAAK63B,KAAK0I,EAAa,KAGlC5I,aAAc,SAAS4I,GAGnB,IAAK,GAFDpH,GAAM,EACN6I,EAAazB,EAAa,GACrBhqC,EAAI,EAAGA,EAAIyrC,EAAW1uC,OAAQiD,IACnC4iC,GAAO6I,EAAWzrC,EAEtB,OAAO4iC,GAAM6I,EAAW1uC,QAG5B0kC,kBAAmB,SAASuI,GACxB,MAAOA,GAAa,GAAGxtC,QAAQwtC,EAAa,KAAO,GAGvDhI,eAAgB,SAASgI,GACrB,MAAOvgC,MAAKs4B,MAAMiI,EAAa,KAGnC/H,gBAAiB,SAAS+H,GACvB,MAAKrK,GAASqK,EAAa,IAKlBvtC,OAAOC,KAAKstC,EAAa,IAAIjtC,OAJ7BitC,EAAa,GAAGjtC,QAQ5BolC,aAAc,SAAS6H,GAKrB,IAAK,GAJD0B,MACA/K,EAAcjmC,KAAKkmC,aACnB+K,EAAa3B,EAAa,GAC1B4B,EAAW5B,EAAa,GACnBhqC,EAAI,EAAGA,EAAI4rC,EAAS7uC,OAAQiD,IACjC0rC,EAAOh+B,KAAKizB,EAAYyI,MAAMuC,EAAYC,EAAS5rC,IAEvD,OAAO0rC,IAGTlJ,eAAgB,SAASwH,GAEvB,IAAK,GADDD,MACK/pC,EAAI,EAAGA,EAAIgqC,EAAajtC,OAAQiD,IAAK,CAC5C,GAAI2S,GAAUq3B,EAAahqC,EAC3B,KAAK,GAAI+Q,KAAO4B,GACdo3B,EAAOh5B,GAAO4B,EAAQ5B,GAG1B,MAAOg5B,IAGT1H,aAAc,SAAS2H,GACrB,GAAIA,EAAa,GAAGjtC,OAAS,EAAG,CAE9B,GADerC,KAAKqwC,aAAaf,EAAa,GAAG,MAChC9I,EACf,MAAOz3B,MAAKE,IAAI2Y,MAAM7Y,KAAMugC,EAAa,GAIzC,KAAK,GAFD4B,GAAW5B,EAAa,GACxB6B,EAAaD,EAAS,GACjB5rC,EAAI,EAAGA,EAAI4rC,EAAS7uC,OAAQiD,IAC7B6rC,EAAWC,cAAcF,EAAS5rC,IAAM,IACxC6rC,EAAaD,EAAS5rC,GAG9B,OAAO6rC,GAGP,MAAO,OAIb7I,aAAc,SAASgH,GACrB,GAAIA,EAAa,GAAGjtC,OAAS,EAAG,CAE9B,GADerC,KAAKqwC,aAAaf,EAAa,GAAG,MAChC9I,EACf,MAAOz3B,MAAKC,IAAI4Y,MAAM7Y,KAAMugC,EAAa,GAIzC,KAAK,GAFD4B,GAAW5B,EAAa,GACxB+B,EAAaH,EAAS,GACjB5rC,EAAI,EAAGA,EAAI4rC,EAAS7uC,OAAQiD,IAC7B4rC,EAAS5rC,GAAG8rC,cAAcC,GAAc,IACxCA,EAAaH,EAAS5rC,GAG9B,OAAO+rC,GAGT,MAAO,OAIXlJ,aAAc,SAASmH,GAGrB,IAAK,GAFDpH,GAAM,EACNoJ,EAAYhC,EAAa,GACpBhqC,EAAI,EAAGA,EAAIgsC,EAAUjvC,OAAQiD,IACpC4iC,GAAOoJ,EAAUhsC,EAEnB,OAAO4iC,IAGTO,cAAe,SAAS6G,GACpB,OAAQtvC,KAAKqwC,aAAaf,EAAa,KACrC,IAAK9I,GACH,MAAO,QACT,KAAKQ,GACH,MAAO,QACT,KAAKC,GACH,MAAO,OACT,KAAKO,GACH,MAAO,QACT,KA3yCW,GA4yCT,MAAO,SACT,KAAKE,GACH,MAAO,QACT,KA7yCQ,GA8yCN,MAAO,SAIfgB,cAAe,SAAS4G,GACpB,MAAOvtC,QAAOC,KAAKstC,EAAa,KAGpC3G,gBAAiB,SAAS2G,GAItB,IAAK,GAHDj8B,GAAMi8B,EAAa,GACnBttC,EAAOD,OAAOC,KAAKqR,GACnBmyB,KACKlgC,EAAI,EAAGA,EAAItD,EAAKK,OAAQiD,IAC7BkgC,EAAOxyB,KAAKK,EAAIrR,EAAKsD,IAEzB,OAAOkgC,IAGXuD,cAAe,SAASuG,GACpB,GAAIiC,GAAWjC,EAAa,EAE5B,OADeA,GAAa,GACZ/sB,KAAKgvB,IAGzBpI,iBAAkB,SAASmG,GACvB,MAAItvC,MAAKqwC,aAAaf,EAAa,MAAQrI,EAChCqI,EAAa,IAEZA,EAAa,KAI7BjG,kBAAmB,SAASiG,GACxB,MAAItvC,MAAKqwC,aAAaf,EAAa,MAAQtI,EAChCsI,EAAa,GAEb/rC,KAAKC,UAAU8rC,EAAa,KAI3C/F,kBAAmB,SAAS+F,GACxB,GACIkC,GADAC,EAAWzxC,KAAKqwC,aAAaf,EAAa,GAE9C,OAAImC,KAAajL,EACN8I,EAAa,GACbmC,IAAazK,IACpBwK,GAAkBlC,EAAa,GAC1B5K,MAAM8M,IAIR,KAHQA,GAMnB/H,iBAAkB,SAAS6F,GACvB,IAAK,GAAIhqC,GAAI,EAAGA,EAAIgqC,EAAajtC,OAAQiD,IACrC,GAt2CM,IAs2CFtF,KAAKqwC,aAAaf,EAAahqC,IAC/B,MAAOgqC,GAAahqC,EAG5B,OAAO,OAGXsjC,cAAe,SAAS0G,GACpB,GAAIoC,GAAcpC,EAAa,GAAGv6B,MAAM,EAExC,OADA28B,GAAY9gC,OACL8gC,GAGX5I,gBAAiB,SAASwG,GACtB,GAAIoC,GAAcpC,EAAa,GAAGv6B,MAAM,EACxC,IAA2B,IAAvB28B,EAAYrvC,OACZ,MAAOqvC,EAEX,IAAIzL,GAAcjmC,KAAKkmC,aACnB+K,EAAa3B,EAAa,GAC1BqC,EAAe3xC,KAAKqwC,aACpBpK,EAAYyI,MAAMuC,EAAYS,EAAY,IAC9C,KAAKlL,EAAaQ,GAAallC,QAAQ6vC,GAAgB,EACnD,KAAM,IAAI5wC,OAAM,YAWpB,KAAK,GATD6wC,GAAO5xC,KAQP6xC,KACKvsC,EAAI,EAAGA,EAAIosC,EAAYrvC,OAAQiD,IACtCusC,EAAU7+B,MAAM1N,EAAGosC,EAAYpsC,IAEjCusC,GAAUjhC,KAAK,SAASgS,EAAGC,GACzB,GAAIivB,GAAQ7L,EAAYyI,MAAMuC,EAAYruB,EAAE,IACxCmvB,EAAQ9L,EAAYyI,MAAMuC,EAAYpuB,EAAE,GAC5C,IAAI+uB,EAAKvB,aAAayB,KAAWH,EAC7B,KAAM,IAAI5wC,OACN,uBAAyB4wC,EAAe,cACxCC,EAAKvB,aAAayB,GACnB,IAAIF,EAAKvB,aAAa0B,KAAWJ,EACpC,KAAM,IAAI5wC,OACN,uBAAyB4wC,EAAe,cACxCC,EAAKvB,aAAa0B,GAE1B,OAAID,GAAQC,EACH,EACED,EAAQC,GACT,EAKDnvB,EAAE,GAAKC,EAAE,IAIpB,KAAK,GAAImB,GAAI,EAAGA,EAAI6tB,EAAUxvC,OAAQ2hB,IACpC0tB,EAAY1tB,GAAK6tB,EAAU7tB,GAAG,EAEhC,OAAO0tB,IAGXzJ,eAAgB,SAASqH,GAOvB,IAAK,GAFD0C,GACA/5B,EALAg5B,EAAa3B,EAAa,GAC1B2C,EAAgB3C,EAAa,GAC7B4C,EAAclyC,KAAKmyC,kBAAkBlB,GAAazK,EAAaQ,IAC/DoL,GAAa70B,EAAAA,EAGRjY,EAAI,EAAGA,EAAI2sC,EAAc5vC,OAAQiD,KACxC2S,EAAUi6B,EAAYD,EAAc3sC,KACtB8sC,IACZA,EAAYn6B,EACZ+5B,EAAYC,EAAc3sC,GAG9B,OAAO0sC,IAGTxJ,eAAgB,SAAS8G,GAOvB,IAAK,GAFD+C,GACAp6B,EALAg5B,EAAa3B,EAAa,GAC1B2C,EAAgB3C,EAAa,GAC7B4C,EAAclyC,KAAKmyC,kBAAkBlB,GAAazK,EAAaQ,IAC/DsL,EAAY/0B,EAAAA,EAGPjY,EAAI,EAAGA,EAAI2sC,EAAc5vC,OAAQiD,KACxC2S,EAAUi6B,EAAYD,EAAc3sC,KACtBgtC,IACZA,EAAYr6B,EACZo6B,EAAYJ,EAAc3sC,GAG9B,OAAO+sC,IAGTF,kBAAmB,SAASlB,EAAYsB,GACtC,GAAIX,GAAO5xC,KACPimC,EAAcjmC,KAAKkmC,YAUvB,OATc,UAASsM,GACrB,GAAIv6B,GAAUguB,EAAYyI,MAAMuC,EAAYuB,EAC5C,IAAID,EAAazwC,QAAQ8vC,EAAKvB,aAAap4B,IAAY,EAAG,CACxD,GAAIw6B,GAAM,8BAAgCF,EAChC,cAAgBX,EAAKvB,aAAap4B,EAC5C,MAAM,IAAIlX,OAAM0xC,GAElB,MAAOx6B,MA8BbrY,EAAQ+pC,SAAWA,EACnB/pC,EAAQsF,QAAUA,EAClBtF,EAAQiI,OAASA,EACjBjI,EAAQslC,gBAAkBA,GACKtlC,IAK5B,SAASC,EAAQD,GAOtBC,EAAOD,QAAU,QAAS43B,GAAa5U,EAAGC,GACzC,YACA,IAeC6vB,GAAQC,EAfLC,EAAK,8EACRC,EAAM,iBACNC,EAAM,iHACNC,EAAM,iBAENztC,EAAI,SAAS0tC,GAAK,MAAOxb,GAAYyb,cAAgB,GAAKD,GAAGlY,eAAiB,GAAKkY,GAEnFR,EAAIltC,EAAEsd,GAAGH,QAAQowB,EAAK,KAAO,GAC7BK,EAAI5tC,EAAEud,GAAGJ,QAAQowB,EAAK,KAAO,GAE7BM,EAAKX,EAAE/vB,QAAQmwB,EAAI,UAAUnwB,QAAQ,MAAM,IAAIA,QAAQ,MAAM,IAAIiB,MAAM,MACvE0vB,EAAKF,EAAEzwB,QAAQmwB,EAAI,UAAUnwB,QAAQ,MAAM,IAAIA,QAAQ,MAAM,IAAIiB,MAAM,MAEvE2vB,EAAK9H,SAASiH,EAAE3wB,MAAMkxB,GAAM,KAAsB,IAAdI,EAAG9wC,QAAgBmwC,EAAE3wB,MAAMixB,IAAQl3B,KAAKvY,MAAMmvC,GAClFc,EAAK/H,SAAS2H,EAAErxB,MAAMkxB,GAAM,KAAOM,GAAMH,EAAErxB,MAAMixB,IAAQl3B,KAAKvY,MAAM6vC,IAAM,IAG3E,IAAII,EAAI,CACP,GAAKD,EAAKC,EAAO,OAAQ,CACpB,IAAKD,EAAKC,EAAO,MAAO,GAG9B,IAAI,GAAIC,GAAK,EAAGC,EAAKzkC,KAAKE,IAAIkkC,EAAG9wC,OAAQ+wC,EAAG/wC,QAASkxC,EAAOC,EAAMD,IAAQ,CAKzE,GAHAb,IAAWS,EAAGI,IAAS,IAAI1xB,MApBrB,OAoBmCmE,WAAWmtB,EAAGI,KAAUJ,EAAGI,IAAS,EAC7EZ,IAAWS,EAAGG,IAAS,IAAI1xB,MArBrB,OAqBmCmE,WAAWotB,EAAGG,KAAUH,EAAGG,IAAS,EAEzE7O,MAAMgO,KAAYhO,MAAMiO,GAAW,MAAQjO,OAAMgO,GAAW,GAAK,CAMrE,UAJgBA,UAAkBC,KACjCD,GAAU,GACVC,GAAU,IAEPD,EAASC,EAAU,OAAQ,CAC/B,IAAID,EAASC,EAAU,MAAO,GAE/B,MAAO,KAMH,SAAS9yC,EAAQD,EAASM,GAE/B,YAUA,SAASu3B,GAAkB1xB,GAQzB,QAAS60B,GAAYjsB,GAEnB3O,KAAK2O,OAASA,EACd3O,KAAK0G,OAgOP,MA7NAk0B,GAAW/3B,UAAY,GAAIkD,GAM3B60B,EAAW/3B,UAAU8H,OAAS,WAE5B,GAAIjE,GAAM1G,KAAK0G,GAEf,IAAIA,EAAIyV,GACN,MAAOzV,GAAIyV,EAGbnc,MAAK63B,oBAGL,IAAI4b,GAAWjtC,SAASiJ,cAAc,KAOtC,IANAgkC,EAAS/jC,UAAY,oBACrB+jC,EAASxsC,KAAOjH,KAChB0G,EAAIyV,GAAKs3B,EAIwB,SAA7BzzC,KAAK2O,OAAO9N,QAAQe,KAAiB,CAEvC8E,EAAIm2B,OAASr2B,SAASiJ,cAAc,KAGpC,IAAIstB,GAASv2B,SAASiJ,cAAc,KACpC/I,GAAIq2B,OAASA,CACb,IAAIzyB,GAAO9D,SAASiJ,cAAc,SAClCnF,GAAKoC,KAAO,SACZpC,EAAKoF,UAAY,yBACjBpF,EAAKqG,MAAQ,0CACbjK,EAAI4D,KAAOA,EACXyyB,EAAOl0B,YAAYnC,EAAI4D,MAIzB,GAAIopC,GAAWltC,SAASiJ,cAAc,MAClCkkC,EAAUntC,SAASiJ,cAAc,MASrC,OARAkkC,GAAQj2B,UAAY,IAAMtX,EAAU,SAAW,IAC/CutC,EAAQjkC,UAAY,sBACpBgkC,EAAS7qC,YAAY8qC,GACrBjtC,EAAI0V,GAAKs3B,EACThtC,EAAIkE,KAAO+oC,EAEX3zC,KAAK2M,YAEE8mC,GAOT7Y,EAAW/3B,UAAU+T,QAAU,WAC7B,MAAO,OAOTgkB,EAAW/3B,UAAUmV,SAAW,WAC9B,MAAO,OAMT4iB,EAAW/3B,UAAU8J,UAAY,SAAS9L,GACxC,GAAI6F,GAAM1G,KAAK0G,IACXgtC,EAAWhtC,EAAI0V,EACfs3B,KACFA,EAAS10B,MAAM40B,YAAiC,GAAlB5zC,KAAK85B,WAAkB,GAAM,KAI7D,IAAI6Z,GAAUjtC,EAAIkE,IACd+oC,KACFA,EAAQj2B,UAAY,IAAMtX,EAAU,SAAW,IAAMpG,KAAKqM,OAAOK,KAAO,IAK1E,IAAI+mC,GAAW/sC,EAAIyV,EACdnc,MAAKm9B,YAYHz2B,EAAIyV,GAAGmE,aACN5Z,EAAIm2B,QACN4W,EAAS5qC,YAAYnC,EAAIm2B,QAEvBn2B,EAAIq2B,QACN0W,EAAS5qC,YAAYnC,EAAIq2B,QAE3B0W,EAAS5qC,YAAY6qC,IAlBnBhtC,EAAIyV,GAAGmE,aACL5Z,EAAIm2B,QACN4W,EAAShsC,YAAYf,EAAIm2B,QAEvBn2B,EAAIq2B,QACN0W,EAAShsC,YAAYf,EAAIq2B,QAE3B0W,EAAShsC,YAAYisC,KAqB3B9Y,EAAW/3B,UAAUs6B,UAAY,WAC/B,MAAqC,IAA7Bn9B,KAAKqM,OAAOyG,OAAOzQ,QAS7Bu4B,EAAW/3B,UAAUqP,gBAAkB,SAAUrB,EAAQyG,GACvD,GAAIrQ,GAAOjH,KACPokC,EAASr+B,EAAK+9B,YACdO,IAEIz5B,KAAMxE,EAAU,QAChBsJ,UAAW,uBACXiB,MAAOyzB,EAAO3R,KACdjb,MAAO,WACHvQ,EAAK07B,UAAU,GAAI,GAAI,WAI3B/3B,KAAMxE,EAAU,SAChBsJ,UAAW,wBACXiB,MAAOyzB,EAAO5R,MACdhb,MAAO,WACHvQ,EAAK07B,UAAU,UAInB/3B,KAAMxE,EAAU,UAChBsJ,UAAW,yBACXiB,MAAOyzB,EAAOthB,OACdtL,MAAO,WACHvQ,EAAK07B,UAAU,UAInB/3B,KAAMxE,EAAU,UAChBsJ,UAAW,yBACXiB,MAAOyzB,EAAOvP,OACdrd,MAAO,WACHvQ,EAAK07B,UAAU,GAAI,GAAI,YAInC17B,GAAK88B,aAAaM,GAAe,EACjC,IAAI9sB,KAGA3M,KAAQxE,EAAU,cAClBuK,MAASvK,EAAU,mBACnBsY,aAAgBtY,EAAU,sBAC1BsJ,UAAa,oBACb8H,MAAS,WACPvQ,EAAK07B,UAAU,GAAI,GAAI,SAEzBvkB,QAAWimB,GAIJ,IAAIx+B,GAAY0R,GAAQI,MAAOL,IACrCP,KAAKlG,EAAQ7Q,KAAK2O,OAAOrG,UAOhCsyB,EAAW/3B,UAAUyM,QAAU,SAAUC,GACvC,GAAI7C,GAAO6C,EAAM7C,KACbkD,EAASL,EAAMK,QAAUL,EAAMyxB,WAC/Bt6B,EAAM1G,KAAK0G,GAcf,IAVIkJ,GADOlJ,EAAI4D,OAED,aAARoC,EACF1M,KAAK2O,OAAOhI,YAAY2R,UAAUtY,KAAKqM,QAExB,YAARK,GACP1M,KAAK2O,OAAOhI,YAAY8R,eAKhB,SAAR/L,GAAmBkD,GAAUlJ,EAAI4D,KAAM,CACzC,GAAI3D,GAAc3G,KAAK2O,OAAOhI,WAC9BA,GAAY2R,UAAUtY,KAAKqM,QAC3B1F,EAAYgS,OACZ1X,EAAKiS,aAAaxM,EAAI4D,KAAM,uBAC5BtK,KAAKkS,gBAAgBxL,EAAI4D,KAAM,WAC7BrJ,EAAKyR,gBAAgBhM,EAAI4D,KAAM,uBAC/B3D,EAAYiS,SACZjS,EAAY8R,gBAIJ,WAAR/L,GACF1M,KAAKqhC,UAAU9xB,IAIZqrB,EAnPT,GAAI35B,GAAOf,EAAoB,GAC3B2F,EAAc3F,EAAoB,GAClCkG,EAAYlG,EAAoB,GAAGkG,SAoPvCvG,GAAOD,QAAU63B,GAKZ,SAAS53B,EAAQD,EAASM,GAE/B,YAQA,SAASw3B,GAAoB3xB,GAS3B,QAAS29B,GAAc/0B,EAAQtC,GAE7BrM,KAAK2O,OAASA,EACd3O,KAAKqM,OAASA,EACdrM,KAAK0G,OAkIP,MA/HAg9B,GAAa7gC,UAAY,GAAIkD,GAM7B29B,EAAa7gC,UAAU8H,OAAS,WAC9B,GAAI3K,KAAK0G,IAAIyV,GACX,MAAOnc,MAAK0G,IAAIyV,EAMlB,IAHAnc,KAAK63B,sBAGA73B,KAAK0G,IAAIyV,GAAI,CAChB,GAAIpP,GAAK/M,KACLqM,EAASrM,KAAKqM,OACdwnC,EAAiBrtC,SAASiJ,cAAc,IAC5CokC,GAAehrC,YAAYrC,SAAS+X,eAAenY,EAAU,cAC7DytC,EAAelT,KAAO,IACtBkT,EAAelkC,QAAU,SAAUJ,GAQjC,MANAlD,GAAOurB,cAAgB7oB,KAAKs4B,MAAMh7B,EAAOurB,cAAgBvrB,EAAOsrB,mBAAqB,GACjFtrB,EAAOsrB,mBACX5qB,EAAGJ,YACHN,EAAOmP,aAEPjM,EAAMM,kBACC,EAGT,IAAIikC,GAAgBttC,SAASiJ,cAAc,IAC3CqkC,GAAcjrC,YAAYrC,SAAS+X,eAAenY,EAAU,aAC5D0tC,EAAcnT,KAAO,IACrBmT,EAAcnkC,QAAU,SAAUJ,GAOhC,MALAlD,GAAOurB,cAAgBra,EAAAA,EACvBxQ,EAAGJ,YACHN,EAAOmP,aAEPjM,EAAMM,kBACC,EAGT,IAAIkkC,GAAevtC,SAASiJ,cAAc,OACtCukC,EAAWxtC,SAAS+X,eAAeve,KAAKi0C,mBAC5CF,GAAarkC,UAAY,uBACzBqkC,EAAalrC,YAAYmrC,GACzBD,EAAalrC,YAAYgrC,GACzBE,EAAalrC,YAAYrC,SAAS+X,eAAe,OACjDw1B,EAAalrC,YAAYirC,GACzBC,EAAalrC,YAAYrC,SAAS+X,eAAe,MAEjD,IAAI21B,GAAa1tC,SAASiJ,cAAc,KACxCykC,GAAWrrC,YAAYkrC,EAEvB,IAAII,GAAS3tC,SAASiJ,cAAc,KACpC0kC,GAAOtrC,YAAYrC,SAASiJ,cAAc,OAC1C0kC,EAAOtrC,YAAYrC,SAASiJ,cAAc,OAC1C0kC,EAAOtrC,YAAYqrC,GACnBC,EAAOzkC,UAAY,uBACnB1P,KAAK0G,IAAIyV,GAAKg4B,EACdn0C,KAAK0G,IAAIqtC,aAAeA,EACxB/zC,KAAK0G,IAAIstC,SAAWA,EAKtB,MAFAh0C,MAAK2M,YAEE3M,KAAK0G,IAAIyV,IAMlBunB,EAAa7gC,UAAU8J,UAAY,SAAS9L,GAC1C,GAAIb,KAAKm9B,YAAa,CAIpB,GAFAn9B,KAAK0G,IAAIyV,GAAGlV,KAAOjH,KAAKqM,OAAOyG,OAAO9S,KAAKqM,OAAOurB,gBAE7C53B,KAAK0G,IAAIyV,GAAG3U,WAAY,CAC3B,GAAI4yB,GAASp6B,KAAKqM,OAAOguB,YACrBD,IACFA,EAAO5yB,WAAWmS,aAAa3Z,KAAK0G,IAAIyV,GAAIie,GAKhDp6B,KAAK0G,IAAIstC,SAAS3uB,UAAYrlB,KAAKi0C,mBAGnCj0C,KAAK0G,IAAIqtC,aAAa/0B,MAAMwgB,WAAqC,IAAvBx/B,KAAK85B,WAAa,GAAU,SAGlE95B,MAAK0G,IAAIyV,IAAMnc,KAAK0G,IAAIyV,GAAG3U,YAC7BxH,KAAK0G,IAAIyV,GAAG3U,WAAWC,YAAYzH,KAAK0G,IAAIyV,KAKlDunB,EAAa7gC,UAAUoxC,iBAAmB,WACxC,MAAO7tC,GAAU,kBACfwxB,cAAe53B,KAAKqM,OAAOurB,cAC3Bwc,YAAap0C,KAAKqM,OAAOyG,OAAOzQ,SAC7B,KASPqhC,EAAa7gC,UAAUs6B,UAAY,WACjC,MAAOn9B,MAAKqM,OAAOwqB,UAAY72B,KAAKqM,OAAOyG,OAAOzQ,OAASrC,KAAKqM,OAAOurB,eAOzE8L,EAAa7gC,UAAUyM,QAAU,SAAUC,GAE5B,YADFA,EAAM7C,MAEf1M,KAAKqhC,UAAU9xB,IAIZm0B,EArJT,GAAIt9B,GAAYlG,EAAoB,GAAGkG,SAwJvCvG,GAAOD,QAAU83B,GAKZ,SAAS73B,EAAQD,EAASM,GAW/B,QAASgG,GAAee,EAAMrG,GAC5B,GAAI0H,GAAU,mEAC0BlC,EAAU,QAAU,uCAK7CA,EAAU,kBAAoB,qHAGNA,EAAU,kBAAoB,gDAMtDA,EAAU,sBAAwB,gIAIjCA,EAAU,iBAAmB,YAC5BA,EAAU,sBAAwB,yGAInCA,EAAU,kBAAoB,YAC9BA,EAAU,uBAAyB,oNAQJA,EAAU,MAAQ,6CAQjEiuC,IACEhoC,OAAQzL,EACR0H,QAASA,EACTgsC,aAAc,2BACdC,WAAY,2CAETC,YAAY,SAAUC,GAiBrB,QAASC,GAAahsC,GACpB8L,EAAU9L,MAAQA,EAClB8L,EAAU9E,UAAY,yDAA2D8E,EAAU9L,MAlB7F,GAAIisC,GAAOF,EAAMG,YAAYvqC,cAAc,QACvCupB,EAAK6gB,EAAMG,YAAYvqC,cAAc,OACrC5B,EAAQgsC,EAAMG,YAAYvqC,cAAc,UACxCmK,EAAYigC,EAAMG,YAAYvqC,cAAc,cAE5CwD,EAAsB,UAAd5G,EAAKyF,KACXzF,EAAKo8B,iBACJ,IAEPx1B,GAAM5L,QAAQ,SAAUuH,GACtB,GAAItH,GAASsE,SAASiJ,cAAc,SACpCvN,GAAO0I,KAAOpB,EACdtH,EAAOwG,MAAQc,EACff,EAAMI,YAAY3G,KAQpBuG,EAAMC,MAAQzB,EAAK4tC,SAAW5tC,EAAK4tC,SAASrrC,KAAOqE,EAAM,GACzD6mC,EAAaztC,EAAK4tC,SAAW5tC,EAAK4tC,SAASrgC,UAAY,OAEvDA,EAAU7E,QAAU,SAAUJ,GAC5BmlC,EAAanlC,EAAMK,OAAOklC,aAAa,gBAGzClhB,EAAGjkB,QAAU,SAAUJ,GACrBA,EAAMM,iBACNN,EAAM0H,kBAENw9B,EAAM98B,OAEN,IAAInO,GAAOf,EAAMC,MACbqsC,EAAsB,MAATvrC,KAAqBA,EAAKka,MAAM,KAAK3O,MAAM,EAE5D9N,GAAK4tC,UACHrrC,KAAMA,EACNgL,UAAWA,EAAU9L,OAGvBzB,EAAK2J,KAAKmkC,EAAWvgC,EAAU9L,QAG7BisC,IACFA,EAAKK,SAAWphB,EAAGjkB,WAGtBslC,WAAW,SAAUR,GACpBA,EAAMzxC,YAEP+T,OA9GP,GAAIs9B,GAAYn0C,EAAoB,IAChCkG,EAAYlG,EAAoB,GAAGkG,SAgHvCvG,GAAOD,QAAUsG,GAKZ,SAASrG,EAAQD,EAASM,GAE/B,GAAIg1C,GAAgCC,EAA8BC,GAoBjE,SAAU11C,EAAMC,GACb,YAGMw1C,MAAmCD,EAAiC,MAAsPruC,MAA3OuuC,EAA2E,kBAAnCF,GAAiDA,EAA+BttB,MAAMhoB,EAASu1C,GAAiCD,KAAiFr1C,EAAOD,QAAUw1C,IAQjWp1C,EAAM,WAKJ,YAGA,SAASq1C,GAAO3sC,GACZ,MAAqB,gBAAT3C,MACD2C,YAAiB3C,MAGjB2C,GAA0B,gBAAVA,IAAgD,gBAAnBA,GAAM4sC,SAKlE,QAASC,GAAS7sC,GACd,MAAwB,gBAAVA,GAMlB,QAAS8sC,KACL,GAAIC,KACJ,QACIC,MAAOD,EAAUziC,KAAK9K,KAAKutC,GAC3BE,QAAS,SAASluB,EAASmuB,GAUvB,IAAK,GARDC,IAAc,EACdtmC,GACAqmC,OAAQA,EACR/lC,eAAgB,WACZgmC,GAAc,IAIbvwC,EAAI,EAAGA,EAAImwC,EAAUpzC,OAAQiD,IAClCmwC,EAAUnwC,GAAGmiB,EAASlY,EAG1B,OAAOsmC,KAOnB,QAASC,GAAW54B,GAEhB,MAAiD,SAA1CjJ,OAAO8hC,iBAAiB74B,GAAM2D,QAOzC,QAASm1B,GAAM94B,GACXld,KAAKkd,KAAOA,EAyGhB,QAAS+4B,GAAcC,EAAWv+B,GAC9B,MAAOq+B,GAAKG,KAAMD,EAAU,WACvBE,MAAM,gBACNA,MAAOF,EAAU,eAAgB,KACjCG,SACGx1B,QAAS,OACTuJ,SAAU,QACVpd,IAAK,MACLiT,KAAM,MACN/S,OAAQ,OACRmK,MAAO,OACPi/B,OAAQ,MAEXD,QAAQH,EAAU,iBACfK,QAAS,GACTC,WAAY,UAEfC,QAAQ,WACAP,EAAU,gBAAgB,IAC3Bv+B,MAShB,QAAS++B,GAAYR,EAAWv+B,GAC5B,GAAIN,GAAQ6+B,EAAU,QAAS,OACT,iBAAV7+B,KACRA,GAAqB,KAGzB,IAAIhX,GAAK61C,EAAU,UAAW,QAAUS,IAwCxC,OAtCWX,GAAKG,KAAMD,EAAU,WAC3BE,MAAM,gBACNA,MAAOF,EAAU,aAAc,KAC/BG,SACGx1B,QAAS,OACTuJ,SAAU,QACVksB,OAAQ,MACRr2B,KAAM,MACNjT,IAAK,WACLoS,UAAW,MACXw3B,UAAW,aACXv/B,MAAOA,EACPw/B,gBAAiB,4BACjBC,iBAAkB,4BAClBC,oBAAqB,4BACrBC,eAAgB,4BAChBjmC,UAAW,8BAEdslC,QAAQH,EAAU,eACf/2B,SAAU,OACV83B,gBAAiB,QACjBr2B,QAAS,OACTs2B,aAAc,SAEjBtS,KAAMsR,EAAU,YAChBiB,KAAK,KAAM92C,GACX82C,KAAK,OAAQ,UACbA,KAAK,kBAAmBjB,EAAU,mBAClCiB,KAAK,mBAAoBjB,EAAU,kBAAmB71C,IACtDo2C,QAAQ,SAAUlnC,GACI,GAAIymC,GAAKzmC,EAAMK,QAAQwnC,YAAY,SAAUl6B,GAC5D,MAAO,iBAAiBiF,KAAKjF,EAAKA,KAAKxN,cAGvCiI,MAQhB,QAAS0/B,GAAan6B,EAAMg5B,GACxB,GAAKA,EAAU,eAAe,GAC1B,MAAOh5B,GAAK1Q,MAAM,UACbo4B,KAAMsR,EAAU,YAAa,WAC7BE,MAAM,cACNA,MAAOF,EAAU,aAAc,KAC/BG,QAASH,EAAU,eAChBgB,aAAc,MACdI,OAAQ,EACR12B,QAAS,EACT8c,OAAQ,UACRxwB,OAAQ,OACRmK,MAAO,OACP+S,SAAU,WACVpd,IAAK,MACLqa,MAAO,MACPkwB,SAAU,OACVC,UAAW,SACXC,WAAY,OACZjB,WAAY,UAEfW,KAAK,aAAcjB,EAAU,cAAe,UAKzD,QAASwB,GAAmBC,GACxB,MAAO,YACH,MAAOA,KAAUz6B,MA4BzB,QAAS06B,GAAcC,EAAOC,GAG1B,QAASC,GAAU76B,EAAM86B,GAErB,OADS96B,EAAK+6B,mBAAqB/6B,EAAKg7B,uBAAyBh7B,EAAK66B,SAC5Dx3C,KAAK2c,EAAM86B,GAOzB,QAASG,GAAUj7B,GACf,QACI44B,EAAS54B,IACT66B,EAAQ76B,EAAM,cACdA,EAAKk7B,aAAa,sBAKXl7B,EAAKk7B,aAAa,aACrBL,EAAQ76B,EAAM,2DAK1B,QAASm7B,GAAiBn7B,GAEtB,IAAK,GADD3F,GAAQ2F,EAAKo7B,qBAAqB,KAC7BhzC,EAAI,EAAGA,EAAIiS,EAAMlV,OAAQiD,IAC9B,GAAK6yC,EAAS5gC,EAAMjS,IAChB,MAAOiS,GAAMjS,GAMzB,QAASizC,GAAgBr7B,GAErB,IAAK,GADD3F,GAAQ2F,EAAKo7B,qBAAqB,KAC7BhzC,EAAIiS,EAAMlV,OAAQiD,KACvB,GAAK6yC,EAAS5gC,EAAMjS,IAChB,MAAOiS,GAAMjS,GAMzB,GAAIkzC,EAIJX,GAAMY,WAAW,WACbD,EAAUhyC,SAASkyC,gBAIvBb,EAAMc,UAAU,WACZ,GAAKb,IAAc,CACf,GAAIc,GAAYP,EAAeR,EAAMjD,YAChCgE,IACDA,EAAU1uC,WAMtB2tC,EAAM5C,WAAW,WACR6C,KAAeU,GAChBA,EAAQtuC,QAEZsuC,EAAU,OAIdK,EAAOnD,MAAM,SAAsBnmC,GAC/B,GAAKuoC,KAAeD,EAAM1a,YAAc,CACpC,GAAInoB,GAAQqjC,EAAeR,EAAMjD,aAC7BkE,EAAOP,EAAcV,EAAMjD,cAEpBrlC,EAAMyG,SAAWhB,EAAQ8jC,KACtBtyC,SAASkyC,iBAClBnpC,EAAMyG,SAAW8iC,EAAO9jC,GAAO9K,QAChCqF,EAAMM,qBAOtB,QAASkpC,GAAmBlB,EAAOC,GAC/B,GAAIkB,GACAvyC,EAAO,GAAIuvC,GAAKxvC,SAASC,KAE7BoxC,GAAMY,WAAW,WAEbO,EAAevyC,EAAKyW,KAAK8B,MAAMG,SAE3B24B,KACArxC,EAAK4vC,SAAUl3B,SAAU,aAIjC04B,EAAM5C,WAAW,WACbxuC,EAAK4vC,SAAUl3B,SAAU65B,MAlVjChD,EAAKG,KAAO,SAAW9pC,EAAQ4sC,GACJ,gBAAX5sC,KACRA,EAAS7F,SAAS6D,cAAcgC,GAEpC,IAAI6Q,GAAO1W,SAASiJ,cAAcwpC,GAAO,MAEzC,QADC5sC,GAAU7F,SAASC,MAAMoC,YAAYqU,GAC/B,GAAI84B,GAAK94B,IAGpB84B,EAAKnzC,WAGD2J,MAAO,SAAUysC,GACb,MAAOjD,GAAKG,KAAKn2C,KAAKkd,KAAM+7B,IAIhC5C,QAAS,SAAS6C,GACdA,EAASA,UAEsB,KAAnBA,EAAO3C,UACf2C,EAAOptC,OAAS,iBAAqC,IAAjBotC,EAAO3C,QAAiB,IAGhE,KAAK,GAAIhxC,KAAQ2zC,GACTA,EAAOlxC,eAAezC,KACtBvF,KAAKkd,KAAK8B,MAAMzZ,GAAQ2zC,EAAO3zC,GAIvC,OAAOvF,OAIXo2C,MAAO,SAAUA,GAEb,MADAp2C,MAAKkd,KAAKxN,WAAa,IAAM0mC,EACtBp2C,MAIX4kC,KAAM,SAAUt8B,GAOZ,MANK+sC,GAAO/sC,GACRtI,KAAKkd,KAAKrU,YAAaP,GAGvBtI,KAAKkd,KAAKQ,UAAYpV,EAEnBtI,MAIXy2C,QAAS,SAAS/nC,GAEd,MADA1O,MAAKkd,KAAK1M,iBAAiB,QAAS9B,GAC7B1O,MAIXgD,QAAS,WACLhD,KAAKkd,KAAK1V,WAAWC,YAAYzH,KAAKkd,OAI1C3S,KAAM,WACFvK,KAAKkd,KAAK8B,MAAM6B,QAAU,QAI9B9J,KAAM,WACF/W,KAAKkd,KAAK8B,MAAM6B,QAAU,SAI9Bs2B,KAAM,SAAWzzC,EAAMgF,GAInB,WAHc7B,KAAV6B,GACA1I,KAAKkd,KAAKi8B,aAAaz1C,EAAMgF,GAE1B1I,MAIXo3C,YAAa,SAAWgC,GAEpB,IADA,GAAIl8B,GAAOld,KAAKkd,KACRA,GAAO,CACX,GAAKk8B,EAAW,GAAIpD,GAAK94B,IACrB,OAAO,CAGPA,GAAOA,EAAK1V,WAGpB,OAAO,GAIX21B,UAAW,WACP,OAAQ2Y,EAAS91C,KAAKkd,OA+B9B,IAAIy5B,GAAU,EAuFV0C,EAAY7D,IAGZqD,EAASrD,GAiIb,OA9HAhvC,UAAS8yC,gBAAgB9oC,iBAAiB,UAAW,SAAqBjB,GACtE,GAAIgqC,GAAUhqC,EAAMoG,OAASpG,EAAMqG,OAGlB,MAAZ2jC,EACDF,EAAU1D,UAIQ,IAAZ4D,GACNV,EAAOlD,QAAQpmC,KAoHhB,SAAmB1O,GAgBtB,QAASq1C,GAAYsD,EAAKC,GACtB,GAAI/wC,GAAQ7H,EAAQ24C,EAIpB,OAHsB,kBAAV9wC,KACRA,EAAQA,EAAO+wC,QAEF5yC,KAAV6B,EAAsB+wC,EAAe/wC,EAchD,QAASgxC,GAAY9D,GACjB+D,IAAapvC,OACbqqC,IAAYrqC,OACZqvC,EAAgBjE,QAAQkC,EAAOjC,GAInC,QAASj+B,GAAOi+B,GACPiE,EAAiBlE,QAAQkC,EAAOjC,IACjC8D,EAAW9D,GAKnB,QAASkE,GAAcprC,GACnB,MAAO,YAEH,MADAA,GAASkZ,MAAM5nB,KAAMoC,WACdy1C,GASf,QAASkC,GAAOr2C,EAAMkyC,GAClB,IAAMoE,EAAQ,CACV,GAAIvF,GAAQiC,EAAWR,EAAWv+B,EAClCqiC,IACIvF,MAAOA,EACPwF,QAAShE,EAAaC,EAAWv+B,GACjCA,MAAO0/B,EAAW5C,EAAOyB,IAE7BgE,EAAiBvE,QAAQkC,EAAOjC,GAEpC,MAAOoE,GAAMt2C,IArEZ6xC,EAAS10C,IAAYw0C,EAAOx0C,MAC7BA,GAAYyH,QAASzH,GAGzB,IAyBIg3C,GA2BAmC,EApDAE,EAAmB1E,IACnB2E,EAAkB3E,IAClB4E,EAAiB5E,IACjBqE,EAAmBrE,IACnBoE,EAAkBpE,IAgBlBZ,EAAYmF,EAAM7xC,KAAK+L,OAAQ,SAC/B0lC,EAAaI,EAAM7xC,KAAK+L,OAAQ,WAChComC,EAAYN,EAAM7xC,KAAK+L,OAAQ,QAkInC,OApFA4jC,IAGIjD,UAAW8C,EAAkB9C,GAG7ByF,UAAW3C,EAAkB2C,GAG7BC,YAAa5C,EAAkBiC,GAG/BY,SAAUT,EAAYC,EAAM7xC,KAAK,KAAM,OAGvCi1B,UAAW,WACP,SAAU6c,GAASpF,GAAaA,IAAYzX,cAIhDpmB,KAAM,SAAU6+B,GAOZ,MANKuE,GAAgBxE,QAAQkC,EAAOjC,KAChC+D,IAAa5iC,OACbsjC,IACAzF,IAAY79B,OACZqjC,EAAezE,QAAQkC,EAAOjC,IAE3B51C,MAIX2X,MAAOmiC,EAAYniC,GAMnB+hC,WAAYI,EAAYJ,GAGxB12C,QAAS,WACL4xC,IAAY5xC,UACZ22C,IAAa32C,UACb22C,EAAa/E,EAAYyF,MAAYxzC,IAQzChG,QAAS,SAAW25C,GAChBz4C,OAAOC,KAAKw4C,GAAM9uC,IAAI,SAAU2K,GAC5BxV,EAAQwV,GAAOmkC,EAAKnkC,MAK5Bm+B,YAAasF,EAAYI,EAAiBxE,OAG1C+C,WAAYqB,EAAYK,EAAgBzE,OAGxCiD,UAAWmB,EAAYM,EAAe1E,OAGtC+E,YAAaX,EAAYD,EAAiBnE,OAG1CT,WAAY6E,EAAYF,EAAgBlE,QAG5CkC,EAAYC,EAAO3B,EAAUhuC,KAAK,KAAM,SAAS,IAEjD6wC,EAAmBlB,EAAO3B,EAAUhuC,KAAK,KAAM,gBAAgB,IAG/DmxC,EAAU3D,MAAM,WACPQ,EAAU,aAAa,IAAS2B,EAAM1a,aACvC0a,EAAMlgC,UAIPkgC,MAQV,SAASh4C,EAAQD,EAASM,GAgB/B,QAASiG,GAAoBc,EAAMrG,GACjC,GAAI8H,GAAQzB,EAAK4C,WAEbvB,EAAU,qEAC0BlC,EAAU,aAAe,oRAQlDA,EAAU,wBAA0B,8HAIQA,EAAU,yBAA2B,oxBAsBrCA,EAAU,yBAA2B,yfAerCA,EAAU,+BAAiC,6IAQvFA,EAAU,uBAAyB,uPAQpBA,EAAU,uBAAyB,yCAIlDA,EAAU,yBAA2B,gRASLA,EAAU,MAAQ,gDAOjEiuC,IACEhoC,OAAQzL,EACR0H,QAASA,EACTgsC,aAAc,2BACdC,WAAY,8CACZrqC,OAAO,IAEJsqC,YAAY,SAAUC,GAyErB,QAASiG,GAAelxC,GACtB,MAAgB,MAAZA,EAAK,GACU,MAATA,EACF,IACAA,EAAKuL,MAAM,GAGVvL,EAIX,QAASmxC,KACP,GAAIC,EAAYlyC,OAASmyC,EAAenyC,OAASoyC,EAAYpyC,MAAO,CAClE,GAAIqyC,GAASH,EAAYlyC,MAErBsyC,EAASz3C,KAAKC,UAAUyD,EAAKy0B,YAAYof,EAAYpyC,OACzD06B,GAAM16B,MAAQ,MACVqyC,EAAS,IACTF,EAAenyC,MAAQ,KACjBsyC,EAAS,SAInB5X,GAAM16B,MAAQ,KAGhB,IAAIuyC,EAAUvyC,OAASwyC,EAAUxyC,MAAO,CACtC,GAAIyyC,GAASF,EAAUvyC,KACC,UAApBwyC,EAAUxyC,MACZ06B,EAAM16B,OAAS,0BAA4ByyC,EAAS,KAGpD/X,EAAM16B,OAAS,kBAAoByyC,EAAS,IAIhD,GAAIC,EAAa1yC,MAAO,CAEtB,IAAK,GADD88B,MACKlgC,EAAE,EAAGA,EAAI81C,EAAav6C,QAAQwB,OAAQiD,IAC7C,GAAI81C,EAAav6C,QAAQyE,GAAG2M,SAAU,CACpC,GAAIvJ,GAAQ0yC,EAAav6C,QAAQyE,GAAGoD,KACpC88B,GAAOxyB,KAAKtK,GAI4B,MAAxC06B,EAAM16B,MAAM06B,EAAM16B,MAAMrG,OAAS,KACnC+gC,EAAM16B,OAAS,UAGK,IAAlB88B,EAAOnjC,OACT+gC,EAAM16B,OAAS,IAAMA,EAEd88B,EAAOnjC,OAAS,IACvB+gC,EAAM16B,OAAS,KACX88B,EAAO95B,IAAI,SAAUhD,GACnB,GAAIwlC,GAAQxlC,EAAMgb,MAAM,IAExB,OADWwqB,GAAMA,EAAM7rC,OAAS,GAClB,KAAOqG,IACpB6Z,KAAK,MACR,KAOR84B,IAGF,QAASC,KACP,IACE,GAAIC,GAAchkB,EAAS1vB,OAAOa,EAAO06B,EAAM16B,OAC3C0oB,EAAS7tB,KAAKC,UAAU+3C,EAAa,KAAM,GAAG73B,MAAM,KAEpD0N,GAAM/uB,OAASm5C,IACjBpqB,EAAQA,EAAMrc,MAAM,EAAGymC,GAAmBxvC,QAAQ,SAIpDyvC,EAAQ/rC,UAAY,+BACpB+rC,EAAQ/yC,MAAQ0oB,EAAM7O,KAAK,MAC3BqR,EAAGxiB,UAAW,EAEhB,MAAO1O,GACL+4C,EAAQ/rC,UAAY,gDACpB+rC,EAAQ/yC,MAAQhG,EAAIigB,WACpBiR,EAAGxiB,UAAW,GA9JlB,GAAI8L,GAAOu3B,EAAMG,YAEb8G,EAASx+B,EAAK7S,cAAc,WAC5BupB,EAAK1W,EAAK7S,cAAc,OACxBuwC,EAAc19B,EAAK7S,cAAc,gBACjCwwC,EAAiB39B,EAAK7S,cAAc,mBACpCywC,EAAc59B,EAAK7S,cAAc,gBACjC4wC,EAAY/9B,EAAK7S,cAAc,cAC/B6wC,EAAYh+B,EAAK7S,cAAc,cAC/B+wC,EAAel+B,EAAK7S,cAAc,iBAClC+4B,EAAQlmB,EAAK7S,cAAc,UAC3BoxC,EAAUv+B,EAAK7S,cAAc,WAE5ByK,OAAMtP,QAAQkD,KACjBgzC,EAAO18B,MAAM6B,QAAU,OACvB66B,EAAOl0C,WAAWwX,MAAM28B,UAAY,SACpCD,EAAOl0C,WAAWqB,YACdrC,SAAS+X,eAAe,yDAIlBtX,EAAKo8B,gBACXphC,QAAQ,SAAUuH,GACtB,GAAIoyC,GAAgBlB,EAAelxC,GAC/BqyC,EAAer1C,SAASiJ,cAAc,SAC1CosC,GAAajxC,KAAOgxC,EACpBC,EAAanzC,MAAQkzC,EACrBhB,EAAY/xC,YAAYgzC,EAExB,IAAIC,GAAat1C,SAASiJ,cAAc,SACxCqsC,GAAWlxC,KAAOgxC,EAClBE,EAAWpzC,MAAQkzC,EACnBX,EAAUpyC,YAAYizC,IAGxB,IAAIC,GAAW90C,EAAKo8B,eAAc,GAAMv3B,OAAO,SAAStC,GACtD,MAAgB,MAATA,GAGLuyC,GAAS15C,OAAS,EACpB05C,EAAS95C,QAAQ,SAAUuH,GACzB,GAAIoyC,GAAgBlB,EAAelxC,GAC/BtH,EAASsE,SAASiJ,cAAc,SACpCvN,GAAO0I,KAAOgxC,EACd15C,EAAOwG,MAAQkzC,EACfR,EAAavyC,YAAY3G,KAI3Bgb,EAAK7S,cAAc,qBAAqB2U,MAAM6B,QAAU,MAG1D,IAAIm7B,GAAqB,GAAIC,GAAQrB,GAAesB,iBAAiB,EAAOC,WAAW,EAAMC,eAAe,EAAMC,YAAa,aAC3HC,EAAwB,GAAIL,GAAQpB,GAAkBqB,iBAAiB,EAAOC,WAAW,EAAMC,eAAe,EAAMC,YAAa,eACjIE,EAAmB,GAAIN,GAAQhB,GAAaiB,iBAAiB,EAAOC,WAAW,EAAMC,eAAe,EAAMC,YAAa,aACvHG,EAAmB,GAAIP,GAAQf,GAAagB,iBAAiB,EAAOC,WAAW,EAAMC,eAAe,EAAMC,YAAa,aACvHI,EAAsB,GAAIR,GAAQb,GAAesB,UAAU,EAAMP,WAAW,EAAMD,iBAAiB,GAEvGF,GAAmBW,GAAG,iBAAkBhC,GACxC2B,EAAsBK,GAAG,iBAAkBhC,GAC3CG,EAAYhrC,QAAU6qC,EACtB4B,EAAiBI,GAAG,iBAAkBhC,GACtC6B,EAAiBG,GAAG,iBAAkBhC,GACtC8B,EAAoBE,GAAG,iBAAkBhC,GAEzCz9B,EAAK7S,cAAc,wBAAwBsF,QAAU,SAAUJ,GAE7DA,EAAMM,kBAGRuzB,EAAM16B,MAAQoM,MAAMtP,QAAQkD,GAAS,MAAQ,GA4F7C,IAAI2yC,GAAyBpzC,EAASqzC,EAAe,IAErDlY,GAAMtzB,QAAUurC,EAChBA,IAEAznB,EAAGjkB,QAAU,SAAUJ,GACrBA,EAAMM,iBACNN,EAAM0H,kBAENw9B,EAAM98B,QAEN1Q,EAAK8J,UAAUqyB,EAAM16B,QAGvB2G,WAAW,WACT+zB,EAAMr1B,SACNq1B,EAAMl5B,QACNk5B,EAAMta,eAAiB,EACvBsa,EAAMra,aAAe,MAGxBksB,WAAW,SAAUR,GACpBA,EAAMzxC,YAEP+T,OAzSP,GAAIwgB,GAAWr3B,EAAoB,IAC/Bm0C,EAAYn0C,EAAoB,IAChC+7C,EAAU/7C,EAAoB,IAC9BkG,EAAYlG,EAAoB,GAAGkG,UACnC6B,EAAW/H,EAAoB,GAAG+H,SAElCuzC,EAAoB,GAsSxB37C,GAAOD,QAAUuG,GAKZ,SAAStG,EAAQD,GAStB,YAqQA,SAASg9C,GAAMvpC,EAAK9N,GAClB,MAAO8N,GAAIrL,eAAezC,MAAwB,IAAd8N,EAAI9N,IAAkB8N,EAAI9N,GAAMlD,QAStE,QAASw6C,GAAW9+B,EAAM1R,EAAQywC,GAC5B/+B,EAAKvW,WACFuW,EAAKvW,WAAWA,YACnB6E,EAAOxD,YAAYkV,EAAKvW,YAG1B6E,EAAOxD,YAAYkV,GAGrB9c,EAAK87C,YAAYh/B,EAAM,YAClB++B,IACH/+B,EAAKL,UAAYK,EAAKi/B,aApR1B,GAAIC,IAKFf,iBAAiB,EAMjB7kC,MAAO,OAMPjG,UAAU,EAMV8rC,YAAY,EAMZf,WAAW,EAMXgB,cAAc,EAMdf,eAAe,EAMfgB,eAAe,EAMfC,gBAAgB,EAMhBhB,YAAa,sBAMbiB,UAAU,EAMVC,eAAgB,kBAMdC,EAAS,YAMbA,GAAO36C,WAOL85C,GAAI,SAASptC,EAAO+X,GAClBtnB,KAAKy9C,QAAUz9C,KAAKy9C,YACpBz9C,KAAKy9C,QAAQluC,GAASvP,KAAKy9C,QAAQluC,OACnCvP,KAAKy9C,QAAQluC,GAAOyD,KAAKsU,IAS3Bo2B,IAAK,SAASnuC,EAAO+X,GACnBtnB,KAAKy9C,QAAUz9C,KAAKy9C,YAChBluC,IAASvP,MAAKy9C,UAAY,GAC9Bz9C,KAAKy9C,QAAQluC,GAAOsM,OAAO7b,KAAKy9C,QAAQluC,GAAOzN,QAAQwlB,GAAO,IAQhEq2B,KAAM,SAASpuC,GAEb,GADAvP,KAAKy9C,QAAUz9C,KAAKy9C,YAChBluC,IAASvP,MAAKy9C,UAAY,EAC9B,IAAK,GAAIn4C,GAAI,EAAGA,EAAItF,KAAKy9C,QAAQluC,GAAOlN,OAAQiD,IAC9CtF,KAAKy9C,QAAQluC,GAAOjK,GAAGsiB,MAAM5nB,KAAM8U,MAAMjS,UAAUkS,MAAMxU,KAAK6B,UAAW,MAU/Eo7C,EAAOr5C,MAAQ,SAASkP,GAEtB,IAAK,GADDsoB,IAAS,KAAM,MAAO,QACjBr2B,EAAI,EAAGA,EAAIq2B,EAAMt5B,OAAQiD,IACb,kBAAR+N,GACTA,EAAIxQ,UAAU84B,EAAMr2B,IAAMk4C,EAAO36C,UAAU84B,EAAMr2B,IAEjD+N,EAAIsoB,EAAMr2B,IAAMk4C,EAAO36C,UAAU84B,EAAMr2B,GAG3C,OAAO+N,GAOT,IAAIpS,IACF6C,OAAQ,SAAS85C,EAAKjiB,GACpBA,EAAQA,KACR,IAAIj7B,EACJ,KAAKA,IAAKk9C,GACJA,EAAI51C,eAAetH,KAChBi7B,EAAM3zB,eAAetH,KACxBi7B,EAAMj7B,GAAKk9C,EAAIl9C,IAIrB,OAAOi7B,IAETkiB,KAAM,SAASj7B,EAAGC,EAAGpiB,GACnB,GAAI,oBAAsBsB,OAAOc,UAAU8f,SAASpiB,KAAKqiB,GACvD,IAAK,GAAIk7B,KAAKl7B,GACR7gB,OAAOc,UAAUmF,eAAezH,KAAKqiB,EAAGk7B,IAC1Cj7B,EAAEtiB,KAAKE,EAAGq9C,EAAGl7B,EAAEk7B,GAAIl7B,OAIvB,KAAK,GAAIpgB,GAAI,EAAG8jB,EAAI1D,EAAEvgB,OAAQG,EAAI8jB,EAAG9jB,IACnCqgB,EAAEtiB,KAAKE,EAAG+B,EAAGogB,EAAEpgB,GAAIogB,IAIzBnT,cAAe,SAASjN,EAAGogB,GACzB,GAAIk7B,GAAIt3C,SACJ6hB,EAAKy1B,EAAEruC,cAAcjN,EACzB,IAAIogB,GAAK,oBAAsB7gB,OAAOc,UAAU8f,SAASpiB,KAAKqiB,GAAI,CAChE,GAAItd,EACJ,KAAKA,IAAKsd,GACR,GAAItd,IAAK+iB,GAAIA,EAAG/iB,GAAKsd,EAAEtd,OAClB,IAAI,SAAWA,EAAG+iB,EAAG3K,UAAYkF,EAAEtd,OACnC,IAAI,SAAWA,EAAG,CACrB,GAAI6mC,GAAI2R,EAAEv/B,eAAeqE,EAAEtd,GAC3B+iB,GAAGxf,YAAYsjC,OACV9jB,GAAG8wB,aAAa7zC,EAAGsd,EAAEtd,IAEhC,MAAO+iB,IAET01B,SAAU,SAASn7B,EAAGC,GACpB,GAAID,EACF,MAAOA,GAAEo7B,UAAYp7B,EAAEo7B,UAAUlX,SAASjkB,KAAOD,EAAElT,aAAekT,EAAElT,UAAUmS,MAAM,GAAIqB,QAAO,UAAYL,EAAI,aAEnHo7B,SAAU,SAASr7B,EAAGC,GACf5hB,EAAK88C,SAASn7B,EAAGC,KAChBD,EAAEo7B,UACJp7B,EAAEo7B,UAAU7yC,IAAI0X,GAEhBD,EAAElT,UAAYkT,EAAElT,UAAUwuC,OAAS,IAAMr7B,IAI/Ck6B,YAAa,SAASn6B,EAAGC,GACnB5hB,EAAK88C,SAASn7B,EAAGC,KACfD,EAAEo7B,UACJp7B,EAAEo7B,UAAUG,OAAOt7B,GAEnBD,EAAElT,UAAYkT,EAAElT,UAAU+S,QAAQ,GAAIS,QAAO,UAAYL,EAAEa,MAAM,KAAKnB,KAAK,KAAO,UAAW,MAAO,OAI1G67B,QAAS,SAAS/1B,EAAI3H,GACpB,MAAO2H,IAAMA,IAAO7hB,SAASC,OAASia,EAAG2H,GAAMA,EAAKpnB,EAAKm9C,QAAQ/1B,EAAG7gB,WAAYkZ,KAElF29B,MAAO,SAASC,GACd,MAAsB,gBAARA,IAAoBC,SAASD,IAAQvvC,KAAKs4B,MAAMiX,KAASA,GAEzEr2C,SAAU,SAAS2a,EAAGC,EAAGpiB,GACvB,GAAIq9C,EACJ,OAAO,YACL,GAAIt7C,GAAIxC,KACJsmB,EAAIlkB,UACJo8C,EAAI,WACFV,EAAI,KACCr9C,GAAGmiB,EAAEgF,MAAMplB,EAAG8jB,IAErBm4B,EAAIh+C,IAAMq9C,CACdnwC,cAAamwC,GACbA,EAAIzuC,WAAWmvC,EAAG37B,GACd47B,GACF77B,EAAEgF,MAAMplB,EAAG8jB,KAIjBo4B,KAAM,SAASr2B,EAAIjZ,GACjB,GAAIuvC,GAAI1qC,OACJwb,EAAIpH,EAAGxI,wBACP2yB,EAAIpjC,EAAMuvC,EAAEr7B,YAAc,EAC1B4vB,EAAI9jC,EAAMuvC,EAAEn7B,YAAc,CAE9B,QACEpW,OAAQqiB,EAAEriB,OAAS8lC,EACnBhmC,OAAQuiB,EAAEviB,OACV+S,KAAMwP,EAAExP,KAAOuyB,EACfnrB,MAAOoI,EAAEpI,MAAQmrB,EACjBxlC,IAAKyiB,EAAEziB,IAAMkmC,EACb77B,MAAOoY,EAAEpY,QAGbunC,SAAU,SAASh8B,EAAGC,GACpB,MAAOD,GAAE9gB,QAAQ+gB,IAAM,GAEzBg8B,SAAU,SAASx2B,GACjB,KAAOA,EAAG/H,YACR+H,EAAG5gB,YAAY4gB,EAAG/H,cAmCpBw+B,EAAS,WACX,GAAI9+C,KAAKuX,MAAMlV,OAAQ,CACrB,GAAIikB,GAAI9f,SAASu4C,wBAEjB,IAAI/+C,KAAKgE,OAAOg7C,WAAY,CAC1B,GAAIC,GAAQj/C,KAAKi/C,MAAMlqC,MAAM,EAAG/U,KAAKk/C,UAErCj+C,GAAK48C,KAAKoB,EAAO,SAAS35C,EAAGiS,GAC3BtW,EAAK48C,KAAKtmC,EAAO,SAASyM,EAAGjG,GAC3B8+B,EAAW9+B,EAAMuI,EAAGtmB,KAAKm/C,eACxBn/C,OACFA,UAEHiB,GAAK48C,KAAK79C,KAAKuX,MAAO,SAASjS,EAAGyY,GAChC8+B,EAAW9+B,EAAMuI,EAAGtmB,KAAKm/C,eACxBn/C,KAGDsmB,GAAE84B,oBACJn+C,EAAK87C,YAAY/8C,KAAKuX,MAAMvX,KAAKq/C,UAAW,UAC5Cr/C,KAAKq/C,SAAW/4B,EAAEjc,cAAc,mBAAmBmsB,IACnDv1B,EAAKg9C,SAASj+C,KAAKuX,MAAMvX,KAAKq/C,UAAW,WAG3Cr/C,KAAKi9B,KAAKp0B,YAAYyd,KAStBg5B,EAAU,SAAS98C,GACrB,GAAIoN,GAASpN,EAAEoN,MACV5P,MAAKY,UAAUkmC,SAASl3B,KAAY5P,KAAKu/C,SAAUt+C,EAAK88C,SAAS/9C,KAAKY,UAAW,WACpFZ,KAAK2X,SAWL6nC,EAAa,SAASt9C,EAAQ2B,GAChCA,EAAOA,GAAQ3B,CACf,IAAIoG,GAAUtI,KAAKm/C,aAAen/C,KAAKgE,OAAOy7C,aAAa57C,GAAQ3B,EAAO86C,YACtExD,EAAMv4C,EAAKwO,cAAc,MAC3BiwC,MAAO,iBACP9a,KAAMt8B,EACNq3C,KAAM,WACNC,iBAAiB,GAgBnB,OAbApG,GAAIhjB,IAAMt0B,EAAOs0B,IAEjBx2B,KAAKuX,MAAMvE,KAAKwmC,GAEZt3C,EAAOg6C,iBACTl8C,KAAKk8C,gBAAgBlpC,KAAK9Q,EAAOs0B,KAG/Bt0B,EAAOkP,WACTooC,EAAIpoC,UAAW,EACfnQ,EAAKg9C,SAASzE,EAAK,aAGdA,GAOLO,EAAQ,WAEV/5C,KAAK6/C,mBAAqB7/C,KAAKgE,OAAOg7C,YAAch/C,KAAKgE,OAAOg7C,WAAa,EAGzEpC,EAAM58C,KAAKgE,OAAQ,WACjB/C,EAAKo9C,MAAMr+C,KAAKgE,OAAOqT,OACzBrX,KAAKqX,MAAQrX,KAAKgE,OAAOqT,MAAQ,KAEP,SAAtBrX,KAAKgE,OAAOqT,MACdrX,KAAKqX,MAAQ,OACJpW,EAAK29C,SAAS5+C,KAAKgE,OAAOqT,MAAO,OAC1CrX,KAAKqX,MAAQrX,KAAKgE,OAAOqT,QAK/BrX,KAAKY,UAAYK,EAAKwO,cAAc,OAClCiwC,MAAO,sBAIL1/C,KAAKgE,OAAO87C,aACd7+C,EAAKg9C,SAASj+C,KAAKY,UAAWZ,KAAKgE,OAAO87C,aAIxC9/C,KAAK+/C,aACP9+C,EAAKg9C,SAASj+C,KAAKY,UAAW,kBAE9BK,EAAKg9C,SAASj+C,KAAKY,UAAW,mBAIhCZ,KAAKqoB,GAAG23B,UAAY,EAGhBhgD,KAAKgE,OAAOq5C,gBAAkBr9C,KAAK+/C,aACrC9+C,EAAKg9C,SAASj+C,KAAKqoB,GAAI,mBAEvBpnB,EAAKg9C,SAASj+C,KAAKqoB,GAAI,kBAGzBroB,KAAKiS,SAAWhR,EAAKwO,cAAc,OACjCiwC,MAAO,mBACPtuC,SAAUpR,KAAKoR,SACf4uC,SAAU,EACVC,iBAAiB,IAGnBjgD,KAAKkgD,MAAQj/C,EAAKwO,cAAczP,KAAKqoB,GAAGq0B,SAAW,KAAO,QACxDgD,MAAO,iBAGT,IAAIS,GAAWl/C,EAAKwO,cAAc,OAChCiwC,MAAO,6BA+CT,IA5CA1/C,KAAKi9B,KAAOh8B,EAAKwO,cAAc,MAC7BiwC,MAAO,kBACPC,KAAM,OACNS,eAAe,EACfH,iBAAiB,IAGnBjgD,KAAKqgD,OAASp/C,EAAKwO,cAAc,OAC/BiwC,MAAO,mBAGT1/C,KAAKqoB,GAAG8wB,aAAa,eAAe,GAEhCn5C,KAAKoR,WACPpR,KAAKqoB,GAAGjX,UAAW,GAGjBpR,KAAKqoB,GAAGq0B,WACVz7C,EAAKg9C,SAASj+C,KAAKkgD,MAAO,gBAC1Bj/C,EAAKg9C,SAASj+C,KAAKY,UAAW,YAG9BZ,KAAKsgD,QAGLtgD,KAAKugD,eAAiBvgD,KAAKwgD,sBAAsB,SAGjDxgD,KAAKygD,gBAAkBzgD,KAAKwgD,sBAAsB,QAGpDxgD,KAAKiS,SAASpJ,YAAY7I,KAAKkgD,OAE3BlgD,KAAKgE,OAAOm4C,YACdn8C,KAAK0gD,YAAcz/C,EAAKwO,cAAc,UACpCiwC,MAAO,gBACPhzC,KAAM,WAGR1M,KAAKY,UAAUiI,YAAY7I,KAAK0gD,aAEhCz/C,EAAKg9C,SAASj+C,KAAKY,UAAW,cAG5BZ,KAAKgE,OAAOs5C,SAAU,CACxB,GAAIr/B,GAAKhd,EAAKwO,cAAc,MAC1BiwC,MAAO,aAET1/C,MAAKmK,MAAQlJ,EAAKwO,cAAc,SAC9BiwC,MAAO,oBACPrD,YAAar8C,KAAKgE,OAAOu5C,eACzBoD,SAAU,EACV16C,aAAc,MACd26C,YAAa,MACbC,eAAgB,MAChBnhB,WAAY,QACZigB,KAAM,UACNjzC,KAAM,WAGRuR,EAAGpV,YAAY7I,KAAKmK,OACpBnK,KAAKkgD,MAAMr3C,YAAYoV,GACvBhd,EAAKg9C,SAASj+C,KAAKY,UAAW,YAE9BZ,KAAK8gD,eAAiB,KAClB9gD,KAAKgE,OAAO88C,gBACd9gD,KAAK8gD,cAAgB9gD,KAAK8gD,cAAc90C,OAAOhM,KAAKgE,OAAO88C,gBAI3D9gD,KAAKgE,OAAOk5C,aACdl9C,KAAKmK,MAAQlJ,EAAKwO,cAAc,SAC9BiwC,MAAO,gBACPiB,UAAW,EACX16C,aAAc,MACd26C,YAAa,MACbC,eAAgB,MAChBnhB,WAAY,QACZigB,KAAM,UACNjzC,KAAM,WAER1M,KAAK+gD,WAAa9/C,EAAKwO,cAAc,UACnCiwC,MAAO,sBACPhzC,KAAM,WAER1M,KAAKghD,eAAiB//C,EAAKwO,cAAc,OACvCiwC,MAAO,4BAGT1/C,KAAKghD,eAAen4C,YAAY7I,KAAKmK,OACrCnK,KAAKghD,eAAen4C,YAAY7I,KAAK+gD,YACrCZ,EAASt3C,YAAY7I,KAAKghD,iBAG5Bb,EAASt3C,YAAY7I,KAAKqgD,QAC1BF,EAASt3C,YAAY7I,KAAKi9B,MAG1Bj9B,KAAKuX,SAGLvX,KAAKa,WAGDb,KAAKqoB,GAAGxnB,QAAQwB,SAClBrC,KAAKa,WAAakU,MAAMxU,KAAKP,KAAKqoB,GAAGxnB,SAKvC,IAAIogD,IAAQ,EACRj9B,EAAI,CAyBR,IAxBIhkB,KAAKqoB,GAAGxV,SAASxQ,QACnBpB,EAAK48C,KAAK79C,KAAKqoB,GAAGxV,SAAU,SAASvN,EAAGkR,GACb,aAArBA,EAAQjI,UAEV0yC,EAAQhgD,EAAKwO,cAAc,MACzBiwC,MAAO,mBACPC,KAAM,QACN/a,KAAM,uCAAyCpuB,EAAQ0pC,MAAQ,UAGjEj/C,EAAK48C,KAAKrnC,EAAQ3D,SAAU,SAAS2/B,EAAGnqB,GACtCA,EAAGmO,IAAMxS,EACTi9B,EAAMp4C,YAAY22C,EAAWj/C,KAAKP,KAAMqoB,EAAI44B,IAC5Cj9B,KACChkB,QAEHwW,EAAQggB,IAAMxS,EACdw7B,EAAWj/C,KAAKP,KAAMwW,GACtBwN,MAEDhkB,MAIDA,KAAKgE,OAAOH,MAAQiR,MAAMtP,QAAQxF,KAAKgE,OAAOH,MAAO,CACvD7D,KAAK6D,OACL,IACI3B,GADAg/C,GAAW,CAGfD,IAAQ,EACRj9B,EAAI,EAEJ/iB,EAAK48C,KAAK79C,KAAKgE,OAAOH,KAAM,SAASyB,EAAGk0C,GAElCoD,EAAMpD,EAAK,aACb0H,EAAWjgD,EAAKwO,cAAc,YAC5BywC,MAAO1G,EAAI5uC,OAGbq2C,EAAQhgD,EAAKwO,cAAc,MACzBiwC,MAAO,mBACPC,KAAM,QACN/a,KAAM,uCAAyC4U,EAAI5uC,KAAO,UAG5D3J,EAAK48C,KAAKrE,EAAI3mC,SAAU,SAAS2/B,EAAG3uC,GAClC3B,EAAS,GAAIi/C,QAAOt9C,EAAK+G,KAAM/G,EAAK6E,OAAO,EAAO7E,EAAKmE,eAAe,cAAiC,IAAlBnE,EAAKoO,UAE1F/P,EAAOkP,SAAWwrC,EAAM/4C,EAAM,YAE9B7D,KAAKa,QAAQmS,KAAK9Q,GAElBg/C,EAASr4C,YAAY3G,GAErBA,EAAOs0B,IAAMxS,EAEbi9B,EAAMp4C,YAAY22C,EAAWj/C,KAAKP,KAAMkC,EAAQ2B,IAEhD7D,KAAK6D,KAAKmgB,GAAKngB,EAEfmgB,KACChkB,QAEHkC,EAAS,GAAIi/C,QAAO3H,EAAI5uC,KAAM4uC,EAAI9wC,OAAO,EAAO8wC,EAAIxxC,eAAe,cAAgC,IAAjBwxC,EAAIvnC,UAEtF/P,EAAOkP,SAAWwrC,EAAMpD,EAAK,YAE7Bx5C,KAAKa,QAAQmS,KAAK9Q,GAElBA,EAAOs0B,IAAMxS,EAEbw7B,EAAWj/C,KAAKP,KAAMkC,EAAQs3C,GAE9Bx5C,KAAK6D,KAAKmgB,GAAKw1B,EAEfx1B,MAEDhkB,MAGLA,KAAK4U,aAAY,EAEjB,IAAII,EACJhV,MAAKq/C,SAAW,CAChB,KAAK,GAAI/5C,GAAI,EAAGA,EAAItF,KAAKuX,MAAMlV,OAAQiD,IAGrC,GAFA0P,EAAQhV,KAAKuX,MAAMjS,IAEdrE,EAAK88C,SAAS/oC,EAAO,YAAa,CAErC/T,EAAKg9C,SAASjpC,EAAO,UACrBhV,KAAKq/C,SAAW/5C,CAChB,OAKAtF,KAAK6/C,qBACP7/C,KAAKk/C,UAAY,EAGjBl/C,KAAKohD,YAGPphD,KAAKY,UAAUiI,YAAY7I,KAAKiS,UAChCjS,KAAKY,UAAUiI,YAAYs3C,GAE3BngD,KAAKqhD,QAAUpgD,EAAKwO,cAAc,OAChCiwC,MAAO,wBAIT1/C,KAAKshD,iBAELthD,KAAKiS,SAASpJ,YAAY7I,KAAKqhD,SAG3BrhD,KAAKoR,UACPpR,KAAKuhD,UAGPvhD,KAAKqoB,GAAG7gB,WAAWmS,aAAa3Z,KAAKY,UAAWZ,KAAKqoB,IACrDroB,KAAKY,UAAUiI,YAAY7I,KAAKqoB,KAQ9Bm5B,EAAW,SAASh/C,GAItB,GAHAA,EAAIA,GAAKyR,OAAO1E,OAGXvP,KAAKuX,MAAMlV,SAAWrC,KAAKu/C,SAAWt+C,EAAK29C,UAAU,GAAI,GAAI,IAAKp8C,EAAEmT,OAEvE,YADA3V,KAAKyhD,YAAa,EAMpB,IAFAj/C,EAAEqN,iBAEc,KAAZrN,EAAEmT,MAEJ,QAAI3V,KAAKgE,OAAOs5C,UAAYt9C,KAAKmK,MAAMzB,MAAMrG,OAAS,IAI/CrC,KAAKuB,OAAOvB,KAAKq/C,SAG1B,IAAI7qC,GAAWktC,EAAS1hD,KAAKuX,MAAMvX,KAAKq/C,SAExC,QAAQ78C,EAAEmT,OACR,IAAK,IACHnB,EAAY,EACRxU,KAAKq/C,SAAW,GAClBr/C,KAAKq/C,UAEP,MACF,KAAK,IACH7qC,EAAY,EACRxU,KAAKq/C,SAAWr/C,KAAKuX,MAAMlV,OAAS,GACtCrC,KAAKq/C,WASX,IALAr/C,KAAKyhD,YAAa,EAKXxgD,EAAK88C,SAAS/9C,KAAKuX,MAAMvX,KAAKq/C,UAAW,aAAep+C,EAAK88C,SAAS/9C,KAAKuX,MAAMvX,KAAKq/C,UAAW,aAOtG,GANI7qC,EACFxU,KAAKq/C,WAELr/C,KAAKq/C,WAGHr/C,KAAK2hD,UAAW,CAClB,GAAI3hD,KAAKq/C,SAAWr/C,KAAKi9B,KAAK2kB,iBAAiBprB,IAAK,CAClDx2B,KAAKq/C,SAAWr/C,KAAKi9B,KAAK2kB,iBAAiBprB,GAC3C,OACK,GAAIx2B,KAAKq/C,SAAWr/C,KAAKi9B,KAAK4kB,kBAAkBrrB,IAAK,CAC1Dx2B,KAAKq/C,SAAWr/C,KAAKi9B,KAAK4kB,kBAAkBrrB,GAC5C,QAMN,GAAI/G,GAAIxuB,EAAKy9C,KAAK1+C,KAAKuX,MAAMvX,KAAKq/C,UAE7B7qC,IAOmB,IAAlBxU,KAAKq/C,SACPr/C,KAAKi9B,KAAK5vB,UAAY,EACZoiB,EAAEziB,IAAMyiB,EAAEviB,OAAWlN,KAAK8hD,SAAS90C,IAAMhN,KAAK8hD,SAAS50C,SACjElN,KAAKi9B,KAAK5vB,UAAYrN,KAAKi9B,KAAK5vB,WAAcoiB,EAAEziB,IAAMyiB,EAAEviB,QAAWlN,KAAK8hD,SAAS90C,IAAMhN,KAAK8hD,SAAS50C,UAInGlN,KAAKq/C,WAAar/C,KAAKi9B,KAAKmiB,kBAAoB,GAAKp/C,KAAK6/C,oBAC5Dz7C,EAAK7D,KAAKP,OAdU,IAAlBA,KAAKq/C,SACPr/C,KAAKi9B,KAAK5vB,UAAY,EACboiB,EAAEziB,IAAMhN,KAAK8hD,SAAS90C,IAAM,IACrChN,KAAKi9B,KAAK5vB,UAAYrN,KAAKi9B,KAAK5vB,WAAaoiB,EAAEziB,IAAMhN,KAAK8hD,SAAS90C,MAenE00C,GACFzgD,EAAK87C,YAAY2E,EAAQ,UAG3BzgD,EAAKg9C,SAASj+C,KAAKuX,MAAMvX,KAAKq/C,UAAW,WAOvC0C,EAAS,SAAShkC,GACpB,GACI0R,GADAmiB,EAAO5xC,KAGPgiD,EAAUx7C,SAASu4C,yBACnB78C,EAASlC,KAAKa,QAAQkd,EAAKyY,KAC3B3yB,EAAO7D,KAAK6D,KAAO7D,KAAK6D,KAAKka,EAAKyY,KAAOt0B,EACzCoG,EAAUtI,KAAKiiD,eAAiBjiD,KAAKgE,OAAOk+C,gBAAgBr+C,GAAQ3B,EAAO86C,YAE3E/D,EAAMh4C,EAAKwO,cAAc,MAC3BiwC,MAAO,cACP9a,KAAMt8B,IAEJ65C,EAAMlhD,EAAKwO,cAAc,UAC3BiwC,MAAO,qBACPhzC,KAAM,UAWR,IARAusC,EAAIpwC,YAAYs5C,GAGhBlJ,EAAIziB,IAAMzY,EAAKyY,IACfyiB,EAAIA,IAAM/2C,EAAOwG,MAEjB1I,KAAKsgD,KAAKttC,KAAKimC,GAEXj5C,KAAKgE,OAAOm5C,aAAc,CAE5B,GAAImD,GAAOtgD,KAAKsgD,KAAKvrC,OAGrB0a,GAAI,SAAS6uB,EAAK3kB,GAChB2kB,EAAI77B,QAAQ,eAAgB,SAASmvB,EAAM3rB,EAAIm8B,GAC7CzoB,EAAI3mB,MAAMiT,GAAM1I,EAAAA,EAAU6kC,GAAM,QAIpC9B,EAAK1vC,KAAK,SAASgS,EAAGC,GACpB,GAEIw/B,GAAIC,EAFJ9P,KACAU,IAaJ,MAXiC,IAA7BtB,EAAK5tC,OAAOm5C,cACdkF,EAAKz/B,EAAEq2B,IACPqJ,EAAKz/B,EAAEo2B,KAC+B,SAA7BrH,EAAK5tC,OAAOm5C,eACrBkF,EAAKz/B,EAAEo6B,YACPsF,EAAKz/B,EAAEm6B,aAGTvtB,EAAE4yB,EAAI7P,GACN/iB,EAAE6yB,EAAIpP,GAECV,EAAEnwC,QAAU6wC,EAAE7wC,QAAQ,CAC3B,GAAIkgD,GAAK/P,EAAEva,QACPuqB,EAAKtP,EAAEjb,QACPwqB,EAAMF,EAAG,GAAKC,EAAG,IAAOD,EAAG,GAAGnR,cAAcoR,EAAG,GACnD,IAAIC,EAAI,MAAOA,GAGjB,MAAOjQ,GAAEnwC,OAAS6wC,EAAE7wC,SAGtBpB,EAAK48C,KAAKyC,EAAM,SAASh7C,EAAGo9C,GAC1BV,EAAQn5C,YAAY65C,KAGtB1iD,KAAKkgD,MAAMxiC,UAAY,OAGvBskC,GAAQn5C,YAAYowC,EAGlBj5C,MAAKgE,OAAOs5C,SACdt9C,KAAKkgD,MAAMvmC,aAAaqoC,EAAShiD,KAAKmK,MAAM3C,YAE5CxH,KAAKkgD,MAAMr3C,YAAYm5C,IASvBW,EAAY,SAAS5kC,GACvB,GAAIk7B,IAAM,CAEVh4C,GAAK48C,KAAK79C,KAAKsgD,KAAM,SAASh7C,EAAG6mC,GAC3BA,EAAE3V,MAAQzY,EAAKyY,MACjByiB,EAAM9M,IAEPnsC,MAECi5C,IACFj5C,KAAKkgD,MAAMz4C,YAAYwxC,GACvBj5C,KAAKsgD,KAAKzkC,OAAO7b,KAAKsgD,KAAKx+C,QAAQm3C,GAAM,KAQzC70C,EAAO,WACT,GAAI64B,GAAOj9B,KAAKi9B,IAMhB,IALgBA,EAAK5vB,WACF4vB,EAAK1vB,aACL0vB,EAAK7c,cAGPpgB,KAAKk/C,UAAYl/C,KAAKi/C,MAAM58C,OAAS,CACpD,GAAIikB,GAAI9f,SAASu4C,wBAEjB99C,GAAK48C,KAAK79C,KAAKi/C,MAAMj/C,KAAKk/C,WAAY,SAAS55C,EAAGyY,GAChD8+B,EAAW9+B,EAAMuI,EAAGtmB,KAAKm/C,eACxBn/C,MAEHi9B,EAAKp0B,YAAYyd,GAEjBtmB,KAAKk/C,YAELl/C,KAAK29C,KAAK,oBACRpmC,MAAOvX,KAAKuX,MAAMlV,OAClBugD,MAAO5iD,KAAK6D,KAAKxB,OACjBwgD,KAAM7iD,KAAKk/C,UACXD,MAAOj/C,KAAKi/C,MAAM58C,WASpBygD,EAAc,YACZ9iD,KAAKgE,OAAOk5C,YAAcl9C,KAAKgE,OAAOs5C,YACxCt9C,KAAKmK,MAAMzB,MAAQ,KACnB1I,KAAK2hD,WAAY,EACb3hD,KAAKgE,OAAOk5C,YACdj8C,EAAK87C,YAAY/8C,KAAKghD,eAAgB,UAGpC//C,EAAK88C,SAAS/9C,KAAKY,UAAW,YAChCK,EAAK87C,YAAY/8C,KAAKY,UAAW,UACjCK,EAAKg9C,SAASj+C,KAAKY,UAAW,QAC9BZ,KAAKmK,MAAMD,SAGbjJ,EAAK48C,KAAK79C,KAAKuX,MAAO,SAASjS,EAAGyY,GAGhC9c,EAAK87C,YAAYh/B,EAAM,YAElB/d,KAAKm/C,eACRphC,EAAKL,UAAYK,EAAKi/B,cAEvBh9C,QAUH6hB,EAAQ,SAASuhB,EAAOlhC,GAC1B,GAAIwU,GAAS,GAAIwM,QAAOkgB,EAAO,KAAKrd,KAAK7jB,EAAO86C,YAChD,SAAItmC,GACKxU,EAAO86C,YAAYv6B,QAAQ/L,EAAO,GAAI,+BAAiCA,EAAO,GAAK,YAM1FulC,EAAU,SAAS5zB,EAAIrkB,GAIzB,GAFAA,EAASA,OAEJqkB,EACH,KAAM,IAAItnB,OAAM,wEAUlB,IAPAf,KAAKqoB,GAAKA,EAGQ,gBAAPA,KACTroB,KAAKqoB,GAAK7hB,SAAS6D,cAAcge,IAGnB,OAAZroB,KAAKqoB,GACP,KAAM,IAAItnB,OAAM,sDAGlB,IAAuC,WAAnCf,KAAKqoB,GAAG9Z,SAASusB,cACnB,KAAM,IAAI/5B,OAAM,gEAGlBf,MAAK8+C,OAAO96C,GAQdi4C,GAAQp5C,UAAUi8C,OAAS,SAAS96C,GAElC,IAAIhE,KAAK+iD,SAAT,CAGA/iD,KAAKgE,OAAS/C,EAAK6C,OAAOm5C,EAAej5C,GAGzChE,KAAKgjD,aAAehjD,KAAKqoB,GAAG3b,KAG5B1M,KAAKijD,cAAgBjjD,KAAKqoB,GAAG23B,SAG7BhgD,KAAKk8C,mBAGLl8C,KAAKkjD,oBAAsBljD,KAAKqoB,GAAGxnB,QAAQwB,QAEvCrC,KAAKgE,OAAO04C,UAAY18C,KAAKgE,OAAOs5C,YACtCt9C,KAAKqoB,GAAGq0B,UAAW,GAIrB18C,KAAKoR,SAAWwrC,EAAM58C,KAAKgE,OAAQ,YAEnChE,KAAKu/C,QAAS,EAEVv/C,KAAKgE,OAAOs5C,WACdt9C,KAAKgE,OAAOk5C,YAAa,GAG3Bl9C,KAAKyhD,YAAa,EAElBzhD,KAAK+/C,cAAe,EAChB,iFAAiF59B,KAAKwD,UAAUG,aAClG9lB,KAAK+/C,cAAe,GAGtB//C,KAAKm/C,aAAen/C,KAAKgE,OAAOgE,eAAe,iBAAuD,kBAA7BhI,MAAKgE,OAAOy7C,aACrFz/C,KAAKiiD,eAAiBjiD,KAAKgE,OAAOgE,eAAe,oBAA6D,kBAAhChI,MAAKgE,OAAOk+C,gBAG1F1E,EAAOr5C,MAAMnE,MAEb+5C,EAAMx5C,KAAKP,MAEXA,KAAKmjD,aAELnjD,KAAK8I,SAEL9I,KAAK8hD,SAAW7gD,EAAKy9C,KAAK1+C,KAAKi9B,MAE/Bj9B,KAAK+iD,UAAW,EAGX/iD,KAAKqoB,GAAGq0B,WACX18C,KAAKqoB,GAAG+6B,cAAgBpjD,KAAKojD,cAG/B,IAAIxR,GAAO5xC,IACXqP,YAAW,WACTuiC,EAAK+L,KAAK,iBACT,MAGL1B,EAAQp5C,UAAUwgD,YAAc,WAE9B,MADerjD,MAAKqoB,GAAGi7B,iBAAiB,mBAI1CrH,EAAQp5C,UAAU29C,sBAAwB,SAAUj7C,GAClD,GAAI0M,GAAWjS,KAAKqjD,aAIpB,UAHgBtuC,MAAMxU,KAAK0R,GACtBvG,IAAI,SAASxJ,GAAU,MAAOA,GAAOqD,KACrCuG,OAAO,SAASxG,GAAK,MAAW,QAAJA,OAAgBuB,KAAJvB,KAO/C22C,EAAQp5C,UAAUsgD,WAAa,WAE7B,GAAIvR,GAAO5xC,IAQX,IANAA,KAAKujD,UAELvjD,KAAKujD,OAAOjE,QAAUA,EAAQp3C,KAAKlI,MACnCA,KAAKujD,OAAO/B,SAAWA,EAASt5C,KAAKlI,MACrCA,KAAKujD,OAAO94C,MAAQzK,KAAKyK,MAAMvC,KAAKlI,MAEhCA,KAAKgE,OAAOq5C,gBAAkBr9C,KAAK+/C,aAAc,CAEnD//C,KAAKY,UAAU4P,iBAAiB,aAAc,SAAShO,GACjDA,EAAEghD,eAAe,GAAG5zC,SAAWgiC,EAAKvpB,IACtCupB,EAAK6R,YAILzjD,KAAKgE,OAAOq5C,gBAAkBr9C,KAAK+/C,eACrC//C,KAAKY,UAAU4P,iBAAiB,QAAS,SAAShO,GAChDA,EAAEqN,iBACFrN,EAAEyU,kBAEEzU,EAAEoN,SAAWgiC,EAAKvpB,IACpBupB,EAAK6R,UAKX,IAAIC,GAAoB,SAAS5K,EAAM7gC,GAGrC,IAAK,GADDue,GADAmtB,KAAUC,EAAQ9K,EAAK/jC,MAAM,GAExBzP,EAAE,EAAGA,EAAE2S,EAAQ5V,OAAQiD,IAC9BkxB,EAAMotB,EAAQ9hD,QAAQmW,EAAQ3S,IAC1BkxB,GAAO,EACTotB,EAAQ/nC,OAAO2a,EAAK,GAEpBmtB,EAAM3wC,KAAKiF,EAAQ3S,GAEvB,QAAQq+C,EAAOC,GAKjB5jD,MAAKqoB,GAAG7X,iBAAiB,SAAU,SAAShO,GAC1C,GAAIovC,EAAKvpB,GAAGq0B,SAAU,CACpB,GAAImH,GAAUjS,EAAK4O,sBAAsB,OACrCsD,EAAUJ,EAAkB9R,EAAK6O,gBAAiBoD,EAEtD5iD,GAAK48C,KAAKiG,EAAQ,GAAI,SAASx+C,EAAGkxB,GAChCob,EAAK7jC,OAAOyoB,IACXob,GAEH3wC,EAAK48C,KAAKiG,EAAQ,GAAI,SAASx+C,EAAGkxB,GAChCob,EAAKx/B,SAASokB,IACbob,OAGCA,GAAKvpB,GAAG+6B,eAAiB,GAC3BxR,EAAK7jC,OAAO6jC,EAAKvpB,GAAG+6B,iBAQxBpjD,KAAKgE,OAAOq5C,gBACdr9C,KAAKY,UAAU4P,iBAAiB,UAAW,SAAShO,GACpC,UAAVA,EAAE6T,KAAmBu7B,EAAK3/B,WAAazL,SAASkyC,gBAElD9G,EAAK6R,SAGLp0C,WAAW,WACTuiC,EAAKvpB,GAAGne,SACP,QAMTlK,KAAKiS,SAASzB,iBAAiB,QAAS,SAAShO,GAE1CovC,EAAKxgC,UACRwgC,EAAK6R,SAGPjhD,EAAEqN,iBACFrN,EAAEyU,oBAIJjX,KAAKkgD,MAAM1vC,iBAAiB,QAAS,SAAShO,GACxCvB,EAAK88C,SAASv7C,EAAEoN,OAAQ,uBAC1BgiC,EAAKx/B,SAAS5P,EAAEoN,OAAOpI,WAAWgvB,OAKlCx2B,KAAK0gD,aACP1gD,KAAK0gD,YAAYlwC,iBAAiB,QAASxQ,KAAKkE,MAAMgE,KAAKlI,OAI7DA,KAAKi9B,KAAKzsB,iBAAiB,YAAa,SAAShO,GAC/CA,EAAEqN,mBAIJ7P,KAAKi9B,KAAKzsB,iBAAiB,QAAS,SAAShO,GAC3CA,EAAEqN,iBACFrN,EAAEyU,iBAEF,IAAI8G,GAAO9c,EAAKm9C,QAAQ57C,EAAEoN,OAAQ,SAASyY,GACzC,MAAOA,IAAMpnB,EAAK88C,SAAS11B,EAAI,mBAG7BtK,KACG9c,EAAK88C,SAAShgC,EAAM,cACnB9c,EAAK88C,SAAShgC,EAAM,aAClB6zB,EAAKvpB,GAAGq0B,WAAa9K,EAAKvpB,GAAGq0B,UAAY9K,EAAK5tC,OAAOo4C,gBACvDxK,EAAKx/B,SAAS2L,EAAKyY,KAGrBob,EAAK7jC,OAAOgQ,EAAKyY,KAGfob,EAAK2N,SAAW3N,EAAKvpB,GAAGq0B,UAC1B9K,EAAKj6B,YAOb3X,KAAKi9B,KAAKzsB,iBAAiB,YAAa,SAAShO,GAC3CvB,EAAK88C,SAASv7C,EAAEoN,OAAQ,oBACrB3O,EAAK88C,SAASv7C,EAAEoN,OAAQ,cAC3B3O,EAAK87C,YAAYnL,EAAKr6B,MAAMq6B,EAAKyN,UAAW,UAE5Cp+C,EAAKg9C,SAASz7C,EAAEoN,OAAQ,UAExBgiC,EAAKyN,YAActqC,MAAMxU,KAAKqxC,EAAKr6B,OAAOzV,QAAQU,EAAEoN,YAMtD5P,KAAKgE,OAAOk5C,aAGdl9C,KAAKmK,MAAMqG,iBAAiB,QAAS,SAAShO,GAC5CovC,EAAK+P,WAAY,IAGnB3hD,KAAKmK,MAAMqG,iBAAiB,OAAQ,SAAShO,GAC3CovC,EAAK+P,WAAY,IAGnB3hD,KAAKmK,MAAMqG,iBAAiB,QAAS,SAAShO,GAC5CovC,EAAK/pC,SAEA+pC,EAAK5tC,OAAOs5C,WAEXt9C,KAAK0I,MAAMrG,OACbpB,EAAKg9C,SAASj+C,KAAKwH,WAAY,UAE/BvG,EAAK87C,YAAY/8C,KAAKwH,WAAY,aAMxCxH,KAAK+gD,WAAWvwC,iBAAiB,QAAS,SAAShO,GACjDovC,EAAKznC,MAAMzB,MAAQ,KACnBo6C,EAAYviD,KAAKqxC,GAEZA,EAAK3U,KAAKmiB,mBACbN,EAAOv+C,KAAKqxC,MAKd5xC,KAAKgE,OAAOs5C,UACdt9C,KAAKmK,MAAMqG,iBAAiB,QAAS,SAAShO,GAI5C,GAFAovC,EAAK/pC,SAED+pC,EAAK5tC,OAAOs5C,UAAYt9C,KAAK0I,MAAMrG,OAAQ,CAC7C,GAAIi8C,GAAMt+C,KAAK0I,MAAMw1C,MAErB,IAAgB,KAAZ17C,EAAEmT,OAAgB1U,EAAK29C,SAAShN,EAAKkP,cAAet+C,EAAE6T,KAAM,CAE9DpV,EAAK48C,KAAKjM,EAAKkP,cAAe,SAASx7C,EAAGy+C,GACxCzF,EAAMA,EAAI77B,QAAQshC,EAAG,KAGVnS,GAAKzmC,KAChBzC,MAAO41C,EACP1zC,KAAM0zC,EACNrsC,UAAU,IACT,IAMD2/B,EAAKj6B,QACLmrC,EAAYviD,KAAKqxC,KAJjB5xC,KAAK0I,MAAQ,GACbkpC,EAAKoS,WAAW,oCAU1BhkD,KAAK8I,OAAS7H,EAAKgH,SAAS,WAEtB2pC,EAAK2N,QAAU3N,EAAK5tC,OAAOo5C,eAC7BxL,EAAKj6B,QAEHi6B,EAAKv6B,QACPu6B,EAAKhxC,UAAUoe,MAAM3H,MAAQu6B,EAAKv6B,OAEpCu6B,EAAKqS,UACJ,IAECjkD,KAAK6/C,qBACP7/C,KAAKkkD,cAAgBjjD,EAAKgH,SAAS,WACjC7D,EAAK7D,KAAKP,OACT,IAEHA,KAAKi9B,KAAKzsB,iBAAiB,SAAUxQ,KAAKkkD,cAAch8C,KAAKlI,QAI/DwG,SAASgK,iBAAiB,QAASxQ,KAAKujD,OAAOjE,SAC/CrrC,OAAOzD,iBAAiB,UAAWxQ,KAAKujD,OAAO/B,UAE/CvtC,OAAOzD,iBAAiB,SAAUxQ,KAAK8I,QACvCmL,OAAOzD,iBAAiB,SAAUxQ,KAAK8I,QAGnC9I,KAAKqoB,GAAGssB,MACV30C,KAAKqoB,GAAGssB,KAAKnkC,iBAAiB,QAASxQ,KAAKujD,OAAO94C,QAQvDwxC,EAAQp5C,UAAU+R,YAAc,SAASnK,GAqCvC,GAlCKzK,KAAKgE,OAAOH,MAAS7D,KAAKqoB,GAAGq0B,WAAY18C,KAAKqoB,GAAGxnB,QAAQwB,SAE9B,IAA1BrC,KAAKqoB,GAAG+6B,gBACLpjD,KAAKqoB,GAAGxnB,QAAQ,GAAGq7C,iBAAoBl8C,KAAKgE,OAAOk4C,kBACtDl8C,KAAKqoB,GAAG+6B,eAAiB,IAI7BpjD,KAAKojD,cAAgBpjD,KAAKqoB,GAAG+6B,cAEzBpjD,KAAKojD,eAAiB,GACxBpjD,KAAK+N,OAAO/N,KAAKojD,gBAOjBpjD,KAAKgE,OAAO04C,UAAkC,eAAtB18C,KAAKgjD,eAAkChjD,KAAKgE,OAAOH,MACzE7D,KAAKqoB,GAAGxnB,QAAQ,GAAGoR,WAAajS,KAAKqoB,GAAGxnB,QAAQ,GAAGq7C,kBACrDl8C,KAAKqoB,GAAGxnB,QAAQ,GAAGoR,UAAW,GAIlChR,EAAK48C,KAAK79C,KAAKa,QAAS,SAASyE,EAAGpD,GAC9BA,EAAO+P,UAAY/P,EAAOg6C,iBAC5Bl8C,KAAK+N,OAAO7L,EAAOs0B,MAEpBx2B,MAECA,KAAKgE,OAAOmgD,eACdnkD,KAAKg3B,SAASh3B,KAAKgE,OAAOmgD,eAGxBnkD,KAAKgE,OAAOH,KAAM,EAGf7D,KAAKqoB,GAAGq0B,UAAY18C,KAAKgE,OAAOk4C,iBAAmBl8C,KAAKqoB,GAAG+6B,cAAgB,GAC9EpjD,KAAK+N,OAAO,EAGd,IAAIiW,GAAI,CACR/iB,GAAK48C,KAAK79C,KAAKgE,OAAOH,KAAM,SAASyB,EAAGk0C,GAElCoD,EAAMpD,EAAK,YACbv4C,EAAK48C,KAAKrE,EAAI3mC,SAAU,SAAS2/B,EAAGz0B,GAC9BA,EAAK/V,eAAe,cAAiC,IAAlB+V,EAAK9L,UAC1CjS,KAAK+N,OAAOiW,GAEdA,KACChkB,OAECw5C,EAAIxxC,eAAe,cAAgC,IAAjBwxC,EAAIvnC,UACxCjS,KAAK+N,OAAOiW,GAEdA,MAEDhkB,QAQPi8C,EAAQp5C,UAAUG,QAAU,WAErBhD,KAAK+iD,WAEV/iD,KAAK29C,KAAK,mBAGgB,eAAtB39C,KAAKgjD,eACPhjD,KAAKqoB,GAAGq0B,UAAW,GAGjB18C,KAAKgE,OAAOH,OACd7D,KAAKqoB,GAAG3K,UAAY,IAItBzc,EAAK87C,YAAY/8C,KAAKqoB,GAAI,kBAGtBroB,KAAKqoB,GAAGssB,MACV1zC,EAAKy8C,IAAI19C,KAAKqoB,GAAGssB,KAAM,QAAS30C,KAAKujD,OAAO94C,OAI9CxJ,EAAKy8C,IAAIl3C,SAAU,QAASxG,KAAKujD,OAAOjE,SACxCr+C,EAAKy8C,IAAIl3C,SAAU,UAAWxG,KAAKujD,OAAO/B,UAC1CvgD,EAAKy8C,IAAIzpC,OAAQ,SAAUjU,KAAK8I,QAChC7H,EAAKy8C,IAAIzpC,OAAQ,SAAUjU,KAAK8I,QAGhC9I,KAAKY,UAAU4G,WAAW48C,aAAapkD,KAAKqoB,GAAIroB,KAAKY,WAErDZ,KAAK+iD,UAAW,IAQlB9G,EAAQp5C,UAAUtB,OAAS,SAASkR,GAClC,GAAIsL,GAAO/d,KAAKuX,MAAM9E,GAClBvQ,EAASlC,KAAKa,QAAQ4R,EAEtBvQ,GAAOkP,WAIPlP,EAAO+P,UAAYhR,EAAK88C,SAAShgC,EAAM,YACzC/d,KAAKoS,SAASK,GAEdzS,KAAK+N,OAAO0E,GAGVzS,KAAKu/C,SAAWv/C,KAAKqoB,GAAGq0B,UAC1B18C,KAAK2X,UASTskC,EAAQp5C,UAAUkL,OAAS,SAAS0E,GAElC,GAAIsL,GAAO/d,KAAKuX,MAAM9E,GAClB5R,KAAakU,MAAMxU,KAAKP,KAAKqoB,GAAGxnB,SAChCqB,EAASlC,KAAKa,QAAQ4R,EAE1B,IAAIzS,KAAKqoB,GAAGq0B,SAAU,CACpB,GAAIz7C,EAAK29C,SAAS5+C,KAAKygD,gBAAiBhuC,GACtC,OAAO,CAGT,IAAIzS,KAAKgE,OAAOqgD,eAAiBrkD,KAAKsgD,KAAKj+C,SAAWrC,KAAKgE,OAAOqgD,cAEhE,MADArkD,MAAKgkD,WAAW,gBAAkBhkD,KAAKgE,OAAOqgD,cAAgB,2BAA2B,IAClF,CAGTrkD,MAAKugD,eAAevtC,KAAK9Q,EAAOwG,OAChC1I,KAAKygD,gBAAgBztC,KAAKP,GAE1BsvC,EAAOxhD,KAAKP,KAAM+d,OACb,CACL,GAAIla,GAAO7D,KAAK6D,KAAO7D,KAAK6D,KAAK4O,GAASvQ,CAC1ClC,MAAKkgD,MAAMxiC,UAAY1d,KAAKiiD,eAAiBjiD,KAAKgE,OAAOk+C,gBAAgBr+C,GAAQ3B,EAAO86C,YAExFh9C,KAAKmkD,cAAgBjiD,EAAOwG,MAC5B1I,KAAKojD,cAAgB3wC,EAErBxR,EAAK48C,KAAK79C,KAAKa,QAAS,SAASyE,EAAGg/C,GAClC,GAAI9K,GAAMx5C,KAAKuX,MAAMjS,EAEjBA,KAAMmN,IACJ+mC,GACFv4C,EAAK87C,YAAYvD,EAAK,YAExB8K,EAAEryC,UAAW,EACbqyC,EAAExgC,gBAAgB,cAEnB9jB,MAGAiB,EAAK29C,SAAS/9C,EAASqB,IAC1BlC,KAAKqoB,GAAGld,IAAIjJ,GAGd6b,EAAKo7B,aAAa,iBAAiB,GAEnCl4C,EAAKg9C,SAASlgC,EAAM,YACpB9c,EAAKg9C,SAASj+C,KAAKY,UAAW,gBAE9BsB,EAAO+P,UAAW,EAClB/P,EAAOi3C,aAAa,WAAY,IAEhCn5C,KAAK29C,KAAK,iBAAkBz7C,GAE5BlC,KAAK29C,KAAK,iBAAkBz7C,IAQ9B+5C,EAAQp5C,UAAUuP,SAAW,SAASK,EAAO8xC,GAC3C,GAAIxmC,GAAO/d,KAAKuX,MAAM9E,GAClBvQ,EAASlC,KAAKa,QAAQ4R,EAE1B,IAAIzS,KAAKqoB,GAAGq0B,SAAU,CACpB,GAAI8H,GAAWxkD,KAAKygD,gBAAgB3+C,QAAQ2Q,EAC5CzS,MAAKygD,gBAAgB5kC,OAAO2oC,EAAU,EAEtC,IAAIC,GAAWzkD,KAAKugD,eAAez+C,QAAQI,EAAOwG,MAClD1I,MAAKugD,eAAe1kC,OAAO4oC,EAAU,GAErC9B,EAAUpiD,KAAKP,KAAM+d,GAEhB/d,KAAKsgD,KAAKj+C,QACbpB,EAAK87C,YAAY/8C,KAAKY,UAAW,oBAE9B,CAEL,IAAK2jD,IAAUvkD,KAAKgE,OAAOm4C,YAAcn8C,KAAKgE,OAAOo4C,cACnD,OAAO,CAGTp8C,MAAKkgD,MAAMxiC,UAAY,GACvB1d,KAAKmkD,cAAgB,KAErBnkD,KAAKqoB,GAAG+6B,cAAgBpjD,KAAKojD,eAAiB,EAE9CniD,EAAK87C,YAAY/8C,KAAKY,UAAW,gBAInCZ,KAAKuX,MAAM9E,GAAO0mC,aAAa,iBAAiB,GAEhDl4C,EAAK87C,YAAY/8C,KAAKuX,MAAM9E,GAAQ,YAEpCvQ,EAAO+P,UAAW,EAElB/P,EAAO4hB,gBAAgB,YAEvB9jB,KAAK29C,KAAK,iBAAkB,MAE5B39C,KAAK29C,KAAK,mBAAoBz7C,IAOhC+5C,EAAQp5C,UAAUm0B,SAAW,SAAStuB,GACpC,GAAIlD,GAAUsP,MAAMtP,QAAQkD,EAO5B,IALKlD,IACHkD,EAAQA,EAAMia,WAAWu7B,SAItBl+C,KAAKqoB,GAAGq0B,UAAYl3C,EACvB,OAAO,CAGTvE,GAAK48C,KAAK79C,KAAKa,QAAS,SAASyE,EAAGpD,IAC9BsD,GAAWvE,EAAK29C,SAASl2C,EAAMia,WAAYzgB,EAAOwG,QAAUxG,EAAOwG,QAAUA,IAC/E1I,KAAKuB,OAAOW,EAAOs0B,MAEpBx2B,OASLi8C,EAAQp5C,UAAUgH,SAAW,SAAS66C,EAAUC,GAC9C,GAAIj8C,EAEJ,IAAI1I,KAAKqoB,GAAGq0B,SACNgI,EACE1kD,KAAKygD,gBAAgBp+C,SACvBqG,KACAA,EAAM88B,UACNvkC,EAAK48C,KAAK79C,KAAKygD,gBAAiB,SAASn7C,EAAGmN,GAC1C,GAAIvQ,GAASlC,KAAKa,QAAQ4R,EAC1B/J,GAAM88B,OAAOlgC,IACXoD,MAAOxG,EAAOwG,MACdkC,KAAM1I,EAAO86C,cAEdh9C,OAGL0I,EAAQ1I,KAAKugD,eAAexrC,YAG9B,IAAI2vC,EAAU,CACZ,GAAIxiD,GAASlC,KAAKa,QAAQb,KAAKojD,cAC/B16C,IACEA,MAAOxG,EAAOwG,MACdkC,KAAM1I,EAAO86C,iBAGft0C,GAAQ1I,KAAKmkD,aAQjB,OAJIO,IAAYC,IACdj8C,EAAQnF,KAAKC,UAAUkF,IAGlBA,GAOTuzC,EAAQp5C,UAAUsI,IAAM,SAAStH,EAAM+gD,GACrC,GAAI/gD,EAAM,CAMR,GAJA7D,KAAK6D,KAAO7D,KAAK6D,SACjB7D,KAAKuX,MAAQvX,KAAKuX,UAClBvX,KAAKa,QAAUb,KAAKa,YAEhBiU,MAAMtP,QAAQ3B,GAEhB5C,EAAK48C,KAAKh6C,EAAM,SAASyB,EAAG+N,GAC1BrT,KAAKmL,IAAIkI,EAAKuxC,IACb5kD,UAIA,IAAI,oBAAsB+B,OAAOc,UAAU8f,SAASpiB,KAAKsD,GAAO,CAEnE,GAAI+gD,EAAgB,CAClB,GAAIC,IAAO,CAQX,IANA5jD,EAAK48C,KAAK79C,KAAKa,QAAS,SAASyE,EAAGpD,GAC9BA,EAAOwG,MAAMoyB,gBAAkBj3B,EAAK6E,MAAMoyB,gBAC5C+pB,GAAO,KAIPA,EACF,OAAO,EAIX,GAAI3iD,GAASjB,EAAKwO,cAAc,SAAU5L,EAkB1C,OAhBA7D,MAAK6D,KAAKmP,KAAKnP,GAGf7D,KAAKa,QAAQmS,KAAK9Q,GAGlBA,EAAOs0B,IAAMx2B,KAAKa,QAAQwB,OAAS,EAAIrC,KAAKa,QAAQwB,OAAS,EAAI,EAGjEm9C,EAAWj/C,KAAKP,KAAMkC,GAGlB2B,EAAKoO,UACPjS,KAAK+N,OAAO7L,EAAOs0B,KAGdt0B,EAYT,MAPAlC,MAAKshD,iBAGDthD,KAAKgE,OAAOg7C,YACdh/C,KAAKohD,YAGA,IASXnF,EAAQp5C,UAAUs7C,OAAS,SAASmG,GAClC,GAAIzjD,KAgBJ,IAfIiU,MAAMtP,QAAQ8+C,GAChBrjD,EAAK48C,KAAKyG,EAAG,SAASh/C,EAAGk0C,GACnBv4C,EAAKo9C,MAAM7E,GACb34C,EAAQmS,KAAKhT,KAAK8kD,iBAAiBtL,IACb,gBAAN8K,IAChBzjD,EAAQmS,KAAKhT,KAAK+kD,iBAAiBvL,KAEpCx5C,MAEMiB,EAAKo9C,MAAMiG,GACpBzjD,EAAQmS,KAAKhT,KAAK8kD,iBAAiBR,IACb,gBAANA,IAChBzjD,EAAQmS,KAAKhT,KAAK+kD,iBAAiBT,IAGjCzjD,EAAQwB,OAAQ,CAClB,GAAIoQ,EACJxR,GAAK48C,KAAKh9C,EAAS,SAASyE,EAAGpD,GAC7BuQ,EAAQvQ,EAAOs0B,IAGfx2B,KAAKqoB,GAAG81B,OAAOj8C,GAGflC,KAAKa,QAAQgb,OAAOpJ,EAAO,EAI3B,IAAIjL,GAAaxH,KAAKuX,MAAM9E,GAAOjL,UAE/BA,IACFA,EAAWC,YAAYzH,KAAKuX,MAAM9E,IAIpCzS,KAAKuX,MAAMsE,OAAOpJ,EAAO,GAGzBxR,EAAK48C,KAAK79C,KAAKa,QAAS,SAASyE,EAAGk0C,GAClCA,EAAIhjB,IAAMlxB,EACVtF,KAAKuX,MAAMjS,GAAGkxB,IAAMlxB,GACnBtF,OACFA,MAIHA,KAAKshD,iBAGDthD,KAAKgE,OAAOg7C,YACdh/C,KAAKohD,aAQXnF,EAAQp5C,UAAUmiD,UAAY,WAG5BhlD,KAAKkE,OAAM,GAGXjD,EAAK48C,KAAK79C,KAAKqoB,GAAGxnB,QAAS,SAASyE,EAAGpD,GACrClC,KAAKqoB,GAAG81B,OAAOj8C,IACdlC,MAGHiB,EAAK49C,SAAS7+C,KAAKi9B,MAGnBj9B,KAAKuX,SACLvX,KAAKa,WACLb,KAAK6D,QAEL7D,KAAKq/C,SAAW,EAEZr/C,KAAK6/C,qBACP7/C,KAAK6/C,oBAAqB,EAE1B7/C,KAAKk/C,UAAY,EACjBl/C,KAAKi/C,UAIPj/C,KAAKshD,kBAOPrF,EAAQp5C,UAAUgF,OAAS,SAASgtB,GAElC,IAAI70B,KAAKyhD,WAAT,CAEA5sB,EAASA,GAAU70B,KAAKmK,MAAMzB,KAE9B,IAAI4d,GAAI9f,SAASu4C,wBAQjB,IALA/+C,KAAKilD,gBAGLhkD,EAAK49C,SAAS7+C,KAAKi9B,MAEfpI,EAAOxyB,OAAS,EAsBlB,GApBApB,EAAK48C,KAAK79C,KAAKa,QAAS,SAASyE,EAAGpD,GAClC,GAAI6b,GAAO/d,KAAKuX,MAAMrV,EAAOs0B,IACdv1B,GAAK29C,SAAS18C,EAAO86C,YAAYliB,cAAejG,EAAOiG,iBAErD54B,EAAOkP,UAEtByrC,EAAW9+B,EAAMuI,EAAGtmB,KAAKm/C,cAEzBl+C,EAAK87C,YAAYh/B,EAAM,YAGlB/d,KAAKm/C,eACRphC,EAAKL,UAAYmE,EAAMgT,EAAQ3yB,KAGjCjB,EAAKg9C,SAASlgC,EAAM,aAErB/d,MAGEsmB,EAAE84B,kBAIA,CAEL,GAAIsC,GAAS1hD,KAAKuX,MAAMvX,KAAKq/C,UACzB6F,EAAU5+B,EAAEu7B,iBAEhB5gD,GAAK87C,YAAY2E,EAAQ,UAEzB1hD,KAAKq/C,SAAW6F,EAAQ1uB,IAExBv1B,EAAKg9C,SAASiH,EAAS,cAZlBllD,MAAKgE,OAAOs5C,UACft9C,KAAKgkD,WAAW,mBAepBlF,GAAOv+C,KAAKP,KAGdA,MAAKi9B,KAAKp0B,YAAYyd,KAOxB21B,EAAQp5C,UAAU4gD,OAAS,WACpBzjD,KAAKoR,WACJpR,KAAKu/C,OACPv/C,KAAK2X,QAEL3X,KAAKmhC,SASX8a,EAAQp5C,UAAUs+B,KAAO,WAEvB,GAAIyQ,GAAO5xC,IAEX,SAAKA,KAAKa,QAAQwB,SAIbrC,KAAKu/C,QACRv/C,KAAK29C,KAAK,gBAGZ39C,KAAKu/C,QAAS,EAEVv/C,KAAK+/C,cAAgB//C,KAAKgE,OAAOq5C,gBACnCp8C,EAAKg9C,SAASj+C,KAAKY,UAAW,oBAE1BZ,KAAKgE,OAAOH,MAGd5C,EAAK48C,KAAK79C,KAAKa,QAAS,SAASyE,EAAGpD,GAClClC,KAAKqoB,GAAGld,IAAIjJ,IACXlC,SAMPiB,EAAKg9C,SAASj+C,KAAKY,UAAW,QAE9Bk+C,EAAOv+C,KAAKP,MAEZA,KAAKikD,SAELjkD,KAAKi9B,KAAK5vB,UAAY,EAEtBpM,EAAK87C,YAAY/8C,KAAKY,UAAW,UAEjCZ,KAAKiS,SAASknC,aAAa,iBAAiB,GAE5Cn5C,KAAKi9B,KAAKkc,aAAa,eAAe,GACtCn5C,KAAKi9B,KAAKkc,aAAa,iBAAiB,QAEpCn5C,KAAKgE,OAAOk5C,aAAel9C,KAAKgE,OAAOs5C,UACzCjuC,WAAW,WACTuiC,EAAKznC,MAAMD,QAEX0nC,EAAKznC,MAAM61C,SAAW,GACrB,QAQP/D,EAAQp5C,UAAU8U,MAAQ,WAQxB,GANI3X,KAAKu/C,QACPv/C,KAAK29C,KAAK,iBAGZ39C,KAAKu/C,QAAS,EAEVv/C,KAAK+/C,cAAgB//C,KAAKgE,OAAOq5C,eAEnC,WADAp8C,GAAK87C,YAAY/8C,KAAKY,UAAW,cAInC,IAAIy/C,GAASp/C,EAAK88C,SAAS/9C,KAAKY,UAAW,SAEvCZ,MAAKgE,OAAOk5C,aAAemD,IAC7BrgD,KAAKmK,MAAMP,OAEX5J,KAAKmK,MAAM61C,UAAY,EACvBhgD,KAAK2hD,WAAY,GAGftB,IACFp/C,EAAK87C,YAAY/8C,KAAKY,UAAW,UACjCZ,KAAKqgD,OAAOrD,YAAc,IAG5B/7C,EAAK87C,YAAY/8C,KAAKY,UAAW,QACjCK,EAAK87C,YAAY/8C,KAAKY,UAAW,eAEjCZ,KAAKiS,SAASknC,aAAa,iBAAiB,GAE5Cn5C,KAAKi9B,KAAKkc,aAAa,eAAe,GACtCn5C,KAAKi9B,KAAKkc,aAAa,iBAAiB,GAExCl4C,EAAK49C,SAAS7+C,KAAKi9B,MACnB6lB,EAAYviD,KAAKP,OAQnBi8C,EAAQp5C,UAAUsiD,OAAS,WACzBnlD,KAAKoR,UAAW,EAChBpR,KAAKqoB,GAAGjX,UAAW,EAEnBpR,KAAKiS,SAAS+tC,SAAWhgD,KAAKijD,cAE1BjjD,KAAKqoB,GAAGq0B,UACVz7C,EAAK48C,KAAK79C,KAAKsgD,KAAM,SAASh7C,EAAG6mC,GAC/BA,EAAEyV,iBAAiB5B,SAAW,IAIlC/+C,EAAK87C,YAAY/8C,KAAKY,UAAW,qBAQnCq7C,EAAQp5C,UAAU0+C,QAAU,SAAS3gD,GAC9BA,IACHZ,KAAKqoB,GAAGjX,UAAW,GAGrBpR,KAAKiS,SAAS+tC,UAAY,EAEtBhgD,KAAKqoB,GAAGq0B,UACVz7C,EAAK48C,KAAK79C,KAAKsgD,KAAM,SAASh7C,EAAG6mC,GAC/BA,EAAEyV,iBAAiB5B,UAAY,IAInChgD,KAAKoR,UAAW,EAChBnQ,EAAKg9C,SAASj+C,KAAKY,UAAW,qBAQhCq7C,EAAQp5C,UAAU4H,MAAQ,WACnBzK,KAAKoR,WACRpR,KAAKkE,QAELlE,KAAK4U,aAAY,GAEjB3T,EAAK48C,KAAK79C,KAAKk8C,gBAAiB,SAAS52C,EAAGkxB,GAC1Cx2B,KAAK+N,OAAOyoB,IACXx2B,MAEHA,KAAK29C,KAAK,mBAQd1B,EAAQp5C,UAAUqB,MAAQ,SAASqgD,GAEjC,GAAIvkD,KAAKqoB,GAAGq0B,UAIV,GAAI18C,KAAKygD,gBAAgBp+C,OAAQ,CAE/B,GAAIwhD,GAAU7jD,KAAKygD,gBAAgB1rC,OAEnC9T,GAAK48C,KAAKgG,EAAS,SAASv+C,EAAGkxB,GAC7Bx2B,KAAKoS,SAASokB,IACbx2B,WAGDA,MAAKojD,eAAiB,GACxBpjD,KAAKoS,SAASpS,KAAKojD,cAAemB,EAItCvkD,MAAK29C,KAAK,kBAQZ1B,EAAQp5C,UAAUuiD,UAAY,SAAST,GACrC,GAAI9gD,KAgBJ,OAfA5C,GAAK48C,KAAK79C,KAAKa,QAAS,SAASyE,EAAGpD,GAClC,GAAImR,IACF3K,MAAOxG,EAAOwG,MACdkC,KAAM1I,EAAO86C,YAGX96C,GAAO+P,WACToB,EAAIpB,UAAW,GAEb/P,EAAOkP,WACTiC,EAAIjC,UAAW,GAEjBvN,EAAKyB,GAAK+N,IAGLsxC,EAASphD,KAAKC,UAAUK,GAAQA,GAMzCo4C,EAAQp5C,UAAUiV,UAAY,SAAS6sC,GACrC,MAAO3kD,MAAKolD,UAAUT,IAOxB1I,EAAQp5C,UAAUy+C,eAAiB,SAASjF,GAE1CA,EAAcA,GAAer8C,KAAKgE,OAAOq4C,aAAer8C,KAAKqoB,GAAGysB,aAAa,eAExE90C,KAAKa,QAAQwB,SAChBg6C,EAAc,wBAGhBr8C,KAAKqhD,QAAQ3jC,UAAY2+B,GAO3BJ,EAAQp5C,UAAUu+C,SAAW,WAC3B,GAAIphD,KAAKuX,MAAMlV,OAAQ,CACrB,GAAIuvC,GAAO5xC,IAQX,OANAA,MAAKi/C,MAAQj/C,KAAKuX,MAAM7L,IAAI,SAAS25C,EAAG//C,GACtC,MAAOA,GAAIssC,EAAK5tC,OAAOg7C,YAAe,EAAIpN,EAAKr6B,MAAMxC,MAAMzP,EAAGA,EAAIssC,EAAK5tC,OAAOg7C,YAAc,OAC3FlzC,OAAO,SAASmzC,GACjB,MAAOA,KAGFj/C,KAAKi/C,QAQhBhD,EAAQp5C,UAAUmhD,WAAa,SAASv3C,EAASkL,GAC3CA,GACF3X,KAAK2X,QAEP1W,EAAKg9C,SAASj+C,KAAKY,UAAW,UAC9BZ,KAAKqgD,OAAOrD,YAAcvwC,GAM5BwvC,EAAQp5C,UAAUoiD,cAAgB,WAChChkD,EAAK87C,YAAY/8C,KAAKY,UAAW,UACjCZ,KAAKqgD,OAAO3iC,UAAY,IAO1Bu+B,EAAQp5C,UAAUohD,OAAS,WACzB,GAAIqB,GAAKrkD,EAAKy9C,KAAK1+C,KAAKiS,UACpBszC,EAAKvlD,KAAKi9B,KAAKz1B,WAAW4Y,aAC1BolC,EAAKvxC,OAAOwxC,WACDH,GAAGt4C,IAAMs4C,EAAGp4C,OAASq4C,EAAKC,GAGvCvkD,EAAKg9C,SAASj+C,KAAKY,UAAW,YAC9BZ,KAAK0lD,YAAa,IAElBzkD,EAAK87C,YAAY/8C,KAAKY,UAAW,YACjCZ,KAAK0lD,YAAa,GAGpB1lD,KAAK8hD,SAAW7gD,EAAKy9C,KAAK1+C,KAAKi9B,OAQjCgf,EAAQp5C,UAAUiiD,iBAAmB,SAASryC,GAC5C,MAAOzS,MAAKa,QAAQ4R,IAQtBwpC,EAAQp5C,UAAUkiD,iBAAmB,SAASr8C,GAG5C,IAAK,GAFDxG,IAAS,EAEJoD,EAAI,EAAG2wB,EAAIj2B,KAAKa,QAAQwB,OAAQiD,EAAI2wB,EAAG3wB,IAC9C,GAAItF,KAAKa,QAAQyE,GAAGoD,MAAMw1C,SAAWx1C,EAAMia,WAAWu7B,OAAQ,CAC5Dh8C,EAASlC,KAAKa,QAAQyE,EACtB,OAIJ,MAAOpD,IAGTrC,EAAOD,QAAUq8C,GAKZ,SAASp8C,EAAQD,EAASM,GAE/B,YAYA,SAAS8F,GAAapF,EAAWiB,EAAOoW,EAAS0tC,GA0C/C,IAAK,GAxCDC,IACFnjD,MACEmI,KAAQ,OACR+F,MAAS,6BACT6G,MAAS,WACPmuC,EAAS,UAGbhR,MACE/pC,KAAQ,OACR+F,MAAS,wBACT6G,MAAS,WACPmuC,EAAS,UAGb/6C,MACEA,KAAQ,OACR+F,MAAS,8BACT6G,MAAS,WACPmuC,EAAS,UAGb1oB,MACEryB,KAAQ,OACR+F,MAAS,wBACT6G,MAAS,WACPmuC,EAAS,UAGbE,MACEj7C,KAAQ,OACR+F,MAAS,sBACT6G,MAAS,WACPmuC,EAAS,WAMXpuC,KACKjS,EAAI,EAAGA,EAAIzD,EAAMQ,OAAQiD,IAAK,CACrC,GAAI1D,GAAOC,EAAMyD,GACbyY,EAAO6nC,EAAehkD,EAC1B,KAAKmc,EACH,KAAM,IAAIhd,OAAM,iBAAmBa,EAAO,IAG5Cmc,GAAKrO,UAAY,yBAA4BuI,GAAWrW,EAAQ,uBAAyB,IACzF2V,EAAMvE,KAAK+K,GAIb,GAAI+nC,GAAcF,EAAe3tC,EACjC,KAAK6tC,EACH,KAAM,IAAI/kD,OAAM,iBAAmBkX,EAAU,IAE/C,IAAI8tC,GAAeD,EAAYl7C,KAG3Bo7C,EAAMx/C,SAASiJ,cAAc,SACjCu2C,GAAIt5C,KAAO,SACXs5C,EAAIt2C,UAAY,wCAChBs2C,EAAItoC,UAAYqoC,EAAe,YAC/BC,EAAIr1C,MAAQ,qBACZq1C,EAAIr2C,QAAU,WACD,GAAI9J,GAAY0R,GACtBR,KAAKivC,GAGZ,IAAIz+C,GAAQf,SAASiJ,cAAc,MACnClI,GAAMmI,UAAY,mBAClBnI,EAAMyX,MAAMoL,SAAW,WACvB7iB,EAAMsB,YAAYm9C,GAElBplD,EAAUiI,YAAYtB,GAEtBvH,KAAK0G,KACH9F,UAAWA,EACXolD,IAAKA,EACLz+C,MAAOA,GA3FX,GAAI1B,GAAc3F,EAAoB,EAkGtC8F,GAAanD,UAAUqH,MAAQ,WAC7BlK,KAAK0G,IAAIs/C,IAAI97C,SAMflE,EAAanD,UAAUG,QAAU,WAC3BhD,KAAK0G,KAAO1G,KAAK0G,IAAIa,OAASvH,KAAK0G,IAAIa,MAAMC,YAC/CxH,KAAK0G,IAAIa,MAAMC,WAAWC,YAAYzH,KAAK0G,IAAIa,OAEjDvH,KAAK0G,IAAM,MAGb7G,EAAOD,QAAUoG,GAKZ,SAASnG,EAAQD,GAEtB,YAEA,SAASqmD,GAAWjiD,GAwGhB,QAASkiD,GAAwB9hC,GAC7B,GAAInW,GAAOrH,CACPJ,UAAS6d,aAETpW,EAAQzH,SAAS6d,cACjBpW,EAAMqW,mBAAmBF,GACzBnW,EAAMjD,UAAS,GACfpE,EAAYqN,OAAOjL,eACnBpC,EAAU2d,kBACV3d,EAAU4d,SAASvW,IAEdzH,SAASI,YAEdqH,EAAQzH,SAASC,KAAKwiB,kBACtBhb,EAAMk4C,kBAAkB/hC,GACxBnW,EAAMjD,UAAS,GACfiD,EAAMF,UAId,QAASq4C,GAAsBx7C,GAwB3B,WAvBe/D,KAAXw/C,IACAA,EAAS7/C,SAASiJ,cAAc,QAChC42C,EAAOrnC,MAAM0d,WAAa,SAC1B2pB,EAAOrnC,MAAMoL,SAAW,QACxBi8B,EAAOrnC,MAAMsnC,QAAU,IACvBD,EAAOrnC,MAAMmI,OAAS,IACtBk/B,EAAOrnC,MAAM4B,QAAU,IACvBylC,EAAOrnC,MAAMs4B,OAAS,IACtB+O,EAAOrnC,MAAMiB,KAAO,IACpBomC,EAAOrnC,MAAMunC,WAAa,MAC1BF,EAAOrnC,MAAMu4B,SAAWA,EACxB8O,EAAOrnC,MAAMwnC,WAAaA,EAC1BH,EAAOrnC,MAAMynC,WAAa,SAC1BjgD,SAASC,KAAKoC,YAAYw9C,IAK9BA,EAAO3oC,UAAYsF,OAAOpY,GAAM6X,QAAQ,KAAM,SACzCA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACZ4jC,EAAOxmC,wBAAwBwH,MAnJ1CrjB,EAASA,MACTA,EAAO0iD,YAAc1iD,EAAO0iD,cAAgB,GAAI,GAAI,GACpD1iD,EAAO2iD,cAAgB3iD,EAAO2iD,gBAAiB,CAE/C,IAAIpP,GAAW,GACXiP,EAAa,GAEbI,EAAUpgD,SAASiJ,cAAc,MACrCm3C,GAAQ5nC,MAAMoL,SAAW,WACzBw8B,EAAQ5nC,MAAMsnC,QAAU,IACxBM,EAAQ5nC,MAAMs4B,OAAS,IACvBsP,EAAQ5nC,MAAMmI,OAAS,IACvBy/B,EAAQ5nC,MAAM4B,QAAU,GAExB,IAAIimC,GAAWrgD,SAASiJ,cAAc,MACtCo3C,GAASn3C,UAAY,wBACrBm3C,EAAS7nC,MAAMoL,SAAW,WAC1By8B,EAAS7nC,MAAM0d,WAAa,QAE5B,IAAI2pB,GACAS,EAkIAC,GACAC,YAAa,aACbC,UAAW,aACXC,QAAS,aACTC,MAAO,aACPnwC,UAAW,EACXnW,WACA2V,QAAS,KACT4wC,YAAa,KACbC,aAAc,KACdT,QAASA,EACT7vC,KAAM,SAAUP,EAAS8wC,EAAUzmD,GAC/Bb,KAAKgX,UAAYswC,EACjBtnD,KAAK4mD,QAAQzI,SACTn+C,KAAKonD,cACLpnD,KAAKonD,YAAYjJ,SACjBn+C,KAAKonD,YAAc,MAGP,IAAZ7P,IACAA,EAAWtjC,OAAO8hC,iBAAiBv/B,GAAS+wC,iBAAiB,cAE/C,IAAdf,IACAA,EAAavyC,OAAO8hC,iBAAiBv/B,GAAS+wC,iBAAiB,eAG3D/wC,GAAQqJ,wBAAwBwH,MAAQ7Q,EAAQqJ,wBAAwBI,IAChF4mC,GAAS7nC,MAAMwgB,WAAa,IAC5BqnB,EAAS7nC,MAAMwoC,UAAYhxC,EAAQqJ,wBAAwB3S,OAAS,KACpElN,KAAKa,QAAUA,EAEXb,KAAKwW,SAAWA,IAChBxW,KAAKwW,QAAUA,EACfxW,KAAKqnD,cACD/Q,OAAQt2C,KAAKwW,QAAQwI,MAAMs3B,OAC3BlsB,SAAUpqB,KAAKwW,QAAQwI,MAAMoL,SAC7B6sB,gBAAiBj3C,KAAKwW,QAAQwI,MAAMi4B,gBACpCwQ,YAAaznD,KAAKwW,QAAQwI,MAAMyoC,cAIxCznD,KAAKwW,QAAQwI,MAAMs3B,OAAS,EAC5Bt2C,KAAKwW,QAAQwI,MAAMoL,SAAW,WAC9BpqB,KAAKwW,QAAQwI,MAAMi4B,gBAAkB,cACrCj3C,KAAKwW,QAAQwI,MAAMyoC,YAAc,cAEjCznD,KAAKonD,YAAc5wC,EAAQkxC,YAC3B1nD,KAAKonD,YAAY13C,UAAY,oBAC7B1P,KAAKonD,YAAYpoC,MAAMs3B,OAAS,EAChCt2C,KAAKonD,YAAYpoC,MAAMoL,SAAW,WAClCpqB,KAAKonD,YAAY5uB,QAAU,WAAcx4B,KAAKwW,QAAQtM,SAAWhC,KAAKlI,MAIlEA,KAAKwW,QAAQhG,mBACbxQ,KAAKwW,QAAQ/B,oBAAoB,UAAWkzC,GAC5C3nD,KAAKwW,QAAQhG,iBAAiB,UAAWm3C,GAAgB,GACzD3nD,KAAKwW,QAAQ/B,oBAAoB,OAAQmzC,GACzC5nD,KAAKwW,QAAQhG,iBAAiB,OAAQo3C,GAAe,IAGzDhB,EAAQ/9C,YAAY7I,KAAKonD,aACzBR,EAAQ/9C,YAAYg+C,GACpBrwC,EAAQwS,cAAcngB,YAAY+9C,GAGlC5mD,KAAK6nD,QAAQrxC,IAEjBrT,QAAS,SAAUyH,GACf5K,KAAKwW,QAAQC,UAAY7L,GAE7BtH,QAAS,WACL,MAAOtD,MAAKwW,QAAQC,WAExBI,aAAc,WACV7W,KAAK4mD,QAAQzI,SACTn+C,KAAKonD,cACLpnD,KAAKonD,YAAYjJ,SACjBn+C,KAAKonD,YAAc,KACnBU,EAAmBv9C,OACnBvK,KAAKwW,QAAQwI,MAAMs3B,OAASt2C,KAAKqnD,aAAa/Q,OAC9Ct2C,KAAKwW,QAAQwI,MAAMoL,SAAWpqB,KAAKqnD,aAAaj9B,SAChDpqB,KAAKwW,QAAQwI,MAAMi4B,gBAAkBj3C,KAAKqnD,aAAapQ,gBACvDj3C,KAAKwW,QAAQwI,MAAMyoC,YAAcznD,KAAKqnD,aAAaI,cAI3DI,QAAS,SAAUrxC,GACf,GAAI5L,GAAO4L,EAAQC,SACnB7L,GAAOA,EAAK6X,QAAQ,KAAM,GAE1B,IAEIslC,IAFY/nD,KAAKgX,UACPhX,KAAKa,QACCb,KAAKa,QAAQwB,QAI7BssB,EAAQ/jB,EAAKic,UAAU7mB,KAAKgX,UAChC8vC,GAAWl8C,EAAKic,UAAU,EAAG7mB,KAAKgX,UAElC,KAAK,GAAI1R,GAAI,EAAGA,EAAIyiD,EAAeziD,IAAK,CACpC,GAAIk0C,GAAMx5C,KAAKa,QAAQyE,EACvB,KAAStB,EAAO2iD,eAAoE,IAAnDnN,EAAI1e,cAAch5B,QAAQ6sB,EAAMmM,gBACzD92B,EAAO2iD,eAAwC,IAAvBnN,EAAI13C,QAAQ6sB,GAAe,CACvD3uB,KAAKonD,YAAY3wC,UAAYqwC,EAAWn4B,EAAQ6qB,EAAI3yB,UAAU8H,EAAMtsB,QACpErC,KAAKonD,YAAYY,cAAgBlB,EAAWtN,CAC5C,QAIRqN,EAAS7nC,MAAMiB,KAAOmmC,EAAsBU,GAAY,KACxDgB,EAAmB1iD,QAAQupB,EAAO3uB,KAAKa,SACvCb,KAAKonD,YAAYpoC,MAAM3H,MAAQ+uC,EAAsBpmD,KAAKonD,YAAY3wC,WAAa,GAAK,KAClC,UAA7BowC,EAAS7nC,MAAM0d,aAEpC18B,KAAKonD,YAAYpoC,MAAM3H,MAAQ+uC,EAAsBpmD,KAAKonD,YAAY3wC,WAAaowC,EAASoB,YAAc,QAIlHH,EAxP2B,SAAU5qC,EAAM6pC,GAC3C,GAAIv9B,MACA0+B,EAAK,EACLvtC,GAAY,EAEZwtC,EAAc,WAAcnoD,KAAKgf,MAAMsnC,QAAU,kBACjD8B,EAAa,WAAcpoD,KAAKgf,MAAMsnC,QAAU,KAChD+B,EAAc,WAAc3nD,EAAE6J,OAAQ7J,EAAE4nD,iBAAiBtoD,KAAKuoD,OAAQ7nD,EAAEqmD,KAExErmD,GACAqmD,GAAIA,EACJx8C,KAAM,WACF2S,EAAK8B,MAAM0d,WAAa,UAG5Bt3B,QAAS,SAAUupB,EAAO6D,GACtBtV,EAAK8B,MAAM0d,WAAa,SACxBwrB,EAAK,EACLhrC,EAAKQ,UAAY,EACjB,IAAI8qC,GAAOv0C,OAAOwxC,aAAej/C,SAAS8yC,gBAAgBnsC,aACtDuxC,EAAOxhC,EAAK1V,WAAWqY,wBACvB4oC,EAAgB/J,EAAK1xC,IAAM,EAC3B07C,EAAmBF,EAAM9J,EAAKtxC,OAAS,CAE3Coc,KACA,KAAK,GAAIlkB,GAAI,EAAGA,EAAIktB,EAAMnwB,OAAQiD,IAE9B,KAAOtB,EAAO2iD,eAA6C,IAA5Bn0B,EAAMltB,GAAGxD,QAAQ6sB,KACxC3qB,EAAO2iD,eAAyE,IAAxDn0B,EAAMltB,GAAGw1B,cAAch5B,QAAQ6sB,EAAMmM,gBADrE,CAGA,GAAI6tB,GAASniD,SAASiJ,cAAc,MACpCk5C,GAAOj5C,UAAY,OAEnBi5C,EAAOr4C,YAAc63C,EACrBQ,EAAOp4C,WAAa63C,EACpBO,EAAOv4C,YAAci4C,EACrBM,EAAOJ,OAAS/1B,EAAMltB,GACtBqjD,EAAOjrC,UAAY8U,EAAMltB,GAAGuhB,UAAU,EAAG8H,EAAMtsB,QAAU,MAAQmwB,EAAMltB,GAAGuhB,UAAU8H,EAAMtsB,QAAU,OACpGmnB,EAAKxW,KAAK21C,GACVzrC,EAAKrU,YAAY8/C,GAED,IAAhBn/B,EAAKnnB,SAGW,IAAhBmnB,EAAKnnB,SAAqBssB,EAAMmM,gBAAkBtR,EAAK,GAAG++B,OAAOztB,gBAAkB92B,EAAO2iD,eAChEh4B,IAAUnF,EAAK,GAAG++B,QAAUvkD,EAAO2iD,gBAI7Dn9B,EAAKnnB,OAAS,IAClB3B,EAAE4X,UAAU,GAERmwC,EAAmC,EAAnBC,GAChBxrC,EAAK8B,MAAMI,UAAYqpC,EAAgB,KACvCvrC,EAAK8B,MAAMhS,IAAM,GACjBkQ,EAAK8B,MAAM5R,OAAS,SAEpB8P,EAAK8B,MAAMhS,IAAM,OACjBkQ,EAAK8B,MAAM5R,OAAS,GACpB8P,EAAK8B,MAAMI,UAAYspC,EAAmB,MAE9CxrC,EAAK8B,MAAM0d,WAAa,aAE5BpkB,UAAW,SAAU7F,IACA,GAAbkI,GAAkB6O,EAAK7O,KACvB6O,EAAK7O,GAAUjL,UAAY,QAE/B8Z,EAAK/W,GAAO/C,UAAY,aACxBiL,EAAWlI,GAEfm2C,KAAM,SAAU5Z,GACZ,MAA8B,WAA1B9xB,EAAK8B,MAAM0d,WAAgC,GAC3CwrB,EAAKlZ,KAAU,GAAKkZ,EAAKlZ,IAASxlB,EAAKnnB,OAAemnB,EAAK0+B,GAAIK,QACnEL,GAAMlZ,EACNtuC,EAAE4X,UAAU4vC,GACL1+B,EAAK0+B,GAAIK,SAEpBD,iBAAkB,aAEtB,OAAO5nD,IAyKuCmmD,EAAUE,GAExDY,EAAiB,SAAUnlD,GAE3BA,EAAIA,GAAKyR,OAAO1E,KAChB,IAAIqG,GAAUpT,EAAEoT,OAEhB,IAAwB,MAApB5V,KAAKonD,aAEM,IAAXxxC,GACW,IAAXA,EAAJ,CAEA,GAAe,IAAXA,EAKA,MAJAmxC,GAAGlwC,eACHkwC,EAAGvwC,QAAQtM,QACX1H,EAAEqN,qBACFrN,GAAEyU,iBAIN,IAAIrM,GAAO5K,KAAKwW,QAAQC,SACxB7L,GAAOA,EAAK6X,QAAQ,KAAM,GACVziB,MAAKgX,SAErB,IAAIhT,EAAO0iD,YAAY5kD,QAAQ8T,IAAY,EAkBvC,MAjBe,IAAXA,GACyC,GAArC5V,KAAKonD,YAAY3wC,UAAUpU,QAC3B0kD,EAAGI,aAGPnnD,KAAKonD,YAAY3wC,UAAUpU,OAAS,GAChCrC,KAAKwW,QAAQC,WAAazW,KAAKonD,YAAYY,gBAC3ChoD,KAAKwW,QAAQC,UAAYzW,KAAKonD,YAAYY,cAC1CjB,EAAGlwC,eACHqvC,EAAwBlmD,KAAKwW,SACd,GAAXZ,IACAmxC,EAAGvwC,QAAQtM,QACX1H,EAAEqN,iBACFrN,EAAEyU,oBAOlB,IAAe,IAAXrB,EAAJ,CAuBA,GAAe,IAAXA,EAAe,CACf,GAAI+Y,GAAQ/jB,EAAKic,UAAU7mB,KAAKgX,WAC5BxW,EAAIsnD,EAAmBc,KAAK,EAMhC,OALS,IAALpoD,GAAWumD,EAAGC,cAClBhnD,KAAKonD,YAAY3wC,UAAYqwC,EAAWn4B,EAAQnuB,EAAEqmB,UAAU8H,EAAMtsB,QAClErC,KAAKonD,YAAYY,cAAgBlB,EAAWtmD,EAC5CgC,EAAEqN,qBACFrN,GAAEyU,kBAIN,GAAe,IAAXrB,EAAe,CACf,GAAI+Y,GAAQ/jB,EAAKic,UAAU7mB,KAAKgX,WAC5BxW,EAAIsnD,EAAmBc,MAAM,EAMjC,OALS,IAALpoD,GAAWumD,EAAGE,YAClBjnD,KAAKonD,YAAY3wC,UAAYqwC,EAAWn4B,EAAQnuB,EAAEqmB,UAAU8H,EAAMtsB,QAClErC,KAAKonD,YAAYY,cAAgBlB,EAAWtmD,EAC5CgC,EAAEqN,qBACFrN,GAAEyU,uBAxCF,IAAyC,GAArCjX,KAAKonD,YAAY3wC,UAAUpU,OAC3B0kD,EAAGG,cACA,CACH,GAAI2B,GAAkD,UAA7BhC,EAAS7nC,MAAM0d,UAGxC,IAFAorB,EAAmBv9C,OAEfs+C,EAIA,MAHA9B,GAAGlwC,eACHkwC,EAAGvwC,QAAQtM,YACX68C,GAAGG,SAIPlnD,MAAKwW,QAAQC,UAAYzW,KAAKonD,YAAYY,cAC1CjB,EAAGlwC,eACHqvC,EAAwBlmD,KAAKwW,SAC7BhU,EAAEqN,iBACFrN,EAAEyU,qBA2BZ/O,KAAK6+C,GAEHa,EAAgB,SAAUplD,GAC1BukD,EAAGlwC,gBAEL3O,KAAK6+C,EAWP,OATAe,GAAmBQ,iBAAmB,SAAU19C,EAAMm8C,GAClDA,EAAGvwC,QAAQC,UAAYswC,EAAGK,YAAY3wC,UAAYqwC,EAAWl8C,EAC7Dm8C,EAAGlwC,eACH5C,OAAO5E,WAAW,WACd03C,EAAGvwC,QAAQtM,QACXg8C,EAAwBa,EAAGvwC,UAC5B,IAGAuwC,EAGXlnD,EAAOD,QAAUqmD,GAIZ,SAASpmD,EAAQD,EAASM,GAE/B,YAy0BA,SAASkE,KACP,IACEpE,KAAK8oD,SAEP,MAAOpmD,KA30BT,GAAIqmD,GAAM7oD,EAAoB,IAC1B8F,EAAe9F,EAAoB,IACnCe,EAAOf,EAAoB,GAG3B0C,IAkCJA,GAASgB,OAAS,SAAUhD,EAAWC,GAErCA,EAAUA,UAEsB,KAAtBA,EAAQmoD,YAChBnoD,EAAQmoD,WAAY,GAGtBhpD,KAAKa,QAAUA,EAGXA,EAAQooD,YACVjpD,KAAKipD,YAAclmC,OAAOliB,EAAQooD,aAGlCjpD,KAAKipD,YAAc,CAIrB,IAAIC,GAAOroD,EAAQkoD,IAAMloD,EAAQkoD,IAAMA,CAevC,IAXA/oD,KAAK4B,KAAwB,QAAhBf,EAAQe,KAAkB,OAAS,OAC/B,QAAb5B,KAAK4B,UAEa,KAATsnD,IACTlpD,KAAK4B,KAAO,OACZR,QAAQC,KAAK,iKAKjBrB,KAAKmpD,MAAQtoD,EAAQsoD,OA/DH,uBAAA,yBAgEdnpD,KAAKmpD,OAA2BD,EAClC,IACEhpD,EAAoB,IAEtB,MAAOwC,GACLtB,QAAQD,MAAMuB,GAId7B,EAAQuoD,uBACVppD,KAAKopD,sBAAsBvoD,EAAQuoD,sBAGrC,IAAIr8C,GAAK/M,IACTA,MAAKY,UAAYA,EACjBZ,KAAK0G,OACL1G,KAAKqpD,cAAYxiD,GACjB7G,KAAKspD,aAAWziD,GAChB7G,KAAKiF,eAAiB,KAGtBjF,KAAK0H,mBAAqBzG,EAAKgH,SAASjI,KAAKmF,SAAS+C,KAAKlI,MAAOA,KAAK8C,mBAEvE9C,KAAKqX,MAAQzW,EAAUqnD,YACvBjoD,KAAKkN,OAAStM,EAAUuM,aAExBnN,KAAKuH,MAAQf,SAASiJ,cAAc,OACpCzP,KAAKuH,MAAMmI,UAAY,8BAAgC1P,KAAKa,QAAQe,KACpE5B,KAAKuH,MAAMoI,QAAU,SAAUJ,GAE7BA,EAAMM,kBAER7P,KAAKuH,MAAMyI,UAAY,SAAUT,GAC/BxC,EAAG6E,WAAWrC,IAIhBvP,KAAKsK,KAAO9D,SAASiJ,cAAc,OACnCzP,KAAKsK,KAAKoF,UAAY,kBACtB1P,KAAKuH,MAAMsB,YAAY7I,KAAKsK,KAG5B,IAAIi/C,GAAe/iD,SAASiJ,cAAc,SAC1C85C,GAAa78C,KAAO,SACpB68C,EAAa75C,UAAY,oBACzB65C,EAAa54C,MAAQ,qEACrB3Q,KAAKsK,KAAKzB,YAAY0gD,GACtBA,EAAa55C,QAAU,WACrB,IACE5C,EAAG+7C,SACH/7C,EAAG3B,YAEL,MAAO1I,GACLqK,EAAGzI,SAAS5B,IAKhB,IAAI8mD,GAAgBhjD,SAASiJ,cAAc,SAC3C+5C,GAAc98C,KAAO,SACrB88C,EAAc95C,UAAY,qBAC1B85C,EAAc74C,MAAQ,4DACtB3Q,KAAKsK,KAAKzB,YAAY2gD,GACtBA,EAAc75C,QAAU,WACtB,IACE5C,EAAG08C,UACH18C,EAAG3B,YAEL,MAAO1I,GACLqK,EAAGzI,SAAS5B,IAKhB,IAAIgnD,GAAeljD,SAASiJ,cAAc,SAC1Ci6C,GAAah9C,KAAO,SACpBg9C,EAAah6C,UAAY,oBACzBg6C,EAAa/4C,MAAQ,wHACrB3Q,KAAKsK,KAAKzB,YAAY6gD,GACtBA,EAAa/5C,QAAU,WACrB,IACE5C,EAAG48C,SACH58C,EAAG3B,YAEL,MAAO1I,GACLqK,EAAGzI,SAAS5B,KAKZ1C,KAAKa,SAAWb,KAAKa,QAAQgB,OAAS7B,KAAKa,QAAQgB,MAAMQ,SAC3DrC,KAAK4H,aAAe,GAAI5B,GAAahG,KAAKsK,KAAMtK,KAAKa,QAAQgB,MAAO7B,KAAKa,QAAQe,KAAM,SAAkBA,GAEvGmL,EAAGhK,QAAQnB,GACXmL,EAAGnF,aAAasC,UAIpB,IAAI0/C,MACAC,EAAc7pD,KAAKa,QAAQa,mBACO,aAA5B1B,KAAKa,QAAQa,cACnB1B,KAAKa,QAAQa,WAAWkoD,EAQ5B,IANA5pD,KAAKsI,QAAU9B,SAASiJ,cAAc,OACtCzP,KAAKsI,QAAQoH,UAAY,mBACzB1P,KAAKuH,MAAMsB,YAAY7I,KAAKsI,SAE5BtI,KAAKY,UAAUiI,YAAY7I,KAAKuH,OAEf,QAAbvH,KAAK4B,KAAgB,CACvB5B,KAAK8pD,UAAYtjD,SAASiJ,cAAc,OACxCzP,KAAK8pD,UAAU9qC,MAAM9R,OAAS,OAC9BlN,KAAK8pD,UAAU9qC,MAAM3H,MAAQ,OAC7BrX,KAAKsI,QAAQO,YAAY7I,KAAK8pD,UAE9B,IAAIT,GAAYH,EAAKa,KAAK/pD,KAAK8pD,UAC/BT,GAAUW,gBAAkBzsC,EAAAA,EAC5B8rC,EAAUY,SAASjqD,KAAKmpD,OACxBE,EAAUa,YAAaC,SAAUN,IACjCR,EAAUe,oBAAmB,GAC7Bf,EAAUgB,YAAY,IACtBhB,EAAUiB,aAAavnD,QAAQ,iBAC/BsmD,EAAUiB,aAAaC,WAAWvqD,KAAKipD,aACvCI,EAAUiB,aAAaE,gBAAe,GACtCnB,EAAUiB,aAAaG,gBAAe,GACtCpB,EAAUqB,SAASC,QAAQ,SAAU,MACrCtB,EAAUqB,SAASC,QAAQ,YAAa,MACxC3qD,KAAKqpD,UAAYA,EAGZrpD,KAAKgI,eAAe,WACvBjG,OAAO6nB,eAAe5pB,KAAM,UAC1BkD,IAAK,WAEH,MADA9B,SAAQC,KAAK,sDACN0L,EAAGs8C,WAEZpmD,IAAK,SAAUomD,GACbjoD,QAAQC,KAAK,sDACb0L,EAAGs8C,UAAYA,IAKrB,IAAIuB,GAAYpkD,SAASiJ,cAAc,IACvCm7C,GAAU/hD,YAAYrC,SAAS+X,eAAe,mBAC9CqsC,EAAUjqB,KAAO,sBACjBiqB,EAAUh7C,OAAS,SACnBg7C,EAAUl7C,UAAY,uBACtBk7C,EAAUj7C,QAAU,WAIlBsE,OAAOktB,KAAKypB,EAAUjqB,KAAMiqB,EAAUh7C,SAExC5P,KAAKsK,KAAKzB,YAAY+hD,GAGtBvB,EAAU1M,GAAG,SAAU38C,KAAKoL,UAAUlD,KAAKlI,OAC3CqpD,EAAU1M,GAAG,kBAAmB38C,KAAK6qD,UAAU3iD,KAAKlI,WAEjD,CAEH,GAAIspD,GAAW9iD,SAASiJ,cAAc,WACtC65C,GAAS55C,UAAY,kBACrB45C,EAAS5pB,YAAa,EACtB1/B,KAAKsI,QAAQO,YAAYygD,GACzBtpD,KAAKspD,SAAWA,EAChBtpD,KAAKspD,SAASa,SAAWN,EAGK,OAA1B7pD,KAAKspD,SAASx5C,QAChB9P,KAAKspD,SAASx5C,QAAU9P,KAAKoL,UAAUlD,KAAKlI,MAI5CA,KAAKspD,SAASv5C,SAAW/P,KAAKoL,UAAUlD,KAAKlI,MAG/CspD,EAASwB,SAAW9qD,KAAK6qD,UAAU3iD,KAAKlI,MACxCspD,EAASl5C,YAAcpQ,KAAK+qD,aAAa7iD,KAAKlI,MAC9CspD,EAAS0B,OAAShrD,KAAKirD,QAAQ/iD,KAAKlI,MAGtC,GAAIkrD,GAA4B1kD,SAASiJ,cAAc,MAKvD,IAJAy7C,EAA0Bx7C,UAAY,8BACtC1P,KAAK0G,IAAIwkD,0BAA4BA,EACrClrD,KAAKuH,MAAMsB,YAAYqiD,GAEnBrqD,EAAQmoD,UAAW,CACrB/nD,EAAKiS,aAAalT,KAAKsI,QAAS,kBAEhCtI,KAAKmrD,qBACL,IAAInC,GAAYxiD,SAASiJ,cAAc,MACvCzP,MAAK0G,IAAIsiD,UAAYA,EACrBA,EAAUt5C,UAAY,uBACtB1P,KAAKuH,MAAMsB,YAAYmgD,EAEvB,IAAIoC,GAAU5kD,SAASiJ,cAAc,OACrC27C,GAAQ17C,UAAY,8BACpB07C,EAAQ30C,UAAY,KAEpB,IAAI40C,GAAQ7kD,SAASiJ,cAAc,OACnC47C,GAAM37C,UAAY,4BAClB27C,EAAM50C,UAAY,IAElBuyC,EAAUngD,YAAYuiD,GACtBpC,EAAUngD,YAAYwiD,EAEtB,IAAIC,GAAW9kD,SAASiJ,cAAc,OACtC67C,GAAS57C,UAAY,8BACrB47C,EAAS70C,UAAY,MAErB,IAAI80C,GAAS/kD,SAASiJ,cAAc,OACpC87C,GAAO77C,UAAY,4BACnB67C,EAAO90C,UAAY,IAEnBuyC,EAAUngD,YAAYyiD,GACtBtC,EAAUngD,YAAY0iD,GAEtBvrD,KAAKmrD,mBAAmBI,OAASA,EACjCvrD,KAAKmrD,mBAAmBE,MAAQA,CAEhC,IAAIG,GAAahlD,SAASiJ,cAAc,OACxC+7C,GAAW97C,UAAY,8BACvB87C,EAAW/0C,UAAY,sBACvB+0C,EAAWxsC,MAAM6B,QAAU,MAE3B,IAAI4qC,GAAWjlD,SAASiJ,cAAc;qCACtCg8C,GAAS/7C,UAAY,8BACrB+7C,EAASh1C,UAAY,IACrBg1C,EAASzsC,MAAM6B,QAAU,OAEzB7gB,KAAKmrD,mBAAmBK,WAAaA,EACrCxrD,KAAKmrD,mBAAmBM,SAAWA,EAEnCzC,EAAUngD,YAAY4iD,GACtBzC,EAAUngD,YAAY2iD,GAGxBxrD,KAAKwE,UAAUxE,KAAKa,QAAQ4D,OAAQzE,KAAKa,QAAQ6D,aASnD9B,EAASwI,UAAY,WACnB,IAAIpL,KAAKiJ,iBAAT,CAQA,GAHAjJ,KAAK0H,qBAGD1H,KAAKa,QAAQW,SACf,IACExB,KAAKa,QAAQW,WAEf,MAAOkB,GACLtB,QAAQD,MAAM,+BAAgCuB,GAKlD,GAAI1C,KAAKa,QAAQwK,aACf,IACErL,KAAKa,QAAQwK,aAAarL,KAAKsD,WAEjC,MAAOZ,GACLtB,QAAQD,MAAM,mCAAoCuB,MAUxDE,EAASioD,UAAY,WACnB7qD,KAAK0rD,oBACL1rD,KAAK2rD,wBAQP/oD,EAASgP,WAAa,SAAUrC,GAC9B,GAAImG,GAASnG,EAAMoG,OAASpG,EAAMqG,QAC9BK,GAAU,CAEA,MAAVP,GAAiBnG,EAAMuG,UACrBvG,EAAMyG,UACRhW,KAAKypD,UACLzpD,KAAKoL,cAGLpL,KAAK8oD,SACL9oD,KAAKoL,aAEP6K,GAAU,GAGRA,IACF1G,EAAMM,iBACNN,EAAM0H,mBAGRjX,KAAK0rD,oBACL1rD,KAAK2rD,wBAQP/oD,EAASmoD,aAAe,SAAUx7C,GAChCvP,KAAK0rD,oBACL1rD,KAAK2rD,wBAQP/oD,EAASqoD,QAAU,SAAU17C,GAC3BvP,KAAK0rD,oBACL1rD,KAAK2rD,wBAMP/oD,EAAS8oD,kBAAoB,WAkD3B,QAASE,KAEH7+C,EAAGo+C,mBAAmBM,SAASh1C,YAAcoE,IAC/C9N,EAAGo+C,mBAAmBM,SAASh1C,UAAYoE,EAC3C9N,EAAGo+C,mBAAmBM,SAASzsC,MAAM6B,QAAUhG,EAAQ,SAAW,OAClE9N,EAAGo+C,mBAAmBK,WAAWxsC,MAAM6B,QAAUhG,EAAQ,SAAW,QAEtE9N,EAAGo+C,mBAAmBE,MAAM50C,UAAYsZ,EACxChjB,EAAGo+C,mBAAmBI,OAAO90C,UAAYU,EAzD3C,GACI4Y,GAAM5Y,EAAK0D,EADX9N,EAAK/M,IAGT,IAAIA,KAAKspD,SACPj6C,WAAW,WACT,GAAIw8C,GAAiB5qD,EAAKmnB,kBAAkBrb,EAAGu8C,SAE3CuC,GAAev2C,aAAeu2C,EAAet2C,WAC/CsF,EAAQgxC,EAAet2C,SAAWs2C,EAAev2C,YAG/CuF,GAAS9N,EAAG++C,YAAc/+C,EAAG++C,WAAW/7B,OAAS87B,EAAexiD,IAAImf,KAAOzb,EAAG++C,WAAWrjC,SAAWojC,EAAexiD,IAAIof,QACzHsH,EAAO87B,EAAeziD,MAAMof,IAC5BrR,EAAM00C,EAAeziD,MAAMqf,SAE3BsH,EAAO87B,EAAexiD,IAAImf,IAC1BrR,EAAM00C,EAAexiD,IAAIof,QAG3B1b,EAAG++C,YACD/7B,KAAMA,EACNtH,OAAQtR,EACR0D,MAAOA,GAGN9N,EAAGlM,QAAQmoD,WACZ4C,KAEF,OAEG,IAAI5rD,KAAKqpD,WAAarpD,KAAKmrD,mBAAoB,CACpD,GAAIY,GAAY/rD,KAAKqpD,UAAU2C,oBAC3BC,EAAejsD,KAAKqpD,UAAU6C,iBAElCn8B,GAAOg8B,EAAUvjC,IAAM,EACvBrR,EAAM40C,EAAUtjC,OAAS,EACzB5N,EAAQoxC,EAAa5pD,OAErB0K,EAAG++C,YACD/7B,KAAMA,EACNtH,OAAQtR,EACR0D,MAAOA,GAGN7a,KAAKa,QAAQmoD,WACd4C,MAoBNhpD,EAAS+oD,qBAAuB,WAC9B,GAAG3rD,KAAK6U,yBAA0B,CAChC,GAAIs3C,GAAmBnsD,KAAKosD,kBAC5BpsD,MAAK6U,yBAAyBs3C,EAAiB/iD,MAAO+iD,EAAiB9iD,IAAK8iD,EAAiBvhD,QAOjGhI,EAASI,QAAU,WAEbhD,KAAKqpD,YACPrpD,KAAKqpD,UAAUrmD,UACfhD,KAAKqpD,UAAY,MAGfrpD,KAAKuH,OAASvH,KAAKY,WAAaZ,KAAKuH,MAAMC,YAAcxH,KAAKY,WAChEZ,KAAKY,UAAU6G,YAAYzH,KAAKuH,OAG9BvH,KAAK4H,eACP5H,KAAK4H,aAAa5E,UAClBhD,KAAK4H,aAAe,MAGtB5H,KAAKspD,SAAW,KAEhBtpD,KAAK0H,mBAAqB,MAM5B9E,EAAS6mD,QAAU,WACjB,GAAI3oD,GAAOd,KAAKkD,MACZ0H,EAAOrH,KAAKC,UAAU1C,EAC1Bd,MAAKmD,QAAQyH,IAMfhI,EAASkmD,OAAS,WAChB,GAAIhoD,GAAOd,KAAKkD,MACZ0H,EAAOrH,KAAKC,UAAU1C,EAAM,KAAMd,KAAKipD,YAC3CjpD,MAAKmD,QAAQyH,IAMfhI,EAAS+mD,OAAS,WAChB,GAAI/+C,GAAO5K,KAAKsD,UACZ+oD,EAAgBprD,EAAK8I,SAASa,EAClC5K,MAAKmD,QAAQkpD,IAMfzpD,EAASsH,MAAQ,WACXlK,KAAKspD,UACPtpD,KAAKspD,SAASp/C,QAEZlK,KAAKqpD,WACPrpD,KAAKqpD,UAAUn/C,SAOnBtH,EAAS0pD,OAAS,WAChB,GAAItsD,KAAKqpD,UAAW,CAElBrpD,KAAKqpD,UAAUiD,QADH,KAShB1pD,EAASK,IAAM,SAASnC,GACtBd,KAAKmD,QAAQI,KAAKC,UAAU1C,EAAM,KAAMd,KAAKipD,eAO/CrmD,EAASkG,OAAS,SAAShI,GACzBd,KAAKgK,WAAWzG,KAAKC,UAAU1C,EAAM,KAAMd,KAAKipD,eAOlDrmD,EAASM,IAAM,WACb,GACIpC,GADA8J,EAAO5K,KAAKsD,SAGhB,KACExC,EAAOG,EAAKoC,MAAMuH,GAEpB,MAAOlI,GAELkI,EAAO3J,EAAK8I,SAASa,GAGrB9J,EAAOG,EAAKoC,MAAMuH,GAGpB,MAAO9J,IAOT8B,EAASU,QAAU,WACjB,MAAItD,MAAKspD,SACAtpD,KAAKspD,SAAS5gD,MAEnB1I,KAAKqpD,UACArpD,KAAKqpD,UAAUx/C,WAEjB,IAOTjH,EAASO,QAAU,SAASC,GAC1B,GAAIwH,EAGFA,IADiC,IAA/B5K,KAAKa,QAAQgkC,cACR5jC,EAAKuhB,mBAAmBpf,GAGxBA,EAGLpD,KAAKspD,WACPtpD,KAAKspD,SAAS5gD,MAAQkC,GAEpB5K,KAAKqpD,YAEPrpD,KAAKiJ,kBAAmB,EAExBjJ,KAAKqpD,UAAUryB,SAASpsB,GAAO,GAE/B5K,KAAKiJ,kBAAmB,GAG1BjJ,KAAKmF,YAOPvC,EAASoH,WAAa,SAAS5G,GAEzBpD,KAAKsD,YAAcF,IAIvBpD,KAAKiJ,kBAAmB,EACxBjJ,KAAKmD,QAAQC,GACbpD,KAAKiJ,kBAAmB,IAO1BrG,EAASuC,SAAW,WAEdnF,KAAK0G,IAAI6lD,mBACXvsD,KAAK0G,IAAI6lD,iBAAiB/kD,WAAWC,YAAYzH,KAAK0G,IAAI6lD,kBAC1DvsD,KAAK0G,IAAI6lD,iBAAmB,KAE5BvsD,KAAKsI,QAAQ0W,MAAMwtC,aAAe,GAClCxsD,KAAKsI,QAAQ0W,MAAMytC,cAAgB,GAGrC,IAEI3rD,GAFA4rD,GAAa,EACbjhD,IAEJ,KACE3K,EAAOd,KAAKkD,MACZwpD,GAAa,EAEf,MAAOhqD,IAKP,GAAIgqD,GAAc1sD,KAAKiF,eAAgB,CACzBjF,KAAKiF,eAAenE,KAE9B2K,EAASzL,KAAKiF,eAAewG,OAAOC,IAAI,SAAUvK,GAChD,MAAOF,GAAK0K,mBAAmBxK,MAKrC,GAAIsK,EAAOpJ,OAAS,EAAG,CAGrB,GADYoJ,EAAOpJ,OA7qBN,EA8qBF,CACToJ,EAASA,EAAOsJ,MAAM,EA/qBX,EAgrBX,IAAI43C,GAAS3sD,KAAKiF,eAAewG,OAAOpJ,OAhrB7B,CAirBXoJ,GAAOuH,KAAK,IAAM25C,EAAS,oBAG7B,GAAIJ,GAAmB/lD,SAASiJ,cAAc,MAC9C88C,GAAiB7uC,UAAY,gDAEzBjS,EAAOC,IAAI,SAAUvK,GAUnB,MAAO,kEARc,gBAAVA,GACC,wBAA0BA,EAAQ,cAGlC,OAASA,EAAM0K,SAAW,YACvB1K,EAAMsL,QAAU,SAGqD,UACnF8V,KAAK,IACR,mBAGJviB,KAAK0G,IAAI6lD,iBAAmBA,EAC5BvsD,KAAK0G,IAAIwkD,0BAA0BriD,YAAY0jD,EAE/C,IAAIr/C,GAASq/C,EAAiBp/C,cACzBnN,KAAK0G,IAAIsiD,UAAYhpD,KAAK0G,IAAIsiD,UAAU77C,aAAe,EAC5DnN,MAAKsI,QAAQ0W,MAAMwtC,cAAiBt/C,EAAU,KAC9ClN,KAAKsI,QAAQ0W,MAAMytC,cAAgBv/C,EAAS,KAI9C,GAAIlN,KAAKqpD,UAAW,CAElBrpD,KAAKqpD,UAAUiD,QADH,KAShB1pD,EAASwpD,iBAAmB,WAC1B,GAAIxlD,KACJ,IAAI5G,KAAKspD,SAAU,CACjB,GAAIuC,GAAiB5qD,EAAKmnB,kBAAkBpoB,KAAKspD,SAUjD,OARItpD,MAAK8rD,YAAc9rD,KAAK8rD,WAAW/7B,OAAS87B,EAAexiD,IAAImf,KAAOxoB,KAAK8rD,WAAWrjC,SAAWojC,EAAexiD,IAAIof,QAEtH7hB,EAAUwC,MAAQyiD,EAAexiD,IACjCzC,EAAUyC,IAAMwiD,EAAeziD,OAE/BxC,EAAYilD,GAIZziD,MAAOxC,EAAUwC,MACjBC,IAAKzC,EAAUyC,IACfuB,KAAM5K,KAAKspD,SAAS5gD,MAAMme,UAAUglC,EAAev2C,WAAYu2C,EAAet2C,WAIlF,GAAIvV,KAAKqpD,UAAW,CAClB,GAAIuD,GAAe5sD,KAAKqpD,UAAUrgD,eAC9BijD,EAAejsD,KAAKqpD,UAAU6C,kBAC9Bj+C,EAAQ2+C,EAAaC,WACrBC,EAAOF,EAAaG,kBAUxB,OARID,GAAKtkC,MAAQva,EAAM5E,IAAImf,KAAOskC,EAAKrkC,SAAWxa,EAAM5E,IAAIof,OAC1D7hB,EAAYqH,GAGZrH,EAAUwC,MAAQ6E,EAAM5E,IACxBzC,EAAUyC,IAAM4E,EAAM7E,QAItBA,OACEof,IAAK5hB,EAAUwC,MAAMof,IAAM,EAC3BC,OAAQ7hB,EAAUwC,MAAMqf,OAAS,GAEnCpf,KACEmf,IAAK5hB,EAAUyC,IAAImf,IAAM,EACzBC,OAAQ7hB,EAAUyC,IAAIof,OAAS,GAEjC7d,KAAMqhD,KAcZrpD,EAASwmD,sBAAwB,SAAU16C,GACjB,kBAAbA,KACT1O,KAAK6U,yBAA2B5T,EAAKgH,SAASyG,EAAU1O,KAAK8C,qBASjEF,EAASoqD,iBAAmB,SAAU1F,EAAU2F,GAE9C,GAAK3F,GAAa2F,EAElB,GAAIjtD,KAAKspD,SAAU,CACjB,GAAIh0C,GAAarU,EAAKsoB,oBAAoBvpB,KAAKspD,SAAUhC,EAAS9+B,IAAK8+B,EAAS7+B,QAC5ElT,EAAWtU,EAAKsoB,oBAAoBvpB,KAAKspD,SAAU2D,EAAOzkC,IAAKykC,EAAOxkC,OAC1E,IAAInT,GAAc,GAAKC,GAAa,EAClC,GAAIvV,KAAKspD,SAAS4D,kBAChBltD,KAAKspD,SAASp/C,QACdlK,KAAKspD,SAAS4D,kBAAkB53C,EAAYC,OACvC,IAAIvV,KAAKspD,SAASrgC,gBAAiB,CACxC,GAAIhb,GAAQjO,KAAKspD,SAASrgC,iBAC1Bhb,GAAMjD,UAAS,GACfiD,EAAMqb,QAAQ,YAAa/T,GAC3BtH,EAAMob,UAAU,YAAa/T,GAC7BrH,EAAMF,cAGL,IAAI/N,KAAKqpD,UAAW,CACzB,GAAIp7C,IACF7E,OACEof,IAAK8+B,EAAS9+B,IAAM,EACpBC,OAAQ6+B,EAAS7+B,OAAS,GAE5Bpf,KACEmf,IAAKykC,EAAOzkC,IAAM,EAClBC,OAAQwkC,EAAOxkC,OAAS,GAG5BzoB,MAAKqpD,UAAUziD,UAAUumD,SAASl/C,KActCpO,EAAOD,UAEHgC,KAAM,OACNuC,MAAOvB,EACPiB,KAAM,OACNO,KAAMA,IAGNxC,KAAM,OACNuC,MAAOvB,EACPiB,KAAM,OACNO,KAAMA,KAOL,SAASvE,EAAQD,EAASM,GAE/B,GAAI6oD,EACJ,IAAI90C,OAAO80C,IAETA,EAAM90C,OAAO80C,QAGb,KAEEA,EAAM7oD,GAAsB,WAAkC,GAAIsC,GAAI,GAAIzB,OAAM,6BAA8D,MAA7ByB,GAAEC,KAAO,mBAA0BD,MAGpJtC,EAAoB,IACpBA,EAAoB,IAEtB,MAAOwC,IAMT7C,EAAOD,QAAUmpD,GAKZ,SAASlpD,EAAQD,EAASM,GAE/B6oD,IAAIjpD,OAAO,iCAAiC,UAAU,UAAU,SAAS,cAAc,iCAAkC,SAASstD,EAAUxtD,EAASC,GACrJ,YAEA,IAAIwtD,GAAMD,EAAS,cACfE,EAAqBF,EAAS,0BAA0BE,mBAExDC,EAAqB,WACrBvtD,KAAKwtD,QACDpkD,QAEQulB,MAAQ,WACR8+B,MAAQ,gDAER9+B,MAAQ,SACR8+B,MAAQ,IACRr3C,KAAQ,WAERuY,MAAQ,mBACR8+B,MAAQ,yBAER9+B,MAAQ,mBACR8+B,MAAQ,oDAER9+B,MAAQ,4BACR8+B,MAAQ,sBAER9+B,MAAQ,OACR8+B,MAAQ,uCAER9+B,MAAQ,UACR8+B,MAAQ,cAER9+B,MAAQ,gBACR8+B,MAAQ,SACRr3C,KAAQ,YAERuY,MAAQ,eACR8+B,MAAQ,UAER9+B,MAAQ,eACR8+B,MAAQ,YAER9+B,MAAQ,OACR8+B,MAAQ,SAGhB54B,SAEQlG,MAAQ,2BACR8+B,MAAQ,uDAER9+B,MAAQ,SACR8+B,MAAQ,MACRr3C,KAAQ,UAERs3C,aAAe,WAGvBC,UAEQh/B,MAAQ,cACR8+B,MAAQ,SACRr3C,KAAQ,UAERs3C,aAAc,aAO9BL,GAAIO,SAASL,EAAoBD,GAEjC1tD,EAAQ2tD,mBAAqBA,IAG7BxE,IAAIjpD,OAAO,mCAAmC,UAAU,UAAU,SAAS,aAAc,SAASstD,EAAUxtD,EAASC,GACrH,YAEA,IAAIguD,GAAQT,EAAS,YAAYS,MAE7BC,EAAuB,cAE3B,WAEI9tD,KAAK+tD,aAAe,SAASh+B,EAAM5lB,GAC/B,QAAM,QAAQgY,KAAK4N,IAGZ,SAAS5N,KAAKhY,IAGzBnK,KAAKguD,YAAc,SAASC,EAAKzlC,GAC7B,GAAIuH,GAAOk+B,EAAIC,QAAQ1lC,GACnB3G,EAAQkO,EAAKlO,MAAM,WAEvB,KAAKA,EAAO,MAAO,EAEnB,IAAI4G,GAAS5G,EAAM,GAAGxf,OAClB8rD,EAAeF,EAAIG,qBAAqB5lC,IAAKA,EAAKC,OAAQA,GAE9D,KAAK0lC,GAAgBA,EAAa3lC,KAAOA,EAAK,MAAO,EAErD,IAAI6lC,GAASruD,KAAKsuD,WAAWL,EAAIC,QAAQC,EAAa3lC,KACtDylC,GAAIxrC,QAAQ,GAAIorC,GAAMrlC,EAAK,EAAGA,EAAKC,EAAO,GAAI4lC,IAGlDruD,KAAKsuD,WAAa,SAASv+B,GACvB,MAAOA,GAAKlO,MAAM,QAAQ,MAG/BthB,KAAKutD,EAAqBjrD,WAE7BjD,EAAQkuD,qBAAuBA,IAG/B/E,IAAIjpD,OAAO,2BAA2B,UAAU,UAAU,SAAS,cAAc,YAAY,8BAA+B,SAASstD,EAAUxtD,EAASC,GACxJ,YAEA,IAAIwtD,GAAMD,EAAS,iBACfS,EAAQT,EAAS,eAAeS,MAChCU,EAAenB,EAAS,eAAeoB,SAEvCA,EAAW5uD,EAAQ4uD,SAAW,SAASC,GACnCA,IACAzuD,KAAK0uD,mBAAqB,GAAIxrC,QAC1BljB,KAAK0uD,mBAAmBC,OAAOlsC,QAAQ,YAAa,IAAMgsC,EAAarlD,QAE3EpJ,KAAK4uD,kBAAoB,GAAI1rC,QACzBljB,KAAK4uD,kBAAkBD,OAAOlsC,QAAQ,YAAa,IAAMgsC,EAAaplD,OAIlFgkD,GAAIO,SAASY,EAAUD,GAEvB,WAEIvuD,KAAK0uD,mBAAqB,mCAC1B1uD,KAAK4uD,kBAAoB,uCACzB5uD,KAAK6uD,yBAA0B,uBAC/B7uD,KAAK8uD,yBAA2B,2BAChC9uD,KAAK+uD,cAAgB,4BACrB/uD,KAAKgvD,mBAAqBhvD,KAAKivD,cAC/BjvD,KAAKivD,cAAgB,SAASC,EAASC,EAAW3mC,GAC9C,GAAIuH,GAAOm/B,EAAQhB,QAAQ1lC,EAE3B,IAAIxoB,KAAK6uD,yBAAyB1sC,KAAK4N,KAC9B/vB,KAAK+uD,cAAc5sC,KAAK4N,KAAU/vB,KAAK8uD,yBAAyB3sC,KAAK4N,GACtE,MAAO,EAGf,IAAIq/B,GAAKpvD,KAAKgvD,mBAAmBE,EAASC,EAAW3mC,EAErD,QAAK4mC,GAAMpvD,KAAK+uD,cAAc5sC,KAAK4N,GACxB,QAEJq/B,GAGXpvD,KAAKqvD,mBAAqB,SAASH,EAASC,EAAW3mC,EAAK8mC,GACxD,GAAIv/B,GAAOm/B,EAAQhB,QAAQ1lC,EAE3B,IAAIxoB,KAAK+uD,cAAc5sC,KAAK4N,GACxB,MAAO/vB,MAAKuvD,sBAAsBL,EAASn/B,EAAMvH,EAErD,IAAI3G,GAAQkO,EAAKlO,MAAM7hB,KAAK0uD,mBAC5B,IAAI7sC,EAAO,CACP,GAAIvc,GAAIuc,EAAMpP,KAEd,IAAIoP,EAAM,GACN,MAAO7hB,MAAKwvD,oBAAoBN,EAASrtC,EAAM,GAAI2G,EAAKljB,EAE5D,IAAI2I,GAAQihD,EAAQO,oBAAoBjnC,EAAKljB,EAAIuc,EAAM,GAAGxf,OAAQ,EASlE,OAPI4L,KAAUA,EAAMyhD,gBACZJ,EACArhD,EAAQjO,KAAK2vD,gBAAgBT,EAAS1mC,GAClB,OAAb2mC,IACPlhD,EAAQ,OAGTA,EAGX,GAAkB,cAAdkhD,EAAJ,CAGA,GAAIttC,GAAQkO,EAAKlO,MAAM7hB,KAAK4uD,kBAC5B,IAAI/sC,EAAO,CACP,GAAIvc,GAAIuc,EAAMpP,MAAQoP,EAAM,GAAGxf,MAE/B,OAAIwf,GAAM,GACC7hB,KAAK4vD,oBAAoBV,EAASrtC,EAAM,GAAI2G,EAAKljB,GAErD4pD,EAAQO,oBAAoBjnC,EAAKljB,GAAI,MAIpDtF,KAAK2vD,gBAAkB,SAAST,EAAS1mC,GACrC,GAAIuH,GAAOm/B,EAAQhB,QAAQ1lC,GACvBqnC,EAAc9/B,EAAKloB,OAAO,MAC1BioD,EAAWtnC,EACXunC,EAAchgC,EAAK1tB,MACvBmmB,IAAY,CAGZ,KAFA,GAAIwnC,GAASxnC,EACTynC,EAASf,EAAQgB,cACZ1nC,EAAMynC,GAAQ,CACnBlgC,EAAOm/B,EAAQhB,QAAQ1lC,EACvB,IAAI6lC,GAASt+B,EAAKloB,OAAO,KACzB,KAAgB,IAAZwmD,EAAJ,CAEA,GAAKwB,EAAcxB,EACf,KACJ,IAAI8B,GAAWnwD,KAAKqvD,mBAAmBH,EAAS,MAAO1mC,EAEvD,IAAI2nC,EAAU,CACV,GAAIA,EAAS/mD,MAAMof,KAAOsnC,EACtB,KACG,IAAIK,EAAST,cAChBlnC,EAAM2nC,EAAS9mD,IAAImf,QAChB,IAAIqnC,GAAexB,EACtB,MAGR2B,EAASxnC,GAGb,MAAO,IAAIqlC,GAAMiC,EAAUC,EAAaC,EAAQd,EAAQhB,QAAQ8B,GAAQ3tD,SAE5ErC,KAAKuvD,sBAAwB,SAASL,EAASn/B,EAAMvH,GAOjD,IANA,GAAIunC,GAAchgC,EAAKloB,OAAO,QAC1BooD,EAASf,EAAQgB,YACjBJ,EAAWtnC,EAEXoqB,EAAK,uCACLwd,EAAQ,IACH5nC,EAAMynC,GAAQ,CACnBlgC,EAAOm/B,EAAQhB,QAAQ1lC,EACvB,IAAIhoB,GAAIoyC,EAAG7sB,KAAKgK,EAChB,IAAKvvB,IACDA,EAAE,GAAI4vD,IACLA,KAEAA,GAAO,MAGhB,GAAIJ,GAASxnC,CACb,IAAIwnC,EAASF,EACT,MAAO,IAAIjC,GAAMiC,EAAUC,EAAaC,EAAQjgC,EAAK1tB,UAI9D9B,KAAKiuD,EAAS3rD,aAIjBkmD,IAAIjpD,OAAO,iBAAiB,UAAU,UAAU,SAAS,cAAc,gBAAgB,gCAAgC,kCAAkC,4BAA4B,0BAA0B,4BAA6B,SAASstD,EAAUxtD,EAASC,GACxQ,YAEA,IAAIwtD,GAAMD,EAAS,cACfiD,EAAWjD,EAAS,UAAUkD,KAC9BC,EAAiBnD,EAAS,0BAA0BG,mBACpDO,EAAuBV,EAAS,4BAA4BU,qBAC5D0C,EAAkBpD,EAAS,sBAAsBoD,gBACjDC,EAAiBrD,EAAS,oBAAoBoB,SAC9CkC,EAAetD,EAAS,2BAA2BsD,aAEnDJ,EAAO,WACPtwD,KAAKuwD,eAAiBA,EACtBvwD,KAAK2wD,SAAW,GAAI7C,GACpB9tD,KAAK4wD,WAAa,GAAIJ,GACtBxwD,KAAK6wD,aAAe,GAAIJ,GAE5BpD,GAAIO,SAAS0C,EAAMD,GAEnB,WAEIrwD,KAAK8wD,kBAAoB,SAASthC,EAAOO,EAAMghC,GAC3C,GAAI1C,GAASruD,KAAKsuD,WAAWv+B,EAE7B,IAAa,SAATP,EAAkB,CACNO,EAAKlO,MAAM,qBAEnBwsC,GAAU0C,GAIlB,MAAO1C,IAGXruD,KAAK+tD,aAAe,SAASv+B,EAAOO,EAAM5lB,GACtC,MAAOnK,MAAK2wD,SAAS5C,aAAah+B,EAAM5lB,IAG5CnK,KAAKguD,YAAc,SAASx+B,EAAOy+B,EAAKzlC,GACpCxoB,KAAK2wD,SAAS3C,YAAYC,EAAKzlC,IAGnCxoB,KAAKgxD,aAAe,SAAS9B,GACzB,GAAI+B,GAAS,GAAIP,IAAc,OAAQxwD,EAAoB,IAAK,aAWhE,OAVA+wD,GAAOC,iBAAiBhC,EAAQiC,eAEhCF,EAAOtU,GAAG,WAAY,SAASn6C,GAC3B0sD,EAAQkC,eAAe5uD,EAAEqB,QAG7BotD,EAAOtU,GAAG,YAAa,WACnBuS,EAAQmC,qBAGLJ,GAIXjxD,KAAKsxD,IAAM,iBACZ/wD,KAAK+vD,EAAKztD,WAEbjD,EAAQ0wD,KAAOA,KAMV,SAASzwD,EAAQD,GAEtBC,EAAOD,QAAQS,GAAK,uBACpBR,EAAOD,QAAQg+C,IAAM,85zCAIhB,SAAS/9C,EAAQD,GAEtBmpD,IAAIjpD,OAAO,qBAAqB,UAAU,UAAU,SAAS,cAAc,eAAe,gBAAgB,4BAA4B,gBAAiB,SAASstD,EAAUxtD,EAASC,GACnL,YAEA,IAAI6G,GAAM0mD,EAAS,cACfl3B,EAAOk3B,EAAS,eAChB79C,EAAQ69C,EAAS,gBAwJjBmE,EAAcnE,EAAS,4BAA4BmE,YACnDC,EAAUpE,EAAS,cAIvB1mD,GAAI+qD,gBA5Je,qkGA4Je,gBAElC,IAAI7sB,GAAO,w3CAsBHniB,QAAQ,OAAQ,KAEpB7c,EAAY,SAAS+I,EAAQV,EAAOyjD,GACpC,GAAIC,GAAMjrD,EAAI+I,cAAc,MAC5BkiD,GAAIj0C,UAAYknB,EAChB5kC,KAAKwW,QAAUm7C,EAAIrxC,WAEnBtgB,KAAK4xD,WAAa5xD,KAAK4xD,WAAW1pD,KAAKlI,MAEvCA,KAAK6xD,QACL7xD,KAAK8xD,UAAUnjD,KAGnB,WACI3O,KAAK8xD,UAAY,SAASnjD,GACtBA,EAAOhH,UAAY3H,KACnB2O,EAAOojD,SAASC,SAASnpD,YAAY7I,KAAKwW,SAC1CxW,KAAK2O,OAASA,GAGlB3O,KAAK4xD,WAAa,SAASpvD,GACvBxC,KAAKiyD,YAAc,KACnBjyD,KAAKkyD,cAAa,IAGtBlyD,KAAKmyD,cAAgB,SAASC,GAC1BpyD,KAAK2H,UAAYyqD,EAAG/nD,cAAc,oBAClCrK,KAAKqyD,WAAaD,EAAG/nD,cAAc,qBACnCrK,KAAKsyD,aAAeF,EAAG/nD,cAAc,8BACrCrK,KAAKuyD,cAAgBH,EAAG/nD,cAAc,0BACtCrK,KAAKwyD,aAAeJ,EAAG/nD,cAAc,6BACrCrK,KAAKyyD,oBAAsBL,EAAG/nD,cAAc,gCAC5CrK,KAAK0yD,gBAAkBN,EAAG/nD,cAAc,6BACxCrK,KAAK2yD,YAAc3yD,KAAK2H,UAAU0C,cAAc,qBAChDrK,KAAK4yD,aAAe5yD,KAAKqyD,WAAWhoD,cAAc,qBAClDrK,KAAK6yD,cAAgBT,EAAG/nD,cAAc,wBAG1CrK,KAAK6xD,MAAQ,WACT,GAAIO,GAAKpyD,KAAKwW,OAEdxW,MAAKmyD,cAAcC,EAEnB,IAAIU,GAAQ9yD,IACZuP,GAAMwjD,YAAYX,EAAI,YAAa,SAAS5vD,GACxC6M,WAAW,WACPyjD,EAAME,YAAY9oD,SACnB,GACHqF,EAAM0H,gBAAgBzU,KAE1B+M,EAAMwjD,YAAYX,EAAI,QAAS,SAAS5vD,GACpC,GAAI2pC,GAAI3pC,EAAEoN,QAAUpN,EAAEw+B,WAClB91B,EAASihC,EAAE2I,aAAa,SACxB5pC,IAAU4nD,EAAM5nD,GAChB4nD,EAAM5nD,KACD4nD,EAAMG,aAAavI,SAASx/C,IACjC4nD,EAAMG,aAAavI,SAASx/C,GAAQ6a,KAAK+sC,GAC7CvjD,EAAM0H,gBAAgBzU,KAG1B+M,EAAM2jD,sBAAsBd,EAAI,SAAS5vD,EAAG2wD,EAAQv9C,GAChD,GAAIw9C,GAAY5B,EAAQ6B,gBAAgBz9C,GACpC09C,EAAUR,EAAMG,aAAaM,eAAeJ,EAAQC,EACpDE,IAAWA,EAAQvtC,OACnButC,EAAQvtC,KAAK+sC,GACbvjD,EAAMikD,UAAUhxD,MAIxBxC,KAAKyzD,UAAYv9B,EAAKw9B,YAAY,WAC9BZ,EAAMzkD,MAAK,GAAO,KAGtBkB,EAAMwjD,YAAY/yD,KAAK2yD,YAAa,QAAS,WACzCG,EAAMW,UAAUE,SAAS,MAE7BpkD,EAAMwjD,YAAY/yD,KAAK2yD,YAAa,QAAS,WACzCG,EAAME,YAAcF,EAAMH,YAC1BG,EAAMH,YAAYjqD,OAASoqD,EAAMx6C,cAErC/I,EAAMwjD,YAAY/yD,KAAK4yD,aAAc,QAAS,WAC1CE,EAAME,YAAcF,EAAMF,aAC1BE,EAAMH,YAAYjqD,OAASoqD,EAAMx6C,eAGzCtY,KAAK4zD,kBAAoB,GAAIrC,KACzB5G,QAAS,MACTjnD,KAAM,iBACNqiB,KAAM,SAASpX,GACXA,EAAOhH,UAAU4C,WAGzBvK,KAAKizD,aAAe,GAAI1B,GACxBvxD,KAAKizD,aAAaY,UACdC,mBAAoB,SAAS1B,GACzB,GAAI2B,GAAY3B,EAAG2B,WAAa3B,EAAG2B,SACnC3B,GAAGC,WAAWrzC,MAAM6B,QAAUkzC,EAAY,GAAK,OAC/C3B,EAAGG,cAAcl2B,SAAU,EAC3B+1B,EAAGF,eACHE,EAAGO,YAAYzoD,SAEnB8pD,0BAA2B,SAAS5B,GAChCA,EAAGG,cAAcl2B,SAAU,EAC3B+1B,EAAGF,eACHE,EAAGQ,aAAa1oD,SAEpB+pD,mBAAoB,SAAS7B,GACzBA,EAAG8B,YAEPC,+BAAgC,SAAS/B,GACrCA,EAAGgC,YAEPC,IAAO,SAASjC,GACZ/iD,WAAW,WAAa+iD,EAAG7nD,UAE/B+pD,OAAU,SAASlC,GACXA,EAAGY,aAAeZ,EAAGQ,cACrBR,EAAG3vC,UACP2vC,EAAG8B,YAEPK,eAAgB,SAASnC,GACjBA,EAAGY,aAAeZ,EAAGQ,cACrBR,EAAG3vC,UACP2vC,EAAGgC,YAEPI,aAAc,SAASpC,GACfA,EAAGY,aAAeZ,EAAGQ,cACrBR,EAAGqC,aACPrC,EAAGsC,WAEPC,IAAO,SAASvC,IACXA,EAAGY,aAAeZ,EAAGQ,aAAeR,EAAGO,YAAcP,EAAGQ,cAAc1oD,WAI/ElK,KAAKizD,aAAa2B,cACdlxD,KAAM,mBACNinD,SAAUkK,IAAK,cAAeC,IAAK,yBACnC/uC,KAAM,SAASqsC,GACXA,EAAGI,aAAan2B,SAAW+1B,EAAGI,aAAan2B,QAC3C+1B,EAAGF,kBAGPxuD,KAAM,sBACNinD,SAAUkK,IAAK,cAAeC,IAAK,yBACnC/uC,KAAM,SAASqsC,GACXA,EAAGK,oBAAoBp2B,SAAW+1B,EAAGK,oBAAoBp2B,QACzD+1B,EAAGF,kBAGPxuD,KAAM,mBACNinD,SAAUkK,IAAK,cAAeC,IAAK,yBACnC/uC,KAAM,SAASqsC,GACXA,EAAGM,gBAAgBr2B,SAAW+1B,EAAGM,gBAAgBr2B,QACjD+1B,EAAGF,kBAGPxuD,KAAM,gBACNqiB,KAAM,SAASqsC,GACXA,EAAGG,cAAcl2B,SAAW+1B,EAAGG,cAAcl2B,QAC7C+1B,EAAGF,kBAGPxuD,KAAM,oBACNqiB,KAAM,SAASqsC,GACXA,EAAGE,aAAaj2B,SAAW+1B,EAAGH,YAC9BG,EAAG2C,eAAe3C,EAAGE,aAAaj2B,SAAW+1B,EAAGzjD,OAAOqmD,qBACvD5C,EAAGF,mBAIXlyD,KAAK+0D,eAAiB,SAAS9mD,GAC3BjO,KAAKiyD,YAAchkD,EACfA,EACAjO,KAAKi1D,kBAAoBj1D,KAAK2O,OAAOugD,QAAQgG,UAAUjnD,EAAO,mBACvDjO,KAAKi1D,oBACZj1D,KAAK2O,OAAOugD,QAAQiG,aAAan1D,KAAKi1D,mBACtCj1D,KAAKi1D,kBAAoB,OAIjCj1D,KAAKkyD,aAAe,SAASkD,GACzB1uD,EAAI2uD,YAAYr1D,KAAKuyD,cAAe,UAAWvyD,KAAKiyD,aACpDvrD,EAAI2uD,YAAYr1D,KAAKsyD,aAAc,UAAWtyD,KAAKsyD,aAAaj2B,SAChEr8B,KAAKuyD,cAAcvV,YAAch9C,KAAKuyD,cAAcl2B,QAAU,IAAM,IACpE31B,EAAI2uD,YAAYr1D,KAAKwyD,aAAc,UAAWxyD,KAAKwyD,aAAan2B,SAChE31B,EAAI2uD,YAAYr1D,KAAK0yD,gBAAiB,UAAW1yD,KAAK0yD,gBAAgBr2B,SACtE31B,EAAI2uD,YAAYr1D,KAAKyyD,oBAAqB,UAAWzyD,KAAKyyD,oBAAoBp2B,SAC9Er8B,KAAKqyD,WAAWrzC,MAAM6B,QAAU7gB,KAAKuyD,cAAcl2B,QAAU,GAAK,OAClEr8B,KAAKqO,MAAK,GAAO,EAAO+mD,IAG5Bp1D,KAAKsY,UAAY,SAASs6B,GACtB5yC,KAAK2O,OAAOugD,QAAQ52C,UAAUs6B,GAAM5yC,KAAK2O,OAAO2mD,QAAQC,SAAS3iB,IACjE5yC,KAAK2O,OAAOojD,SAASyD,qBAEzBx1D,KAAKqO,KAAO,SAASonD,EAAaC,EAAWN;0BACzC,GAAInnD,GAAQjO,KAAK2O,OAAON,KAAKrO,KAAK2yD,YAAYjqD,OAC1C+sD,YAAaA,EACbC,UAAWA,EACXC,MAAM,EACNC,OAAQ51D,KAAKwyD,aAAan2B,QAC1BsqB,cAAe3mD,KAAKyyD,oBAAoBp2B,QACxCw5B,UAAW71D,KAAK0yD,gBAAgBr2B,QAChC+4B,cAAeA,EACfnnD,MAAOjO,KAAKiyD,cAEZ6D,GAAW7nD,GAASjO,KAAK2yD,YAAYjqD,KACzChC,GAAI2uD,YAAYr1D,KAAK2H,UAAW,cAAemuD,GAC/C91D,KAAK2O,OAAOonD,MAAM,iBAAmBl0C,OAAQi0C,IAC7C91D,KAAKsY,YACLtY,KAAKg2D,iBAETh2D,KAAKg2D,cAAgB,WACjB,GAAIrnD,GAAS3O,KAAK2O,OACd8+C,EAAQ9+C,EAAO2mD,QAAQC,SAAS3iB,GAChCzmC,EAAM,EACN8pD,EAAS,CACb,IAAIxI,EAAO,CACP,GAAI/kD,GAAQ1I,KAAKiyD,YACXtjD,EAAOugD,QAAQgH,aAAal2D,KAAKiyD,aACjCtjD,EAAO9E,WAETssD,EAASxnD,EAAOugD,QAAQjB,IAAImI,gBAAgBznD,EAAO/H,UAAUiK,OAC7D7Q,MAAKiyD,cACLkE,GAAUxnD,EAAOugD,QAAQjB,IAAImI,gBAAgBp2D,KAAKiyD,YAAY7oD,OAIlE,KAFA,GACI5I,GADAs4C,EAAO2U,EAAMh4C,UAAY,GAErBjV,EAAIitD,EAAM1nC,KAAKrd,MACnByD,IACA2sC,EAAOt4C,EAAEiS,MACLqmC,GAAQqd,GACRF,MACA9pD,EApQJ,QAsQK3L,EAAE,KACHitD,EAAMh4C,UAAYqjC,GAAQ,IACtBA,GAAQpwC,EAAMrG,aAK9BrC,KAAK6yD,cAAc7V,YAAciZ,EAAS,QAAU9pD,EA7Q5C,IA6Q8DkqD,OAAkBlqD,IAE5FnM,KAAKk0D,SAAW,WACZl0D,KAAKqO,MAAK,GAAM,IAEpBrO,KAAKo0D,SAAW,WACZp0D,KAAKqO,MAAK,GAAM,IAEpBrO,KAAK00D,QAAU,WACX,GAAIzmD,GAAQjO,KAAK2O,OAAO+lD,QAAQ10D,KAAK2yD,YAAYjqD,OAC7CktD,OAAQ51D,KAAKwyD,aAAan2B,QAC1BsqB,cAAe3mD,KAAKyyD,oBAAoBp2B,QACxCw5B,UAAW71D,KAAK0yD,gBAAgBr2B,UAEhCy5B,GAAW7nD,GAASjO,KAAK2yD,YAAYjqD,KACzChC,GAAI2uD,YAAYr1D,KAAK2H,UAAW,cAAemuD,GAC/C91D,KAAK2O,OAAOonD,MAAM,iBAAmBl0C,OAAQi0C,IAC7C91D,KAAKsY,YACLtY,KAAKuK,QAETvK,KAAKyiB,QAAU,WACNziB,KAAK2O,OAAO2nD,eACbt2D,KAAK2O,OAAO8T,QAAQziB,KAAK4yD,aAAalqD,QAE9C1I,KAAKu2D,mBAAqB,WACjBv2D,KAAK2O,OAAO2nD,gBACbt2D,KAAK2O,OAAO8T,QAAQziB,KAAK4yD,aAAalqD,OACtC1I,KAAKk0D,aAGbl0D,KAAKy0D,WAAa,WACTz0D,KAAK2O,OAAO2nD,eACbt2D,KAAK2O,OAAO8lD,WAAWz0D,KAAK4yD,aAAalqD,QAGjD1I,KAAKuK,KAAO,WACRvK,KAAKw2D,QAAS,EACdx2D,KAAK+0D,eAAe,MACpB/0D,KAAK2O,OAAO+uC,IAAI,gBAAiB19C,KAAK4xD,YAEtC5xD,KAAKwW,QAAQwI,MAAM6B,QAAU,OAC7B7gB,KAAK2O,OAAO8nD,WAAWC,sBAAsB12D,KAAK4zD,mBAClD5zD,KAAK2O,OAAOzE,SAEhBlK,KAAK+W,KAAO,SAASrO,EAAOqrD,GACxB/zD,KAAKw2D,QAAS,EACdx2D,KAAK2O,OAAOguC,GAAG,gBAAiB38C,KAAK4xD,YACrC5xD,KAAKwW,QAAQwI,MAAM6B,QAAU,GAC7B7gB,KAAKuyD,cAAcl2B,QAAU03B,EAEzBrrD,IACA1I,KAAK2yD,YAAYjqD,MAAQA,GAE7B1I,KAAK2yD,YAAYzoD,QACjBlK,KAAK2yD,YAAY5kD,SAEjB/N,KAAK2O,OAAO8nD,WAAWE,mBAAmB32D,KAAK4zD,mBAE/C5zD,KAAKkyD,cAAa,IAGtBlyD,KAAK42D,UAAY,WACb,GAAIvuC,GAAK7hB,SAASkyC,aAClB,OAAOrwB,IAAMroB,KAAK2yD,aAAetqC,GAAMroB,KAAK4yD,gBAEjDryD,KAAKqF,EAAU/C,WAElBjD,EAAQgG,UAAYA,EAEpBhG,EAAQi3D,OAAS,SAASloD,EAAQolD,IACrBplD,EAAOhH,WAAa,GAAI/B,GAAU+I,IACxCoI,KAAKpI,EAAOugD,QAAQgH,eAAgBnC,MAI3B,WACIhL,IAAIqE,UAAU,qBAAsB,kBAMnD,SAASvtD,EAAQD,GAgCtBmpD,IAAIjpD,OAAO,wBAAyB,UAAW,UAAW,SAAU,eAAgB,SAASstD,EAAUxtD,EAASC,GAEhHD,EAAQk3D,QAAS,EACjBl3D,EAAQm3D,SAAW,iBACnBn3D,EAAQo3D,QAAU,irFA4GR5J,EAAS,cACfqE,gBAAgB7xD,EAAQo3D,QAASp3D,EAAQm3D","file":"jsoneditor-minimalist"} \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index be00ce9..f75bbd8 100644 --- a/dist/jsoneditor-minimalist.min.js +++ b/dist/jsoneditor-minimalist.min.js @@ -24,11 +24,12 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.19.2 - * @date 2018-08-02 + * @version 5.20.0 + * @date 2018-08-10 */ -!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 o=i[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.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 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","onSelectionChange","onTextSelectionChange","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,i)}var o;try{o=i(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=i(1),s=i(21),a=i(4);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,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+r.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(o,r),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 r.onModeChange&&e!==s)try{r.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||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(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;t0?this.autoScrollStep=(n+24-e)/3:e>r-24&&o+i.scrollTop3?(i.scrollTop+=o/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)},y._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=f("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");n.type="button",n.title=f("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n);var o=document.createElement("button");o.type="button",o.className="jsoneditor-sort",o.title=f("sortTitleShort"),o.onclick=function(){var e=t.options.modalAnchor||v;u(t.node,e)},this.menu.appendChild(o);var s=document.createElement("button");if(s.type="button",s.title=f("transformTitleShort"),s.className="jsoneditor-transform",s.onclick=function(){var e=t.options.modalAnchor||v;p(t.node,e)},this.menu.appendChild(s),this.history){var l=document.createElement("button");l.type="button",l.className="jsoneditor-undo jsoneditor-separator",l.title=f("undo"),l.onclick=function(){t._onUndo()},this.menu.appendChild(l),this.dom.undo=l;var d=document.createElement("button");d.type="button",d.className="jsoneditor-redo",d.title=f("redo"),d.onclick=function(){t._onRedo()},this.menu.appendChild(d),this.dom.redo=d,this.history.onChange=function(){l.disabled=!t.history.canUndo(),d.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var m=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){m.modeSwitcher.destroy(),m.setMode(e),m.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)))},y._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},y._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},y._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)},y._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")},y._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},y._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())}},y._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},y._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},y._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)}))}},y._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;if(i&&n){if(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.multiselection.nodes&&this.multiselection.nodes.length){var o=this.multiselection.nodes[0];this.multiselection.start===o||this.multiselection.start.isDescendantOf(o)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},y._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)},y.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},y.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];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var i=this.getSelection();this._selectionChangedHandler(i.start,i.end)}}},y._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),o=0;o=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var d=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,d,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},y._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.scrollableContent=document.createElement("div"),this.scrollableContent.className="jsoneditor-tree",e.appendChild(this.scrollableContent),this.content=document.createElement("div"),this.content.className="jsoneditor-tree-inner",this.scrollableContent.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)},y.showContextMenu=function(e,t){var i=[],n=this;i.push({text:f("duplicateText"),title:f("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:f("remove"),title:f("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},y.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],i=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=i.serialize()):(e.start=i.serialize(),e.end=t.serialize())}return e},y.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=h.debounce(e,this.DEBOUNCE_INTERVAL))},y.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var i=this._getNodeIntsncesByRange(e,t);i.forEach(function(e){e.expandTo()}),this.select(i)},y._getNodeIntsncesByRange=function(e,t){var i,n;e&&e.path&&(i=this.node.findNodeByPath(e.path),t&&t.path&&(n=this.node.findNodeByPath(t.path)));var o=[];if(i instanceof l)if(n instanceof l&&n!==i)if(i.parent===n.parent){var e,t;i.getIndex()=0},n.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"],i="",n=t(),o=/[a-zA-Z_$\d]/;o.test(n);)i+=n,s++,n=t();-1===e.indexOf(i)?r.push('"'+i+'"'):r.push(i)}():(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!==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 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 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,o=i.length;n=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},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,o="",r=0,s=n.length;r5){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 o=this,r=arguments,s=function(){n=null,i||e.apply(o,r)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var i=t.length,n=0,o=e.length,r=t.length;t.charAt(n)===e.charAt(n)&&nn&&o>0;)r--,o--;return{start:n,end:r}},t.getInputSelection=function(e){function t(t){var i=e.value.substring(0,t);return{row:(i.match(/\n/g)||[]).length+1,column:i.length-i.lastIndexOf("\n")}}var i,n,o,r,s,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(n=document.selection.createRange())&&n.parentElement()==e&&(r=e.value.length,i=e.value.replace(/\r\n/g,"\n"),o=e.createTextRange(),o.moveToBookmark(n.getBookmark()),s=e.createTextRange(),s.collapse(!1),o.compareEndPoints("StartToEnd",s)>-1?a=l=r:(a=-o.moveStart("character",-r),a+=i.slice(0,a).split("\n").length-1,o.compareEndPoints("EndToEnd",s)>-1?l=r:(l=-o.moveEnd("character",-r),l+=i.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,i){var n=e.value||"";if(t>0&&i>0){var o=n.split("\n",t);t=Math.min(o.length,t),i=Math.min(o[t-1].length,i-1);var r=1==t?i:i+1;return o.slice(0,t-1).join("\n").length+r}return-1},"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&&w.push("'"+this.terminals_[y]+"'");var C="";C=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(C,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:w})}if(3==h){if(1==p)throw new Error(C||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(C||"Parsing halted.");!function(e){n.length=n.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),m=n[n.length-1]}f=p,p=d,m=n[n.length-1],g=s[m]&&s[m][d],h=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:n.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),n.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,h>0&&h--);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&&(n=n.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),n.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),x=s[n[n.length-2]][n[n.length-1]],n.push(x);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,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=i,n=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[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 o=document.createElement("tbody");this.dom.tbody=o,n.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 h=document.createElement("tbody");c.appendChild(h),r=document.createElement("tr"),h.appendChild(r);var d=document.createElement("button");d.type="button",d.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(d),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},d.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(){i.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(){i.previous()},s=document.createElement("td"),s.appendChild(f),r.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,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,o=this.results[this.resultIndex].elem;"field"==o?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(o)})},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){this.lastText=i,this.results=this.editor.search(i);var n=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0;if(this._setActiveResult(0,!1),void 0!==i){var o=this.results.length;this.dom.results.innerHTML=0===o?"no results":1===o?"1 result":o>n?n+"+ results":o+" 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 o(e,t){function i(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(),n.hide(),o.click()}),l.appendChild(c),o.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var d=document.createElement("div");d.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(o.text)),c.appendChild(d);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 f=document.createElement("div");f.className="jsoneditor-expand",c.appendChild(f),u=c}u.onclick=function(e){e.preventDefault(),n._onExpandItem(a),u.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,o.submenu)}else c.innerHTML='
'+s(o.text)+"
";t.push(a)}})}this.dom={};var n=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 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 r=i(4),s=i(8).translate;o.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},o.visibleMenu=void 0,o.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,d=a.top-l.top;if(i){var u=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+"px",this.dom.menu.style.bottom="0px";this.rootNode=n(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,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",r.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){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.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},n.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr){t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var n=document.createElement("button");n.type="button",n.className="jsoneditor-schema-error",n.appendChild(i),n.onmouseover=n.onfocus=function(){for(var e=["right","above","below","left"],t=0;tthis.visibleChilds){var o=this.childs[this.visibleChilds-1];this.insertBefore(e,o)}else this.appendChild(e);else this.insertBefore(e,t);i&&i.removeChild(n)}},n.prototype.moveTo=function(e,t){if(e.parent==this){this.childs.indexOf(e)0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:u("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(r))}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=u("drag"),t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title=u("actionsMenu"),n.appendChild(e.menu),e.tr.appendChild(n)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],o=e[e.length-1],r=n.getNodeFromTarget(t.target),s=o.nextSibling(),a=i.editor,l=d.getAbsoluteTop(r.dom.tr)-d.getAbsoluteTop(i.dom.tr);a.mousemove||(a.mousemove=d.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),a.mouseup||(a.mouseup=d.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),a.highlighter.lock(),a.drag={oldCursor:document.body.style.cursor,oldSelection:a.getDomSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:l,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,o,r,s,a,l,c,h,u,p,m,g,v,y,b=e[0].editor,x=t.pageY-b.drag.offsetY,w=t.pageX,_=!1,C=e[0];if(i=C.dom.tr,u=d.getAbsoluteTop(i),g=i.offsetHeight,xp+g&&(c=void 0)),c&&(e.forEach(function(e){c.parent.moveBefore(e,c)}),_=!0)}else{var E=e[e.length-1];if(a=E.expanded&&E.append?E.append.getDom():E.dom.tr,s=a?a.nextSibling:void 0){m=d.getAbsoluteTop(s),r=s;do{h=n.getNodeFromTarget(r),r&&(v=r.nextSibling?d.getAbsoluteTop(r.nextSibling):0,y=r?v-m:0,h&&h.parent.childs.length==e.length&&h.parent.childs[e.length-1]==E&&(u+=27),r=r.nextSibling)}while(r&&x>u+y);if(h&&h.parent){var S=w-b.drag.mouseX,j=Math.round(S/24/2),N=b.drag.level+j,k=h.getLevel();for(o=h.dom.tr&&h.dom.tr.previousSibling;k0)return i[0].enum}return null},n._findSchema=function(e,t){var i=e,o=i,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],x=b[0],w=b[b.length-1];if(13==h){if(u==this.dom.value)this.editable.value&&!e.ctrlKey||d.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(u==this.dom.expand){var _=this._hasChilds();if(_){var C=e.ctrlKey;this._onExpand(C),u.focus(),v=!0}}}else if(68==h)p&&y&&(n.onDuplicate(b),v=!0);else if(69==h)p&&(this._onExpand(m),u.focus(),v=!0);else if(77==h&&y)p&&(this.showContextMenu(u),v=!0);else if(46==h&&y)p&&(n.onRemove(b),v=!0);else if(45==h&&y)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==h){if(g){var E=this._lastNode();E&&E.focus(n.focusElement||this._getElementName(u)),v=!0}}else if(36==h){if(g){var S=this._firstNode();S&&S.focus(n.focusElement||this._getElementName(u)),v=!0}}else if(37==h){if(g&&!m){var j=this._previousElement(u);j&&this.focus(this._getElementName(j)),v=!0}else if(g&&m&&y){if(w.expanded){var N=w.getAppendDom();o=N?N.nextSibling:void 0}else{var k=w.getDom();o=k.nextSibling}o&&(i=n.getNodeFromTarget(o),r=o.nextSibling,D=n.getNodeFromTarget(r),i&&i instanceof f&&1!=w.parent.childs.length&&D&&D.parent&&(s=this.editor.getDomSelection(),a=w.nextSibling(),b.forEach(function(e){D.parent.moveBefore(e,D)}),this.focus(n.focusElement||this._getElementName(u)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:D,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==h)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(u))),v=!0):!g&&p&&m&&y?(t=this._previousNode(),t&&(c=this.editor.multiselection,c.start=c.start||this,c.end=t,l=this.editor._findTopLevelNodes(c.start,c.end),this.editor.select(l),t.focus("field")),v=!0):g&&m&&y&&(t=x._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),a=w.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(u)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==h){if(g&&!m){var T=this._nextElement(u);T&&this.focus(this._getElementName(T)),v=!0}else if(g&&m&&y){k=x.getDom();var O=k.previousSibling;O&&(t=n.getNodeFromTarget(O))&&t.parent&&!t.isVisible()&&(s=this.editor.getDomSelection(),a=w.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(u)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==h)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(u))),v=!0;else if(!g&&p&&m&&y)i=this._nextNode(),i&&(c=this.editor.multiselection,c.start=c.start||this,c.end=i,l=this.editor._findTopLevelNodes(c.start,c.end),this.editor.select(l),i.focus("field")),v=!0;else if(g&&m&&y){i=w.expanded?w.append?w.append._nextNode():void 0:w._nextNode(),i&&!i.isVisible()&&(i=i.parent.showMore),i&&i instanceof f&&(i=w);var D=i&&(i._nextNode()||i.parent.append);D&&D.parent&&(s=this.editor.getDomSelection(),a=w.nextSibling(),b.forEach(function(e){D.parent.moveBefore(e,D)}),this.focus(n.focusElement||this._getElementName(u)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:D,oldSelection:s,newSelection:this.editor.getDomSelection()})),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,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getDomSelection();n.blurNodes(e);var a=o.getDomSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:r,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,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getDomSelection(),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():o.select(a);var l=o.getDomSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:r,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var o=this.editor.getDomSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],beforeNode:this,parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var o=this.editor.getDomSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],afterNode:this,parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onAppend=function(e,t,i){var o=this.editor.getDomSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[r],parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getDomSelection();this.changeType(e);var n=this.editor.getDomSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e,t){if(this._hasChilds()){this.hideChilds();var i=this.childs;this.childs=this.childs.concat();var n="desc"===t?-1:1;"object"===this.type?this.childs.sort(function(e,t){return n*r(e.field,t.field)}):this.childs.sort(function(t,i){var o=t.getNestedChild(e),s=i.getNestedChild(e);if(!o)return n;if(!s)return-n;var a=o.value,l=s.value;return"string"!=typeof a&&"string"!=typeof l?a>l?n:a/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=d.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return d.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;i="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function l(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function h(){}function d(e){this.runtime=e}function u(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[v]}]},avg:{_func:this._functionAvg,_signature:[{types:[C]}]},ceil:{_func:this._functionCeil,_signature:[{types:[v]}]},contains:{_func:this._functionContains,_signature:[{types:[b,x]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[v]}]},length:{_func:this._functionLength,_signature:[{types:[b,x,w]}]},map:{_func:this._functionMap,_signature:[{types:[_]},{types:[x]}]},max:{_func:this._functionMax,_signature:[{types:[C,E]}]},merge:{_func:this._functionMerge,_signature:[{types:[w],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[x]},{types:[_]}]},sum:{_func:this._functionSum,_signature:[{types:[C]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[C,E]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[x]},{types:[_]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[w]}]},values:{_func:this._functionValues,_signature:[{types:[w]}]},sort:{_func:this._functionSort,_signature:[{types:[E,C]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[x]},{types:[_]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[E]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,x]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function p(e){return(new h).parse(e)}function f(e){return(new c).tokenize(e)}function m(e,t){var i=new h,n=new u,o=new d(n);n._interpreter=o;var r=i.parse(t);return o.search(r,e)}var g;g="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var v=0,y=1,b=2,x=3,w=4,_=6,C=8,E=9,S={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},j={"<":!0,">":!0,"=":!0,"!":!0},N={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var i,n,o;this._current"===i?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===i&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,i=this._current,n=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(i.indexOf(e)>=0)return!0;if(!(n.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var k={};k.EOF=0,k.UnquotedIdentifier=0,k.QuotedIdentifier=0,k.Rbracket=0,k.Rparen=0,k.Comma=0,k.Rbrace=0,k.Number=0,k.Current=0,k.Expref=0,k.Pipe=1,k.Or=2,k.And=3,k.EQ=5,k.GT=5,k.LT=5,k.GTE=5,k.LTE=5,k.NE=5,k.Flatten=9,k.Star=20,k.Filter=21,k.Dot=40,k.Not=45,k.Lbrace=50,k.Lbracket=55,k.Lparen=60,h.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var i=this._lookaheadToken(0),n=new Error("Unexpected token type: "+i.type+", value: "+i.value);throw n.name="ParserError",n}return t},_loadTokens:function(e){var t=new c,i=t.tokenize(e);i.push({type:"EOF",value:"",start:e.length}),this.tokens=i},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var i=this.nud(t),n=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(k[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var i=this._lookaheadToken(0),n=new Error("Sytanx error, unexpected token: "+i.value+"("+i.type+")");throw n.name="ParserError",n}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,i,n,o=[],r=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),r.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),i=this.expression(0),n={type:"KeyValuePair",name:t,value:i},o.push(n),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:o}}},d.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,l,c,h,d,u,p,f,m;switch(e.type){case"Field":return null===s?null:i(s)?(u=s[e.name],void 0===u?null:u):null;case"Subexpression":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mx;m+=w)c.push(s[m]);return c;case"Projection":var _=this.visit(e.children[0],s);if(!t(_))return null;for(f=[],m=0;m<_.length;m++)null!==(l=this.visit(e.children[1],_[m]))&&f.push(l);return f;case"ValueProjection":if(_=this.visit(e.children[0],s),!i(_))return null;f=[];var C=r(_);for(m=0;md;break;case"GTE":c=h>=d;break;case"LT":c=h=e&&(t=i<0?e-1:e),t}},u.prototype={callFunction:function(e,t){var i=this.functionTable[e];if(void 0===i)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,i._signature),i._func.call(this,t)},_validateArgs:function(e,t,i){var n;if(i[i.length-1].variadic){if(t.length=0;n--)i+=t[n];return i}var o=e[0].slice(0);return o.reverse(),o},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,i=e[0],n=0;n=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return i(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],i=this._interpreter,n=e[0],o=e[1],r=0;r0){if(this._getTypeName(e[0][0])===v)return Math.max.apply(Math,e[0]);for(var t=e[0],i=t[0],n=1;n0){if(this._getTypeName(e[0][0])===v)return Math.min.apply(Math,e[0]);for(var t=e[0],i=t[0],n=1;na?1:ss&&(s=i,t=o[a]);return t},_functionMinBy:function(e){for(var t,i,n=e[1],o=e[0],r=this.createKeyFunction(n,[v,b]),s=1/0,a=0;am)return 1}for(var g=0,v=Math.max(u.length,p.length);go)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.className="jsoneditor-append",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 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(e){var t=this.dom,i=t.td;i&&(i.style.paddingLeft=24*this.getLevel()+26+"px");var n=t.text;n&&(n.innerHTML="("+s("empty")+" "+this.parent.type+")");var o=t.tr;this.isVisible()?t.tr.firstChild||(t.tdDrag&&o.appendChild(t.tdDrag),t.tdMenu&&o.appendChild(t.tdMenu),o.appendChild(i)):t.tr.firstChild&&(t.tdDrag&&o.removeChild(t.tdDrag),t.tdMenu&&o.removeChild(t.tdMenu),o.removeChild(i))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,o=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:o.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 r(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 r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){o.removeClassName(n.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=i(4),r=i(7),s=i(8).translate;e.exports=n},function(e,t,i){"use strict";function n(e){function t(e,t){this.editor=e,this.parent=t,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){if(this.dom.tr)return this.dom.tr;if(this._updateEditability(),!this.dom.tr){var e=this,t=this.parent,i=document.createElement("a");i.appendChild(document.createTextNode(o("showMore"))),i.href="#",i.onclick=function(i){return t.visibleChilds=Math.floor(t.visibleChilds/t.MAX_VISIBLE_CHILDS+1)*t.MAX_VISIBLE_CHILDS,e.updateDom(),t.showChilds(),i.preventDefault(),!1};var n=document.createElement("a");n.appendChild(document.createTextNode(o("showAll"))),n.href="#",n.onclick=function(i){return t.visibleChilds=1/0,e.updateDom(),t.showChilds(),i.preventDefault(),!1};var r=document.createElement("div"),s=document.createTextNode(this._getShowMoreText());r.className="jsoneditor-show-more",r.appendChild(s),r.appendChild(i),r.appendChild(document.createTextNode(". ")),r.appendChild(n),r.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(r);var l=document.createElement("tr");l.appendChild(document.createElement("td")),l.appendChild(document.createElement("td")),l.appendChild(a),l.className="jsoneditor-show-more",this.dom.tr=l,this.dom.moreContents=r,this.dom.moreText=s}return this.updateDom(),this.dom.tr},t.prototype.updateDom=function(e){if(this.isVisible()){if(this.dom.tr.node=this.parent.childs[this.parent.visibleChilds],!this.dom.tr.parentNode){var t=this.parent._getNextTr();t&&t.parentNode.insertBefore(this.dom.tr,t)}this.dom.moreText.nodeValue=this._getShowMoreText(),this.dom.moreContents.style.marginLeft=24*(this.getLevel()+1)+"px"}else this.dom.tr&&this.dom.tr.parentNode&&this.dom.tr.parentNode.removeChild(this.dom.tr)},t.prototype._getShowMoreText=function(){return o("showMoreStatus",{visibleChilds:this.parent.visibleChilds,totalChilds:this.parent.childs.length})+" "},t.prototype.isVisible=function(){return this.parent.expanded&&this.parent.childs.length>this.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var o=i(8).translate;e.exports=n},function(e,t,i){function n(e,t){var i='
'+r("sort")+"
"+r("sortFieldLabel")+'
'+r("sortDirectionLabel")+'
';o({parent:t,content:i,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-sort"}).afterCreate(function(t){function i(e){s.value=e,s.className="jsoneditor-button-group jsoneditor-button-group-value-"+s.value}var n=t.modalElem().querySelector("form"),o=t.modalElem().querySelector("#ok"),r=t.modalElem().querySelector("#field"),s=t.modalElem().querySelector("#direction"),a="array"===e.type?e.getChildPaths():["."];a.forEach(function(e){var t=document.createElement("option");t.text=e,t.value=e,r.appendChild(t)}),r.value=e.sortedBy?e.sortedBy.path:a[0],i(e.sortedBy?e.sortedBy.direction:"asc"),s.onclick=function(e){i(e.target.getAttribute("data-value"))},o.onclick=function(i){i.preventDefault(),i.stopPropagation(),t.close();var n=r.value,o="."===n?[]:n.split(".").slice(1);e.sortedBy={path:n,direction:s.value},e.sort(o,s.value)},n&&(n.onsubmit=o.onclick)}).afterClose(function(e){e.destroy()}).show()}var o=i(16),r=i(8).translate;e.exports=n},function(e,t,i){var n,o,r;!function(i,s){"use strict";o=[],n=s,void 0!==(r="function"==typeof n?n.apply(t,o):n)&&(e.exports=r)}(0,function(){"use strict";function e(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType}function t(e){return"string"==typeof e}function i(){var e=[];return{watch:e.push.bind(e),trigger:function(t,i){for(var n=!0,o={detail:i,preventDefault:function(){n=!1}},r=0;r
'+a("transform")+'

Enter a JMESPath query to filter, sort, or transform the JSON data.
To learn JMESPath, go to the interactive tutorial.

'+a("transformWizardLabel")+'
'+a("transformWizardFilter")+'
'+a("transformWizardSortBy")+'
'+a("transformWizardSelectFields")+'
'+a("transformQueryLabel")+'
'+a("transformPreviewLabel")+'
';r({parent:t,content:n,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-transform",focus:!1}).afterCreate(function(t){function n(e){return"."===e[0]?"."===e?"@":e.slice(1):e}function r(){if(p.value&&f.value&&m.value){var t=p.value,i=JSON.stringify(e._stringCast(m.value));b.value="[? "+t+" "+f.value+" `"+i+"`]"}else b.value="[*]";if(g.value&&v.value){var n=g.value;"desc"===v.value?b.value+=" | reverse(sort_by(@, &"+n+"))":b.value+=" | sort_by(@, &"+n+")"}if(y.value){for(var o=[],r=0;r1&&(b.value+=".{"+o.map(function(e){var t=e.split(".");return t[t.length-1]+": "+e}).join(", ")+"}")}N()}function a(){try{var e=o.search(i,b.value),t=JSON.stringify(e,null,2).split("\n");t.length>c&&(t=t.slice(0,c).concat(["..."])),x.className="jsoneditor-transform-preview",x.value=t.join("\n"),u.disabled=!1}catch(e){x.className="jsoneditor-transform-preview jsoneditor-error",x.value=e.toString(),u.disabled=!0}}var h=t.modalElem(),d=h.querySelector("#wizard"),u=h.querySelector("#ok"),p=h.querySelector("#filterField"),f=h.querySelector("#filterRelation"),m=h.querySelector("#filterValue"),g=h.querySelector("#sortField"),v=h.querySelector("#sortOrder"),y=h.querySelector("#selectFields"),b=h.querySelector("#query"),x=h.querySelector("#preview");Array.isArray(i)||(d.style.display="none",d.parentNode.style.fontStyle="italic",d.parentNode.appendChild(document.createTextNode("(wizard not available for objects, only for arrays)"))),e.getChildPaths().forEach(function(e){var t=n(e),i=document.createElement("option");i.text=t,i.value=t,p.appendChild(i);var o=document.createElement("option");o.text=t,o.value=t,g.appendChild(o)});var w=e.getChildPaths(!0).filter(function(e){return"."!==e});w.length>0?w.forEach(function(e){var t=n(e),i=document.createElement("option");i.text=t,i.value=t,y.appendChild(i)}):h.querySelector("#selectFieldsPart").style.display="none";var _=new s(p,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),C=new s(f,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"compare..."}),E=new s(g,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),S=new s(v,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"order..."}),j=new s(y,{multiple:!0,clearable:!0,defaultSelected:!1});_.on("selectr.change",r),C.on("selectr.change",r),m.oninput=r,E.on("selectr.change",r),S.on("selectr.change",r),j.on("selectr.change",r),h.querySelector(".pico-modal-contents").onclick=function(e){e.preventDefault()},b.value=Array.isArray(i)?"[*]":"@";var N=l(a,300);b.oninput=N,N(),u.onclick=function(i){i.preventDefault(),i.stopPropagation(),t.close(),e.transform(b.value)},setTimeout(function(){b.select(),b.focus(),b.selectionStart=3,b.selectionEnd=3})}).afterClose(function(e){e.destroy()}).show()}var o=i(11),r=i(16),s=i(18),a=i(8).translate,l=i(4).debounce,c=100;e.exports=n},function(e,t){"use strict";function i(e,t){return e.hasOwnProperty(t)&&(!0===e[t]||e[t].length)}function n(e,t,i){e.parentNode?e.parentNode.parentNode||t.appendChild(e.parentNode):t.appendChild(e),s.removeClass(e,"excluded"),i||(e.innerHTML=e.textContent)}var o={defaultSelected:!0,width:"auto",disabled:!1,searchable:!0,clearable:!1,sortSelected:!1,allowDeselect:!1,closeOnScroll:!1,nativeDropdown:!1,placeholder:"Select an option...",taggable:!1,tagPlaceholder:"Enter a tag..."},r=function(){};r.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t-1},truncate:function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}},a=function(){if(this.items.length){var e=document.createDocumentFragment();if(this.config.pagination){var t=this.pages.slice(0,this.pageIndex);s.each(t,function(t,i){s.each(i,function(t,i){n(i,e,this.customOption)},this)},this)}else s.each(this.items,function(t,i){n(i,e,this.customOption)},this);e.childElementCount&&(s.removeClass(this.items[this.navIndex],"active"),this.navIndex=e.querySelector(".selectr-option").idx,s.addClass(this.items[this.navIndex],"active")),this.tree.appendChild(e)}},l=function(e){var t=e.target;this.container.contains(t)||!this.opened&&!s.hasClass(this.container,"notice")||this.close()},c=function(e,t){t=t||e;var i=this.customOption?this.config.renderOption(t):e.textContent,n=s.createElement("li",{class:"selectr-option",html:i,role:"treeitem","aria-selected":!1});return n.idx=e.idx,this.items.push(n),e.defaultSelected&&this.defaultSelected.push(e.idx),e.disabled&&(n.disabled=!0,s.addClass(n,"disabled")),n},h=function(){this.requiresPagination=this.config.pagination&&this.config.pagination>0,i(this.config,"width")&&(s.isInt(this.config.width)?this.width=this.config.width+"px":"auto"===this.config.width?this.width="100%":s.includes(this.config.width,"%")&&(this.width=this.config.width)),this.container=s.createElement("div",{class:"selectr-container"}),this.config.customClass&&s.addClass(this.container,this.config.customClass),this.mobileDevice?s.addClass(this.container,"selectr-mobile"):s.addClass(this.container,"selectr-desktop"),this.el.tabIndex=-1,this.config.nativeDropdown||this.mobileDevice?s.addClass(this.el,"selectr-visible"):s.addClass(this.el,"selectr-hidden"),this.selected=s.createElement("div",{class:"selectr-selected",disabled:this.disabled,tabIndex:1,"aria-expanded":!1}),this.label=s.createElement(this.el.multiple?"ul":"span",{class:"selectr-label"});var e=s.createElement("div",{class:"selectr-options-container"});if(this.tree=s.createElement("ul",{class:"selectr-options",role:"tree","aria-hidden":!0,"aria-expanded":!1}),this.notice=s.createElement("div",{class:"selectr-notice"}),this.el.setAttribute("aria-hidden",!0),this.disabled&&(this.el.disabled=!0),this.el.multiple&&(s.addClass(this.label,"selectr-tags"),s.addClass(this.container,"multiple"),this.tags=[],this.selectedValues=this.getSelectedProperties("value"),this.selectedIndexes=this.getSelectedProperties("idx")),this.selected.appendChild(this.label),this.config.clearable&&(this.selectClear=s.createElement("button",{class:"selectr-clear",type:"button"}),this.container.appendChild(this.selectClear),s.addClass(this.container,"clearable")),this.config.taggable){var t=s.createElement("li",{class:"input-tag"});this.input=s.createElement("input",{class:"selectr-tag-input",placeholder:this.config.tagPlaceholder,tagIndex:0,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),t.appendChild(this.input),this.label.appendChild(t),s.addClass(this.container,"taggable"),this.tagSeperators=[","],this.config.tagSeperators&&(this.tagSeperators=this.tagSeperators.concat(this.config.tagSeperators))}this.config.searchable&&(this.input=s.createElement("input",{class:"selectr-input",tagIndex:-1,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),this.inputClear=s.createElement("button",{class:"selectr-input-clear",type:"button"}),this.inputContainer=s.createElement("div",{class:"selectr-input-container"}),this.inputContainer.appendChild(this.input),this.inputContainer.appendChild(this.inputClear),e.appendChild(this.inputContainer)),e.appendChild(this.notice),e.appendChild(this.tree),this.items=[],this.options=[],this.el.options.length&&(this.options=[].slice.call(this.el.options));var n=!1,o=0;if(this.el.children.length&&s.each(this.el.children,function(e,t){"OPTGROUP"===t.nodeName?(n=s.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.label+"
  • "}),s.each(t.children,function(e,t){t.idx=o,n.appendChild(c.call(this,t,n)),o++},this)):(t.idx=o,c.call(this,t),o++)},this),this.config.data&&Array.isArray(this.config.data)){this.data=[];var r,a=!1;n=!1,o=0,s.each(this.config.data,function(e,t){i(t,"children")?(a=s.createElement("optgroup",{label:t.text}),n=s.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.text+"
  • "}),s.each(t.children,function(e,t){r=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),r.disabled=i(t,"disabled"),this.options.push(r),a.appendChild(r),r.idx=o,n.appendChild(c.call(this,r,t)),this.data[o]=t,o++},this)):(r=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),r.disabled=i(t,"disabled"),this.options.push(r),r.idx=o,c.call(this,r,t),this.data[o]=t,o++)},this)}this.setSelected(!0);var l;this.navIndex=0;for(var h=0;h0)&&this.change(this.navIndex);var t,i=this.items[this.navIndex];switch(e.which){case 38:t=0,this.navIndex>0&&this.navIndex--;break;case 40:t=1,this.navIndexthis.tree.lastElementChild.idx){this.navIndex=this.tree.lastElementChild.idx;break}if(this.navIndexthis.optsRect.top+this.optsRect.height&&(this.tree.scrollTop=this.tree.scrollTop+(n.top+n.height-(this.optsRect.top+this.optsRect.height))),this.navIndex===this.tree.childElementCount-1&&this.requiresPagination&&f.call(this)):0===this.navIndex?this.tree.scrollTop=0:n.top-this.optsRect.top<0&&(this.tree.scrollTop=this.tree.scrollTop+(n.top-this.optsRect.top)),i&&s.removeClass(i,"active"),s.addClass(this.items[this.navIndex],"active")},u=function(e){var t,i=this,n=document.createDocumentFragment(),o=this.options[e.idx],r=this.data?this.data[e.idx]:o,a=this.customSelected?this.config.renderSelection(r):o.textContent,l=s.createElement("li",{class:"selectr-tag",html:a}),c=s.createElement("button",{class:"selectr-tag-remove",type:"button"});if(l.appendChild(c),l.idx=e.idx,l.tag=o.value,this.tags.push(l),this.config.sortSelected){var h=this.tags.slice();t=function(e,t){e.replace(/(\d+)|(\D+)/g,function(e,i,n){t.push([i||1/0,n||""])})},h.sort(function(e,n){var o,r,s=[],a=[];for(!0===i.config.sortSelected?(o=e.tag,r=n.tag):"text"===i.config.sortSelected&&(o=e.textContent,r=n.textContent),t(o,s),t(r,a);s.length&&a.length;){var l=s.shift(),c=a.shift(),h=l[0]-c[0]||l[1].localeCompare(c[1]);if(h)return h}return s.length-a.length}),s.each(h,function(e,t){n.appendChild(t)}),this.label.innerHTML=""}else n.appendChild(l);this.config.taggable?this.label.insertBefore(n,this.input.parentNode):this.label.appendChild(n)},p=function(e){var t=!1;s.each(this.tags,function(i,n){n.idx===e.idx&&(t=n)},this),t&&(this.label.removeChild(t),this.tags.splice(this.tags.indexOf(t),1))},f=function(){var e=this.tree;if(e.scrollTop>=e.scrollHeight-e.offsetHeight&&this.pageIndex"+i[0]+"")},v=function(e,t){if(t=t||{},!e)throw new Error("You must supply either a HTMLSelectElement or a CSS3 selector string.");if(this.el=e,"string"==typeof e&&(this.el=document.querySelector(e)),null===this.el)throw new Error("The element you passed to Selectr can not be found.");if("select"!==this.el.nodeName.toLowerCase())throw new Error("The element you passed to Selectr is not a HTMLSelectElement.");this.render(t)};v.prototype.render=function(e){if(!this.rendered){this.config=s.extend(o,e),this.originalType=this.el.type,this.originalIndex=this.el.tabIndex,this.defaultSelected=[],this.originalOptionCount=this.el.options.length,(this.config.multiple||this.config.taggable)&&(this.el.multiple=!0),this.disabled=i(this.config,"disabled"),this.opened=!1,this.config.taggable&&(this.config.searchable=!1),this.navigating=!1,this.mobileDevice=!1,/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent)&&(this.mobileDevice=!0),this.customOption=this.config.hasOwnProperty("renderOption")&&"function"==typeof this.config.renderOption,this.customSelected=this.config.hasOwnProperty("renderSelection")&&"function"==typeof this.config.renderSelection,r.mixin(this),h.call(this),this.bindEvents(),this.update(),this.optsRect=s.rect(this.tree),this.rendered=!0,this.el.multiple||(this.el.selectedIndex=this.selectedIndex);var t=this;setTimeout(function(){t.emit("selectr.init")},20)}},v.prototype.getSelected=function(){return this.el.querySelectorAll("option:checked")},v.prototype.getSelectedProperties=function(e){var t=this.getSelected();return[].slice.call(t).map(function(t){return t[e]}).filter(function(e){return null!==e&&void 0!==e})},v.prototype.bindEvents=function(){var e=this;if(this.events={},this.events.dismiss=l.bind(this),this.events.navigate=d.bind(this),this.events.reset=this.reset.bind(this),this.config.nativeDropdown||this.mobileDevice){this.container.addEventListener("touchstart",function(t){t.changedTouches[0].target===e.el&&e.toggle()}),(this.config.nativeDropdown||this.mobileDevice)&&this.container.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation(),t.target===e.el&&e.toggle()});var t=function(e,t){for(var i,n=[],o=e.slice(0),r=0;r-1?o.splice(i,1):n.push(t[r]);return[n,o]};this.el.addEventListener("change",function(i){if(e.el.multiple){var n=e.getSelectedProperties("idx"),o=t(e.selectedIndexes,n);s.each(o[0],function(t,i){e.select(i)},e),s.each(o[1],function(t,i){e.deselect(i)},e)}else e.el.selectedIndex>-1&&e.select(e.el.selectedIndex)})}this.config.nativeDropdown&&this.container.addEventListener("keydown",function(t){"Enter"===t.key&&e.selected===document.activeElement&&(e.toggle(),setTimeout(function(){e.el.focus()},200))}),this.selected.addEventListener("click",function(t){e.disabled||e.toggle(),t.preventDefault(),t.stopPropagation()}),this.label.addEventListener("click",function(t){s.hasClass(t.target,"selectr-tag-remove")&&e.deselect(t.target.parentNode.idx)}),this.selectClear&&this.selectClear.addEventListener("click",this.clear.bind(this)),this.tree.addEventListener("mousedown",function(e){e.preventDefault()}),this.tree.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation();var i=s.closest(t.target,function(e){return e&&s.hasClass(e,"selectr-option")});i&&(s.hasClass(i,"disabled")||(s.hasClass(i,"selected")?(e.el.multiple||!e.el.multiple&&e.config.allowDeselect)&&e.deselect(i.idx):e.select(i.idx),e.opened&&!e.el.multiple&&e.close()))}),this.tree.addEventListener("mouseover",function(t){s.hasClass(t.target,"selectr-option")&&(s.hasClass(t.target,"disabled")||(s.removeClass(e.items[e.navIndex],"active"),s.addClass(t.target,"active"),e.navIndex=[].slice.call(e.items).indexOf(t.target)))}),this.config.searchable&&(this.input.addEventListener("focus",function(t){e.searching=!0}),this.input.addEventListener("blur",function(t){e.searching=!1}),this.input.addEventListener("keyup",function(t){e.search(),e.config.taggable||(this.value.length?s.addClass(this.parentNode,"active"):s.removeClass(this.parentNode,"active"))}),this.inputClear.addEventListener("click",function(t){e.input.value=null,m.call(e),e.tree.childElementCount||a.call(e)})),this.config.taggable&&this.input.addEventListener("keyup",function(t){if(e.search(),e.config.taggable&&this.value.length){var i=this.value.trim();if(13===t.which||s.includes(e.tagSeperators,t.key)){s.each(e.tagSeperators,function(e,t){i=i.replace(t,"")});e.add({value:i,text:i,selected:!0},!0)?(e.close(),m.call(e)):(this.value="",e.setMessage("That tag is already in use."))}}}),this.update=s.debounce(function(){e.opened&&e.config.closeOnScroll&&e.close(),e.width&&(e.container.style.width=e.width),e.invert()},50),this.requiresPagination&&(this.paginateItems=s.debounce(function(){f.call(this)},50),this.tree.addEventListener("scroll",this.paginateItems.bind(this))),document.addEventListener("click",this.events.dismiss),window.addEventListener("keydown",this.events.navigate),window.addEventListener("resize",this.update),window.addEventListener("scroll",this.update),this.el.form&&this.el.form.addEventListener("reset",this.events.reset)},v.prototype.setSelected=function(e){if(this.config.data||this.el.multiple||!this.el.options.length||(0===this.el.selectedIndex&&(this.el.options[0].defaultSelected||this.config.defaultSelected||(this.el.selectedIndex=-1)),this.selectedIndex=this.el.selectedIndex,this.selectedIndex>-1&&this.select(this.selectedIndex)),this.config.multiple&&"select-one"===this.originalType&&!this.config.data&&this.el.options[0].selected&&!this.el.options[0].defaultSelected&&(this.el.options[0].selected=!1),s.each(this.options,function(e,t){t.selected&&t.defaultSelected&&this.select(t.idx)},this),this.config.selectedValue&&this.setValue(this.config.selectedValue),this.config.data){!this.el.multiple&&this.config.defaultSelected&&this.el.selectedIndex<0&&this.select(0);var t=0;s.each(this.config.data,function(e,n){i(n,"children")?s.each(n.children,function(e,i){i.hasOwnProperty("selected")&&!0===i.selected&&this.select(t),t++},this):(n.hasOwnProperty("selected")&&!0===n.selected&&this.select(t),t++)},this)}},v.prototype.destroy=function(){this.rendered&&(this.emit("selectr.destroy"),"select-one"===this.originalType&&(this.el.multiple=!1),this.config.data&&(this.el.innerHTML=""),s.removeClass(this.el,"selectr-hidden"),this.el.form&&s.off(this.el.form,"reset",this.events.reset),s.off(document,"click",this.events.dismiss),s.off(document,"keydown",this.events.navigate),s.off(window,"resize",this.update),s.off(window,"scroll",this.update),this.container.parentNode.replaceChild(this.el,this.container),this.rendered=!1)},v.prototype.change=function(e){var t=this.items[e],i=this.options[e];i.disabled||(i.selected&&s.hasClass(t,"selected")?this.deselect(e):this.select(e),this.opened&&!this.el.multiple&&this.close())},v.prototype.select=function(e){var t=this.items[e],i=[].slice.call(this.el.options),n=this.options[e];if(this.el.multiple){if(s.includes(this.selectedIndexes,e))return!1;if(this.config.maxSelections&&this.tags.length===this.config.maxSelections)return this.setMessage("A maximum of "+this.config.maxSelections+" items can be selected.",!0),!1;this.selectedValues.push(n.value),this.selectedIndexes.push(e),u.call(this,t)}else{var o=this.data?this.data[e]:n;this.label.innerHTML=this.customSelected?this.config.renderSelection(o):n.textContent,this.selectedValue=n.value,this.selectedIndex=e,s.each(this.options,function(t,i){var n=this.items[t];t!==e&&(n&&s.removeClass(n,"selected"),i.selected=!1,i.removeAttribute("selected"))},this)}s.includes(i,n)||this.el.add(n),t.setAttribute("aria-selected",!0),s.addClass(t,"selected"),s.addClass(this.container,"has-selected"),n.selected=!0,n.setAttribute("selected",""),this.emit("selectr.change",n),this.emit("selectr.select",n)},v.prototype.deselect=function(e,t){var i=this.items[e],n=this.options[e];if(this.el.multiple){var o=this.selectedIndexes.indexOf(e);this.selectedIndexes.splice(o,1);var r=this.selectedValues.indexOf(n.value);this.selectedValues.splice(r,1),p.call(this,i),this.tags.length||s.removeClass(this.container,"has-selected")}else{if(!t&&!this.config.clearable&&!this.config.allowDeselect)return!1;this.label.innerHTML="",this.selectedValue=null,this.el.selectedIndex=this.selectedIndex=-1,s.removeClass(this.container,"has-selected")}this.items[e].setAttribute("aria-selected",!1),s.removeClass(this.items[e],"selected"),n.selected=!1,n.removeAttribute("selected"),this.emit("selectr.change",null),this.emit("selectr.deselect",n)},v.prototype.setValue=function(e){var t=Array.isArray(e);if(t||(e=e.toString().trim()),!this.el.multiple&&t)return!1;s.each(this.options,function(i,n){(t&&s.includes(e.toString(),n.value)||n.value===e)&&this.change(n.idx)},this)},v.prototype.getValue=function(e,t){var i;if(this.el.multiple)e?this.selectedIndexes.length&&(i={},i.values=[],s.each(this.selectedIndexes,function(e,t){var n=this.options[t];i.values[e]={value:n.value,text:n.textContent}},this)):i=this.selectedValues.slice();else if(e){var n=this.options[this.selectedIndex];i={value:n.value,text:n.textContent}}else i=this.selectedValue;return e&&t&&(i=JSON.stringify(i)),i},v.prototype.add=function(e,t){if(e){if(this.data=this.data||[],this.items=this.items||[],this.options=this.options||[],Array.isArray(e))s.each(e,function(e,i){this.add(i,t)},this);else if("[object Object]"===Object.prototype.toString.call(e)){if(t){var i=!1;if(s.each(this.options,function(t,n){n.value.toLowerCase()===e.value.toLowerCase()&&(i=!0)}),i)return!1}var n=s.createElement("option",e);return this.data.push(e),this.options.push(n),n.idx=this.options.length>0?this.options.length-1:0,c.call(this,n),e.selected&&this.select(n.idx),n}return this.setPlaceholder(),this.config.pagination&&this.paginate(),!0}},v.prototype.remove=function(e){var t=[];if(Array.isArray(e)?s.each(e,function(i,n){s.isInt(n)?t.push(this.getOptionByIndex(n)):"string"==typeof e&&t.push(this.getOptionByValue(n))},this):s.isInt(e)?t.push(this.getOptionByIndex(e)):"string"==typeof e&&t.push(this.getOptionByValue(e)),t.length){var i;s.each(t,function(e,t){i=t.idx,this.el.remove(t),this.options.splice(i,1);var n=this.items[i].parentNode;n&&n.removeChild(this.items[i]),this.items.splice(i,1),s.each(this.options,function(e,t){t.idx=e,this.items[e].idx=e},this)},this),this.setPlaceholder(),this.config.pagination&&this.paginate()}},v.prototype.removeAll=function(){this.clear(!0),s.each(this.el.options,function(e,t){this.el.remove(t)},this),s.truncate(this.tree),this.items=[],this.options=[],this.data=[],this.navIndex=0,this.requiresPagination&&(this.requiresPagination=!1,this.pageIndex=1,this.pages=[]),this.setPlaceholder()},v.prototype.search=function(e){if(!this.navigating){e=e||this.input.value;var t=document.createDocumentFragment();if(this.removeMessage(),s.truncate(this.tree),e.length>1)if(s.each(this.options,function(i,o){var r=this.items[o.idx];s.includes(o.textContent.toLowerCase(),e.toLowerCase())&&!o.disabled?(n(r,t,this.customOption),s.removeClass(r,"excluded"),this.customOption||(r.innerHTML=g(e,o))):s.addClass(r,"excluded")},this),t.childElementCount){var i=this.items[this.navIndex],o=t.firstElementChild;s.removeClass(i,"active"),this.navIndex=o.idx,s.addClass(o,"active")}else this.config.taggable||this.setMessage("no results.");else a.call(this);this.tree.appendChild(t)}},v.prototype.toggle=function(){this.disabled||(this.opened?this.close():this.open())},v.prototype.open=function(){var e=this;return!!this.options.length&&(this.opened||this.emit("selectr.open"),this.opened=!0,this.mobileDevice||this.config.nativeDropdown?(s.addClass(this.container,"native-open"),void(this.config.data&&s.each(this.options,function(e,t){this.el.add(t)},this))):(s.addClass(this.container,"open"),a.call(this),this.invert(),this.tree.scrollTop=0,s.removeClass(this.container,"notice"),this.selected.setAttribute("aria-expanded",!0),this.tree.setAttribute("aria-hidden",!1),this.tree.setAttribute("aria-expanded",!0),void(this.config.searchable&&!this.config.taggable&&setTimeout(function(){e.input.focus(),e.input.tabIndex=0},10))))},v.prototype.close=function(){if(this.opened&&this.emit("selectr.close"),this.opened=!1,this.mobileDevice||this.config.nativeDropdown)return void s.removeClass(this.container,"native-open");var e=s.hasClass(this.container,"notice");this.config.searchable&&!e&&(this.input.blur(),this.input.tabIndex=-1,this.searching=!1),e&&(s.removeClass(this.container,"notice"),this.notice.textContent=""),s.removeClass(this.container,"open"),s.removeClass(this.container,"native-open"),this.selected.setAttribute("aria-expanded",!1),this.tree.setAttribute("aria-hidden",!0),this.tree.setAttribute("aria-expanded",!1),s.truncate(this.tree),m.call(this)},v.prototype.enable=function(){this.disabled=!1,this.el.disabled=!1,this.selected.tabIndex=this.originalIndex,this.el.multiple&&s.each(this.tags,function(e,t){t.lastElementChild.tabIndex=0}),s.removeClass(this.container,"selectr-disabled")},v.prototype.disable=function(e){e||(this.el.disabled=!0),this.selected.tabIndex=-1,this.el.multiple&&s.each(this.tags,function(e,t){t.lastElementChild.tabIndex=-1}),this.disabled=!0,s.addClass(this.container,"selectr-disabled")},v.prototype.reset=function(){this.disabled||(this.clear(),this.setSelected(!0),s.each(this.defaultSelected,function(e,t){this.select(t)},this),this.emit("selectr.reset"))},v.prototype.clear=function(e){if(this.el.multiple){if(this.selectedIndexes.length){var t=this.selectedIndexes.slice();s.each(t,function(e,t){this.deselect(t)},this)}}else this.selectedIndex>-1&&this.deselect(this.selectedIndex,e);this.emit("selectr.clear")},v.prototype.serialise=function(e){var t=[];return s.each(this.options,function(e,i){var n={value:i.value,text:i.textContent};i.selected&&(n.selected=!0),i.disabled&&(n.disabled=!0),t[e]=n}),e?JSON.stringify(t):t},v.prototype.serialize=function(e){return this.serialise(e)},v.prototype.setPlaceholder=function(e){e=e||this.config.placeholder||this.el.getAttribute("placeholder"),this.options.length||(e="No options available"),this.placeEl.innerHTML=e},v.prototype.paginate=function(){if(this.items.length){var e=this;return this.pages=this.items.map(function(t,i){return i%e.config.pagination==0?e.items.slice(i,i+e.config.pagination):null}).filter(function(e){return e}),this.pages}},v.prototype.setMessage=function(e,t){t&&this.close(),s.addClass(this.container,"notice"),this.notice.textContent=e},v.prototype.removeMessage=function(){s.removeClass(this.container,"notice"),this.notice.innerHTML=""},v.prototype.invert=function(){var e=s.rect(this.selected),t=this.tree.parentNode.offsetHeight,i=window.innerHeight;e.top+e.height+t>i?(s.addClass(this.container,"inverted"),this.isInverted=!0):(s.removeClass(this.container,"inverted"),this.isInverted=!1),this.optsRect=s.rect(this.tree)},v.prototype.getOptionByIndex=function(e){return this.options[e]},v.prototype.getOptionByValue=function(e){for(var t=!1,i=0,n=this.options.length;i/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",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,i){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==n&&(n=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=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",d),this.element.addEventListener("keydown",d,!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,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 o=(this.startFrom,this.options,this.options.length),r=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+r[f].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),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&&n[r]&&(n[r].className="item"),n[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===n.length?n[o].__hint:(o+=e,c.highlight(o),n[o].__hint)},onmouseselection:function(){}};return c}(s,c),d=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 o=this.element.innerText;o=o.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 r=o.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var r=o.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var d="hidden"==s.style.visibility;if(h.hide(),d)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),u=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(22),o=i(19),r=i(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: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(26)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);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 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 o(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var d={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(d);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 x=document.createElement("span");x.className="jsoneditor-curserinfo-label",x.innerText="Col:";var w=document.createElement("span");w.className="jsoneditor-curserinfo-val",w.innerText="1",v.appendChild(x),v.appendChild(w),this.curserInfoElements.colVal=w,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none";var C=document.createElement("span");C.className="jsoneditor-curserinfo-count",C.innerText="0",C.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=C,v.appendChild(C),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._updateCursorInfo(),this._emitSelectionChange()},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._updateCursorInfo(),this._emitSelectionChange()},s._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._onBlur=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._updateCursorInfo=function(){function e(){o.curserInfoElements.countVal.innerText!==n&&(o.curserInfoElements.countVal.innerText=n,o.curserInfoElements.countVal.style.display=n?"inline":"none",o.curserInfoElements.countLabel.style.display=n?"inline":"none"),o.curserInfoElements.lnVal.innerText=t,o.curserInfoElements.colVal.innerText=i}var t,i,n,o=this;if(this.textarea)setTimeout(function(){var s=r.getInputSelection(o.textarea);s.startIndex!==s.endIndex&&(n=s.endIndex-s.startIndex),n&&o.cursorInfo&&o.cursorInfo.line===s.end.row&&o.cursorInfo.column===s.end.column?(t=s.start.row,i=s.start.column):(t=s.end.row,i=s.end.column),o.cursorInfo={line:t,column:i,count:n},o.options.statusBar&&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,o.cursorInfo={line:t,column:i,count:n},this.options.statusBar&&e()}},s._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},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(i){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 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 r.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 o=document.createElement("div");o.innerHTML=''+i.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)}},s.getTextSelection=function(){var e={};if(this.textarea){var t=r.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var i=this.aceEditor.getSelection(),n=this.aceEditor.getSelectedText(),o=i.getRange(),s=i.getSelectionLead();return s.row===o.end.row&&s.column===o.end.column?e=o:(e.start=o.end,e.end=o.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:n}}},s.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=r.debounce(e,this.DEBOUNCE_INTERVAL))},s.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var i=r.getIndexForPosition(this.textarea,e.row,e.column),n=r.getIndexForPosition(this.textarea,t.row,t.column);if(i>-1&&n>-1)if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(i,n);else if(this.textarea.createTextRange){var o=this.textarea.createTextRange();o.collapse(!0),o.moveEnd("character",n),o.moveStart("character",i),o.select()}}else if(this.aceEditor){var o={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(o)}},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(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),i(23),i(25)}catch(e){}e.exports=n},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"),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"}]}};n.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),o=i.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 n(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,i){"use strict" -;var n=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)))};n.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,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var o=this._getFoldWidgetBase(e,t,i);return!o&&this.startRegionRe.test(n)?"start":o},this.getFoldWidgetRange=function(e,t,i,n){var o=e.getLine(i);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,i);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],i,s);var a=e.getCommentFoldRange(i,s+r[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"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],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),r=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<=r)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),r=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new o(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 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,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(d,r),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(24),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){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"),o=e("../lib/lang"),r=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 o=n.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 i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,i,n){var o=a.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,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){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 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:i,range:this.searchRange}),r=!o&&this.searchInput.value;n.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,i=0,n=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))&&(i++,a=s.index,a<=r&&n++,!(i>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=o.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)})}])}); +!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.");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.onChangeJSON&&("text"===t.mode||"code"===t.mode||t.modes&&(-1!==t.modes.indexOf("text")||-1!==t.modes.indexOf("code")))&&console.warn('Option "onChangeJSON" is not applicable to modes "text" and "code". Use "onChangeText" or "onChange" instead.'),t&&Object.keys(t).forEach(function(e){-1===i.VALID_OPTIONS.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(21),a=n(6);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.VALID_OPTIONS=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onChangeJSON","onChangeText","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"],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){if(e!==this.options.mode||!this.create){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.scrollTop0?this.multiselection.nodes.map(function(e){return e.getInternalPath()}):null,scrollTop:this.scrollableContent?this.scrollableContent.scrollTop:0}},y.scrollTo=function(e,t){var n=this.scrollableContent;if(n){var i=this;i.animateTimeout&&(clearTimeout(i.animateTimeout),delete i.animateTimeout),i.animateCallback&&(i.animateCallback(!1),delete i.animateCallback);var o=n.clientHeight,r=n.scrollHeight-o,s=Math.min(Math.max(e-o/4,0),r),a=function(){var e=n.scrollTop,o=s-e;Math.abs(o)>3?(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)},y._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,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 n=document.createElement("button");n.type="button",n.className="jsoneditor-expand-all",n.title=f("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");i.type="button",i.title=f("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i);var o=document.createElement("button");o.type="button",o.className="jsoneditor-sort",o.title=f("sortTitleShort"),o.onclick=function(){var e=t.options.modalAnchor||v;u(t.node,e)},this.menu.appendChild(o);var s=document.createElement("button");if(s.type="button",s.title=f("transformTitleShort"),s.className="jsoneditor-transform",s.onclick=function(){var e=t.options.modalAnchor||v;p(t.node,e)},this.menu.appendChild(s),this.history){var l=document.createElement("button");l.type="button",l.className="jsoneditor-undo jsoneditor-separator",l.title=f("undo"),l.onclick=function(){t._onUndo()},this.menu.appendChild(l),this.dom.undo=l;var d=document.createElement("button");d.type="button",d.className="jsoneditor-redo",d.title=f("redo"),d.onclick=function(){t._onRedo()},this.menu.appendChild(d),this.dom.redo=d,this.history.onChange=function(){l.disabled=!t.history.canUndo(),d.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var m=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){m.modeSwitcher.destroy(),m.setMode(e),m.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)))},y._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},y._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},y._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)},y._updateTreePath=function(e){function t(e){return e.parent?"array"===e.parent.type?e.index:e.field:e.type}if(e&&e.length){h.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 h.addClassName(this.navBar,"nav-bar-empty")},y._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},y._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())}},y._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},y._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},y._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=h.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=h.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},y._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;if(n&&i){if(this.multiselection.nodes=this._findTopLevelNodes(n,i),this.multiselection.nodes&&this.multiselection.nodes.length){var o=this.multiselection.nodes[0];this.multiselection.start===o||this.multiselection.start.isDescendantOf(o)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},y._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)},y.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},y.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];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var n=this.getSelection();this._selectionChangedHandler(n.start,n.end)}}},y._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 d=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,d,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},y._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.scrollableContent=document.createElement("div"),this.scrollableContent.className="jsoneditor-tree",e.appendChild(this.scrollableContent),this.content=document.createElement("div"),this.content.className="jsoneditor-tree-inner",this.scrollableContent.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)},y.showContextMenu=function(e,t){var n=[],i=this;n.push({text:f("duplicateText"),title:f("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(i.multiselection.nodes)}}),n.push({text:f("remove"),title:f("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(i.multiselection.nodes)}}),new s(n,{close:t}).show(e,this.content)},y.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],n=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=n.serialize()):(e.start=n.serialize(),e.end=t.serialize())}return e},y.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=h.debounce(e,this.DEBOUNCE_INTERVAL))},y.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var n=this._getNodeInstancesByRange(e,t);n.forEach(function(e){e.expandTo()}),this.select(n)},y._getNodeInstancesByRange=function(e,t){var n,i;e&&e.path&&(n=this.node.findNodeByPath(e.path),t&&t.path&&(i=this.node.findNodeByPath(t.path)));var o=[];if(n instanceof l)if(i instanceof l&&i!==n)if(n.parent===i.parent){var e,t;n.getIndex()=0},n.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,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){this.lastText=n,this.results=this.editor.search(n);var i=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0,o=0;if(this.activeResult)for(var r=0;ri?i+"+ results":s+" 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.forceSearch=function(){this._onSearch(!0)},n.prototype.isEmpty=function(){return""===this.dom.search.value},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 h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var d=document.createElement("div");d.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(o.text)),c.appendChild(d);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 f=document.createElement("div");f.className="jsoneditor-expand",c.appendChild(f),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.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),n(g,m,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 h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),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(6),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 h=a.left-l.left,d=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+"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;i=" "&&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){function t(t){var n=e.value.substring(0,t);return{row:(n.match(/\n/g)||[]).length+1,column:n.length-n.lastIndexOf("\n")}}var n,i,o,r,s,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(i=document.selection.createRange())&&i.parentElement()==e&&(r=e.value.length,n=e.value.replace(/\r\n/g,"\n"),o=e.createTextRange(),o.moveToBookmark(i.getBookmark()),s=e.createTextRange(),s.collapse(!1),o.compareEndPoints("StartToEnd",s)>-1?a=l=r:(a=-o.moveStart("character",-r),a+=n.slice(0,a).split("\n").length-1,o.compareEndPoints("EndToEnd",s)>-1?l=r:(l=-o.moveEnd("character",-r),l+=n.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,n){var i=e.value||"";if(t>0&&n>0){var o=i.split("\n",t);t=Math.min(o.length,t),n=Math.min(o[t-1].length,n-1);var r=1==t?n:n+1;return o.slice(0,t-1).join("\n").length+r}return-1},"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&&w.push("'"+this.terminals_[y]+"'");var C="";C=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(C,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:w})}if(3==h){if(1==p)throw new Error(C||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(C||"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=d,m=i[i.length-1],g=s[m]&&s[m][d],h=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,h>0&&h--);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(_._$),x=s[i[i.length-2]][i[i.length-1]],i.push(x);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";var n,i=["en","pt-BR"],o={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). \nCtrl+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",ok:"Ok",redo:"Redo (Ctrl+Shift+Z)",removeText:"Remove",removeTitle:"Remove selected fields (Ctrl+Del)",removeField:"Remove this field (Ctrl+Del)",selectNode:"Select a node...",showAll:"show all",showMore:"show more",showMoreStatus:"displaying ${visibleChilds} of ${totalChilds} items.",sort:"Sort",sortTitle:"Sort the childs of this ${type}",sortTitleShort:"Sort contents",sortFieldLabel:"Field:",sortDirectionLabel:"Direction:",sortFieldTitle:"Select the nested field by which to sort the array or object",sortAscending:"Ascending",sortAscendingTitle:"Sort the selected field in ascending order",sortDescending:"Descending",sortDescendingTitle:"Sort the selected field in descending order",string:"String",transform:"Transform",transformTitle:"Filter, sort, or transform the childs of this ${type}",transformTitleShort:"Filter, sort, or transform contents",transformQueryTitle:"Enter a JMESPath query",transformWizardLabel:"Wizard",transformWizardFilter:"Filter",transformWizardSortBy:"Sort by",transformWizardSelectFields:"Select fields",transformQueryLabel:"Query",transformPreviewLabel:"Preview",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). \nCtrl+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",ok:"Ok",redo:"Refazer (Ctrl+Shift+Z)",removeText:"Remover",removeTitle:"Remover campos selecionados (Ctrl+Del)",removeField:"Remover este campo (Ctrl+Del)",selectNode:"Select a node...",showAll:"mostre tudo",showMore:"mostre mais",showMoreStatus:"exibindo ${visibleChilds} de ${totalChilds} itens.",sort:"Organizar",sortTitle:"Organizar os filhos deste ${type}",sortTitleShort:"Organizar os filhos",sortFieldLabel:"Field:",sortDirectionLabel:"Direction:",sortFieldTitle:"Select the nested field by which to sort the array or object",sortAscending:"Ascending",sortAscendingTitle:"Sort the selected field in ascending order",sortDescending:"Descending",sortDescendingTitle:"Sort the selected field in descending order",string:"Texto",transform:"Transform",transformTitle:"Filter, sort, or transform the childs of this ${type}",transformTitleShort:"Filter, sort, or transform contents",transformQueryTitle:"Enter a JMESPath query",transformWizardLabel:"Wizard",transformWizardFilter:"Filter",transformWizardSortBy:"Sort by",transformWizardSelectFields:"Select fields",transformQueryLabel:"Query",transformPreviewLabel:"Preview",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.'}},r="undefined"!=typeof navigator?navigator.language||navigator.userLanguage:void 0;n=i.find(function(e){return e===r}),n||(n="en"),e.exports={_locales:i,_defs:o,_lang:n,setLanguage:function(e){if(e){var t=i.find(function(t){return t===e});t?n=t:console.error("Language not found")}},setLanguages:function(e){if(e)for(var t in e){var n=i.find(function(e){return e===t});n||i.push(t),o[t]=Object.assign({},o.en,o[t],e[t])}},translate:function(e,t,i){i||(i=n);var r=o[i][e];if(t)for(e in t)r=r.replace("${"+e+"}",t[e]);return r||e}}},function(e,t,n){"use strict";function i(e){e&&(this.path=document.createElement("div"),this.path.className="jsoneditor-treepath",e.appendChild(this.path),this.reset())}var o=n(5),r=n(8).translate;i.prototype.reset=function(){this.path.innerHTML=r("selectNode")},i.prototype.setPath=function(e){function t(e){this.selectionCallback&&this.selectionCallback(e)}function n(e,t){this.contextMenuCallback&&this.contextMenuCallback(e,t)}var i=this;this.path.innerHTML="",e&&e.length&&e.forEach(function(r,s){var a,l=document.createElement("span");if(l.className="jsoneditor-treepath-element",l.innerText=r.name,l.onclick=t.bind(i,r),i.path.appendChild(l),r.children.length&&(a=document.createElement("span"),a.className="jsoneditor-treepath-seperator",a.innerHTML="►",a.onclick=function(){var t=[];r.children.forEach(function(o){t.push({text:o.name,className:"jsoneditor-type-modes"+(e[s+1]+1&&e[s+1].name===o.name?" jsoneditor-selected":""),click:n.bind(i,r,o.name)})}),new o(t).show(a)},i.path.appendChild(a,i.container)),s===e.length-1){var c=(a||l).getBoundingClientRect().left;i.path.offsetWidth0;){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.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},i.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr){t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var i=document.createElement("button");i.type="button",i.className="jsoneditor-schema-error",i.appendChild(n),i.onmouseover=i.onfocus=function(){for(var e=["right","above","below","left"],t=0;t=e.length;a--)this.removeChild(this.childs[a],!1)}else if("object"===this.type){for(this.childs||(this.childs=[]),a=this.childs.length-1;a>=0;a--)e.hasOwnProperty(this.childs[a].field)||this.removeChild(this.childs[a],!1);s=0;for(var c in e)e.hasOwnProperty(c)&&(n=e[c],void 0===n||n instanceof Function||(o=this.findChildByProperty(c),o?(o.setField(c,!0),o.setValue(n)):(o=new i(this.editor,{field:c,value:n}),r=s=e.childs.length;s--)this.removeChild(this.childs[s],!1)}else if("object"===e.type){for(this.childs||(this.childs=[]),r=0;r=e.childs.length;s--)this.removeChild(this.childs[s],!1)}else this.hideChilds(),delete this.append,delete this.showMore,delete this.expanded,delete this.childs,this.value=e.value;Array.isArray(a)!==Array.isArray(this.childs)&&this.recreateDom(),this.updateDom({updateIndexes:!0}),this.previousValue=this.value},i.prototype.recreateDom=function(){if(this.dom&&this.dom.tr&&this.dom.tr.parentNode){var e=this._detachFromDom();this.clearDom(),this._attachToDom(e)}},i.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},i.prototype.getInternalValue=function(){return"array"===this.type?{type:this.type,childs:this.childs.map(function(e){return e.getInternalValue()})}:"object"===this.type?{type:this.type,childs:this.childs.map(function(e){return{field:e.getField(),value:e.getInternalValue()}})}:(void 0===this.value&&this._getDomValue(),{type:this.type,value:this.value})},i.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},i.prototype.getNodePath=function(){var e=this.parent?this.parent.getNodePath():[];return e.push(this),e},i.prototype.clone=function(){var e=new i(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.previousField=this.previousField,e.value=this.value,e.valueInnerText=this.valueInnerText,e.previousValue=this.previousValue,e.expanded=this.expanded,e.visibleChilds=this.visibleChilds,this.childs){var t=[];this.childs.forEach(function(n){var i=n.clone();i.setParent(e),t.push(i)}),e.childs=t}else e.childs=void 0;return e},i.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="jsoneditor-expanded"),this.showChilds(),!1!==e&&this.childs.forEach(function(t){t.expand(e)}))},i.prototype.collapse=function(e){this.childs&&(this.hideChilds(),!1!==e&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="jsoneditor-collapsed"),this.expanded=!1)},i.prototype.showChilds=function(){if(this.childs&&this.expanded){var e=this.dom.tr,t=e?e.parentNode:void 0;if(t){var n=this.getAppendDom();if(!n.parentNode){var i=e.nextSibling;i?t.insertBefore(n,i):t.appendChild(n)}for(var o=Math.min(this.childs.length,this.visibleChilds),i=this._getNextTr(),r=0;rthis.visibleChilds){var o=this.childs[this.visibleChilds-1];this.insertBefore(e,o)}else this.appendChild(e);else this.insertBefore(e,t);n&&n.removeChild(i)}},i.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(this.visibleChilds++,"object"===this.type&&void 0==e.field&&e.setField(""),t===this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var n=this.childs.indexOf(t);if(-1==n)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(n,0,e)}if(this.expanded){var i=e.getDom(),o=t.getDom(),r=o?o.parentNode:void 0;o&&r&&r.insertBefore(i,o),e.showChilds(),this.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},i.prototype.insertAfter=function(e,t){if(this._hasChilds()){var n=this.childs.indexOf(t),i=this.childs[n+1];i?this.insertBefore(e,i):this.appendChild(e)}},i.prototype.search=function(e,t){Array.isArray(t)||(t=[]);var n,i=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!==this.field&&t.length<=this.MAX_SEARCH_RESULTS){n=String(this.field).toLowerCase().indexOf(i),-1!==n&&(this.searchField=!0,t.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds())this.childs&&this.childs.forEach(function(n){n.search(e,t)});else if(void 0!==this.value&&t.length<=this.MAX_SEARCH_RESULTS){var o=String(this.value).toLowerCase();n=o.indexOf(i),-1!==n&&(this.searchValue=!0,t.push({node:this,elem:"value"})),this._updateDomValue()}return t},i.prototype.scrollTo=function(e){this.expandPathToNode(),this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},i.prototype.expandPathToNode=function(){for(var e=this;e&&e.parent;){for(var t="array"===e.parent.type?e.index:e.parent.childs.indexOf(e);e.parent.visibleChilds0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:f("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=f("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=f("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.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],r=e[e.length-1],s=n.parent,a=i.getNodeFromTarget(t.target),l=n.editor,c=p.getAbsoluteTop(a.dom.tr)-p.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=p.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=p.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getDomSelection(),oldPaths:e.map(o),oldParent:s,oldNextNode:s.childs[r.getIndex()+1]||s.append,oldParentPathRedo:s.getInternalPath(),oldIndexRedo:n.getIndex(),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,a,l,c,h,d,u,f,m,v,y,b=e[0].editor,x=t.pageY-b.drag.offsetY,w=t.pageX,_=!1,C=e[0];if(n=C.dom.tr,d=p.getAbsoluteTop(n),m=n.offsetHeight,xu+m&&(c=void 0)),c&&(e.forEach(function(e){c.parent.moveBefore(e,c)}),_=!0)}else{var E=e[e.length-1];if(a=E.expanded&&E.append?E.append.getDom():E.dom.tr,s=a?a.nextSibling:void 0){f=p.getAbsoluteTop(s),r=s;do{h=i.getNodeFromTarget(r),r&&(v=r.nextSibling?p.getAbsoluteTop(r.nextSibling):0,y=r?v-f:0,h&&h.parent.childs.length==e.length&&h.parent.childs[e.length-1]==E&&(d+=27),r=r.nextSibling)}while(r&&x>d+y);if(h&&h.parent){var S=w-b.drag.mouseX,j=Math.round(S/24/2),N=b.drag.level+j,k=h.getLevel();for(o=h.dom.tr&&h.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],j=S[0],N=S[S.length-1];if(13==y){if(b==this.dom.value)this.editable.value&&!e.ctrlKey||p.isUrl(this.value)&&(window.open(this.value,"_blank"),C=!0);else if(b==this.dom.expand){var k=this._hasChilds();if(k){var T=e.ctrlKey;this._onExpand(T),b.focus(),C=!0}}}else if(68==y)x&&E&&(i.onDuplicate(S),C=!0);else if(69==y)x&&(this._onExpand(w),b.focus(),C=!0);else if(77==y&&E)x&&(this.showContextMenu(b),C=!0);else if(46==y&&E)x&&(i.onRemove(S),C=!0);else if(45==y&&E)x&&!w?(this._onInsertBefore(),C=!0):x&&w&&(this._onInsertAfter(),C=!0);else if(35==y){if(_){var I=this._lastNode();I&&I.focus(i.focusElement||this._getElementName(b)),C=!0}}else if(36==y){if(_){var O=this._firstNode();O&&O.focus(i.focusElement||this._getElementName(b)),C=!0}}else if(37==y){if(_&&!w){var P=this._previousElement(b);P&&this.focus(this._getElementName(P)),C=!0}else if(_&&w&&E){if(N.expanded){var D=N.getAppendDom();o=D?D.nextSibling:void 0}else{var A=N.getDom();o=A.nextSibling}o&&(n=i.getNodeFromTarget(o),s=o.nextSibling,M=i.getNodeFromTarget(s),n&&n instanceof g&&1!=N.parent.childs.length&&M&&M.parent&&(a=this.editor.getDomSelection(),c=j.parent,l=c.childs[N.getIndex()+1]||c.append,h=j.getIndex(),d=M.getIndex(),u=c.getInternalPath(),f=M.parent.getInternalPath(),S.forEach(function(e){M.parent.moveBefore(e,M)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:j.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:j.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:f,oldSelection:a,newSelection:this.editor.getDomSelection()})))}}else if(38==y)_&&!w?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(b))),C=!0):!_&&x&&w&&E?(t=this._previousNode(),t&&(v=this.editor.multiselection,v.start=v.start||this,v.end=t,m=this.editor._findTopLevelNodes(v.start,v.end),this.editor.select(m),t.focus("field")),C=!0):_&&w&&E&&(t=j._previousNode(),t&&t.parent&&(a=this.editor.getDomSelection(),c=j.parent,l=c.childs[N.getIndex()+1]||c.append,h=j.getIndex(),d=t.getIndex(),u=c.getInternalPath(),f=t.parent.getInternalPath(),S.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:j.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:j.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:f,oldSelection:a,newSelection:this.editor.getDomSelection()})),C=!0);else if(39==y){if(_&&!w){var R=this._nextElement(b);R&&this.focus(this._getElementName(R)),C=!0}else if(_&&w&&E){A=j.getDom();var L=A.previousSibling;L&&(t=i.getNodeFromTarget(L))&&t.parent&&!t.isVisible()&&(a=this.editor.getDomSelection(),c=j.parent,l=c.childs[N.getIndex()+1]||c.append,h=j.getIndex(),d=t.getIndex(),u=c.getInternalPath(),f=t.parent.getInternalPath(),S.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:j.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:j.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:f,oldSelection:a,newSelection:this.editor.getDomSelection()}))}}else if(40==y)if(_&&!w)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(b))),C=!0;else if(!_&&x&&w&&E)n=this._nextNode(),n&&(v=this.editor.multiselection,v.start=v.start||this,v.end=n,m=this.editor._findTopLevelNodes(v.start,v.end),this.editor.select(m),n.focus("field")),C=!0;else if(_&&w&&E){n=N.expanded?N.append?N.append._nextNode():void 0:N._nextNode(),n&&!n.isVisible()&&(n=n.parent.showMore),n&&n instanceof g&&(n=N);var M=n&&(n._nextNode()||n.parent.append);M&&M.parent&&(a=this.editor.getDomSelection(),c=j.parent,l=c.childs[N.getIndex()+1]||c.append,h=j.getIndex(),d=M.getIndex(),u=c.getInternalPath(),f=M.parent.getInternalPath(),S.forEach(function(e){M.parent.moveBefore(e,M)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:j.parent.getInternalPath(),oldParentPathRedo:u,newParentPathRedo:f,oldIndexRedo:h,newIndexRedo:d,oldIndex:l.getIndex(),newIndex:j.getIndex(),oldSelection:a,newSelection:this.editor.getDomSelection()})),C=!0}C&&(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,r=t.editor,s=t.getIndex();r.highlighter.unhighlight();var a=r.getDomSelection();i.blurNodes(e);var l=r.getDomSelection(),c=e.map(o);e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e,paths:c,parentPath:n.getInternalPath(),index:s,oldSelection:a,newSelection:l})}},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,r=t.editor;r.deselect(r.multiselection.nodes);var s=r.getDomSelection(),a=t,l=e.map(function(e){var t=e.clone();return n.insertAfter(t,a),a=t,t});1===e.length?l[0].focus():r.select(l);var c=r.getDomSelection();r._onAction("duplicateNodes",{paths:e.map(o),clonePaths:l.map(o),afterPath:t.getInternalPath(),parentPath:n.getInternalPath(),oldSelection:s,newSelection:c})}},i.prototype._onInsertBefore=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0);var s=this.getInternalPath();this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var a=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],paths:[r.getInternalPath()],beforePath:s,parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:a})},i.prototype._onInsertAfter=function(e,t,n){var o=this.editor.getDomSelection(),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.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],paths:[r.getInternalPath()],afterPath:this.getInternalPath(),parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:s})},i.prototype._onAppend=function(e,t,n){var o=this.editor.getDomSelection(),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.getDomSelection();this.editor._onAction("appendNodes",{nodes:[r],paths:[r.getInternalPath()],parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:s})},i.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var n=this.editor.getDomSelection();this.changeType(e);var i=this.editor.getDomSelection();this.editor._onAction("changeType",{path:this.getInternalPath(),oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype.sort=function(e,t){if(this._hasChilds()){this.hideChilds();var n=this.childs;this.childs=this.childs.concat();var i="desc"===t?-1:1;"object"===this.type?this.childs.sort(function(e,t){return i*a(e.field,t.field)}):this.childs.sort(function(t,n){var o=t.getNestedChild(e),r=n.getNestedChild(e);if(!o)return i;if(!r)return-i;var s=o.value,l=r.value;return"string"!=typeof s&&"string"!=typeof l?s>l?i:s/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=p.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return p.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;n="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function l(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function h(){}function d(e){this.runtime=e}function u(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[v]}]},avg:{_func:this._functionAvg,_signature:[{types:[C]}]},ceil:{_func:this._functionCeil,_signature:[{types:[v]}]},contains:{_func:this._functionContains,_signature:[{types:[b,x]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[v]}]},length:{_func:this._functionLength,_signature:[{types:[b,x,w]}]},map:{_func:this._functionMap,_signature:[{types:[_]},{types:[x]}]},max:{_func:this._functionMax,_signature:[{types:[C,E]}]},merge:{_func:this._functionMerge,_signature:[{types:[w],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[x]},{types:[_]}]},sum:{_func:this._functionSum,_signature:[{types:[C]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[C,E]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[x]},{types:[_]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[w]}]},values:{_func:this._functionValues,_signature:[{types:[w]}]},sort:{_func:this._functionSort,_signature:[{types:[E,C]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[x]},{types:[_]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[E]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,x]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function p(e){return(new h).parse(e)}function f(e){return(new c).tokenize(e)}function m(e,t){var n=new h,i=new u,o=new d(i);i._interpreter=o;var r=n.parse(t);return o.search(r,e)}var g;g="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var v=0,y=1,b=2,x=3,w=4,_=6,C=8,E=9,S={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},j={"<":!0,">":!0,"=":!0,"!":!0},N={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var n,i,o;this._current"===n?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===n&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,n=this._current,i=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(n.indexOf(e)>=0)return!0;if(!(i.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var k={};k.EOF=0,k.UnquotedIdentifier=0,k.QuotedIdentifier=0,k.Rbracket=0,k.Rparen=0,k.Comma=0,k.Rbrace=0,k.Number=0,k.Current=0,k.Expref=0,k.Pipe=1,k.Or=2,k.And=3,k.EQ=5,k.GT=5,k.LT=5,k.GTE=5,k.LTE=5,k.NE=5,k.Flatten=9,k.Star=20,k.Filter=21,k.Dot=40,k.Not=45,k.Lbrace=50,k.Lbracket=55,k.Lparen=60,h.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var n=this._lookaheadToken(0),i=new Error("Unexpected token type: "+n.type+", value: "+n.value);throw i.name="ParserError",i}return t},_loadTokens:function(e){var t=new c,n=t.tokenize(e);n.push({type:"EOF",value:"",start:e.length}),this.tokens=n},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var n=this.nud(t),i=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(k[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var n=this._lookaheadToken(0),i=new Error("Sytanx error, unexpected token: "+n.value+"("+n.type+")");throw i.name="ParserError",i}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,n,i,o=[],r=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),r.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),n=this.expression(0),i={type:"KeyValuePair",name:t,value:n},o.push(i),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:o}}},d.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,l,c,h,d,u,p,f,m;switch(e.type){case"Field":return null===s?null:n(s)?(u=s[e.name],void 0===u?null:u):null;case"Subexpression":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mx;m+=w)c.push(s[m]);return c;case"Projection":var _=this.visit(e.children[0],s);if(!t(_))return null;for(f=[],m=0;m<_.length;m++)null!==(l=this.visit(e.children[1],_[m]))&&f.push(l);return f;case"ValueProjection":if(_=this.visit(e.children[0],s),!n(_))return null;f=[];var C=r(_);for(m=0;md;break;case"GTE":c=h>=d;break;case"LT":c=h=e&&(t=n<0?e-1:e),t}},u.prototype={callFunction:function(e,t){var n=this.functionTable[e];if(void 0===n)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,n._signature),n._func.call(this,t)},_validateArgs:function(e,t,n){var i;if(n[n.length-1].variadic){if(t.length=0;i--)n+=t[i];return n}var o=e[0].slice(0);return o.reverse(),o},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,n=e[0],i=0;i=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return n(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],n=this._interpreter,i=e[0],o=e[1],r=0;r0){if(this._getTypeName(e[0][0])===v)return Math.max.apply(Math,e[0]);for(var t=e[0],n=t[0],i=1;i0){if(this._getTypeName(e[0][0])===v)return Math.min.apply(Math,e[0]);for(var t=e[0],n=t[0],i=1;ia?1:ss&&(s=n,t=o[a]);return t},_functionMinBy:function(e){for(var t,n,i=e[1],o=e[0],r=this.createKeyFunction(i,[v,b]),s=1/0,a=0;am)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.className="jsoneditor-append",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.getPath=function(){return null},t.prototype.getIndex=function(){return null},t.prototype.updateDom=function(e){var t=this.dom,n=t.td;n&&(n.style.paddingLeft=24*this.getLevel()+26+"px");var i=t.text;i&&(i.innerHTML="("+s("empty")+" "+this.parent.type+")");var o=t.tr;this.isVisible()?t.tr.firstChild||(t.tdDrag&&o.appendChild(t.tdDrag),t.tdMenu&&o.appendChild(t.tdMenu),o.appendChild(n)):t.tr.firstChild&&(t.tdDrag&&o.removeChild(t.tdDrag),t.tdMenu&&o.removeChild(t.tdMenu),o.removeChild(n))},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(6),r=n(5),s=n(8).translate;e.exports=i},function(e,t,n){"use strict";function i(e){function t(e,t){this.editor=e,this.parent=t,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){if(this.dom.tr)return this.dom.tr;if(this._updateEditability(),!this.dom.tr){var e=this,t=this.parent,n=document.createElement("a");n.appendChild(document.createTextNode(o("showMore"))),n.href="#",n.onclick=function(n){return t.visibleChilds=Math.floor(t.visibleChilds/t.MAX_VISIBLE_CHILDS+1)*t.MAX_VISIBLE_CHILDS,e.updateDom(),t.showChilds(),n.preventDefault(),!1};var i=document.createElement("a");i.appendChild(document.createTextNode(o("showAll"))),i.href="#",i.onclick=function(n){return t.visibleChilds=1/0,e.updateDom(),t.showChilds(),n.preventDefault(),!1};var r=document.createElement("div"),s=document.createTextNode(this._getShowMoreText());r.className="jsoneditor-show-more",r.appendChild(s),r.appendChild(n),r.appendChild(document.createTextNode(". ")),r.appendChild(i),r.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(r);var l=document.createElement("tr");l.appendChild(document.createElement("td")),l.appendChild(document.createElement("td")),l.appendChild(a),l.className="jsoneditor-show-more",this.dom.tr=l,this.dom.moreContents=r,this.dom.moreText=s}return this.updateDom(),this.dom.tr},t.prototype.updateDom=function(e){if(this.isVisible()){if(this.dom.tr.node=this.parent.childs[this.parent.visibleChilds],!this.dom.tr.parentNode){var t=this.parent._getNextTr();t&&t.parentNode.insertBefore(this.dom.tr,t)}this.dom.moreText.nodeValue=this._getShowMoreText(),this.dom.moreContents.style.marginLeft=24*(this.getLevel()+1)+"px"}else this.dom.tr&&this.dom.tr.parentNode&&this.dom.tr.parentNode.removeChild(this.dom.tr)},t.prototype._getShowMoreText=function(){return o("showMoreStatus",{visibleChilds:this.parent.visibleChilds,totalChilds:this.parent.childs.length})+" "},t.prototype.isVisible=function(){return this.parent.expanded&&this.parent.childs.length>this.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var o=n(8).translate;e.exports=i},function(e,t,n){function i(e,t){var n='
    '+r("sort")+"
    "+r("sortFieldLabel")+'
    '+r("sortDirectionLabel")+'
    ';o({parent:t,content:n,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-sort"}).afterCreate(function(t){function n(e){s.value=e,s.className="jsoneditor-button-group jsoneditor-button-group-value-"+s.value}var i=t.modalElem().querySelector("form"),o=t.modalElem().querySelector("#ok"),r=t.modalElem().querySelector("#field"),s=t.modalElem().querySelector("#direction"),a="array"===e.type?e.getChildPaths():["."];a.forEach(function(e){var t=document.createElement("option");t.text=e,t.value=e,r.appendChild(t)}),r.value=e.sortedBy?e.sortedBy.path:a[0],n(e.sortedBy?e.sortedBy.direction:"asc"),s.onclick=function(e){n(e.target.getAttribute("data-value"))},o.onclick=function(n){n.preventDefault(),n.stopPropagation(),t.close();var i=r.value,o="."===i?[]:i.split(".").slice(1);e.sortedBy={path:i,direction:s.value},e.sort(o,s.value)},i&&(i.onsubmit=o.onclick)}).afterClose(function(e){e.destroy()}).show()}var o=n(16),r=n(8).translate;e.exports=i},function(e,t,n){var i,o,r;!function(n,s){"use strict";o=[],i=s,void 0!==(r="function"==typeof i?i.apply(t,o):i)&&(e.exports=r)}(0,function(){"use strict";function e(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType}function t(e){return"string"==typeof e}function n(){var e=[];return{watch:e.push.bind(e),trigger:function(t,n){for(var i=!0,o={detail:n,preventDefault:function(){i=!1}},r=0;r
    '+a("transform")+'

    Enter a JMESPath query to filter, sort, or transform the JSON data.
    To learn JMESPath, go to the interactive tutorial.

    '+a("transformWizardLabel")+'
    '+a("transformWizardFilter")+'
    '+a("transformWizardSortBy")+'
    '+a("transformWizardSelectFields")+'
    '+a("transformQueryLabel")+'
    '+a("transformPreviewLabel")+'
    ';r({parent:t,content:i,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-transform",focus:!1}).afterCreate(function(t){function i(e){return"."===e[0]?"."===e?"@":e.slice(1):e}function r(){if(p.value&&f.value&&m.value){var t=p.value,n=JSON.stringify(e._stringCast(m.value));b.value="[? "+t+" "+f.value+" `"+n+"`]"}else b.value="[*]";if(g.value&&v.value){var i=g.value;"desc"===v.value?b.value+=" | reverse(sort_by(@, &"+i+"))":b.value+=" | sort_by(@, &"+i+")"}if(y.value){for(var o=[],r=0;r1&&(b.value+=".{"+o.map(function(e){var t=e.split(".");return t[t.length-1]+": "+e}).join(", ")+"}")}N()}function a(){try{var e=o.search(n,b.value),t=JSON.stringify(e,null,2).split("\n");t.length>c&&(t=t.slice(0,c).concat(["..."])),x.className="jsoneditor-transform-preview",x.value=t.join("\n"),u.disabled=!1}catch(e){x.className="jsoneditor-transform-preview jsoneditor-error",x.value=e.toString(),u.disabled=!0}}var h=t.modalElem(),d=h.querySelector("#wizard"),u=h.querySelector("#ok"),p=h.querySelector("#filterField"),f=h.querySelector("#filterRelation"),m=h.querySelector("#filterValue"),g=h.querySelector("#sortField"),v=h.querySelector("#sortOrder"),y=h.querySelector("#selectFields"),b=h.querySelector("#query"),x=h.querySelector("#preview");Array.isArray(n)||(d.style.display="none",d.parentNode.style.fontStyle="italic",d.parentNode.appendChild(document.createTextNode("(wizard not available for objects, only for arrays)"))),e.getChildPaths().forEach(function(e){var t=i(e),n=document.createElement("option");n.text=t,n.value=t,p.appendChild(n);var o=document.createElement("option");o.text=t,o.value=t,g.appendChild(o)});var w=e.getChildPaths(!0).filter(function(e){return"."!==e});w.length>0?w.forEach(function(e){var t=i(e),n=document.createElement("option");n.text=t,n.value=t,y.appendChild(n)}):h.querySelector("#selectFieldsPart").style.display="none";var _=new s(p,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),C=new s(f,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"compare..."}),E=new s(g,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),S=new s(v,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"order..."}),j=new s(y,{multiple:!0,clearable:!0,defaultSelected:!1});_.on("selectr.change",r),C.on("selectr.change",r),m.oninput=r,E.on("selectr.change",r),S.on("selectr.change",r),j.on("selectr.change",r),h.querySelector(".pico-modal-contents").onclick=function(e){e.preventDefault()},b.value=Array.isArray(n)?"[*]":"@";var N=l(a,300);b.oninput=N,N(),u.onclick=function(n){n.preventDefault(),n.stopPropagation(),t.close(),e.transform(b.value)},setTimeout(function(){b.select(),b.focus(),b.selectionStart=3,b.selectionEnd=3})}).afterClose(function(e){e.destroy()}).show()}var o=n(11),r=n(16),s=n(18),a=n(8).translate,l=n(6).debounce,c=100;e.exports=i},function(e,t){"use strict";function n(e,t){return e.hasOwnProperty(t)&&(!0===e[t]||e[t].length)}function i(e,t,n){e.parentNode?e.parentNode.parentNode||t.appendChild(e.parentNode):t.appendChild(e),s.removeClass(e,"excluded"),n||(e.innerHTML=e.textContent)}var o={defaultSelected:!0,width:"auto",disabled:!1,searchable:!0,clearable:!1,sortSelected:!1,allowDeselect:!1,closeOnScroll:!1,nativeDropdown:!1,placeholder:"Select an option...",taggable:!1,tagPlaceholder:"Enter a tag..."},r=function(){};r.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t-1},truncate:function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}},a=function(){if(this.items.length){var e=document.createDocumentFragment();if(this.config.pagination){var t=this.pages.slice(0,this.pageIndex);s.each(t,function(t,n){s.each(n,function(t,n){i(n,e,this.customOption)},this)},this)}else s.each(this.items,function(t,n){i(n,e,this.customOption)},this);e.childElementCount&&(s.removeClass(this.items[this.navIndex],"active"),this.navIndex=e.querySelector(".selectr-option").idx,s.addClass(this.items[this.navIndex],"active")),this.tree.appendChild(e)}},l=function(e){var t=e.target;this.container.contains(t)||!this.opened&&!s.hasClass(this.container,"notice")||this.close()},c=function(e,t){t=t||e;var n=this.customOption?this.config.renderOption(t):e.textContent,i=s.createElement("li",{class:"selectr-option",html:n,role:"treeitem","aria-selected":!1});return i.idx=e.idx,this.items.push(i),e.defaultSelected&&this.defaultSelected.push(e.idx),e.disabled&&(i.disabled=!0,s.addClass(i,"disabled")),i},h=function(){this.requiresPagination=this.config.pagination&&this.config.pagination>0,n(this.config,"width")&&(s.isInt(this.config.width)?this.width=this.config.width+"px":"auto"===this.config.width?this.width="100%":s.includes(this.config.width,"%")&&(this.width=this.config.width)),this.container=s.createElement("div",{class:"selectr-container"}),this.config.customClass&&s.addClass(this.container,this.config.customClass),this.mobileDevice?s.addClass(this.container,"selectr-mobile"):s.addClass(this.container,"selectr-desktop"),this.el.tabIndex=-1,this.config.nativeDropdown||this.mobileDevice?s.addClass(this.el,"selectr-visible"):s.addClass(this.el,"selectr-hidden"),this.selected=s.createElement("div",{class:"selectr-selected",disabled:this.disabled,tabIndex:1,"aria-expanded":!1}),this.label=s.createElement(this.el.multiple?"ul":"span",{class:"selectr-label"});var e=s.createElement("div",{class:"selectr-options-container"});if(this.tree=s.createElement("ul",{class:"selectr-options",role:"tree","aria-hidden":!0,"aria-expanded":!1}),this.notice=s.createElement("div",{class:"selectr-notice"}),this.el.setAttribute("aria-hidden",!0),this.disabled&&(this.el.disabled=!0),this.el.multiple&&(s.addClass(this.label,"selectr-tags"),s.addClass(this.container,"multiple"),this.tags=[],this.selectedValues=this.getSelectedProperties("value"),this.selectedIndexes=this.getSelectedProperties("idx")),this.selected.appendChild(this.label),this.config.clearable&&(this.selectClear=s.createElement("button",{class:"selectr-clear",type:"button"}),this.container.appendChild(this.selectClear),s.addClass(this.container,"clearable")),this.config.taggable){var t=s.createElement("li",{class:"input-tag"});this.input=s.createElement("input",{class:"selectr-tag-input",placeholder:this.config.tagPlaceholder,tagIndex:0,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),t.appendChild(this.input),this.label.appendChild(t),s.addClass(this.container,"taggable"),this.tagSeperators=[","],this.config.tagSeperators&&(this.tagSeperators=this.tagSeperators.concat(this.config.tagSeperators))}this.config.searchable&&(this.input=s.createElement("input",{class:"selectr-input",tagIndex:-1,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),this.inputClear=s.createElement("button",{class:"selectr-input-clear",type:"button"}),this.inputContainer=s.createElement("div",{class:"selectr-input-container"}),this.inputContainer.appendChild(this.input),this.inputContainer.appendChild(this.inputClear),e.appendChild(this.inputContainer)),e.appendChild(this.notice),e.appendChild(this.tree),this.items=[],this.options=[],this.el.options.length&&(this.options=[].slice.call(this.el.options));var i=!1,o=0;if(this.el.children.length&&s.each(this.el.children,function(e,t){"OPTGROUP"===t.nodeName?(i=s.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.label+"
  • "}),s.each(t.children,function(e,t){t.idx=o,i.appendChild(c.call(this,t,i)),o++},this)):(t.idx=o,c.call(this,t),o++)},this),this.config.data&&Array.isArray(this.config.data)){this.data=[];var r,a=!1;i=!1,o=0,s.each(this.config.data,function(e,t){n(t,"children")?(a=s.createElement("optgroup",{label:t.text}),i=s.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.text+"
  • "}),s.each(t.children,function(e,t){r=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),r.disabled=n(t,"disabled"),this.options.push(r),a.appendChild(r),r.idx=o,i.appendChild(c.call(this,r,t)),this.data[o]=t,o++},this)):(r=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),r.disabled=n(t,"disabled"),this.options.push(r),r.idx=o,c.call(this,r,t),this.data[o]=t,o++)},this)}this.setSelected(!0);var l;this.navIndex=0;for(var h=0;h0)&&this.change(this.navIndex);var t,n=this.items[this.navIndex];switch(e.which){case 38:t=0,this.navIndex>0&&this.navIndex--;break;case 40:t=1,this.navIndexthis.tree.lastElementChild.idx){this.navIndex=this.tree.lastElementChild.idx;break}if(this.navIndexthis.optsRect.top+this.optsRect.height&&(this.tree.scrollTop=this.tree.scrollTop+(i.top+i.height-(this.optsRect.top+this.optsRect.height))),this.navIndex===this.tree.childElementCount-1&&this.requiresPagination&&f.call(this)):0===this.navIndex?this.tree.scrollTop=0:i.top-this.optsRect.top<0&&(this.tree.scrollTop=this.tree.scrollTop+(i.top-this.optsRect.top)),n&&s.removeClass(n,"active"),s.addClass(this.items[this.navIndex],"active")},u=function(e){var t,n=this,i=document.createDocumentFragment(),o=this.options[e.idx],r=this.data?this.data[e.idx]:o,a=this.customSelected?this.config.renderSelection(r):o.textContent,l=s.createElement("li",{class:"selectr-tag",html:a}),c=s.createElement("button",{class:"selectr-tag-remove",type:"button"});if(l.appendChild(c),l.idx=e.idx,l.tag=o.value,this.tags.push(l),this.config.sortSelected){var h=this.tags.slice();t=function(e,t){e.replace(/(\d+)|(\D+)/g,function(e,n,i){t.push([n||1/0,i||""])})},h.sort(function(e,i){var o,r,s=[],a=[];for(!0===n.config.sortSelected?(o=e.tag,r=i.tag):"text"===n.config.sortSelected&&(o=e.textContent,r=i.textContent),t(o,s),t(r,a);s.length&&a.length;){var l=s.shift(),c=a.shift(),h=l[0]-c[0]||l[1].localeCompare(c[1]);if(h)return h}return s.length-a.length}),s.each(h,function(e,t){i.appendChild(t)}),this.label.innerHTML=""}else i.appendChild(l);this.config.taggable?this.label.insertBefore(i,this.input.parentNode):this.label.appendChild(i)},p=function(e){var t=!1;s.each(this.tags,function(n,i){i.idx===e.idx&&(t=i)},this),t&&(this.label.removeChild(t),this.tags.splice(this.tags.indexOf(t),1))},f=function(){var e=this.tree;if(e.scrollTop>=e.scrollHeight-e.offsetHeight&&this.pageIndex"+n[0]+"")},v=function(e,t){if(t=t||{},!e)throw new Error("You must supply either a HTMLSelectElement or a CSS3 selector string.");if(this.el=e,"string"==typeof e&&(this.el=document.querySelector(e)),null===this.el)throw new Error("The element you passed to Selectr can not be found.");if("select"!==this.el.nodeName.toLowerCase())throw new Error("The element you passed to Selectr is not a HTMLSelectElement.");this.render(t)};v.prototype.render=function(e){if(!this.rendered){this.config=s.extend(o,e),this.originalType=this.el.type,this.originalIndex=this.el.tabIndex,this.defaultSelected=[],this.originalOptionCount=this.el.options.length,(this.config.multiple||this.config.taggable)&&(this.el.multiple=!0),this.disabled=n(this.config,"disabled"),this.opened=!1,this.config.taggable&&(this.config.searchable=!1),this.navigating=!1,this.mobileDevice=!1,/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent)&&(this.mobileDevice=!0),this.customOption=this.config.hasOwnProperty("renderOption")&&"function"==typeof this.config.renderOption,this.customSelected=this.config.hasOwnProperty("renderSelection")&&"function"==typeof this.config.renderSelection,r.mixin(this),h.call(this),this.bindEvents(),this.update(),this.optsRect=s.rect(this.tree),this.rendered=!0,this.el.multiple||(this.el.selectedIndex=this.selectedIndex);var t=this;setTimeout(function(){t.emit("selectr.init")},20)}},v.prototype.getSelected=function(){return this.el.querySelectorAll("option:checked")},v.prototype.getSelectedProperties=function(e){var t=this.getSelected();return[].slice.call(t).map(function(t){return t[e]}).filter(function(e){return null!==e&&void 0!==e})},v.prototype.bindEvents=function(){var e=this;if(this.events={},this.events.dismiss=l.bind(this),this.events.navigate=d.bind(this),this.events.reset=this.reset.bind(this),this.config.nativeDropdown||this.mobileDevice){this.container.addEventListener("touchstart",function(t){t.changedTouches[0].target===e.el&&e.toggle()}),(this.config.nativeDropdown||this.mobileDevice)&&this.container.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation(),t.target===e.el&&e.toggle()});var t=function(e,t){for(var n,i=[],o=e.slice(0),r=0;r-1?o.splice(n,1):i.push(t[r]);return[i,o]};this.el.addEventListener("change",function(n){if(e.el.multiple){var i=e.getSelectedProperties("idx"),o=t(e.selectedIndexes,i);s.each(o[0],function(t,n){e.select(n)},e),s.each(o[1],function(t,n){e.deselect(n)},e)}else e.el.selectedIndex>-1&&e.select(e.el.selectedIndex)})}this.config.nativeDropdown&&this.container.addEventListener("keydown",function(t){"Enter"===t.key&&e.selected===document.activeElement&&(e.toggle(),setTimeout(function(){e.el.focus()},200))}),this.selected.addEventListener("click",function(t){e.disabled||e.toggle(),t.preventDefault(),t.stopPropagation()}),this.label.addEventListener("click",function(t){s.hasClass(t.target,"selectr-tag-remove")&&e.deselect(t.target.parentNode.idx)}),this.selectClear&&this.selectClear.addEventListener("click",this.clear.bind(this)),this.tree.addEventListener("mousedown",function(e){e.preventDefault()}),this.tree.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation();var n=s.closest(t.target,function(e){return e&&s.hasClass(e,"selectr-option")});n&&(s.hasClass(n,"disabled")||(s.hasClass(n,"selected")?(e.el.multiple||!e.el.multiple&&e.config.allowDeselect)&&e.deselect(n.idx):e.select(n.idx),e.opened&&!e.el.multiple&&e.close()))}),this.tree.addEventListener("mouseover",function(t){s.hasClass(t.target,"selectr-option")&&(s.hasClass(t.target,"disabled")||(s.removeClass(e.items[e.navIndex],"active"),s.addClass(t.target,"active"),e.navIndex=[].slice.call(e.items).indexOf(t.target)))}),this.config.searchable&&(this.input.addEventListener("focus",function(t){e.searching=!0}),this.input.addEventListener("blur",function(t){e.searching=!1}),this.input.addEventListener("keyup",function(t){e.search(),e.config.taggable||(this.value.length?s.addClass(this.parentNode,"active"):s.removeClass(this.parentNode,"active"))}),this.inputClear.addEventListener("click",function(t){e.input.value=null,m.call(e),e.tree.childElementCount||a.call(e)})),this.config.taggable&&this.input.addEventListener("keyup",function(t){if(e.search(),e.config.taggable&&this.value.length){var n=this.value.trim();if(13===t.which||s.includes(e.tagSeperators,t.key)){s.each(e.tagSeperators,function(e,t){n=n.replace(t,"")});e.add({value:n,text:n,selected:!0},!0)?(e.close(),m.call(e)):(this.value="",e.setMessage("That tag is already in use."))}}}),this.update=s.debounce(function(){e.opened&&e.config.closeOnScroll&&e.close(),e.width&&(e.container.style.width=e.width),e.invert()},50),this.requiresPagination&&(this.paginateItems=s.debounce(function(){f.call(this)},50),this.tree.addEventListener("scroll",this.paginateItems.bind(this))),document.addEventListener("click",this.events.dismiss),window.addEventListener("keydown",this.events.navigate),window.addEventListener("resize",this.update),window.addEventListener("scroll",this.update),this.el.form&&this.el.form.addEventListener("reset",this.events.reset)},v.prototype.setSelected=function(e){if(this.config.data||this.el.multiple||!this.el.options.length||(0===this.el.selectedIndex&&(this.el.options[0].defaultSelected||this.config.defaultSelected||(this.el.selectedIndex=-1)),this.selectedIndex=this.el.selectedIndex,this.selectedIndex>-1&&this.select(this.selectedIndex)),this.config.multiple&&"select-one"===this.originalType&&!this.config.data&&this.el.options[0].selected&&!this.el.options[0].defaultSelected&&(this.el.options[0].selected=!1),s.each(this.options,function(e,t){t.selected&&t.defaultSelected&&this.select(t.idx)},this),this.config.selectedValue&&this.setValue(this.config.selectedValue),this.config.data){!this.el.multiple&&this.config.defaultSelected&&this.el.selectedIndex<0&&this.select(0);var t=0;s.each(this.config.data,function(e,i){n(i,"children")?s.each(i.children,function(e,n){n.hasOwnProperty("selected")&&!0===n.selected&&this.select(t),t++},this):(i.hasOwnProperty("selected")&&!0===i.selected&&this.select(t),t++)},this)}},v.prototype.destroy=function(){this.rendered&&(this.emit("selectr.destroy"),"select-one"===this.originalType&&(this.el.multiple=!1),this.config.data&&(this.el.innerHTML=""),s.removeClass(this.el,"selectr-hidden"),this.el.form&&s.off(this.el.form,"reset",this.events.reset),s.off(document,"click",this.events.dismiss),s.off(document,"keydown",this.events.navigate),s.off(window,"resize",this.update),s.off(window,"scroll",this.update),this.container.parentNode.replaceChild(this.el,this.container),this.rendered=!1)},v.prototype.change=function(e){var t=this.items[e],n=this.options[e];n.disabled||(n.selected&&s.hasClass(t,"selected")?this.deselect(e):this.select(e),this.opened&&!this.el.multiple&&this.close())},v.prototype.select=function(e){var t=this.items[e],n=[].slice.call(this.el.options),i=this.options[e];if(this.el.multiple){if(s.includes(this.selectedIndexes,e))return!1;if(this.config.maxSelections&&this.tags.length===this.config.maxSelections)return this.setMessage("A maximum of "+this.config.maxSelections+" items can be selected.",!0),!1;this.selectedValues.push(i.value),this.selectedIndexes.push(e),u.call(this,t)}else{var o=this.data?this.data[e]:i;this.label.innerHTML=this.customSelected?this.config.renderSelection(o):i.textContent,this.selectedValue=i.value,this.selectedIndex=e,s.each(this.options,function(t,n){var i=this.items[t];t!==e&&(i&&s.removeClass(i,"selected"),n.selected=!1,n.removeAttribute("selected"))},this)}s.includes(n,i)||this.el.add(i),t.setAttribute("aria-selected",!0),s.addClass(t,"selected"),s.addClass(this.container,"has-selected"),i.selected=!0,i.setAttribute("selected",""),this.emit("selectr.change",i),this.emit("selectr.select",i)},v.prototype.deselect=function(e,t){var n=this.items[e],i=this.options[e];if(this.el.multiple){var o=this.selectedIndexes.indexOf(e);this.selectedIndexes.splice(o,1);var r=this.selectedValues.indexOf(i.value);this.selectedValues.splice(r,1),p.call(this,n),this.tags.length||s.removeClass(this.container,"has-selected")}else{if(!t&&!this.config.clearable&&!this.config.allowDeselect)return!1;this.label.innerHTML="",this.selectedValue=null,this.el.selectedIndex=this.selectedIndex=-1,s.removeClass(this.container,"has-selected")}this.items[e].setAttribute("aria-selected",!1),s.removeClass(this.items[e],"selected"),i.selected=!1,i.removeAttribute("selected"),this.emit("selectr.change",null),this.emit("selectr.deselect",i)},v.prototype.setValue=function(e){var t=Array.isArray(e);if(t||(e=e.toString().trim()),!this.el.multiple&&t)return!1;s.each(this.options,function(n,i){(t&&s.includes(e.toString(),i.value)||i.value===e)&&this.change(i.idx)},this)},v.prototype.getValue=function(e,t){var n;if(this.el.multiple)e?this.selectedIndexes.length&&(n={},n.values=[],s.each(this.selectedIndexes,function(e,t){var i=this.options[t];n.values[e]={value:i.value,text:i.textContent}},this)):n=this.selectedValues.slice();else if(e){var i=this.options[this.selectedIndex];n={value:i.value,text:i.textContent}}else n=this.selectedValue;return e&&t&&(n=JSON.stringify(n)),n},v.prototype.add=function(e,t){if(e){if(this.data=this.data||[],this.items=this.items||[],this.options=this.options||[],Array.isArray(e))s.each(e,function(e,n){this.add(n,t)},this);else if("[object Object]"===Object.prototype.toString.call(e)){if(t){var n=!1;if(s.each(this.options,function(t,i){i.value.toLowerCase()===e.value.toLowerCase()&&(n=!0)}),n)return!1}var i=s.createElement("option",e);return this.data.push(e),this.options.push(i),i.idx=this.options.length>0?this.options.length-1:0,c.call(this,i),e.selected&&this.select(i.idx),i}return this.setPlaceholder(),this.config.pagination&&this.paginate(),!0}},v.prototype.remove=function(e){var t=[];if(Array.isArray(e)?s.each(e,function(n,i){s.isInt(i)?t.push(this.getOptionByIndex(i)):"string"==typeof e&&t.push(this.getOptionByValue(i))},this):s.isInt(e)?t.push(this.getOptionByIndex(e)):"string"==typeof e&&t.push(this.getOptionByValue(e)),t.length){var n;s.each(t,function(e,t){n=t.idx,this.el.remove(t),this.options.splice(n,1);var i=this.items[n].parentNode;i&&i.removeChild(this.items[n]),this.items.splice(n,1),s.each(this.options,function(e,t){t.idx=e,this.items[e].idx=e},this)},this),this.setPlaceholder(),this.config.pagination&&this.paginate()}},v.prototype.removeAll=function(){this.clear(!0),s.each(this.el.options,function(e,t){this.el.remove(t)},this),s.truncate(this.tree),this.items=[],this.options=[],this.data=[],this.navIndex=0,this.requiresPagination&&(this.requiresPagination=!1,this.pageIndex=1,this.pages=[]),this.setPlaceholder()},v.prototype.search=function(e){if(!this.navigating){e=e||this.input.value;var t=document.createDocumentFragment();if(this.removeMessage(),s.truncate(this.tree),e.length>1)if(s.each(this.options,function(n,o){var r=this.items[o.idx];s.includes(o.textContent.toLowerCase(),e.toLowerCase())&&!o.disabled?(i(r,t,this.customOption),s.removeClass(r,"excluded"),this.customOption||(r.innerHTML=g(e,o))):s.addClass(r,"excluded")},this),t.childElementCount){var n=this.items[this.navIndex],o=t.firstElementChild;s.removeClass(n,"active"),this.navIndex=o.idx,s.addClass(o,"active")}else this.config.taggable||this.setMessage("no results.");else a.call(this);this.tree.appendChild(t)}},v.prototype.toggle=function(){this.disabled||(this.opened?this.close():this.open())},v.prototype.open=function(){var e=this;return!!this.options.length&&(this.opened||this.emit("selectr.open"),this.opened=!0,this.mobileDevice||this.config.nativeDropdown?(s.addClass(this.container,"native-open"),void(this.config.data&&s.each(this.options,function(e,t){this.el.add(t)},this))):(s.addClass(this.container,"open"),a.call(this),this.invert(),this.tree.scrollTop=0,s.removeClass(this.container,"notice"),this.selected.setAttribute("aria-expanded",!0),this.tree.setAttribute("aria-hidden",!1),this.tree.setAttribute("aria-expanded",!0),void(this.config.searchable&&!this.config.taggable&&setTimeout(function(){e.input.focus(),e.input.tabIndex=0},10))))},v.prototype.close=function(){if(this.opened&&this.emit("selectr.close"),this.opened=!1,this.mobileDevice||this.config.nativeDropdown)return void s.removeClass(this.container,"native-open");var e=s.hasClass(this.container,"notice");this.config.searchable&&!e&&(this.input.blur(),this.input.tabIndex=-1,this.searching=!1),e&&(s.removeClass(this.container,"notice"),this.notice.textContent=""),s.removeClass(this.container,"open"),s.removeClass(this.container,"native-open"),this.selected.setAttribute("aria-expanded",!1),this.tree.setAttribute("aria-hidden",!0),this.tree.setAttribute("aria-expanded",!1),s.truncate(this.tree),m.call(this)},v.prototype.enable=function(){this.disabled=!1,this.el.disabled=!1,this.selected.tabIndex=this.originalIndex,this.el.multiple&&s.each(this.tags,function(e,t){t.lastElementChild.tabIndex=0}),s.removeClass(this.container,"selectr-disabled")},v.prototype.disable=function(e){e||(this.el.disabled=!0),this.selected.tabIndex=-1,this.el.multiple&&s.each(this.tags,function(e,t){t.lastElementChild.tabIndex=-1}),this.disabled=!0,s.addClass(this.container,"selectr-disabled")},v.prototype.reset=function(){this.disabled||(this.clear(),this.setSelected(!0),s.each(this.defaultSelected,function(e,t){this.select(t)},this),this.emit("selectr.reset"))},v.prototype.clear=function(e){if(this.el.multiple){if(this.selectedIndexes.length){var t=this.selectedIndexes.slice();s.each(t,function(e,t){this.deselect(t)},this)}}else this.selectedIndex>-1&&this.deselect(this.selectedIndex,e);this.emit("selectr.clear")},v.prototype.serialise=function(e){var t=[];return s.each(this.options,function(e,n){var i={value:n.value,text:n.textContent};n.selected&&(i.selected=!0),n.disabled&&(i.disabled=!0),t[e]=i}),e?JSON.stringify(t):t},v.prototype.serialize=function(e){return this.serialise(e)},v.prototype.setPlaceholder=function(e){e=e||this.config.placeholder||this.el.getAttribute("placeholder"),this.options.length||(e="No options available"),this.placeEl.innerHTML=e},v.prototype.paginate=function(){if(this.items.length){var e=this;return this.pages=this.items.map(function(t,n){return n%e.config.pagination==0?e.items.slice(n,n+e.config.pagination):null}).filter(function(e){return e}),this.pages}},v.prototype.setMessage=function(e,t){t&&this.close(),s.addClass(this.container,"notice"),this.notice.textContent=e},v.prototype.removeMessage=function(){s.removeClass(this.container,"notice"),this.notice.innerHTML=""},v.prototype.invert=function(){var e=s.rect(this.selected),t=this.tree.parentNode.offsetHeight,n=window.innerHeight;e.top+e.height+t>n?(s.addClass(this.container,"inverted"),this.isInverted=!0):(s.removeClass(this.container,"inverted"),this.isInverted=!1),this.optsRect=s.rect(this.tree)},v.prototype.getOptionByIndex=function(e){return this.options[e]},v.prototype.getOptionByValue=function(e){for(var t=!1,n=0,i=this.options.length;n/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",d),this.element.addEventListener("keydown",d,!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,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 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),d=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=h.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=h.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 d="hidden"==s.style.visibility;if(h.hide(),d)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 h.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";function i(){try{this.format()}catch(e){}}var o=n(22),r=n(19),s=n(6),a={};a.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 i=t.ace?t.ace:o;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===i&&(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&&i)try{n(26)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=s.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 d={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(d);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=i.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){s.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 x=document.createElement("span");x.className="jsoneditor-curserinfo-label",x.innerText="Col:";var w=document.createElement("span");w.className="jsoneditor-curserinfo-val",w.innerText="1",v.appendChild(x),v.appendChild(w),this.curserInfoElements.colVal=w,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none" +;var C=document.createElement("span");C.className="jsoneditor-curserinfo-count",C.innerText="0",C.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=C,v.appendChild(C),v.appendChild(_)}this.setSchema(this.options.schema,this.options.schemaRefs)},a._onChange=function(){if(!this.onChangeDisabled){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}if(this.options.onChangeText)try{this.options.onChangeText(this.getText())}catch(e){console.error("Error in onChangeText callback: ",e)}}},a._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},a._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._updateCursorInfo(),this._emitSelectionChange()},a._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},a._onBlur=function(e){this._updateCursorInfo(),this._emitSelectionChange()},a._updateCursorInfo=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.textarea)setTimeout(function(){var r=s.getInputSelection(o.textarea);r.startIndex!==r.endIndex&&(i=r.endIndex-r.startIndex),i&&o.cursorInfo&&o.cursorInfo.line===r.end.row&&o.cursorInfo.column===r.end.column?(t=r.start.row,n=r.start.column):(t=r.end.row,n=r.end.column),o.cursorInfo={line:t,column:n,count:i},o.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var r=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=r.row+1,n=r.column+1,i=a.length,o.cursorInfo={line:t,column:n,count:i},this.options.statusBar&&e()}},a._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},a.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},a.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},a.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},a.repair=function(){var e=this.getText(),t=s.sanitize(e);this.setText(t)},a.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},a.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},a.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},a.update=function(e){this.updateText(JSON.stringify(e,null,this.indentation))},a.get=function(){var e,t=this.getText();try{e=s.parse(t)}catch(n){t=s.sanitize(t),e=s.parse(t)}return e},a.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},a.setText=function(e){var t;t=!0===this.options.escapeUnicode?s.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor&&(this.onChangeDisabled=!0,this.aceEditor.setValue(t,-1),this.onChangeDisabled=!1),this.validate()},a.updateText=function(e){this.getText()!==e&&(this.onChangeDisabled=!0,this.setText(e),this.onChangeDisabled=!1)},a.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 s.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 r=o.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-r+"px",this.content.style.paddingBottom=r+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},a.getTextSelection=function(){var e={};if(this.textarea){var t=s.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var n=this.aceEditor.getSelection(),i=this.aceEditor.getSelectedText(),o=n.getRange(),r=n.getSelectionLead();return r.row===o.end.row&&r.column===o.end.column?e=o:(e.start=o.end,e.end=o.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:i}}},a.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=s.debounce(e,this.DEBOUNCE_INTERVAL))},a.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var n=s.getIndexForPosition(this.textarea,e.row,e.column),i=s.getIndexForPosition(this.textarea,t.row,t.column);if(n>-1&&i>-1)if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(n,i);else if(this.textarea.createTextRange){var o=this.textarea.createTextRange();o.collapse(!0),o.moveEnd("character",i),o.moveStart("character",n),o.select()}}else if(this.aceEditor){var o={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(o)}},e.exports=[{mode:"text",mixin:a,data:"text",load:i},{mode:"code",mixin:a,data:"text",load:i}]},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(23),n(25)}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 h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=r)break;if(h.isMultiLine())t=h.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,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,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,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(d,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 h(["ace"],n(24),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){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.css b/dist/jsoneditor.css index 365a3d0..43d6201 100644 --- a/dist/jsoneditor.css +++ b/dist/jsoneditor.css @@ -1059,6 +1059,13 @@ div.jsoneditor-menu > button.jsoneditor-transform { background-position: -144px -96px; } +div.jsoneditor.jsoneditor-mode-view > div.jsoneditor-menu > button.jsoneditor-sort, +div.jsoneditor.jsoneditor-mode-form > div.jsoneditor-menu > button.jsoneditor-sort, +div.jsoneditor.jsoneditor-mode-view > div.jsoneditor-menu > button.jsoneditor-transform, +div.jsoneditor.jsoneditor-mode-form > div.jsoneditor-menu > button.jsoneditor-transform { + display: none; +} + div.jsoneditor-menu > button.jsoneditor-undo { background-position: -24px -96px; } @@ -1136,6 +1143,7 @@ table.jsoneditor-search div.jsoneditor-results { color: white; padding-right: 5px; line-height: 24px; + padding-top: 2px; } table.jsoneditor-search { diff --git a/dist/jsoneditor.js b/dist/jsoneditor.js index c249a76..3a1daa0 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.19.2 - * @date 2018-08-02 + * @version 5.20.0 + * @date 2018-08-10 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -95,7 +95,7 @@ return /******/ (function(modules) { // webpackBootstrap var treemode = __webpack_require__(51); var textmode = __webpack_require__(71); - var util = __webpack_require__(54); + var util = __webpack_require__(56); /** * @constructor JSONEditor @@ -105,7 +105,20 @@ return /******/ (function(modules) { // webpackBootstrap * 'tree' (default), 'view', * 'form', 'text', and 'code'. * {function} onChange Callback method, triggered - * on change of contents + * on change of contents. + * Does not pass the contents itself. + * See also `onChangeJSON` and + * `onChangeText`. + * {function} onChangeJSON Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as JSON. + * Only applicable for modes + * 'tree', 'view', and 'form'. + * {function} onChangeText Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as stringified JSON. * {function} onError Callback method, triggered * when an error occurs * {Boolean} search Enable search box. @@ -172,18 +185,19 @@ return /******/ (function(modules) { // webpackBootstrap delete options.editable; } + // warn if onChangeJSON is used when mode can be `text` or `code` + if (options.onChangeJSON) { + if (options.mode === 'text' || options.mode === 'code' || + (options.modes && (options.modes.indexOf('text') !== -1 || options.modes.indexOf('code') !== -1))) { + console.warn('Option "onChangeJSON" is not applicable to modes "text" and "code". ' + + 'Use "onChangeText" or "onChange" instead.'); + } + } + // validate options if (options) { - var VALID_OPTIONS = [ - 'ajv', 'schema', 'schemaRefs','templates', - 'ace', 'theme','autocomplete', - 'onChange', 'onEditable', 'onError', 'onModeChange', 'onSelectionChange', 'onTextSelectionChange', - 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', - 'sortObjectKeys', 'navigationBar', 'statusBar', 'languages', 'language' - ]; - Object.keys(options).forEach(function (option) { - if (VALID_OPTIONS.indexOf(option) === -1) { + if (JSONEditor.VALID_OPTIONS.indexOf(option) === -1) { console.warn('Unknown option "' + option + '". This option will be ignored'); } }); @@ -215,6 +229,15 @@ return /******/ (function(modules) { // webpackBootstrap // debounce interval for JSON schema vaidation in milliseconds JSONEditor.prototype.DEBOUNCE_INTERVAL = 150; + JSONEditor.VALID_OPTIONS = [ + 'ajv', 'schema', 'schemaRefs','templates', + 'ace', 'theme','autocomplete', + 'onChange', 'onChangeJSON', 'onChangeText', + 'onEditable', 'onError', 'onModeChange', 'onSelectionChange', 'onTextSelectionChange', + 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', + 'sortObjectKeys', 'navigationBar', 'statusBar', 'languages', 'language' + ]; + /** * Create the JSONEditor * @param {Element} container Container element @@ -294,6 +317,11 @@ return /******/ (function(modules) { // webpackBootstrap * 'text', and 'code'. */ JSONEditor.prototype.setMode = function (mode) { + // if the mode is the same as current mode (and it's not the first time), do nothing. + if (mode === this.options.mode && this.create) { + return; + } + var container = this.container; var options = util.extend({}, this.options); var oldMode = options.mode; @@ -8061,12 +8089,12 @@ return /******/ (function(modules) { // webpackBootstrap var Highlighter = __webpack_require__(52); var History = __webpack_require__(53); - var SearchBox = __webpack_require__(56); - var ContextMenu = __webpack_require__(57); + var SearchBox = __webpack_require__(54); + var ContextMenu = __webpack_require__(55); var TreePath = __webpack_require__(59); var Node = __webpack_require__(60); var ModeSwitcher = __webpack_require__(69); - var util = __webpack_require__(54); + var util = __webpack_require__(56); var autocomplete = __webpack_require__(70); var showSortModal = __webpack_require__(65); var showTransformModal = __webpack_require__(67); @@ -8091,7 +8119,18 @@ return /******/ (function(modules) { // webpackBootstrap * {Boolean} history Enable history (undo/redo). * True by default * {function} onChange Callback method, triggered - * on change of contents + * on change of contents. + * Does not pass the changed contents. + * {function} onChangeJSON Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as JSON. + * Only applicable for modes + * 'tree', 'view', and 'form'. + * {function} onChangeText Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as stringified JSON. * {String} name Field name for the root node. * {boolean} escapeUnicode If true, unicode * characters are escaped. @@ -8208,19 +8247,12 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Set JSON object in editor - * @param {Object | undefined} json JSON data - * @param {String} [name] Optional field name for the root node. - * Can also be set using setName(name). + * Set new JSON object in editor. + * Resets the state of the editor (expanded nodes, search, selection). + * + * @param {*} json */ - treemode.set = function (json, name) { - // adjust field name for root node - if (name) { - // TODO: deprecated since version 2.2.0. Cleanup some day. - console.warn('Second parameter "name" is deprecated. Use setName(name) instead.'); - this.options.name = name; - } - + treemode.set = function (json) { // verify if json is valid JSON, ignore when a function if (json instanceof Function || (json === undefined)) { this.clear(); @@ -8257,6 +8289,51 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Update JSON object in editor. + * Maintains the state of the editor (expanded nodes, search, selection). + * + * @param {*} json + */ + treemode.update = function (json) { + // don't update if there are no changes + if (this.node.deepEqual(json)) { + return; + } + + var selection = this.getSelection(); + + // apply the changed json + this.onChangeDisabled = true; // don't fire an onChange event + this.node.update(json); + this.onChangeDisabled = false; + + // validate JSON schema + this.validate(); + + // update search result if any + if (this.searchBox && !this.searchBox.isEmpty()) { + this.searchBox.forceSearch(); + } + + // update selection if any + if (selection && selection.start && selection.end) { + // only keep/update the selection if both start and end node still exists, + // else we clear the selection + var startNode = this.node.findNodeByPath(selection.start.path); + var endNode = this.node.findNodeByPath(selection.end.path); + if (startNode && endNode) { + this.setSelection(selection.start, selection.end); + } + else { + this.setSelection({}, {}); // clear selection + } + } + else { + this.setSelection({}, {}); // clear selection + } + }; + /** * Get JSON object from editor * @return {Object | undefined} json @@ -8287,7 +8364,8 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Set the text contents of the editor + * Set the text contents of the editor. + * Resets the state of the editor (expanded nodes, search, selection). * @param {String} jsonText */ treemode.setText = function(jsonText) { @@ -8303,6 +8381,24 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Update the text contents of the editor. + * Maintains the state of the editor (expanded nodes, search, selection). + * @param {String} jsonText + */ + treemode.updateText = function(jsonText) { + try { + this.update(util.parse(jsonText)); // this can throw an error + } + catch (err) { + // try to sanitize json, replace JavaScript notation with JSON notation + var sanitizedJsonText = util.sanitize(jsonText); + + // try to parse again + this.update(util.parse(sanitizedJsonText)); // this can throw an error + } + }; + /** * Set a field name for the root node. * @param {String | undefined} name @@ -8354,8 +8450,7 @@ return /******/ (function(modules) { // webpackBootstrap */ treemode.clear = function () { if (this.node) { - this.node.collapse(); - this.tbody.removeChild(this.node.getDom()); + this.node.hide(); delete this.node; } @@ -8456,6 +8551,10 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ treemode._onChange = function () { + if (this.onChangeDisabled) { + return; + } + // validate JSON schema (if configured) this._debouncedValidate(); @@ -8468,6 +8567,26 @@ return /******/ (function(modules) { // webpackBootstrap console.error('Error in onChange callback: ', err); } } + + // trigger the onChangeJSON callback + if (this.options.onChangeJSON) { + try { + this.options.onChangeJSON(this.get()); + } + catch (err) { + console.error('Error in onChangeJSON callback: ', err); + } + } + + // trigger the onChangeText callback + if (this.options.onChangeText) { + try { + this.options.onChangeText(this.getText()); + } + catch (err) { + console.error('Error in onChangeText callback: ', err); + } + } }; /** @@ -8631,15 +8750,30 @@ return /******/ (function(modules) { // webpackBootstrap // TODO: animated scroll this.scrollableContent.scrollTop = selection.scrollTop; } - if (selection.nodes) { + if (selection.paths) { // multi-select - this.select(selection.nodes); + var me = this; + var nodes = selection.paths.map(function (path) { + return me.node.findNodeByInternalPath(path); + }); + + this.select(nodes); } - if (selection.range) { - util.setSelectionOffset(selection.range); - } - if (selection.dom) { - selection.dom.focus(); + else { + // find the actual DOM element where to apply the focus + var node = selection.path + ? this.node.findNodeByInternalPath(selection.path) + : null; + var container = (node && selection.domName) + ? node.dom[selection.domName] + : null; + if (selection.range && container) { + var range = Object.assign({}, selection.range, { container: container }); + util.setSelectionOffset(range); + } + else if (node) { // just a fallback + node.focus(); + } } }; @@ -8653,15 +8787,40 @@ return /******/ (function(modules) { // webpackBootstrap * {Number} scrollTop Scroll position */ treemode.getDomSelection = function () { + // find the node and field name of the current target, + // so we can store the current selection in a serializable + // way (internal node path and domName) + var node = Node.getNodeFromTarget(this.focusTarget); + var focusTarget = this.focusTarget; + var domName = node + ? Object.keys(node.dom).find(function (domName) { + return node.dom[domName] === focusTarget; + }) + : null; + var range = util.getSelectionOffset(); if (range && range.container.nodeName !== 'DIV') { // filter on (editable) divs) range = null; } + if (range && range.container !== focusTarget) { + range = null; + } + if (range) { + // we cannot rely on the current instance of the container, + // we need to store the internal node path and field and + // find the actual DOM field when applying the selection + delete range.container; + } return { - dom: this.focusTarget, + path: node ? node.getInternalPath() : null, + domName: domName, range: range, - nodes: this.multiselection.nodes.slice(0), + paths: this.multiselection.length > 0 + ? this.multiselection.nodes.map(function (node) { + return node.getInternalPath(); + }) + : null, scrollTop: this.scrollableContent ? this.scrollableContent.scrollTop : 0 }; }; @@ -9009,9 +9168,9 @@ return /******/ (function(modules) { // webpackBootstrap } function getName(node) { - return node.field !== undefined - ? node._escapeHTML(node.field) - : (isNaN(node.index) ? node.type : node.index); + return node.parent + ? ((node.parent.type === 'array') ? node.index : node.field) + : node.type; } }; @@ -9508,7 +9667,7 @@ return /******/ (function(modules) { // webpackBootstrap * For clear the selection do not send any parameter * If the nodes are not from the same level the first common parent will be selected * @param {{path: Array.}} start object contains the path for selection start - * @param {{path: Array.}=} end object contains the path for selection end + * @param {{path: Array.}} end object contains the path for selection end */ treemode.setSelection = function (start, end) { // check for old usage @@ -9517,7 +9676,7 @@ return /******/ (function(modules) { // webpackBootstrap this.setDomSelection(start); } - var nodes = this._getNodeIntsncesByRange(start, end); + var nodes = this._getNodeInstancesByRange(start, end); nodes.forEach(function(node) { node.expandTo(); @@ -9532,7 +9691,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Array.} Node intances on the given range * @private */ - treemode._getNodeIntsncesByRange = function (start, end) { + treemode._getNodeInstancesByRange = function (start, end) { var startNode, endNode; if (start && start.path) { @@ -9573,7 +9732,7 @@ return /******/ (function(modules) { // webpackBootstrap }; treemode.getNodesByRange = function (start, end) { - var nodes = this._getNodeIntsncesByRange(start, end); + var nodes = this._getNodeInstancesByRange(start, end); var serializableNodes = []; nodes.forEach(function (node){ @@ -9581,7 +9740,7 @@ return /******/ (function(modules) { // webpackBootstrap }); return serializableNodes; - } + }; // define modes module.exports = [ @@ -9697,12 +9856,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 53 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { 'use strict'; - var util = __webpack_require__(54); - /** * @constructor History * Store action history, enables undo and redo @@ -9715,122 +9872,165 @@ return /******/ (function(modules) { // webpackBootstrap this.clear(); + // helper function to find a Node from a path + function findNode(path) { + return editor.node.findNodeByInternalPath(path) + } + // map with all supported actions this.actions = { 'editField': { 'undo': function (params) { - params.node.updateField(params.oldValue); + var parentNode = findNode(params.parentPath); + var node = parentNode.childs[params.index]; + node.updateField(params.oldValue); }, 'redo': function (params) { - params.node.updateField(params.newValue); + var parentNode = findNode(params.parentPath); + var node = parentNode.childs[params.index]; + node.updateField(params.newValue); } }, 'editValue': { 'undo': function (params) { - params.node.updateValue(params.oldValue); + findNode(params.path).updateValue(params.oldValue); }, 'redo': function (params) { - params.node.updateValue(params.newValue); + findNode(params.path).updateValue(params.newValue); } }, 'changeType': { 'undo': function (params) { - params.node.changeType(params.oldType); + findNode(params.path).changeType(params.oldType); }, 'redo': function (params) { - params.node.changeType(params.newType); + findNode(params.path).changeType(params.newType); } }, 'appendNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.paths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); - }, + }, 'redo': function (params) { + var parentNode = findNode(params.parentPath); params.nodes.forEach(function (node) { - params.parent.appendChild(node); + parentNode.appendChild(node); }); } }, 'insertBeforeNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.paths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); }, 'redo': function (params) { + var parentNode = findNode(params.parentPath); + var beforeNode = findNode(params.beforePath); params.nodes.forEach(function (node) { - params.parent.insertBefore(node, params.beforeNode); + parentNode.insertBefore(node, beforeNode); }); } }, 'insertAfterNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.paths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); }, 'redo': function (params) { - var afterNode = params.afterNode; + var parentNode = findNode(params.parentPath); + var afterNode = findNode(params.afterPath); params.nodes.forEach(function (node) { - params.parent.insertAfter(params.node, afterNode); + parentNode.insertAfter(node, afterNode); afterNode = node; }); } }, 'removeNodes': { 'undo': function (params) { - var parent = params.parent; - var beforeNode = parent.childs[params.index] || parent.append; + var parentNode = findNode(params.parentPath); + var beforeNode = parentNode.childs[params.index] || parentNode.append; params.nodes.forEach(function (node) { - parent.insertBefore(node, beforeNode); + parentNode.insertBefore(node, beforeNode); }); }, 'redo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.paths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); } }, 'duplicateNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.parent.removeChild(node); + var parentNode = findNode(params.parentPath); + params.clonePaths.map(findNode).forEach(function (node) { + parentNode.removeChild(node); }); }, 'redo': function (params) { - var afterNode = params.afterNode; - params.nodes.forEach(function (node) { - params.parent.insertAfter(node, afterNode); - afterNode = node; + var parentNode = findNode(params.parentPath); + var afterNode = findNode(params.afterPath); + var nodes = params.paths.map(findNode); + nodes.forEach(function (node) { + var clone = node.clone(); + parentNode.insertAfter(clone, afterNode); + afterNode = clone; }); } }, 'moveNodes': { 'undo': function (params) { - params.nodes.forEach(function (node) { - params.oldBeforeNode.parent.moveBefore(node, params.oldBeforeNode); + var oldParentNode = findNode(params.oldParentPath); + var newParentNode = findNode(params.newParentPath); + var oldBeforeNode = oldParentNode.childs[params.oldIndex] || oldParentNode.append; + + // first copy the nodes, then move them + var nodes = newParentNode.childs.slice(params.newIndex, params.newIndex + params.count); + + nodes.forEach(function (node, index) { + node.field = params.fieldNames[index]; + oldParentNode.moveBefore(node, oldBeforeNode); }); + + // This is a hack to work around an issue that we don't know tha original + // path of the new parent after dragging, as the node is already moved at that time. + if (params.newParentPathRedo === null) { + params.newParentPathRedo = newParentNode.getInternalPath(); + } }, 'redo': function (params) { - params.nodes.forEach(function (node) { - params.newBeforeNode.parent.moveBefore(node, params.newBeforeNode); + var oldParentNode = findNode(params.oldParentPathRedo); + var newParentNode = findNode(params.newParentPathRedo); + var newBeforeNode = newParentNode.childs[params.newIndexRedo] || newParentNode.append; + + // first copy the nodes, then move them + var nodes = oldParentNode.childs.slice(params.oldIndexRedo, params.oldIndexRedo + params.count); + + nodes.forEach(function (node, index) { + node.field = params.fieldNames[index]; + newParentNode.moveBefore(node, newBeforeNode); }); } }, 'sort': { 'undo': function (params) { - var node = params.node; + var node = findNode(params.path); node.hideChilds(); node.childs = params.oldChilds; node.updateDom({updateIndexes: true}); node.showChilds(); }, 'redo': function (params) { - var node = params.node; + var node = findNode(params.path); node.hideChilds(); node.childs = params.newChilds; node.updateDom({updateIndexes: true}); @@ -9840,14 +10040,12 @@ return /******/ (function(modules) { // webpackBootstrap 'transform': { 'undo': function (params) { - var node = params.node; - node.setValue(params.oldValue); + findNode(params.path).setInternalValue(params.oldValue); // TODO: would be nice to restore the state of the node and childs }, 'redo': function (params) { - var node = params.node; - node.setValue(params.newValue); + findNode(params.path).setInternalValue(params.newValue); // TODO: would be nice to restore the state of the node and childs } @@ -9930,7 +10128,12 @@ return /******/ (function(modules) { // webpackBootstrap if (action && action.undo) { action.undo(obj.params); if (obj.params.oldSelection) { - this.editor.setDomSelection(obj.params.oldSelection); + try { + this.editor.setDomSelection(obj.params.oldSelection); + } + catch (err) { + console.error(err); + } } } else { @@ -9957,7 +10160,12 @@ return /******/ (function(modules) { // webpackBootstrap if (action && action.redo) { action.redo(obj.params); if (obj.params.newSelection) { - this.editor.setDomSelection(obj.params.newSelection); + try { + this.editor.setDomSelection(obj.params.newSelection); + } + catch (err) { + console.error(err); + } } } else { @@ -9985,11 +10193,864 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 54 */ +/***/ function(module, exports) { + + 'use strict'; + + /** + * @constructor SearchBox + * Create a search box in given HTML container + * @param {JSONEditor} editor The JSON Editor to attach to + * @param {Element} container HTML container element of where to + * create the search box + */ + function SearchBox (editor, container) { + var searchBox = this; + + this.editor = editor; + this.timeout = undefined; + this.delay = 200; // ms + this.lastText = undefined; + + this.dom = {}; + this.dom.container = container; + + var table = document.createElement('table'); + this.dom.table = table; + table.className = 'jsoneditor-search'; + container.appendChild(table); + var tbody = document.createElement('tbody'); + this.dom.tbody = tbody; + table.appendChild(tbody); + var tr = document.createElement('tr'); + tbody.appendChild(tr); + + var td = document.createElement('td'); + tr.appendChild(td); + var results = document.createElement('div'); + this.dom.results = results; + results.className = 'jsoneditor-results'; + td.appendChild(results); + + td = document.createElement('td'); + tr.appendChild(td); + var divInput = document.createElement('div'); + this.dom.input = divInput; + divInput.className = 'jsoneditor-frame'; + divInput.title = 'Search fields and values'; + td.appendChild(divInput); + + // table to contain the text input and search button + var tableInput = document.createElement('table'); + divInput.appendChild(tableInput); + var tbodySearch = document.createElement('tbody'); + tableInput.appendChild(tbodySearch); + tr = document.createElement('tr'); + tbodySearch.appendChild(tr); + + var refreshSearch = document.createElement('button'); + refreshSearch.type = 'button'; + refreshSearch.className = 'jsoneditor-refresh'; + td = document.createElement('td'); + td.appendChild(refreshSearch); + tr.appendChild(td); + + var search = document.createElement('input'); + // search.type = 'button'; + this.dom.search = search; + search.oninput = function (event) { + searchBox._onDelayedSearch(event); + }; + search.onchange = function (event) { // For IE 9 + searchBox._onSearch(); + }; + search.onkeydown = function (event) { + searchBox._onKeyDown(event); + }; + search.onkeyup = function (event) { + searchBox._onKeyUp(event); + }; + refreshSearch.onclick = function (event) { + search.select(); + }; + + // TODO: ESC in FF restores the last input, is a FF bug, https://bugzilla.mozilla.org/show_bug.cgi?id=598819 + td = document.createElement('td'); + td.appendChild(search); + tr.appendChild(td); + + var searchNext = document.createElement('button'); + searchNext.type = 'button'; + searchNext.title = 'Next result (Enter)'; + searchNext.className = 'jsoneditor-next'; + searchNext.onclick = function () { + searchBox.next(); + }; + td = document.createElement('td'); + td.appendChild(searchNext); + tr.appendChild(td); + + var searchPrevious = document.createElement('button'); + searchPrevious.type = 'button'; + searchPrevious.title = 'Previous result (Shift+Enter)'; + searchPrevious.className = 'jsoneditor-previous'; + searchPrevious.onclick = function () { + searchBox.previous(); + }; + td = document.createElement('td'); + td.appendChild(searchPrevious); + tr.appendChild(td); + } + + /** + * Go to the next search result + * @param {boolean} [focus] If true, focus will be set to the next result + * focus is false by default. + */ + SearchBox.prototype.next = function(focus) { + if (this.results != undefined) { + var index = (this.resultIndex != undefined) ? this.resultIndex + 1 : 0; + if (index > this.results.length - 1) { + index = 0; + } + this._setActiveResult(index, focus); + } + }; + + /** + * Go to the prevous search result + * @param {boolean} [focus] If true, focus will be set to the next result + * focus is false by default. + */ + SearchBox.prototype.previous = function(focus) { + if (this.results != undefined) { + var max = this.results.length - 1; + var index = (this.resultIndex != undefined) ? this.resultIndex - 1 : max; + if (index < 0) { + index = max; + } + this._setActiveResult(index, focus); + } + }; + + /** + * Set new value for the current active result + * @param {Number} index + * @param {boolean} [focus] If true, focus will be set to the next result. + * focus is false by default. + * @private + */ + SearchBox.prototype._setActiveResult = function(index, focus) { + // de-activate current active result + if (this.activeResult) { + var prevNode = this.activeResult.node; + var prevElem = this.activeResult.elem; + if (prevElem == 'field') { + delete prevNode.searchFieldActive; + } + else { + delete prevNode.searchValueActive; + } + prevNode.updateDom(); + } + + if (!this.results || !this.results[index]) { + // out of range, set to undefined + this.resultIndex = undefined; + this.activeResult = undefined; + return; + } + + this.resultIndex = index; + + // set new node active + var node = this.results[this.resultIndex].node; + var elem = this.results[this.resultIndex].elem; + if (elem == 'field') { + node.searchFieldActive = true; + } + else { + node.searchValueActive = true; + } + this.activeResult = this.results[this.resultIndex]; + node.updateDom(); + + // TODO: not so nice that the focus is only set after the animation is finished + node.scrollTo(function () { + if (focus) { + node.focus(elem); + } + }); + }; + + /** + * Cancel any running onDelayedSearch. + * @private + */ + SearchBox.prototype._clearDelay = function() { + if (this.timeout != undefined) { + clearTimeout(this.timeout); + delete this.timeout; + } + }; + + /** + * Start a timer to execute a search after a short delay. + * Used for reducing the number of searches while typing. + * @param {Event} event + * @private + */ + SearchBox.prototype._onDelayedSearch = function (event) { + // execute the search after a short delay (reduces the number of + // search actions while typing in the search text box) + this._clearDelay(); + var searchBox = this; + this.timeout = setTimeout(function (event) { + searchBox._onSearch(); + }, + this.delay); + }; + + /** + * Handle onSearch event + * @param {boolean} [forceSearch] If true, search will be executed again even + * when the search text is not changed. + * Default is false. + * @private + */ + SearchBox.prototype._onSearch = function (forceSearch) { + this._clearDelay(); + + var value = this.dom.search.value; + var text = (value.length > 0) ? value : undefined; + if (text !== this.lastText || forceSearch) { + // only search again when changed + this.lastText = text; + this.results = this.editor.search(text); + var MAX_SEARCH_RESULTS = this.results[0] + ? this.results[0].node.MAX_SEARCH_RESULTS + : Infinity; + + // try to maintain the current active result if this is still part of the new search results + var activeResultIndex = 0; + if (this.activeResult) { + for (var i = 0; i < this.results.length; i++) { + if (this.results[i].node === this.activeResult.node) { + activeResultIndex = i; + break; + } + } + } + + this._setActiveResult(activeResultIndex, false); + + // display search results + if (text !== undefined) { + var resultCount = this.results.length; + if (resultCount === 0) { + this.dom.results.innerHTML = 'no results'; + } + else if (resultCount === 1) { + this.dom.results.innerHTML = '1 result'; + } + else if (resultCount > MAX_SEARCH_RESULTS) { + this.dom.results.innerHTML = MAX_SEARCH_RESULTS + '+ results'; + } + else { + this.dom.results.innerHTML = resultCount + ' results'; + } + } + else { + this.dom.results.innerHTML = ''; + } + } + }; + + /** + * Handle onKeyDown event in the input box + * @param {Event} event + * @private + */ + SearchBox.prototype._onKeyDown = function (event) { + var keynum = event.which; + if (keynum == 27) { // ESC + this.dom.search.value = ''; // clear search + this._onSearch(); + event.preventDefault(); + event.stopPropagation(); + } + else if (keynum == 13) { // Enter + if (event.ctrlKey) { + // force to search again + this._onSearch(true); + } + else if (event.shiftKey) { + // move to the previous search result + this.previous(); + } + else { + // move to the next search result + this.next(); + } + event.preventDefault(); + event.stopPropagation(); + } + }; + + /** + * Handle onKeyUp event in the input box + * @param {Event} event + * @private + */ + SearchBox.prototype._onKeyUp = function (event) { + var keynum = event.keyCode; + if (keynum != 27 && keynum != 13) { // !show and !Enter + this._onDelayedSearch(event); // For IE 9 + } + }; + + /** + * Clear the search results + */ + SearchBox.prototype.clear = function () { + this.dom.search.value = ''; + this._onSearch(); + }; + + /** + * Refresh searchResults if there is a search value + */ + SearchBox.prototype.forceSearch = function () { + this._onSearch(true); + }; + + /** + * Test whether the search box value is empty + * @returns {boolean} Returns true when empty. + */ + SearchBox.prototype.isEmpty = function () { + return this.dom.search.value === ''; + }; + + /** + * Destroy the search box + */ + SearchBox.prototype.destroy = function () { + this.editor = null; + this.dom.container.removeChild(this.dom.table); + this.dom = null; + + this.results = null; + this.activeResult = null; + + this._clearDelay(); + + }; + + module.exports = SearchBox; + + +/***/ }, +/* 55 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var jsonlint = __webpack_require__(55); + var util = __webpack_require__(56); + var translate = __webpack_require__(58).translate; + + /** + * Node.getRootNode shim + * @param {Node} node node to check + * @return {Node} node's rootNode or `window` if there is ShadowDOM is not supported. + */ + function getRootNode(node){ + return node.getRootNode && node.getRootNode() || window; + } + + /** + * A context menu + * @param {Object[]} items Array containing the menu structure + * TODO: describe structure + * @param {Object} [options] Object with options. Available options: + * {function} close Callback called when the + * context menu is being closed. + * @constructor + */ + function ContextMenu (items, options) { + this.dom = {}; + + var me = this; + var dom = this.dom; + this.anchor = undefined; + this.items = items; + this.eventListeners = {}; + this.selection = undefined; // holds the selection before the menu was opened + this.onClose = options ? options.close : undefined; + + // create root element + var root = document.createElement('div'); + root.className = 'jsoneditor-contextmenu-root'; + dom.root = root; + + // create a container element + var menu = document.createElement('div'); + menu.className = 'jsoneditor-contextmenu'; + dom.menu = menu; + root.appendChild(menu); + + // create a list to hold the menu items + var list = document.createElement('ul'); + list.className = 'jsoneditor-menu'; + menu.appendChild(list); + dom.list = list; + dom.items = []; // list with all buttons + + // create a (non-visible) button to set the focus to the menu + var focusButton = document.createElement('button'); + focusButton.type = 'button'; + dom.focusButton = focusButton; + var li = document.createElement('li'); + li.style.overflow = 'hidden'; + li.style.height = '0'; + li.appendChild(focusButton); + list.appendChild(li); + + function createMenuItems (list, domItems, items) { + items.forEach(function (item) { + if (item.type == 'separator') { + // create a separator + var separator = document.createElement('div'); + separator.className = 'jsoneditor-separator'; + li = document.createElement('li'); + li.appendChild(separator); + list.appendChild(li); + } + else { + var domItem = {}; + + // create a menu item + var li = document.createElement('li'); + list.appendChild(li); + + // create a button in the menu item + var button = document.createElement('button'); + button.type = 'button'; + button.className = item.className; + domItem.button = button; + if (item.title) { + button.title = item.title; + } + if (item.click) { + button.onclick = function (event) { + event.preventDefault(); + me.hide(); + item.click(); + }; + } + li.appendChild(button); + + // create the contents of the button + if (item.submenu) { + // add the icon to the button + var divIcon = document.createElement('div'); + divIcon.className = 'jsoneditor-icon'; + button.appendChild(divIcon); + var divText = document.createElement('div'); + divText.className = 'jsoneditor-text' + + (item.click ? '' : ' jsoneditor-right-margin'); + divText.appendChild(document.createTextNode(item.text)); + button.appendChild(divText); + + var buttonSubmenu; + if (item.click) { + // submenu and a button with a click handler + button.className += ' jsoneditor-default'; + + var buttonExpand = document.createElement('button'); + buttonExpand.type = 'button'; + domItem.buttonExpand = buttonExpand; + buttonExpand.className = 'jsoneditor-expand'; + buttonExpand.innerHTML = '
    '; + li.appendChild(buttonExpand); + if (item.submenuTitle) { + buttonExpand.title = item.submenuTitle; + } + + buttonSubmenu = buttonExpand; + } + else { + // submenu and a button without a click handler + var divExpand = document.createElement('div'); + divExpand.className = 'jsoneditor-expand'; + button.appendChild(divExpand); + + buttonSubmenu = button; + } + + // attach a handler to expand/collapse the submenu + buttonSubmenu.onclick = function (event) { + event.preventDefault(); + me._onExpandItem(domItem); + buttonSubmenu.focus(); + }; + + // create the submenu + var domSubItems = []; + domItem.subItems = domSubItems; + var ul = document.createElement('ul'); + domItem.ul = ul; + ul.className = 'jsoneditor-menu'; + ul.style.height = '0'; + li.appendChild(ul); + createMenuItems(ul, domSubItems, item.submenu); + } + else { + // no submenu, just a button with clickhandler + button.innerHTML = '
    ' + + '
    ' + translate(item.text) + '
    '; + } + + domItems.push(domItem); + } + }); + } + createMenuItems(list, this.dom.items, items); + + // TODO: when the editor is small, show the submenu on the right instead of inline? + + // calculate the max height of the menu with one submenu expanded + this.maxHeight = 0; // height in pixels + items.forEach(function (item) { + var height = (items.length + (item.submenu ? item.submenu.length : 0)) * 24; + me.maxHeight = Math.max(me.maxHeight, height); + }); + } + + /** + * Get the currently visible buttons + * @return {Array.} buttons + * @private + */ + ContextMenu.prototype._getVisibleButtons = function () { + var buttons = []; + var me = this; + this.dom.items.forEach(function (item) { + buttons.push(item.button); + if (item.buttonExpand) { + buttons.push(item.buttonExpand); + } + if (item.subItems && item == me.expandedItem) { + item.subItems.forEach(function (subItem) { + buttons.push(subItem.button); + if (subItem.buttonExpand) { + buttons.push(subItem.buttonExpand); + } + // TODO: change to fully recursive method + }); + } + }); + + return buttons; + }; + + // currently displayed context menu, a singleton. We may only have one visible context menu + ContextMenu.visibleMenu = undefined; + + /** + * Attach the menu to an anchor + * @param {HTMLElement} anchor Anchor where the menu will be attached + * as sibling. + * @param {HTMLElement} [contentWindow] The DIV with with the (scrollable) contents + */ + ContextMenu.prototype.show = function (anchor, contentWindow) { + this.hide(); + + // determine whether to display the menu below or above the anchor + var showBelow = true; + var parent = anchor.parentNode; + var anchorRect = anchor.getBoundingClientRect(); + var parentRect = parent.getBoundingClientRect() + + if (contentWindow) { + + var contentRect = contentWindow.getBoundingClientRect(); + + if (anchorRect.bottom + this.maxHeight < contentRect.bottom) { + // fits below -> show below + } + else if (anchorRect.top - this.maxHeight > contentRect.top) { + // fits above -> show above + showBelow = false; + } + else { + // doesn't fit above nor below -> show below + } + } + + var leftGap = anchorRect.left - parentRect.left; + var topGap = anchorRect.top - parentRect.top; + + // position the menu + if (showBelow) { + // display the menu below the anchor + var anchorHeight = anchor.offsetHeight; + this.dom.menu.style.left = leftGap + 'px'; + this.dom.menu.style.top = topGap + anchorHeight + 'px'; + this.dom.menu.style.bottom = ''; + } + else { + // display the menu above the anchor + this.dom.menu.style.left = leftGap + 'px'; + this.dom.menu.style.top = topGap + 'px'; + this.dom.menu.style.bottom = '0px'; + } + + // find the root node of the page (window, or a shadow dom root element) + this.rootNode = getRootNode(anchor); + + // attach the menu to the parent of the anchor + parent.insertBefore(this.dom.root, parent.firstChild); + + // create and attach event listeners + var me = this; + var list = this.dom.list; + this.eventListeners.mousedown = util.addEventListener(this.rootNode, 'mousedown', function (event) { + // hide menu on click outside of the menu + var target = event.target; + if ((target != list) && !me._isChildOf(target, list)) { + me.hide(); + event.stopPropagation(); + event.preventDefault(); + } + }); + this.eventListeners.keydown = util.addEventListener(this.rootNode, 'keydown', function (event) { + me._onKeyDown(event); + }); + + // move focus to the first button in the context menu + this.selection = util.getSelection(); + this.anchor = anchor; + setTimeout(function () { + me.dom.focusButton.focus(); + }, 0); + + if (ContextMenu.visibleMenu) { + ContextMenu.visibleMenu.hide(); + } + ContextMenu.visibleMenu = this; + }; + + /** + * Hide the context menu if visible + */ + ContextMenu.prototype.hide = function () { + // remove the menu from the DOM + if (this.dom.root.parentNode) { + this.dom.root.parentNode.removeChild(this.dom.root); + if (this.onClose) { + this.onClose(); + } + } + + // remove all event listeners + // all event listeners are supposed to be attached to document. + for (var name in this.eventListeners) { + if (this.eventListeners.hasOwnProperty(name)) { + var fn = this.eventListeners[name]; + if (fn) { + util.removeEventListener(this.rootNode, name, fn); + } + delete this.eventListeners[name]; + } + } + + if (ContextMenu.visibleMenu == this) { + ContextMenu.visibleMenu = undefined; + } + }; + + /** + * Expand a submenu + * Any currently expanded submenu will be hided. + * @param {Object} domItem + * @private + */ + ContextMenu.prototype._onExpandItem = function (domItem) { + var me = this; + var alreadyVisible = (domItem == this.expandedItem); + + // hide the currently visible submenu + var expandedItem = this.expandedItem; + if (expandedItem) { + //var ul = expandedItem.ul; + expandedItem.ul.style.height = '0'; + expandedItem.ul.style.padding = ''; + setTimeout(function () { + if (me.expandedItem != expandedItem) { + expandedItem.ul.style.display = ''; + util.removeClassName(expandedItem.ul.parentNode, 'jsoneditor-selected'); + } + }, 300); // timeout duration must match the css transition duration + this.expandedItem = undefined; + } + + if (!alreadyVisible) { + var ul = domItem.ul; + ul.style.display = 'block'; + var height = ul.clientHeight; // force a reflow in Firefox + setTimeout(function () { + if (me.expandedItem == domItem) { + var childsHeight = 0; + for (var i = 0; i < ul.childNodes.length; i++) { + childsHeight += ul.childNodes[i].clientHeight; + } + ul.style.height = childsHeight + 'px'; + ul.style.padding = '5px 10px'; + } + }, 0); + util.addClassName(ul.parentNode, 'jsoneditor-selected'); + this.expandedItem = domItem; + } + }; + + /** + * Handle onkeydown event + * @param {Event} event + * @private + */ + ContextMenu.prototype._onKeyDown = function (event) { + var target = event.target; + var keynum = event.which; + var handled = false; + var buttons, targetIndex, prevButton, nextButton; + + if (keynum == 27) { // ESC + // hide the menu on ESC key + + // restore previous selection and focus + if (this.selection) { + util.setSelection(this.selection); + } + if (this.anchor) { + this.anchor.focus(); + } + + this.hide(); + + handled = true; + } + else if (keynum == 9) { // Tab + if (!event.shiftKey) { // Tab + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + if (targetIndex == buttons.length - 1) { + // move to first button + buttons[0].focus(); + handled = true; + } + } + else { // Shift+Tab + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + if (targetIndex == 0) { + // move to last button + buttons[buttons.length - 1].focus(); + handled = true; + } + } + } + else if (keynum == 37) { // Arrow Left + if (target.className == 'jsoneditor-expand') { + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + prevButton = buttons[targetIndex - 1]; + if (prevButton) { + prevButton.focus(); + } + } + handled = true; + } + else if (keynum == 38) { // Arrow Up + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + prevButton = buttons[targetIndex - 1]; + if (prevButton && prevButton.className == 'jsoneditor-expand') { + // skip expand button + prevButton = buttons[targetIndex - 2]; + } + if (!prevButton) { + // move to last button + prevButton = buttons[buttons.length - 1]; + } + if (prevButton) { + prevButton.focus(); + } + handled = true; + } + else if (keynum == 39) { // Arrow Right + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + nextButton = buttons[targetIndex + 1]; + if (nextButton && nextButton.className == 'jsoneditor-expand') { + nextButton.focus(); + } + handled = true; + } + else if (keynum == 40) { // Arrow Down + buttons = this._getVisibleButtons(); + targetIndex = buttons.indexOf(target); + nextButton = buttons[targetIndex + 1]; + if (nextButton && nextButton.className == 'jsoneditor-expand') { + // skip expand button + nextButton = buttons[targetIndex + 2]; + } + if (!nextButton) { + // move to first button + nextButton = buttons[0]; + } + if (nextButton) { + nextButton.focus(); + handled = true; + } + handled = true; + } + // TODO: arrow left and right + + if (handled) { + event.stopPropagation(); + event.preventDefault(); + } + }; + + /** + * Test if an element is a child of a parent element. + * @param {Element} child + * @param {Element} parent + * @return {boolean} isChild + */ + ContextMenu.prototype._isChildOf = function (child, parent) { + var e = child.parentNode; + while (e) { + if (e == parent) { + return true; + } + e = e.parentNode; + } + + return false; + }; + + module.exports = ContextMenu; + + +/***/ }, +/* 56 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var jsonlint = __webpack_require__(57); /** * Parse JSON using the parser built-in in the browser. @@ -10941,7 +12002,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 55 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { /* Jison generated parser */ @@ -11363,833 +12424,6 @@ return /******/ (function(modules) { // webpackBootstrap exports.parse = jsonlint.parse.bind(jsonlint); } -/***/ }, -/* 56 */ -/***/ function(module, exports) { - - 'use strict'; - - /** - * @constructor SearchBox - * Create a search box in given HTML container - * @param {JSONEditor} editor The JSON Editor to attach to - * @param {Element} container HTML container element of where to - * create the search box - */ - function SearchBox (editor, container) { - var searchBox = this; - - this.editor = editor; - this.timeout = undefined; - this.delay = 200; // ms - this.lastText = undefined; - - this.dom = {}; - this.dom.container = container; - - var table = document.createElement('table'); - this.dom.table = table; - table.className = 'jsoneditor-search'; - container.appendChild(table); - var tbody = document.createElement('tbody'); - this.dom.tbody = tbody; - table.appendChild(tbody); - var tr = document.createElement('tr'); - tbody.appendChild(tr); - - var td = document.createElement('td'); - tr.appendChild(td); - var results = document.createElement('div'); - this.dom.results = results; - results.className = 'jsoneditor-results'; - td.appendChild(results); - - td = document.createElement('td'); - tr.appendChild(td); - var divInput = document.createElement('div'); - this.dom.input = divInput; - divInput.className = 'jsoneditor-frame'; - divInput.title = 'Search fields and values'; - td.appendChild(divInput); - - // table to contain the text input and search button - var tableInput = document.createElement('table'); - divInput.appendChild(tableInput); - var tbodySearch = document.createElement('tbody'); - tableInput.appendChild(tbodySearch); - tr = document.createElement('tr'); - tbodySearch.appendChild(tr); - - var refreshSearch = document.createElement('button'); - refreshSearch.type = 'button'; - refreshSearch.className = 'jsoneditor-refresh'; - td = document.createElement('td'); - td.appendChild(refreshSearch); - tr.appendChild(td); - - var search = document.createElement('input'); - // search.type = 'button'; - this.dom.search = search; - search.oninput = function (event) { - searchBox._onDelayedSearch(event); - }; - search.onchange = function (event) { // For IE 9 - searchBox._onSearch(); - }; - search.onkeydown = function (event) { - searchBox._onKeyDown(event); - }; - search.onkeyup = function (event) { - searchBox._onKeyUp(event); - }; - refreshSearch.onclick = function (event) { - search.select(); - }; - - // TODO: ESC in FF restores the last input, is a FF bug, https://bugzilla.mozilla.org/show_bug.cgi?id=598819 - td = document.createElement('td'); - td.appendChild(search); - tr.appendChild(td); - - var searchNext = document.createElement('button'); - searchNext.type = 'button'; - searchNext.title = 'Next result (Enter)'; - searchNext.className = 'jsoneditor-next'; - searchNext.onclick = function () { - searchBox.next(); - }; - td = document.createElement('td'); - td.appendChild(searchNext); - tr.appendChild(td); - - var searchPrevious = document.createElement('button'); - searchPrevious.type = 'button'; - searchPrevious.title = 'Previous result (Shift+Enter)'; - searchPrevious.className = 'jsoneditor-previous'; - searchPrevious.onclick = function () { - searchBox.previous(); - }; - td = document.createElement('td'); - td.appendChild(searchPrevious); - tr.appendChild(td); - } - - /** - * Go to the next search result - * @param {boolean} [focus] If true, focus will be set to the next result - * focus is false by default. - */ - SearchBox.prototype.next = function(focus) { - if (this.results != undefined) { - var index = (this.resultIndex != undefined) ? this.resultIndex + 1 : 0; - if (index > this.results.length - 1) { - index = 0; - } - this._setActiveResult(index, focus); - } - }; - - /** - * Go to the prevous search result - * @param {boolean} [focus] If true, focus will be set to the next result - * focus is false by default. - */ - SearchBox.prototype.previous = function(focus) { - if (this.results != undefined) { - var max = this.results.length - 1; - var index = (this.resultIndex != undefined) ? this.resultIndex - 1 : max; - if (index < 0) { - index = max; - } - this._setActiveResult(index, focus); - } - }; - - /** - * Set new value for the current active result - * @param {Number} index - * @param {boolean} [focus] If true, focus will be set to the next result. - * focus is false by default. - * @private - */ - SearchBox.prototype._setActiveResult = function(index, focus) { - // de-activate current active result - if (this.activeResult) { - var prevNode = this.activeResult.node; - var prevElem = this.activeResult.elem; - if (prevElem == 'field') { - delete prevNode.searchFieldActive; - } - else { - delete prevNode.searchValueActive; - } - prevNode.updateDom(); - } - - if (!this.results || !this.results[index]) { - // out of range, set to undefined - this.resultIndex = undefined; - this.activeResult = undefined; - return; - } - - this.resultIndex = index; - - // set new node active - var node = this.results[this.resultIndex].node; - var elem = this.results[this.resultIndex].elem; - if (elem == 'field') { - node.searchFieldActive = true; - } - else { - node.searchValueActive = true; - } - this.activeResult = this.results[this.resultIndex]; - node.updateDom(); - - // TODO: not so nice that the focus is only set after the animation is finished - node.scrollTo(function () { - if (focus) { - node.focus(elem); - } - }); - }; - - /** - * Cancel any running onDelayedSearch. - * @private - */ - SearchBox.prototype._clearDelay = function() { - if (this.timeout != undefined) { - clearTimeout(this.timeout); - delete this.timeout; - } - }; - - /** - * Start a timer to execute a search after a short delay. - * Used for reducing the number of searches while typing. - * @param {Event} event - * @private - */ - SearchBox.prototype._onDelayedSearch = function (event) { - // execute the search after a short delay (reduces the number of - // search actions while typing in the search text box) - this._clearDelay(); - var searchBox = this; - this.timeout = setTimeout(function (event) { - searchBox._onSearch(); - }, - this.delay); - }; - - /** - * Handle onSearch event - * @param {boolean} [forceSearch] If true, search will be executed again even - * when the search text is not changed. - * Default is false. - * @private - */ - SearchBox.prototype._onSearch = function (forceSearch) { - this._clearDelay(); - - var value = this.dom.search.value; - var text = (value.length > 0) ? value : undefined; - if (text !== this.lastText || forceSearch) { - // only search again when changed - this.lastText = text; - this.results = this.editor.search(text); - var MAX_SEARCH_RESULTS = this.results[0] - ? this.results[0].node.MAX_SEARCH_RESULTS - : Infinity; - - this._setActiveResult(0, false); - - // display search results - if (text !== undefined) { - var resultCount = this.results.length; - if (resultCount === 0) { - this.dom.results.innerHTML = 'no results'; - } - else if (resultCount === 1) { - this.dom.results.innerHTML = '1 result'; - } - else if (resultCount > MAX_SEARCH_RESULTS) { - this.dom.results.innerHTML = MAX_SEARCH_RESULTS + '+ results'; - } - else { - this.dom.results.innerHTML = resultCount + ' results'; - } - } - else { - this.dom.results.innerHTML = ''; - } - } - }; - - /** - * Handle onKeyDown event in the input box - * @param {Event} event - * @private - */ - SearchBox.prototype._onKeyDown = function (event) { - var keynum = event.which; - if (keynum == 27) { // ESC - this.dom.search.value = ''; // clear search - this._onSearch(); - event.preventDefault(); - event.stopPropagation(); - } - else if (keynum == 13) { // Enter - if (event.ctrlKey) { - // force to search again - this._onSearch(true); - } - else if (event.shiftKey) { - // move to the previous search result - this.previous(); - } - else { - // move to the next search result - this.next(); - } - event.preventDefault(); - event.stopPropagation(); - } - }; - - /** - * Handle onKeyUp event in the input box - * @param {Event} event - * @private - */ - SearchBox.prototype._onKeyUp = function (event) { - var keynum = event.keyCode; - if (keynum != 27 && keynum != 13) { // !show and !Enter - this._onDelayedSearch(event); // For IE 9 - } - }; - - /** - * Clear the search results - */ - SearchBox.prototype.clear = function () { - this.dom.search.value = ''; - this._onSearch(); - }; - - /** - * Destroy the search box - */ - SearchBox.prototype.destroy = function () { - this.editor = null; - this.dom.container.removeChild(this.dom.table); - this.dom = null; - - this.results = null; - this.activeResult = null; - - this._clearDelay(); - - }; - - module.exports = SearchBox; - - -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var util = __webpack_require__(54); - var translate = __webpack_require__(58).translate; - - /** - * Node.getRootNode shim - * @param {Node} node node to check - * @return {Node} node's rootNode or `window` if there is ShadowDOM is not supported. - */ - function getRootNode(node){ - return node.getRootNode && node.getRootNode() || window; - } - - /** - * A context menu - * @param {Object[]} items Array containing the menu structure - * TODO: describe structure - * @param {Object} [options] Object with options. Available options: - * {function} close Callback called when the - * context menu is being closed. - * @constructor - */ - function ContextMenu (items, options) { - this.dom = {}; - - var me = this; - var dom = this.dom; - this.anchor = undefined; - this.items = items; - this.eventListeners = {}; - this.selection = undefined; // holds the selection before the menu was opened - this.onClose = options ? options.close : undefined; - - // create root element - var root = document.createElement('div'); - root.className = 'jsoneditor-contextmenu-root'; - dom.root = root; - - // create a container element - var menu = document.createElement('div'); - menu.className = 'jsoneditor-contextmenu'; - dom.menu = menu; - root.appendChild(menu); - - // create a list to hold the menu items - var list = document.createElement('ul'); - list.className = 'jsoneditor-menu'; - menu.appendChild(list); - dom.list = list; - dom.items = []; // list with all buttons - - // create a (non-visible) button to set the focus to the menu - var focusButton = document.createElement('button'); - focusButton.type = 'button'; - dom.focusButton = focusButton; - var li = document.createElement('li'); - li.style.overflow = 'hidden'; - li.style.height = '0'; - li.appendChild(focusButton); - list.appendChild(li); - - function createMenuItems (list, domItems, items) { - items.forEach(function (item) { - if (item.type == 'separator') { - // create a separator - var separator = document.createElement('div'); - separator.className = 'jsoneditor-separator'; - li = document.createElement('li'); - li.appendChild(separator); - list.appendChild(li); - } - else { - var domItem = {}; - - // create a menu item - var li = document.createElement('li'); - list.appendChild(li); - - // create a button in the menu item - var button = document.createElement('button'); - button.type = 'button'; - button.className = item.className; - domItem.button = button; - if (item.title) { - button.title = item.title; - } - if (item.click) { - button.onclick = function (event) { - event.preventDefault(); - me.hide(); - item.click(); - }; - } - li.appendChild(button); - - // create the contents of the button - if (item.submenu) { - // add the icon to the button - var divIcon = document.createElement('div'); - divIcon.className = 'jsoneditor-icon'; - button.appendChild(divIcon); - var divText = document.createElement('div'); - divText.className = 'jsoneditor-text' + - (item.click ? '' : ' jsoneditor-right-margin'); - divText.appendChild(document.createTextNode(item.text)); - button.appendChild(divText); - - var buttonSubmenu; - if (item.click) { - // submenu and a button with a click handler - button.className += ' jsoneditor-default'; - - var buttonExpand = document.createElement('button'); - buttonExpand.type = 'button'; - domItem.buttonExpand = buttonExpand; - buttonExpand.className = 'jsoneditor-expand'; - buttonExpand.innerHTML = '
    '; - li.appendChild(buttonExpand); - if (item.submenuTitle) { - buttonExpand.title = item.submenuTitle; - } - - buttonSubmenu = buttonExpand; - } - else { - // submenu and a button without a click handler - var divExpand = document.createElement('div'); - divExpand.className = 'jsoneditor-expand'; - button.appendChild(divExpand); - - buttonSubmenu = button; - } - - // attach a handler to expand/collapse the submenu - buttonSubmenu.onclick = function (event) { - event.preventDefault(); - me._onExpandItem(domItem); - buttonSubmenu.focus(); - }; - - // create the submenu - var domSubItems = []; - domItem.subItems = domSubItems; - var ul = document.createElement('ul'); - domItem.ul = ul; - ul.className = 'jsoneditor-menu'; - ul.style.height = '0'; - li.appendChild(ul); - createMenuItems(ul, domSubItems, item.submenu); - } - else { - // no submenu, just a button with clickhandler - button.innerHTML = '
    ' + - '
    ' + translate(item.text) + '
    '; - } - - domItems.push(domItem); - } - }); - } - createMenuItems(list, this.dom.items, items); - - // TODO: when the editor is small, show the submenu on the right instead of inline? - - // calculate the max height of the menu with one submenu expanded - this.maxHeight = 0; // height in pixels - items.forEach(function (item) { - var height = (items.length + (item.submenu ? item.submenu.length : 0)) * 24; - me.maxHeight = Math.max(me.maxHeight, height); - }); - } - - /** - * Get the currently visible buttons - * @return {Array.} buttons - * @private - */ - ContextMenu.prototype._getVisibleButtons = function () { - var buttons = []; - var me = this; - this.dom.items.forEach(function (item) { - buttons.push(item.button); - if (item.buttonExpand) { - buttons.push(item.buttonExpand); - } - if (item.subItems && item == me.expandedItem) { - item.subItems.forEach(function (subItem) { - buttons.push(subItem.button); - if (subItem.buttonExpand) { - buttons.push(subItem.buttonExpand); - } - // TODO: change to fully recursive method - }); - } - }); - - return buttons; - }; - - // currently displayed context menu, a singleton. We may only have one visible context menu - ContextMenu.visibleMenu = undefined; - - /** - * Attach the menu to an anchor - * @param {HTMLElement} anchor Anchor where the menu will be attached - * as sibling. - * @param {HTMLElement} [contentWindow] The DIV with with the (scrollable) contents - */ - ContextMenu.prototype.show = function (anchor, contentWindow) { - this.hide(); - - // determine whether to display the menu below or above the anchor - var showBelow = true; - var parent = anchor.parentNode; - var anchorRect = anchor.getBoundingClientRect(); - var parentRect = parent.getBoundingClientRect() - - if (contentWindow) { - - var contentRect = contentWindow.getBoundingClientRect(); - - if (anchorRect.bottom + this.maxHeight < contentRect.bottom) { - // fits below -> show below - } - else if (anchorRect.top - this.maxHeight > contentRect.top) { - // fits above -> show above - showBelow = false; - } - else { - // doesn't fit above nor below -> show below - } - } - - var leftGap = anchorRect.left - parentRect.left; - var topGap = anchorRect.top - parentRect.top; - - // position the menu - if (showBelow) { - // display the menu below the anchor - var anchorHeight = anchor.offsetHeight; - this.dom.menu.style.left = leftGap + 'px'; - this.dom.menu.style.top = topGap + anchorHeight + 'px'; - this.dom.menu.style.bottom = ''; - } - else { - // display the menu above the anchor - this.dom.menu.style.left = leftGap + 'px'; - this.dom.menu.style.top = topGap + 'px'; - this.dom.menu.style.bottom = '0px'; - } - - // find the root node of the page (window, or a shadow dom root element) - this.rootNode = getRootNode(anchor); - - // attach the menu to the parent of the anchor - parent.insertBefore(this.dom.root, parent.firstChild); - - // create and attach event listeners - var me = this; - var list = this.dom.list; - this.eventListeners.mousedown = util.addEventListener(this.rootNode, 'mousedown', function (event) { - // hide menu on click outside of the menu - var target = event.target; - if ((target != list) && !me._isChildOf(target, list)) { - me.hide(); - event.stopPropagation(); - event.preventDefault(); - } - }); - this.eventListeners.keydown = util.addEventListener(this.rootNode, 'keydown', function (event) { - me._onKeyDown(event); - }); - - // move focus to the first button in the context menu - this.selection = util.getSelection(); - this.anchor = anchor; - setTimeout(function () { - me.dom.focusButton.focus(); - }, 0); - - if (ContextMenu.visibleMenu) { - ContextMenu.visibleMenu.hide(); - } - ContextMenu.visibleMenu = this; - }; - - /** - * Hide the context menu if visible - */ - ContextMenu.prototype.hide = function () { - // remove the menu from the DOM - if (this.dom.root.parentNode) { - this.dom.root.parentNode.removeChild(this.dom.root); - if (this.onClose) { - this.onClose(); - } - } - - // remove all event listeners - // all event listeners are supposed to be attached to document. - for (var name in this.eventListeners) { - if (this.eventListeners.hasOwnProperty(name)) { - var fn = this.eventListeners[name]; - if (fn) { - util.removeEventListener(this.rootNode, name, fn); - } - delete this.eventListeners[name]; - } - } - - if (ContextMenu.visibleMenu == this) { - ContextMenu.visibleMenu = undefined; - } - }; - - /** - * Expand a submenu - * Any currently expanded submenu will be hided. - * @param {Object} domItem - * @private - */ - ContextMenu.prototype._onExpandItem = function (domItem) { - var me = this; - var alreadyVisible = (domItem == this.expandedItem); - - // hide the currently visible submenu - var expandedItem = this.expandedItem; - if (expandedItem) { - //var ul = expandedItem.ul; - expandedItem.ul.style.height = '0'; - expandedItem.ul.style.padding = ''; - setTimeout(function () { - if (me.expandedItem != expandedItem) { - expandedItem.ul.style.display = ''; - util.removeClassName(expandedItem.ul.parentNode, 'jsoneditor-selected'); - } - }, 300); // timeout duration must match the css transition duration - this.expandedItem = undefined; - } - - if (!alreadyVisible) { - var ul = domItem.ul; - ul.style.display = 'block'; - var height = ul.clientHeight; // force a reflow in Firefox - setTimeout(function () { - if (me.expandedItem == domItem) { - var childsHeight = 0; - for (var i = 0; i < ul.childNodes.length; i++) { - childsHeight += ul.childNodes[i].clientHeight; - } - ul.style.height = childsHeight + 'px'; - ul.style.padding = '5px 10px'; - } - }, 0); - util.addClassName(ul.parentNode, 'jsoneditor-selected'); - this.expandedItem = domItem; - } - }; - - /** - * Handle onkeydown event - * @param {Event} event - * @private - */ - ContextMenu.prototype._onKeyDown = function (event) { - var target = event.target; - var keynum = event.which; - var handled = false; - var buttons, targetIndex, prevButton, nextButton; - - if (keynum == 27) { // ESC - // hide the menu on ESC key - - // restore previous selection and focus - if (this.selection) { - util.setSelection(this.selection); - } - if (this.anchor) { - this.anchor.focus(); - } - - this.hide(); - - handled = true; - } - else if (keynum == 9) { // Tab - if (!event.shiftKey) { // Tab - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - if (targetIndex == buttons.length - 1) { - // move to first button - buttons[0].focus(); - handled = true; - } - } - else { // Shift+Tab - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - if (targetIndex == 0) { - // move to last button - buttons[buttons.length - 1].focus(); - handled = true; - } - } - } - else if (keynum == 37) { // Arrow Left - if (target.className == 'jsoneditor-expand') { - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - prevButton = buttons[targetIndex - 1]; - if (prevButton) { - prevButton.focus(); - } - } - handled = true; - } - else if (keynum == 38) { // Arrow Up - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - prevButton = buttons[targetIndex - 1]; - if (prevButton && prevButton.className == 'jsoneditor-expand') { - // skip expand button - prevButton = buttons[targetIndex - 2]; - } - if (!prevButton) { - // move to last button - prevButton = buttons[buttons.length - 1]; - } - if (prevButton) { - prevButton.focus(); - } - handled = true; - } - else if (keynum == 39) { // Arrow Right - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - nextButton = buttons[targetIndex + 1]; - if (nextButton && nextButton.className == 'jsoneditor-expand') { - nextButton.focus(); - } - handled = true; - } - else if (keynum == 40) { // Arrow Down - buttons = this._getVisibleButtons(); - targetIndex = buttons.indexOf(target); - nextButton = buttons[targetIndex + 1]; - if (nextButton && nextButton.className == 'jsoneditor-expand') { - // skip expand button - nextButton = buttons[targetIndex + 2]; - } - if (!nextButton) { - // move to first button - nextButton = buttons[0]; - } - if (nextButton) { - nextButton.focus(); - handled = true; - } - handled = true; - } - // TODO: arrow left and right - - if (handled) { - event.stopPropagation(); - event.preventDefault(); - } - }; - - /** - * Test if an element is a child of a parent element. - * @param {Element} child - * @param {Element} parent - * @return {boolean} isChild - */ - ContextMenu.prototype._isChildOf = function (child, parent) { - var e = child.parentNode; - while (e) { - if (e == parent) { - return true; - } - e = e.parentNode; - } - - return false; - }; - - module.exports = ContextMenu; - - /***/ }, /* 58 */ /***/ function(module, exports) { @@ -12430,7 +12664,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var ContextMenu = __webpack_require__(57); + var ContextMenu = __webpack_require__(55); var translate = __webpack_require__(58).translate; /** @@ -12547,12 +12781,12 @@ return /******/ (function(modules) { // webpackBootstrap var jmespath = __webpack_require__(61); var naturalSort = __webpack_require__(62); - var ContextMenu = __webpack_require__(57); + var ContextMenu = __webpack_require__(55); var appendNodeFactory = __webpack_require__(63); var showMoreNodeFactory = __webpack_require__(64); var showSortModal = __webpack_require__(65); var showTransformModal = __webpack_require__(67); - var util = __webpack_require__(54); + var util = __webpack_require__(56); var translate = __webpack_require__(58).translate; var DEFAULT_MODAL_ANCHOR = document.body; // TODO: this constant is defined twice @@ -12576,7 +12810,12 @@ return /******/ (function(modules) { // webpackBootstrap if(params && (params instanceof Object)) { this.setField(params.field, params.fieldEditable); - this.setValue(params.value, params.type); + if ('value' in params) { + this.setValue(params.value, params.type); + } + if ('internalValue' in params) { + this.setInternalValue(params.internalValue); + } } else { this.setField(''); @@ -12650,6 +12889,22 @@ return /******/ (function(modules) { // webpackBootstrap return path; }; + /** + * Get the internal path of this node, a list with the child indexes. + * @return {String[]} Array containing the internal path to this node + */ + Node.prototype.getInternalPath = function () { + var node = this; + var internalPath = []; + while (node) { + if (node.parent) { + internalPath.unshift(node.getIndex()); + } + node = node.parent; + } + return internalPath; + }; + /** * Get node serializable name * @returns {String|Number} @@ -12684,11 +12939,31 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Find child node by an internal path: the indexes of the childs nodes + * @param {Array} internalPath + * @return {Node | undefined} Returns the node if the path exists. + * Returns undefined otherwise. + */ + Node.prototype.findNodeByInternalPath = function (internalPath) { + if (!internalPath) { + return undefined; + } + + var node = this; + for (var i = 0; i < internalPath.length && node; i++) { + var childIndex = internalPath[i]; + node = node.childs[childIndex]; + } + + return node; + }; + /** * @typedef {{value: String|Object|Number|Boolean, path: Array.}} SerializableNode * * Returns serializable representation for the node - * @return {SerializedNode} + * @return {SerializableNode} */ Node.prototype.serialize = function () { return { @@ -12830,10 +13105,16 @@ return /******/ (function(modules) { // webpackBootstrap /** * Get the index of this node: the index in the list of childs where this * node is part of - * @return {number} Returns the index, or -1 if this is the root node + * @return {number | null} Returns the index, or null if this is the root node */ Node.prototype.getIndex = function () { - return this.parent ? this.parent.childs.indexOf(this) : -1; + if (this.parent) { + var index = this.parent.childs.indexOf(this); + return index !== -1 ? index : null; + } + else { + return -1; + } }; /** @@ -12875,21 +13156,15 @@ return /******/ (function(modules) { // webpackBootstrap */ Node.prototype.setValue = function(value, type) { var childValue, child, visible; + var i, j; var notUpdateDom = false; - - // first clear all current childs (if any) - var childs = this.childs; - if (childs) { - while (childs.length) { - this.removeChild(childs[0], notUpdateDom); - } - } + var previousChilds = this.childs; this.type = this._getType(value); // check if type corresponds with the provided type - if (type && type != this.type) { - if (type == 'string' && this.type == 'auto') { + if (type && type !== this.type) { + if (type === 'string' && this.type === 'auto') { this.type = type; } else { @@ -12899,40 +13174,79 @@ return /******/ (function(modules) { // webpackBootstrap } } - if (this.type == 'array') { + if (this.type === 'array') { // array - this.childs = []; - for (var i = 0, iMax = value.length; i < iMax; i++) { + if (!this.childs) { + this.childs = []; + } + + for (i = 0; i < value.length; i++) { childValue = value[i]; if (childValue !== undefined && !(childValue instanceof Function)) { - // ignore undefined and functions - child = new Node(this.editor, { - value: childValue - }); - visible = i < this.MAX_VISIBLE_CHILDS; - this.appendChild(child, visible, notUpdateDom); - } - } - this.value = ''; - } - else if (this.type == 'object') { - // object - this.childs = []; - i = 0; - for (var childField in value) { - if (value.hasOwnProperty(childField)) { - childValue = value[childField]; - if (childValue !== undefined && !(childValue instanceof Function)) { - // ignore undefined and functions + if (i < this.childs.length) { + // reuse existing child, keep its state + child = this.childs[i]; + + child.fieldEditable = false; + child.index = i; + child.setValue(childValue); + } + else { + // create a new child child = new Node(this.editor, { - field: childField, value: childValue }); visible = i < this.MAX_VISIBLE_CHILDS; this.appendChild(child, visible, notUpdateDom); } + } + } + + // cleanup redundant childs + // we loop backward to prevent issues with shifting index numbers + for (j = this.childs.length; j >= value.length; j--) { + this.removeChild(this.childs[j], notUpdateDom); + } + } + else if (this.type === 'object') { + // object + if (!this.childs) { + this.childs = []; + } + + // cleanup redundant childs + // we loop backward to prevent issues with shifting index numbers + for (j = this.childs.length - 1; j >= 0; j--) { + if (!value.hasOwnProperty(this.childs[j].field)) { + this.removeChild(this.childs[j], notUpdateDom); + } + } + + i = 0; + for (var childField in value) { + if (value.hasOwnProperty(childField)) { + childValue = value[childField]; + if (childValue !== undefined && !(childValue instanceof Function)) { + child = this.findChildByProperty(childField); + + if (child) { + // reuse existing child, keep its state + child.setField(childField, true); + child.setValue(childValue); + } + else { + // create a new child + child = new Node(this.editor, { + field: childField, + value: childValue + }); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible, notUpdateDom); + } + } i++; } + } this.value = ''; @@ -12943,13 +13257,147 @@ return /******/ (function(modules) { // webpackBootstrap } else { // value - this.childs = undefined; + this.hideChilds(); + + delete this.append; + delete this.showMore; + delete this.expanded; + delete this.childs; + this.value = value; } + // recreate the DOM if switching from an object/array to auto/string or vice versa + // needed to recreated the expand button for example + if (Array.isArray(previousChilds) !== Array.isArray(this.childs)) { + this.recreateDom(); + } + this.updateDom({'updateIndexes': true}); - this.previousValue = this.value; + this.previousValue = this.value; // used only to check for changes in DOM vs JS model + }; + + /** + * Set internal value + * @param {*} internalValue Internal value structure keeping type, + * order and duplicates in objects + */ + Node.prototype.setInternalValue = function(internalValue) { + var childValue, child, visible; + var i, j; + var notUpdateDom = false; + var previousChilds = this.childs; + + this.type = internalValue.type; + + if (internalValue.type === 'array') { + // array + if (!this.childs) { + this.childs = []; + } + + for (i = 0; i < internalValue.childs.length; i++) { + childValue = internalValue.childs[i]; + if (childValue !== undefined && !(childValue instanceof Function)) { + if (i < this.childs.length) { + // reuse existing child, keep its state + child = this.childs[i]; + + child.fieldEditable = false; + child.index = i; + child.setInternalValue(childValue); + } + else { + // create a new child + child = new Node(this.editor, { + internalValue: childValue + }); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible, notUpdateDom); + } + } + } + + // cleanup redundant childs + // we loop backward to prevent issues with shifting index numbers + for (j = this.childs.length; j >= internalValue.childs.length; j--) { + this.removeChild(this.childs[j], notUpdateDom); + } + } + else if (internalValue.type === 'object') { + // object + if (!this.childs) { + this.childs = []; + } + + for (i = 0; i < internalValue.childs.length; i++) { + childValue = internalValue.childs[i]; + if (childValue !== undefined && !(childValue instanceof Function)) { + if (i < this.childs.length) { + // reuse existing child, keep its state + child = this.childs[i]; + + delete child.index; + child.setField(childValue.field, true); + child.setInternalValue(childValue.value); + } + else { + // create a new child + child = new Node(this.editor, { + field: childValue.field, + internalValue: childValue.value + }); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible, notUpdateDom); + } + } + } + + // cleanup redundant childs + // we loop backward to prevent issues with shifting index numbers + for (j = this.childs.length; j >= internalValue.childs.length; j--) { + this.removeChild(this.childs[j], notUpdateDom); + } + } + else { + // value + this.hideChilds(); + + delete this.append; + delete this.showMore; + delete this.expanded; + delete this.childs; + + this.value = internalValue.value; + } + + // recreate the DOM if switching from an object/array to auto/string or vice versa + // needed to recreated the expand button for example + if (Array.isArray(previousChilds) !== Array.isArray(this.childs)) { + this.recreateDom(); + } + + this.updateDom({'updateIndexes': true}); + + this.previousValue = this.value; // used only to check for changes in DOM vs JS model + }; + + /** + * Remove the DOM of this node and it's childs and recreate it again + */ + Node.prototype.recreateDom = function() { + // only recreate dom if there is a dom already + if (!this.dom || ! this.dom.tr || !this.dom.tr.parentNode) { + return; + } + + var domAnchor = this._detachFromDom(); + + // delete the DOM + this.clearDom(); + + this._attachToDom(domAnchor); }; /** @@ -12957,8 +13405,6 @@ return /******/ (function(modules) { // webpackBootstrap * @return {*} value */ Node.prototype.getValue = function() { - //var childs, i, iMax; - if (this.type == 'array') { var arr = []; this.childs.forEach (function (child) { @@ -12982,6 +13428,42 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Get internal value, a structure which maintains ordering and duplicates in objects + * @return {*} value + */ + Node.prototype.getInternalValue = function() { + if (this.type === 'array') { + return { + type: this.type, + childs: this.childs.map (function (child) { + return child.getInternalValue(); + }) + }; + } + else if (this.type === 'object') { + return { + type: this.type, + childs: this.childs.map(function (child) { + return { + field: child.getField(), + value: child.getInternalValue() + } + }) + }; + } + else { + if (this.value === undefined) { + this._getDomValue(); + } + + return { + type: this.type, + value: this.value + }; + } + }; + /** * Get the nesting level of this node * @return {Number} level @@ -13012,8 +13494,10 @@ return /******/ (function(modules) { // webpackBootstrap clone.field = this.field; clone.fieldInnerText = this.fieldInnerText; clone.fieldEditable = this.fieldEditable; + clone.previousField = this.previousField; clone.value = this.value; clone.valueInnerText = this.valueInnerText; + clone.previousValue = this.previousValue; clone.expanded = this.expanded; clone.visibleChilds = this.visibleChilds; @@ -13227,6 +13711,10 @@ return /******/ (function(modules) { // webpackBootstrap if (this.type == 'array') { node.index = this.childs.length; } + if (this.type === 'object' && node.field == undefined) { + // initialize field value if needed + node.setField(''); + } this.childs.push(node); if (this.expanded && visible !== false) { @@ -13272,7 +13760,7 @@ return /******/ (function(modules) { // webpackBootstrap node.parent.removeChild(node); } - if (beforeNode instanceof AppendNode) { + if (beforeNode instanceof AppendNode || !beforeNode) { // the this.childs.length + 1 is to reckon with the node that we're about to add if (this.childs.length + 1 > this.visibleChilds) { var lastVisibleNode = this.childs[this.visibleChilds - 1]; @@ -13292,27 +13780,6 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Move a node from its current parent to this node - * Only applicable when Node value is of type array or object. - * If index is out of range, the node will be appended to the end - * @param {Node} node - * @param {Number} index - */ - Node.prototype.moveTo = function (node, index) { - if (node.parent == this) { - // same parent - var currentIndex = this.childs.indexOf(node); - if (currentIndex < index) { - // compensate the index for removal of the node itself - index++; - } - } - - var beforeNode = this.childs[index] || this.append; - this.moveBefore(node, beforeNode); - }; - /** * Insert a new child before a given node * Only applicable when Node value is of type array or object @@ -13323,7 +13790,12 @@ return /******/ (function(modules) { // webpackBootstrap if (this._hasChilds()) { this.visibleChilds++; - if (beforeNode == this.append) { + // initialize field value if needed + if (this.type === 'object' && node.field == undefined) { + node.setField(''); + } + + if (beforeNode === this.append) { // append to the child nodes // adjust the link to the parent @@ -13682,18 +14154,9 @@ return /******/ (function(modules) { // webpackBootstrap } else { // change from array to object, or from string/auto to object/array - var table = this.dom.tr ? this.dom.tr.parentNode : undefined; - var lastTr; - if (this.expanded) { - lastTr = this.getAppendDom(); - } - else { - lastTr = this.getDom(); - } - var nextTr = (lastTr && lastTr.parentNode) ? lastTr.nextSibling : undefined; + var domAnchor = this._detachFromDom(); - // hide current field and all its childs - this.hide({ resetVisibleChilds: false }); + // delete the old DOM this.clearDom(); // adjust the field and the value @@ -13737,16 +14200,7 @@ return /******/ (function(modules) { // webpackBootstrap this.expanded = false; } - // create new DOM - if (table) { - if (nextTr) { - table.insertBefore(this.getDom(), nextTr); - } - else { - table.appendChild(this.getDom()); - } - } - this.showChilds(); + this._attachToDom(domAnchor); } if (newType == 'auto' || newType == 'string') { @@ -13764,6 +14218,68 @@ return /******/ (function(modules) { // webpackBootstrap this.updateDom({'updateIndexes': true}); }; + /** + * Test whether the JSON contents of this node are deep equal to provided JSON object. + * @param {*} json + */ + Node.prototype.deepEqual = function (json) { + var i; + + if (this.type === 'array') { + if (!Array.isArray(json)) { + return false; + } + + if (this.childs.length !== json.length) { + return false; + } + + for (i = 0; i < this.childs.length; i++) { + if (!this.childs[i].deepEqual(json[i])) { + return false; + } + } + } + else if (this.type === 'object') { + if (typeof json !== 'object') { + return false; + } + + // TODO: for better efficiency, we could create a property `isDuplicate` on all of the childs + // and keep that up to date. This should make deepEqual about 20% faster. + var props = {}; + var propCount = 0; + for (i = 0; i < this.childs.length; i++) { + var child = this.childs[i]; + if (!props[child.field]) { + // We can have childs with duplicate field names. + // We take the first, and ignore the others. + props[child.field] = true; + propCount++; + + if (!(child.field in json)) { + return false; + } + + if (!child.deepEqual(json[child.field])) { + return false; + } + } + } + + if (propCount !== Object.keys(json).length) { + return false; + } + } + else { + if (this.value !== json) { + return false; + } + } + + return true; + }; + /** * Retrieve value from DOM * @param {boolean} [silent] If true (default), no errors will be thrown in @@ -13822,7 +14338,7 @@ return /******/ (function(modules) { // webpackBootstrap } this.editor._onAction('editValue', { - node: this, + path: this.getInternalPath(), oldValue: this.previousValue, newValue: this.value, oldSelection: oldSelection, @@ -13854,7 +14370,8 @@ return /******/ (function(modules) { // webpackBootstrap } this.editor._onAction('editField', { - node: this, + parentPath: this.parent.getInternalPath(), + index: this.getIndex(), oldValue: this.previousField, newValue: this.field, oldSelection: oldSelection, @@ -14203,8 +14720,8 @@ return /******/ (function(modules) { // webpackBootstrap var firstNode = nodes[0]; var lastNode = nodes[nodes.length - 1]; + var parent = firstNode.parent; var draggedNode = Node.getNodeFromTarget(event.target); - var beforeNode = lastNode.nextSibling(); var editor = firstNode.editor; // in case of multiple selected nodes, offsetY prevents the selection from @@ -14227,7 +14744,11 @@ return /******/ (function(modules) { // webpackBootstrap editor.drag = { oldCursor: document.body.style.cursor, oldSelection: editor.getDomSelection(), - oldBeforeNode: beforeNode, + oldPaths: nodes.map(getInternalPath), + oldParent: parent, + oldNextNode: parent.childs[lastNode.getIndex() + 1] || parent.append, + oldParentPathRedo: parent.getInternalPath(), + oldIndexRedo: firstNode.getIndex(), mouseX: event.pageX, offsetY: offsetY, level: firstNode.getLevel() @@ -14418,26 +14939,43 @@ return /******/ (function(modules) { // webpackBootstrap var firstNode = nodes[0]; var editor = firstNode.editor; - var parent = firstNode.parent; - var firstIndex = parent.childs.indexOf(firstNode); - var beforeNode = parent.childs[firstIndex + nodes.length] || parent.append; // set focus to the context menu button of the first node if (nodes[0]) { nodes[0].dom.menu.focus(); } - var params = { - nodes: nodes, - oldSelection: editor.drag.oldSelection, - newSelection: editor.getDomSelection(), - oldBeforeNode: editor.drag.oldBeforeNode, - newBeforeNode: beforeNode - }; + var oldParentPath = editor.drag.oldParent.getInternalPath(); + var newParentPath = firstNode.parent.getInternalPath(); + var sameParent = editor.drag.oldParent === firstNode.parent; + var oldIndex = editor.drag.oldNextNode.getIndex(); + var newIndex = firstNode.getIndex(); + var oldParentPathRedo = editor.drag.oldParentPathRedo; - if (params.oldBeforeNode != params.newBeforeNode) { + var oldIndexRedo = editor.drag.oldIndexRedo; + var newIndexRedo = (sameParent && oldIndexRedo < newIndex) + ? (newIndex + nodes.length) + : newIndex; + + if (!sameParent || oldIndexRedo !== newIndex) { // only register this action if the node is actually moved to another place - editor._onAction('moveNodes', params); + editor._onAction('moveNodes', { + count: nodes.length, + fieldNames: nodes.map(getField), + + oldParentPath: oldParentPath, + newParentPath: newParentPath, + oldIndex: oldIndex, + newIndex: newIndex, + + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: null, // This is a hack, value will be filled in during undo + + oldSelection: editor.drag.oldSelection, + newSelection: editor.getDomSelection() + }); } document.body.style.cursor = editor.drag.oldCursor; @@ -14563,6 +15101,7 @@ return /******/ (function(modules) { // webpackBootstrap */ Node.prototype.updateValue = function (value) { this.value = value; + this.previousValue = value; this.updateDom(); }; @@ -14572,6 +15111,7 @@ return /******/ (function(modules) { // webpackBootstrap */ Node.prototype.updateField = function (field) { this.field = field; + this.previousField = field; this.updateDom(); }; @@ -15111,7 +15651,12 @@ return /******/ (function(modules) { // webpackBootstrap var prevNode, nextNode, nextDom, nextDom2; var editable = this.editor.options.mode === 'tree'; var oldSelection; - var oldBeforeNode; + var oldNextNode; + var oldParent; + var oldIndexRedo; + var newIndexRedo; + var oldParentPathRedo; + var newParentPathRedo; var nodes; var multiselection; var selectedNodes = this.editor.multiselection.nodes.length > 0 @@ -15221,17 +15766,33 @@ return /******/ (function(modules) { // webpackBootstrap !(lastNode.parent.childs.length == 1) && nextNode2 && nextNode2.parent) { oldSelection = this.editor.getDomSelection(); - oldBeforeNode = lastNode.nextSibling(); + oldParent = firstNode.parent; + oldNextNode = oldParent.childs[lastNode.getIndex() + 1] || oldParent.append; + oldIndexRedo = firstNode.getIndex(); + newIndexRedo = nextNode2.getIndex(); + oldParentPathRedo = oldParent.getInternalPath(); + newParentPathRedo = nextNode2.parent.getInternalPath(); selectedNodes.forEach(function (node) { nextNode2.parent.moveBefore(node, nextNode2); }); this.focus(Node.focusElement || this._getElementName(target)); + this.editor._onAction('moveNodes', { - nodes: selectedNodes, - oldBeforeNode: oldBeforeNode, - newBeforeNode: nextNode2, + count: selectedNodes.length, + fieldNames: selectedNodes.map(getField), + + oldParentPath: oldParent.getInternalPath(), + newParentPath: firstNode.parent.getInternalPath(), + oldIndex: oldNextNode.getIndex(), + newIndex: firstNode.getIndex(), + + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: newParentPathRedo, + oldSelection: oldSelection, newSelection: this.editor.getDomSelection() }); @@ -15268,7 +15829,12 @@ return /******/ (function(modules) { // webpackBootstrap prevNode = firstNode._previousNode(); if (prevNode && prevNode.parent) { oldSelection = this.editor.getDomSelection(); - oldBeforeNode = lastNode.nextSibling(); + oldParent = firstNode.parent; + oldNextNode = oldParent.childs[lastNode.getIndex() + 1] || oldParent.append; + oldIndexRedo = firstNode.getIndex(); + newIndexRedo = prevNode.getIndex(); + oldParentPathRedo = oldParent.getInternalPath(); + newParentPathRedo = prevNode.parent.getInternalPath(); selectedNodes.forEach(function (node) { prevNode.parent.moveBefore(node, prevNode); @@ -15276,9 +15842,19 @@ return /******/ (function(modules) { // webpackBootstrap this.focus(Node.focusElement || this._getElementName(target)); this.editor._onAction('moveNodes', { - nodes: selectedNodes, - oldBeforeNode: oldBeforeNode, - newBeforeNode: prevNode, + count: selectedNodes.length, + fieldNames: selectedNodes.map(getField), + + oldParentPath: oldParent.getInternalPath(), + newParentPath: firstNode.parent.getInternalPath(), + oldIndex: oldNextNode.getIndex(), + newIndex: firstNode.getIndex(), + + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: newParentPathRedo, + oldSelection: oldSelection, newSelection: this.editor.getDomSelection() }); @@ -15302,7 +15878,12 @@ return /******/ (function(modules) { // webpackBootstrap prevNode = Node.getNodeFromTarget(prevDom); if (prevNode && prevNode.parent && !prevNode.isVisible()) { oldSelection = this.editor.getDomSelection(); - oldBeforeNode = lastNode.nextSibling(); + oldParent = firstNode.parent; + oldNextNode = oldParent.childs[lastNode.getIndex() + 1] || oldParent.append; + oldIndexRedo = firstNode.getIndex(); + newIndexRedo = prevNode.getIndex(); + oldParentPathRedo = oldParent.getInternalPath(); + newParentPathRedo = prevNode.parent.getInternalPath(); selectedNodes.forEach(function (node) { prevNode.parent.moveBefore(node, prevNode); @@ -15310,9 +15891,19 @@ return /******/ (function(modules) { // webpackBootstrap this.focus(Node.focusElement || this._getElementName(target)); this.editor._onAction('moveNodes', { - nodes: selectedNodes, - oldBeforeNode: oldBeforeNode, - newBeforeNode: prevNode, + count: selectedNodes.length, + fieldNames: selectedNodes.map(getField), + + oldParentPath: oldParent.getInternalPath(), + newParentPath: firstNode.parent.getInternalPath(), + oldIndex: oldNextNode.getIndex(), + newIndex: firstNode.getIndex(), + + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: newParentPathRedo, + oldSelection: oldSelection, newSelection: this.editor.getDomSelection() }); @@ -15365,7 +15956,12 @@ return /******/ (function(modules) { // webpackBootstrap var nextNode2 = nextNode && (nextNode._nextNode() || nextNode.parent.append); if (nextNode2 && nextNode2.parent) { oldSelection = this.editor.getDomSelection(); - oldBeforeNode = lastNode.nextSibling(); + oldParent = firstNode.parent; + oldNextNode = oldParent.childs[lastNode.getIndex() + 1] || oldParent.append; + oldIndexRedo = firstNode.getIndex(); + newIndexRedo = nextNode2.getIndex(); + oldParentPathRedo = oldParent.getInternalPath(); + newParentPathRedo = nextNode2.parent.getInternalPath(); selectedNodes.forEach(function (node) { nextNode2.parent.moveBefore(node, nextNode2); @@ -15373,9 +15969,16 @@ return /******/ (function(modules) { // webpackBootstrap this.focus(Node.focusElement || this._getElementName(target)); this.editor._onAction('moveNodes', { - nodes: selectedNodes, - oldBeforeNode: oldBeforeNode, - newBeforeNode: nextNode2, + count: selectedNodes.length, + fieldNames: selectedNodes.map(getField), + oldParentPath: oldParent.getInternalPath(), + newParentPath: firstNode.parent.getInternalPath(), + oldParentPathRedo: oldParentPathRedo, + newParentPathRedo: newParentPathRedo, + oldIndexRedo: oldIndexRedo, + newIndexRedo: newIndexRedo, + oldIndex: oldNextNode.getIndex(), + newIndex: firstNode.getIndex(), oldSelection: oldSelection, newSelection: this.editor.getDomSelection() }); @@ -15439,6 +16042,9 @@ return /******/ (function(modules) { // webpackBootstrap Node.blurNodes(nodes); var newSelection = editor.getDomSelection(); + // store the paths before removing them (needed for history) + var paths = nodes.map(getInternalPath); + // remove the nodes nodes.forEach(function (node) { node.parent._remove(node); @@ -15446,8 +16052,9 @@ return /******/ (function(modules) { // webpackBootstrap // store history action editor._onAction('removeNodes', { - nodes: nodes.slice(0), // store a copy of the array! - parent: parent, + nodes: nodes, + paths: paths, + parentPath: parent.getInternalPath(), index: firstIndex, oldSelection: oldSelection, newSelection: newSelection @@ -15493,9 +16100,10 @@ return /******/ (function(modules) { // webpackBootstrap var newSelection = editor.getDomSelection(); editor._onAction('duplicateNodes', { - afterNode: lastNode, - nodes: clones, - parent: parent, + paths: nodes.map(getInternalPath), + clonePaths: clones.map(getInternalPath), + afterPath: lastNode.getInternalPath(), + parentPath: parent.getInternalPath(), oldSelection: oldSelection, newSelection: newSelection }); @@ -15518,6 +16126,9 @@ return /******/ (function(modules) { // webpackBootstrap type: type }); newNode.expand(true); + + var beforePath = this.getInternalPath(); + this.parent.insertBefore(newNode, this); this.editor.highlighter.unhighlight(); newNode.focus('field'); @@ -15525,8 +16136,9 @@ return /******/ (function(modules) { // webpackBootstrap this.editor._onAction('insertBeforeNodes', { nodes: [newNode], - beforeNode: this, - parent: this.parent, + paths: [newNode.getInternalPath()], + beforePath: beforePath, + parentPath: this.parent.getInternalPath(), oldSelection: oldSelection, newSelection: newSelection }); @@ -15555,8 +16167,9 @@ return /******/ (function(modules) { // webpackBootstrap this.editor._onAction('insertAfterNodes', { nodes: [newNode], - afterNode: this, - parent: this.parent, + paths: [newNode.getInternalPath()], + afterPath: this.getInternalPath(), + parentPath: this.parent.getInternalPath(), oldSelection: oldSelection, newSelection: newSelection }); @@ -15585,7 +16198,8 @@ return /******/ (function(modules) { // webpackBootstrap this.editor._onAction('appendNodes', { nodes: [newNode], - parent: this.parent, + paths: [newNode.getInternalPath()], + parentPath: this.parent.getInternalPath(), oldSelection: oldSelection, newSelection: newSelection }); @@ -15604,7 +16218,7 @@ return /******/ (function(modules) { // webpackBootstrap var newSelection = this.editor.getDomSelection(); this.editor._onAction('changeType', { - node: this, + path: this.getInternalPath(), oldType: oldType, newType: newType, oldSelection: oldSelection, @@ -15667,7 +16281,7 @@ return /******/ (function(modules) { // webpackBootstrap this._updateDomIndexes(); this.editor._onAction('sort', { - node: this, + path: this.getInternalPath(), oldChilds: oldChilds, newChilds: this.childs }); @@ -15675,6 +16289,69 @@ return /******/ (function(modules) { // webpackBootstrap this.showChilds(); }; + /** + * Replace the value of the node, keep it's state + * @param {*} newValue + */ + Node.prototype.update = function (newValue) { + var oldValue = this.getInternalValue(); + + this.setValue(newValue); + + this.editor._onAction('transform', { + path: this.getInternalPath(), + oldValue: oldValue, + newValue: this.getInternalValue() + }); + }; + + /** + * Remove this node from the DOM + * @returns {{table: Element, nextTr?: Element}} + * Returns the DOM elements that which be used to attach the node + * to the DOM again, see _attachToDom. + * @private + */ + Node.prototype._detachFromDom = function () { + var table = this.dom.tr ? this.dom.tr.parentNode : undefined; + var lastTr; + if (this.expanded) { + lastTr = this.getAppendDom(); + } + else { + lastTr = this.getDom(); + } + var nextTr = (lastTr && lastTr.parentNode) ? lastTr.nextSibling : undefined; + + this.hide({ resetVisibleChilds: false }); + + return { + table: table, + nextTr: nextTr + } + }; + + /** + * Attach this node to the DOM again + * @param {{table: Element, nextTr?: Element}} domAnchor + * The DOM elements returned by _detachFromDom. + * @private + */ + Node.prototype._attachToDom = function (domAnchor) { + if (domAnchor.table) { + if (domAnchor.nextTr) { + domAnchor.table.insertBefore(this.getDom(), domAnchor.nextTr); + } + else { + domAnchor.table.appendChild(this.getDom()); + } + } + + if (this.expanded) { + this.showChilds(); + } + }; + /** * Transform the node given a JMESPath query. * @param {String} query JMESPath query to apply @@ -15687,27 +16364,17 @@ return /******/ (function(modules) { // webpackBootstrap this.hideChilds(); // sorting is faster when the childs are not attached to the dom - // copy the childs array (the old one will be kept for an undo action - var oldType = this.type; - var oldChilds = this.childs; - this.childs = this.childs.concat(); - try { // apply the JMESPath query - var oldValue = this.getValue(); + var oldValue = this.getInternalValue(); var newValue = jmespath.search(oldValue, query); this.setValue(newValue); this.editor._onAction('transform', { - node: this, - oldType: oldType, - newType: this.type, + path: this.getInternalPath(), oldValue: oldValue, - newValue: newValue, - oldChilds: oldChilds, - newChilds: this.childs - // TODO: use oldChilds/newChilds in history or clean it up + newValue: this.getInternalValue() }); this.showChilds(); @@ -16416,6 +17083,16 @@ return /******/ (function(modules) { // webpackBootstrap return escaped; }; + // helper function to get the internal path of a node + function getInternalPath (node) { + return node.getInternalPath(); + } + + // helper function to get the field of a node + function getField (node) { + return node.getField(); + } + // TODO: find a nicer solution to resolve this circular dependency between Node and AppendNode // idea: introduce properties .isAppendNode and .isNode and use that instead of instanceof AppendNode checks var AppendNode = appendNodeFactory(Node); @@ -18154,8 +18831,8 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(54); - var ContextMenu = __webpack_require__(57); + var util = __webpack_require__(56); + var ContextMenu = __webpack_require__(55); var translate = __webpack_require__(58).translate; /** @@ -18229,6 +18906,22 @@ return /******/ (function(modules) { // webpackBootstrap return trAppend; }; + /** + * Append node doesn't have a path + * @returns {null} + */ + AppendNode.prototype.getPath = function() { + return null; + }; + + /** + * Append node doesn't have an index + * @returns {null} + */ + AppendNode.prototype.getIndex = function() { + return null; + }; + /** * Update the HTML dom of the Node */ @@ -19285,7 +19978,7 @@ return /******/ (function(modules) { // webpackBootstrap var picoModal = __webpack_require__(66); var Selectr = __webpack_require__(68); var translate = __webpack_require__(58).translate; - var debounce = __webpack_require__(54).debounce; + var debounce = __webpack_require__(56).debounce; var MAX_PREVIEW_LINES = 100; @@ -21769,7 +22462,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var ContextMenu = __webpack_require__(57); + var ContextMenu = __webpack_require__(55); /** * Create a select box to be used in the editor menu's, which allows to switch mode @@ -22279,7 +22972,7 @@ return /******/ (function(modules) { // webpackBootstrap var ace = __webpack_require__(72); var ModeSwitcher = __webpack_require__(69); - var util = __webpack_require__(54); + var util = __webpack_require__(56); // create a mixin with the functions for text mode var textmode = {}; @@ -22297,8 +22990,12 @@ return /******/ (function(modules) { // webpackBootstrap * or "code". * {Number} indentation Number of indentation * spaces. 2 by default. - * {function} onChange Callback method - * triggered on change + * {function} onChange Callback method triggered on change. + * Does not pass the changed contents. + * {function} onChangeText Callback method, triggered + * in modes on change of contents, + * passing the changed contents + * as stringified JSON. * {function} onModeChange Callback method * triggered after setMode * {function} onEditable Determine if textarea is readOnly @@ -22595,6 +23292,10 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ textmode._onChange = function () { + if (this.onChangeDisabled) { + return; + } + // validate JSON schema (if configured) this._debouncedValidate(); @@ -22607,6 +23308,16 @@ return /******/ (function(modules) { // webpackBootstrap console.error('Error in onChange callback: ', err); } } + + // trigger the onChangeText callback + if (this.options.onChangeText) { + try { + this.options.onChangeText(this.getText()); + } + catch (err) { + console.error('Error in onChangeText callback: ', err); + } + } }; /** @@ -22820,15 +23531,23 @@ return /******/ (function(modules) { // webpackBootstrap /** * Set json data in the formatter - * @param {Object} json + * @param {*} json */ textmode.set = function(json) { this.setText(JSON.stringify(json, null, this.indentation)); }; + /** + * Update data. Same as calling `set` in text/code mode. + * @param {*} json + */ + textmode.update = function(json) { + this.updateText(JSON.stringify(json, null, this.indentation)); + }; + /** * Get json data from the formatter - * @return {Object} json + * @return {*} json */ textmode.get = function() { var text = this.getText(); @@ -22881,17 +23600,31 @@ return /******/ (function(modules) { // webpackBootstrap } if (this.aceEditor) { // prevent emitting onChange events while setting new text - var originalOnChange = this.options.onChange; - this.options.onChange = null; + this.onChangeDisabled = true; this.aceEditor.setValue(text, -1); - this.options.onChange = originalOnChange; + this.onChangeDisabled = false; } // validate JSON schema this.validate(); }; + /** + * Update the text contents + * @param {string} jsonText + */ + textmode.updateText = function(jsonText) { + // don't update if there are no changes + if (this.getText() === jsonText) { + return; + } + + this.onChangeDisabled = true; // don't fire an onChange event + this.setText(jsonText); + this.onChangeDisabled = false; + }; + /** * Validate current JSON object against the configured JSON schema * Throws an exception when no JSON schema is configured @@ -23076,19 +23809,28 @@ return /******/ (function(modules) { // webpackBootstrap } }; + function load () { + try { + this.format() + } + catch (err) { + // in case of an error, just move on, failing formatting is not a big deal + } + } + // define modes module.exports = [ { mode: 'text', mixin: textmode, data: 'text', - load: textmode.format + load: load }, { mode: 'code', mixin: textmode, data: 'text', - load: textmode.format + load: load } ]; diff --git a/dist/jsoneditor.map b/dist/jsoneditor.map index fbfb09e..11db049 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","keyList","hasProp","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","showSortModal","showTransformModal","translate","setLanguages","setLanguage","DEFAULT_MODAL_ANCHOR","document","body","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","navigationBar","onSelectionChange","debounce","bind","languages","language","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","scrollableContent","querySelector","menu","collapse","tbody","getDom","treePath","reset","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","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","anchor","modalAnchor","transform","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","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","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","first","expandPathToNode","getSelection","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","onClose","click","onDuplicate","onRemove","close","selection1","selection2","setSelection","_getNodeIntsncesByRange","startNode","endNode","findNodeByPath","getIndex","current","nextSibling","getNodesByRange","serializableNodes","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","oldChilds","updateIndexes","showChilds","newChilds","setValue","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","_positionForIndex","textTillIndex","row","column","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","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","MAX_SEARCH_RESULTS","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","ok","removeText","removeTitle","removeField","selectNode","showAll","showMore","showMoreStatus","sortTitle","sortTitleShort","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","transformTitle","transformTitleShort","transformQueryTitle","transformWizardLabel","transformWizardFilter","transformWizardSortBy","transformWizardSelectFields","transformQueryLabel","transformPreviewLabel","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","lang","langFound","assign","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","jmespath","naturalSort","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","getField","_getDomField","childValue","visible","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","trTemp","AppendNode","lastVisibleNode","moveTo","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","removedNode","_remove","lastTr","clearDom","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","_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","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","blurNodes","clones","newNode","_onAppend","_onChangeType","order","nodeA","getNestedChild","nodeB","valueA","valueB","findChildByProperty","getChildPaths","includeObjects","pathsMap","_getChildPaths","rootPath","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","strictDeepEqual","keysSeen","key2","isFalse","objValues","values","isAlpha","isNum","isAlphaNum","Lexer","Parser","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","TYPE_NUMBER","avg","_functionAvg","TYPE_ARRAY_NUMBER","ceil","_functionCeil","_functionContains","TYPE_STRING","TYPE_ARRAY","TYPE_ANY","ends_with","_functionEndsWith","_functionFloor","_functionLength","TYPE_OBJECT","_functionMap","TYPE_EXPREF","_functionMax","TYPE_ARRAY_STRING","merge","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","stream","tokenize","expression","trimLeft","basicTokens",".","*","(",")","@","operatorStartToken","<",">","=","!","skipChars"," ","tokens","_current","identifier","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","parseInt","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","_loadTokens","ast","_lookahead","_lookaheadToken","rbp","leftToken","_advance","nud","currentToken","led","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","lookahead","expressions","keyToken","keyName","pairs","identifierTypes","visit","collected","sliceParams","computed","computeSliceParams","stop","step","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","signature","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","actual","argValue","subtype","searchStr","suffix","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","elements","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","typeName","sortedArray","requiredType","that","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","msg","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","picoModal","overlayClass","modalClass","afterCreate","modal","setDirection","form","modalElem","sortedBy","getAttribute","pathArray","onsubmit","afterClose","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","isNode","observable","callbacks","watch","trigger","detail","unprevented","isHidden","getComputedStyle","Elem","buildOverlay","getOption","make","clazz","stylize","zIndex","opacity","background","onClick","buildModal","autoinc","boxSizing","-ms-transform","-moz-transform","-webkit-transform","-o-transform","backgroundColor","borderRadius","attr","anyAncestor","buildClose","border","fontSize","textAlign","lineHeight","buildElemAccessor","builder","manageFocus","iface","isEnabled","selector","msMatchesSelector","webkitMatchesSelector","canFocus","hasAttribute","firstFocusable","getElementsByTagName","lastFocusable","focused","beforeShow","activeElement","afterShow","focusable","tabKey","manageBodyOverflow","origOverflow","tag","styles","setAttribute","predicate","escapeKey","documentElement","keycode","opt","defaultValue","forceClose","shadowElem","afterCloseEvent","beforeCloseEvent","returnIface","build","built","overlay","afterCreateEvent","beforeShowEvent","afterShowEvent","closeElem","overlayElem","buildDom","beforeClose","preprocessPath","generateQueryFromWizard","filterField","filterRelation","filterValue","field1","value1","sortField","sortOrder","field2","selectFields","debouncedUpdatePreview","updatePreview","transformed","MAX_PREVIEW_LINES","preview","wizard","fontStyle","formattedPath","filterOption","sortOption","allPaths","selectrFilterField","Selectr","defaultSelected","clearable","allowDeselect","placeholder","selectrFilterRelation","selectrSortField","selectrSortOrder","selectrSelectFields","multiple","on","isset","appendItem","removeClass","textContent","defaultConfig","searchable","sortSelected","closeOnScroll","nativeDropdown","taggable","tagPlaceholder","Events","_events","off","emit","props","src","each","d","hasClass","classList","addClass","closest","isInt","g","rect","includes","truncate","render","createDocumentFragment","pagination","pages","pageIndex","customOption","childElementCount","navIndex","dismiss","opened","createItem","renderOption","class","role","aria-selected","requiresPagination","customClass","mobileDevice","tabIndex","aria-expanded","label","dropdown","aria-hidden","notice","tags","selectedValues","getSelectedProperties","selectedIndexes","selectClear","tagIndex","autocorrect","autocapitalize","tagSeperators","inputClear","inputContainer","optgroup","Option","paginate","placeEl","setPlaceholder","disable","navigate","navigating","prevEl","searching","lastElementChild","firstElementChild","optsRect","addTag","docFrag","customSelected","renderSelection","btn","$2","ac","bc","ax","by","nn","tg","removeTag","total","page","clearSearch","rendered","originalType","originalIndex","originalOptionCount","bindEvents","update","selectedIndex","getSelected","querySelectorAll","events","changedTouches","toggle","getChangedOptions","removed","indexes","changes","setMessage","invert","paginateItems","selectedValue","replaceChild","maxSelections","force","selIndex","valIndex","toObject","toJson","checkDuplicate","dupe","getOptionByIndex","getOptionByValue","removeAll","removeMessage","firstEl","enable","serialise","rt","oh","wh","innerHeight","isInverted","onSwitch","availableModes","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","whiteSpace","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getPropertyValue","marginTop","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","distanceToTop","distanceToBottom","divRow","move","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","aceSelection","getRange","lead","getSelectionLead","setTextSelection","endPos","setSelectionRange","setRange","deps","payload","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","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","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","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","setInnerText","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","addMultiMouseDownListener","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","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","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","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","copied","cut","pasted","isSelectionEmpty","isFocused","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","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","ay","bx","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","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","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","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","removeAllListeners","reportError","optionsProvider","optList","setOption","optionNames","$options","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","$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","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","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","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","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","setRegexp","MAX_RANGES","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","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","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","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","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","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","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","$mergeNextCommand","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","$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","$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","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","onmessage","deltaQueue","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","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","onChangeJSON","mode","modes","indexOf","Object","keys","forEach","option","VALID_OPTIONS","arguments","length","_create","Ajv","err","treemode","textmode","prototype","DEBOUNCE_INTERVAL","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","create","data","extend","oldMode","config","asText","clear","mixin","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","keyList","hasProp","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","showSortModal","showTransformModal","translate","setLanguages","setLanguage","DEFAULT_MODAL_ANCHOR","document","body","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","navigationBar","onSelectionChange","debounce","bind","languages","language","content","table","params","field","_setRoot","expand","appendChild","update","deepEqual","getSelection","onChangeDisabled","isEmpty","forceSearch","start","end","startNode","findNodeByPath","endNode","setSelection","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateText","updateField","focus","scrollableContent","querySelector","menu","hide","treePath","reset","tbody","getDom","expandAll","collapseAll","collapse","_onAction","action","_onChange","onChangeText","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","setDomSelection","findNodeByInternalPath","select","domName","range","assign","setSelectionOffset","getDomSelection","find","getSelectionOffset","nodeName","getInternalPath","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","anchor","modalAnchor","transform","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","removeClassName","pathObjs","pathObj","childs","childNode","setPath","addClassName","expandTo","selectionObj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","first","expandPathToNode","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","onClose","click","onDuplicate","onRemove","close","selection1","selection2","_getNodeInstancesByRange","getIndex","current","nextSibling","getNodesByRange","serializableNodes","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","parentPath","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","beforeNode","beforePath","insertBefore","insertAfterNodes","afterNode","afterPath","insertAfter","removeNodes","append","duplicateNodes","clonePaths","clone","moveNodes","oldParentNode","oldParentPath","newParentNode","newParentPath","oldBeforeNode","oldIndex","newIndex","fieldNames","moveBefore","newParentPathRedo","oldParentPathRedo","newBeforeNode","newIndexRedo","oldIndexRedo","hideChilds","oldChilds","updateIndexes","showChilds","newChilds","setInternalValue","timestamp","oldSelection","newSelection","timeout","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","elem","searchFieldActive","searchValueActive","_clearDelay","MAX_SEARCH_RESULTS","activeResultIndex","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","li","domItem","button","submenu","divIcon","divText","createTextNode","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","style","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","getBoundingClientRect","parentRect","contentRect","leftGap","left","topGap","anchorHeight","offsetHeight","rootNode","firstChild","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","childsHeight","childNodes","targetIndex","prevButton","nextButton","jsonlint","jsonString","jsString","curr","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","iMax","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","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","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","el","_positionForIndex","textTillIndex","row","column","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","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","_lang","_locales","_defs","en","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","ok","removeText","removeTitle","removeField","selectNode","showAll","showMore","showMoreStatus","sortTitle","sortTitleShort","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","transformTitle","transformTitleShort","transformQueryTitle","transformWizardLabel","transformWizardFilter","transformWizardSortBy","transformWizardSelectFields","transformQueryLabel","transformPreviewLabel","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","lang","langFound","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","internalValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","getField","jmespath","naturalSort","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","internalPath","childIndex","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","_getDomField","childValue","visible","previousChilds","_getType","childField","findChildByProperty","sortObjectKeys","recreateDom","previousValue","domAnchor","_detachFromDom","clearDom","_attachToDom","_getDomValue","getInternalValue","getLevel","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","trTemp","AppendNode","lastVisibleNode","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","removedNode","_remove","_stringCast","props","propCount","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","cursor","oldPaths","oldParent","oldNextNode","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","sameParent","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_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","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","blurNodes","clones","newNode","_onAppend","_onChangeType","order","nodeA","getNestedChild","nodeB","valueA","valueB","lastTr","getChildPaths","includeObjects","pathsMap","_getChildPaths","rootPath","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","isNaN","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","strictDeepEqual","keysSeen","key2","isFalse","objValues","values","isAlpha","isNum","isAlphaNum","Lexer","Parser","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","TYPE_NUMBER","avg","_functionAvg","TYPE_ARRAY_NUMBER","ceil","_functionCeil","_functionContains","TYPE_STRING","TYPE_ARRAY","TYPE_ANY","ends_with","_functionEndsWith","_functionFloor","_functionLength","TYPE_OBJECT","_functionMap","TYPE_EXPREF","_functionMax","TYPE_ARRAY_STRING","merge","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","stream","tokenize","expression","trimLeft","basicTokens",".","*","(",")","@","operatorStartToken","<",">","=","!","skipChars"," ","tokens","_current","identifier","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","parseInt","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","_loadTokens","ast","_lookahead","_lookaheadToken","rbp","leftToken","_advance","nud","currentToken","led","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","lookahead","expressions","keyToken","keyName","pairs","identifierTypes","visit","collected","sliceParams","computed","computeSliceParams","stop","step","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","signature","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","actual","argValue","subtype","searchStr","suffix","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","elements","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","typeName","sortedArray","requiredType","that","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","msg","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","picoModal","overlayClass","modalClass","afterCreate","modal","setDirection","form","modalElem","sortedBy","getAttribute","pathArray","onsubmit","afterClose","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","isNode","observable","callbacks","watch","trigger","detail","unprevented","isHidden","getComputedStyle","Elem","buildOverlay","getOption","make","clazz","stylize","zIndex","opacity","background","onClick","buildModal","autoinc","boxSizing","-ms-transform","-moz-transform","-webkit-transform","-o-transform","backgroundColor","borderRadius","attr","anyAncestor","buildClose","border","fontSize","textAlign","lineHeight","buildElemAccessor","builder","manageFocus","iface","isEnabled","selector","msMatchesSelector","webkitMatchesSelector","canFocus","hasAttribute","firstFocusable","getElementsByTagName","lastFocusable","focused","beforeShow","activeElement","afterShow","focusable","tabKey","manageBodyOverflow","origOverflow","tag","styles","setAttribute","predicate","escapeKey","documentElement","keycode","opt","defaultValue","forceClose","shadowElem","afterCloseEvent","beforeCloseEvent","returnIface","build","built","overlay","afterCreateEvent","beforeShowEvent","afterShowEvent","closeElem","overlayElem","buildDom","beforeClose","preprocessPath","generateQueryFromWizard","filterField","filterRelation","filterValue","field1","value1","sortField","sortOrder","field2","selectFields","debouncedUpdatePreview","updatePreview","transformed","MAX_PREVIEW_LINES","preview","wizard","fontStyle","formattedPath","filterOption","sortOption","allPaths","selectrFilterField","Selectr","defaultSelected","clearable","allowDeselect","placeholder","selectrFilterRelation","selectrSortField","selectrSortOrder","selectrSelectFields","multiple","on","isset","appendItem","removeClass","textContent","defaultConfig","searchable","sortSelected","closeOnScroll","nativeDropdown","taggable","tagPlaceholder","Events","_events","off","emit","src","each","d","hasClass","classList","addClass","closest","isInt","g","rect","includes","truncate","render","createDocumentFragment","pagination","pages","pageIndex","customOption","childElementCount","navIndex","dismiss","opened","createItem","renderOption","class","role","aria-selected","requiresPagination","customClass","mobileDevice","tabIndex","aria-expanded","label","dropdown","aria-hidden","notice","tags","selectedValues","getSelectedProperties","selectedIndexes","selectClear","tagIndex","autocorrect","autocapitalize","tagSeperators","inputClear","inputContainer","optgroup","Option","paginate","placeEl","setPlaceholder","disable","navigate","navigating","prevEl","searching","lastElementChild","firstElementChild","optsRect","addTag","docFrag","customSelected","renderSelection","btn","$2","ac","bc","ax","by","nn","tg","removeTag","total","page","clearSearch","rendered","originalType","originalIndex","originalOptionCount","bindEvents","selectedIndex","getSelected","querySelectorAll","events","changedTouches","toggle","getChangedOptions","removed","indexes","changes","setMessage","invert","paginateItems","selectedValue","replaceChild","maxSelections","force","selIndex","valIndex","toObject","toJson","checkDuplicate","dupe","getOptionByIndex","getOptionByValue","removeAll","removeMessage","firstEl","enable","serialise","rt","oh","wh","innerHeight","isInverted","onSwitch","availableModes","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","whiteSpace","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getPropertyValue","marginTop","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","realInnerText","clientWidth","ix","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","distanceToTop","distanceToBottom","divRow","move","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","sanitizedText","resize","validationErrors","marginBottom","paddingBottom","doValidate","hidden","aceSelection","getRange","lead","getSelectionLead","setTextSelection","endPos","setSelectionRange","setRange","deps","payload","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","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","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","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","setInnerText","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","addMultiMouseDownListener","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","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","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","inComposition","inputHandler","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","copied","cut","pasted","isSelectionEmpty","isFocused","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","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","ay","bx","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","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","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","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","removeAllListeners","reportError","optionsProvider","optList","setOption","optionNames","$options","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","$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","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","moveTo","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","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","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","setRegexp","MAX_RANGES","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","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","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","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","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","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","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","inVirtualSelectionMode","getBehavioursEnabled","$mergeNextCommand","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","$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","$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","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","onmessage","deltaQueue","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","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.css b/dist/jsoneditor.min.css index 73b0a49..b192e00 100644 --- a/dist/jsoneditor.min.css +++ b/dist/jsoneditor.min.css @@ -1,4 +1,4 @@ -div.jsoneditor .jsoneditor-search input{height:auto;border:inherit}div.jsoneditor .jsoneditor-search input:focus{border:none!important;box-shadow:none!important}div.jsoneditor table{border-collapse:collapse;width:auto}div.jsoneditor td,div.jsoneditor th{padding:0;display:table-cell;text-align:left;vertical-align:inherit;border-radius:inherit}div.jsoneditor-field,div.jsoneditor-readonly,div.jsoneditor-value{border:1px solid transparent;min-height:16px;min-width:32px;padding:2px;margin:1px;word-wrap:break-word;float:left}div.jsoneditor-field p,div.jsoneditor-value p{margin:0}div.jsoneditor-value{word-break:break-word}div.jsoneditor-readonly{min-width:16px;color:grey}div.jsoneditor-empty{border-color:#d3d3d3;border-style:dashed;border-radius:2px}div.jsoneditor-field.jsoneditor-empty::after,div.jsoneditor-value.jsoneditor-empty::after{pointer-events:none;color:#d3d3d3;font-size:8pt}div.jsoneditor-field.jsoneditor-empty::after{content:"field"}div.jsoneditor-value.jsoneditor-empty::after{content:"value"}a.jsoneditor-value.jsoneditor-url,div.jsoneditor-value.jsoneditor-url{color:green;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;padding:2px;margin:2px}a.jsoneditor-value.jsoneditor-url:focus,a.jsoneditor-value.jsoneditor-url:hover{color:#ee422e}div.jsoneditor td.jsoneditor-separator{padding:3px 0;vertical-align:top;color:grey}div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value.jsoneditor-highlight,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover{background-color:#ffffab;border:1px solid #ff0;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-string{color:green}div.jsoneditor-value.jsoneditor-array,div.jsoneditor-value.jsoneditor-object{min-width:16px;color:grey}div.jsoneditor-value.jsoneditor-number{color:#ee422e}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-value.jsoneditor-invalid{color:#000}div.jsoneditor-tree button{width:24px;height:24px;padding:0;margin:0;border:none;cursor:pointer;background:transparent url(img/jsoneditor-icons.svg)}div.jsoneditor-mode-form tr.jsoneditor-expandable td.jsoneditor-tree,div.jsoneditor-mode-view tr.jsoneditor-expandable td.jsoneditor-tree{cursor:pointer}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-contextmenu.jsoneditor-selected,div.jsoneditor-tree button.jsoneditor-contextmenu:focus,div.jsoneditor-tree button.jsoneditor-contextmenu:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu{background-position:-48px -48px}div.jsoneditor-tree :focus{outline:0}div.jsoneditor-tree button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-invisible{visibility:hidden;background:0 0}div.jsoneditor-tree div.jsoneditor-show-more{display:inline-block;padding:3px 4px;margin:2px 0;background-color:#e5e5e5;border-radius:3px;color:grey;font-family:arial,sans-serif;font-size:10pt}div.jsoneditor-tree div.jsoneditor-show-more a{display:inline-block;color:grey}div.jsoneditor-tree div.jsoneditor-show-more a:focus,div.jsoneditor-tree div.jsoneditor-show-more a:hover{color:#ee422e}div.jsoneditor{color:#1a1a1a;border:1px solid #3883fa;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;position:relative;padding:0;line-height:100%}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%}div.jsoneditor-tree div.jsoneditor-tree-inner{padding-bottom:300px}div.jsoneditor-outer{position:static;width:100%;height:100%;margin:-35px 0 0 0;padding:35px 0 0 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div.jsoneditor-outer.has-nav-bar{margin:-61px 0 0 0;padding:61px 0 0 0}div.jsoneditor-outer.has-status-bar{margin:-35px 0 -26px 0;padding:35px 0 26px 0}.ace-jsoneditor,textarea.jsoneditor-text{min-height:150px}div.jsoneditor-tree{width:100%;height:100%;position:relative;overflow:auto}textarea.jsoneditor-text{width:100%;height:100%;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;outline-width:0;border:none;background-color:#fff;resize:none}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#d3d3d3}tr.jsoneditor-selected button.jsoneditor-contextmenu,tr.jsoneditor-selected button.jsoneditor-dragarea{visibility:hidden}tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{visibility:visible}div.jsoneditor-tree button.jsoneditor-dragarea{background:url(img/jsoneditor-icons.svg) -72px -72px;cursor:move}div.jsoneditor-tree button.jsoneditor-dragarea:focus,div.jsoneditor-tree button.jsoneditor-dragarea:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}div.jsoneditor td,div.jsoneditor th,div.jsoneditor tr{padding:0;margin:0}div.jsoneditor td{vertical-align:top}div.jsoneditor td.jsoneditor-tree{vertical-align:top}.jsoneditor-schema-error,div.jsoneditor td,div.jsoneditor textarea,div.jsoneditor th,div.jsoneditor-field,div.jsoneditor-value{font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt;color:#1a1a1a}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}div.jsoneditor-tree .jsoneditor-schema-error{width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}.jsoneditor-schema-error .jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.4);color:#fff;display:none;padding:7px 10px;position:absolute;width:200px;z-index:4}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below{top:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left{top:-7px;right:32px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right{top:-7px;left:32px}.jsoneditor-schema-error .jsoneditor-popover:before{border-right:7px solid transparent;border-left:7px solid transparent;content:'';display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;right:-14px;left:inherit;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;left:-14px;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error:focus .jsoneditor-popover,.jsoneditor-schema-error:hover .jsoneditor-popover{display:block;-webkit-animation:fade-in .3s linear 1,move-up .3s linear 1;-moz-animation:fade-in .3s linear 1,move-up .3s linear 1;-ms-animation:fade-in .3s linear 1,move-up .3s linear 1}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@-moz-keyframes fade-in{from{opacity:0}to{opacity:1}}@-ms-keyframes fade-in{from{opacity:0}to{opacity:1}}.jsoneditor .jsoneditor-text-errors{width:100%;border-collapse:collapse;background-color:#ffef8b;border-top:1px solid gold}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}div.jsoneditor-contextmenu-root{position:relative;width:0;height:0}div.jsoneditor-contextmenu{position:absolute;box-sizing:content-box;z-index:99999}div.jsoneditor-contextmenu li,div.jsoneditor-contextmenu ul{box-sizing:content-box;position:relative}div.jsoneditor-contextmenu ul{position:relative;left:0;top:0;width:128px;background:#fff;border:1px solid #d3d3d3;box-shadow:2px 2px 12px rgba(128,128,128,.3);list-style:none;margin:0;padding:0}div.jsoneditor-contextmenu ul li button{position:relative;padding:0 4px 0 0;margin:0;width:128px;height:auto;border:none;cursor:pointer;color:#4d4d4d;background:0 0;font-size:10pt;font-family:arial,sans-serif;box-sizing:border-box;text-align:left}div.jsoneditor-contextmenu ul li button::-moz-focus-inner{padding:0;border:0}div.jsoneditor-contextmenu ul li button:focus,div.jsoneditor-contextmenu ul li button:hover{color:#1a1a1a;background-color:#f5f5f5;outline:0}div.jsoneditor-contextmenu ul li button.jsoneditor-default{width:96px}div.jsoneditor-contextmenu ul li button.jsoneditor-expand{float:right;width:32px;height:24px;border-left:1px solid #e5e5e5}div.jsoneditor-contextmenu div.jsoneditor-icon{position:absolute;top:0;left:0;width:24px;height:24px;border:none;padding:0;margin:0;background-image:url(img/jsoneditor-icons.svg)}div.jsoneditor-contextmenu ul li ul div.jsoneditor-icon{margin-left:24px}div.jsoneditor-contextmenu div.jsoneditor-text{padding:4px 0 4px 24px;word-wrap:break-word}div.jsoneditor-contextmenu div.jsoneditor-text.jsoneditor-right-margin{padding-right:24px}div.jsoneditor-contextmenu ul li button div.jsoneditor-expand{position:absolute;top:0;right:0;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) 0 -72px}div.jsoneditor-contextmenu div.jsoneditor-separator{height:0;border-top:1px solid #e5e5e5;padding-top:5px;margin-top:5px}div.jsoneditor-contextmenu button.jsoneditor-remove>div.jsoneditor-icon{background-position:-24px 0}div.jsoneditor-contextmenu button.jsoneditor-append>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-insert>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-duplicate>div.jsoneditor-icon{background-position:-48px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-asc>div.jsoneditor-icon{background-position:-168px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-desc>div.jsoneditor-icon{background-position:-192px 0}div.jsoneditor-contextmenu button.jsoneditor-transform>div.jsoneditor-icon{background-position:-216px 0}div.jsoneditor-contextmenu ul li button.jsoneditor-selected,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover{color:#fff;background-color:#ee422e}div.jsoneditor-contextmenu ul li{overflow:hidden}div.jsoneditor-contextmenu ul li ul{display:none;position:relative;left:-10px;top:0;border:none;box-shadow:inset 0 0 10px rgba(128,128,128,.5);padding:0 10px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}div.jsoneditor-contextmenu ul li ul li button{padding-left:24px;animation:all ease-in-out 1s}div.jsoneditor-contextmenu ul li ul li button:focus,div.jsoneditor-contextmenu ul li ul li button:hover{background-color:#f5f5f5}div.jsoneditor-contextmenu button.jsoneditor-type-string>div.jsoneditor-icon{background-position:-144px 0}div.jsoneditor-contextmenu button.jsoneditor-type-auto>div.jsoneditor-icon{background-position:-120px 0}div.jsoneditor-contextmenu button.jsoneditor-type-object>div.jsoneditor-icon{background-position:-72px 0}div.jsoneditor-contextmenu button.jsoneditor-type-array>div.jsoneditor-icon{background-position:-96px 0}div.jsoneditor-contextmenu button.jsoneditor-type-modes>div.jsoneditor-icon{background-image:none;width:6px}.jsoneditor-modal-overlay{position:absolute!important;background:#010101!important;opacity:.3!important}.jsoneditor-modal{position:absolute!important;max-width:95%!important;width:auto!important;border-radius:2px!important;padding:45px 15px 15px 15px!important;box-shadow:2px 2px 12px rgba(128,128,128,.3)!important;color:#4d4d4d;line-height:1.3em}.jsoneditor-modal.jsoneditor-modal-transform{width:600px!important}.jsoneditor-modal .pico-modal-header{position:absolute;box-sizing:border-box;top:0;left:0;width:100%;padding:0 10px;height:30px;line-height:30px;font-family:arial,sans-serif;font-size:11pt;background:#3883fa;color:#fff}.jsoneditor-modal table{width:100%}.jsoneditor-modal table td,.jsoneditor-modal table th{padding:5px 20px 5px 0;text-align:left;vertical-align:top;font-weight:400;color:#4d4d4d;line-height:32px}.jsoneditor-modal p:first-child{margin-top:0}.jsoneditor-modal a{color:#3883fa}.jsoneditor-modal table td.jsoneditor-modal-input{text-align:right;padding-right:0;white-space:nowrap}.jsoneditor-modal table td.jsoneditor-modal-actions{padding-top:15px}.jsoneditor-modal .pico-close{background:0 0!important;font-size:24px!important;top:7px!important;right:7px!important;color:#fff}.jsoneditor-modal #query,.jsoneditor-modal input,.jsoneditor-modal select,.jsoneditor-modal textarea{background:#fff;border:1px solid #d3d3d3;color:#4d4d4d;border-radius:3px;padding:4px}.jsoneditor-modal,.jsoneditor-modal #query,.jsoneditor-modal input,.jsoneditor-modal option,.jsoneditor-modal select,.jsoneditor-modal table td,.jsoneditor-modal table th,.jsoneditor-modal textarea{font-size:10.5pt;font-family:arial,sans-serif}.jsoneditor-modal #query,.jsoneditor-modal .jsoneditor-transform-preview{font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt}.jsoneditor-modal input[type=button],.jsoneditor-modal input[type=submit]{background:#f5f5f5;padding:4px 20px}.jsoneditor-modal input,.jsoneditor-modal select{cursor:pointer}.jsoneditor-modal input{padding:4px}.jsoneditor-modal input[type=text]{cursor:inherit}.jsoneditor-modal input[disabled]{background:#d3d3d3;color:grey}.jsoneditor-modal .jsoneditor-select-wrapper{position:relative;display:inline-block}.jsoneditor-modal .jsoneditor-select-wrapper:after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #666;position:absolute;right:8px;top:14px;pointer-events:none}.jsoneditor-modal select{padding:3px 24px 3px 10px;min-width:180px;max-width:350px;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:0;text-overflow:"";font-size:10pt;line-height:1.5em}.jsoneditor-modal select::-ms-expand{display:none}.jsoneditor-modal .jsoneditor-button-group input{padding:4px 10px;margin:0;border-radius:0;border-left-style:none}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-first{border-top-left-radius:3px;border-bottom-left-radius:3px;border-left-style:solid}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-last{border-top-right-radius:3px;border-bottom-right-radius:3px}.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc,.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc{background:#3883fa;border-color:#3883fa;color:#fff}.jsoneditor-modal #query,.jsoneditor-modal .jsoneditor-transform-preview{width:100%;box-sizing:border-box}.jsoneditor-modal .jsoneditor-transform-preview{background:#f5f5f5;height:200px}.jsoneditor-modal .jsoneditor-transform-preview.jsoneditor-error{color:#ee422e}.jsoneditor-modal .jsoneditor-jmespath-wizard{line-height:1.2em;width:100%;background:#ffffe0;border:1px solid #ffe99a;padding:0 10px 10px;border-radius:3px}.jsoneditor-modal .jsoneditor-jmespath-wizard-label{font-style:italic;margin:4px 0 2px 0}.jsoneditor-modal .jsoneditor-inline{position:relative;display:inline-block;width:100%;padding:2px}.jsoneditor-modal .jsoneditor-jmespath-filter{display:flex;flex-wrap:wrap}.jsoneditor-modal .jsoneditor-jmespath-filter-field{width:170px}.jsoneditor-modal .jsoneditor-jmespath-filter-relation{width:100px}.jsoneditor-modal .jsoneditor-jmespath-filter-value{min-width:100px;flex:1}.jsoneditor-modal .jsoneditor-jmespath-sort-field{width:170px}.jsoneditor-modal .jsoneditor-jmespath-sort-order{width:150px}.jsoneditor-modal .jsoneditor-jmespath-select-fields{width:100%}.jsoneditor-modal .selectr-selected{border-color:#d3d3d3;padding:4px 28px 4px 8px}.jsoneditor-modal .selectr-selected .selectr-tag{background-color:#3883fa;border-radius:5px}div.jsoneditor-menu{width:100%;height:35px;padding:2px;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;background-color:#3883fa;border-bottom:1px solid #3883fa}div.jsoneditor-menu>button,div.jsoneditor-menu>div.jsoneditor-modes>button{width:26px;height:26px;margin:2px;padding:0;border-radius:2px;border:1px solid transparent;background:transparent url(img/jsoneditor-icons.svg);color:#fff;opacity:.8;font-family:arial,sans-serif;font-size:10pt;float:left}div.jsoneditor-menu>button:hover,div.jsoneditor-menu>div.jsoneditor-modes>button:hover{background-color:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4)}div.jsoneditor-menu>button:active,div.jsoneditor-menu>button:focus,div.jsoneditor-menu>div.jsoneditor-modes>button:active,div.jsoneditor-menu>div.jsoneditor-modes>button:focus{background-color:rgba(255,255,255,.3)}div.jsoneditor-menu>button:disabled,div.jsoneditor-menu>div.jsoneditor-modes>button:disabled{opacity:.5}div.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}div.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}div.jsoneditor-menu>button.jsoneditor-sort{background-position:-120px -96px}div.jsoneditor-menu>button.jsoneditor-transform{background-position:-144px -96px}div.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}div.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}div.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}div.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}div.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}div.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}div.jsoneditor-menu>button.jsoneditor-repair{background-position:-96px -96px}div.jsoneditor-menu>div.jsoneditor-modes{display:inline-block;float:left}div.jsoneditor-menu>div.jsoneditor-modes>button{background-image:none;width:auto;padding-left:6px;padding-right:6px}div.jsoneditor-menu>button.jsoneditor-separator,div.jsoneditor-menu>div.jsoneditor-modes>button.jsoneditor-separator{margin-left:10px}div.jsoneditor-menu a{font-family:arial,sans-serif;font-size:10pt;color:#fff;opacity:.8;vertical-align:middle}div.jsoneditor-menu a:hover{opacity:1}div.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;position:absolute;right:0;top:0;padding:10px}table.jsoneditor-search div.jsoneditor-results,table.jsoneditor-search input{font-family:arial,sans-serif;font-size:10pt;color:#1a1a1a;background:0 0}table.jsoneditor-search div.jsoneditor-results{color:#fff;padding-right:5px;line-height:24px}table.jsoneditor-search{position:absolute;right:4px;top:4px;border-collapse:collapse;border-spacing:0}table.jsoneditor-search div.jsoneditor-frame{border:1px solid transparent;background-color:#fff;padding:0 2px;margin:0}table.jsoneditor-search div.jsoneditor-frame table{border-collapse:collapse}table.jsoneditor-search input{width:120px;border:none;outline:0;margin:1px;line-height:20px}table.jsoneditor-search button{width:16px;height:24px;padding:0;margin:0;border:none;background:url(img/jsoneditor-icons.svg);vertical-align:top}table.jsoneditor-search button:hover{background-color:transparent}table.jsoneditor-search button.jsoneditor-refresh{width:18px;background-position:-99px -73px}table.jsoneditor-search button.jsoneditor-next{cursor:pointer;background-position:-124px -73px}table.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}table.jsoneditor-search button.jsoneditor-previous{cursor:pointer;background-position:-148px -73px;margin-right:2px}table.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}div.jsoneditor div.autocomplete.dropdown{position:absolute;background:#fff;box-shadow:2px 2px 12px rgba(128,128,128,.3);border:1px solid #d3d3d3;z-index:100;overflow-x:hidden;overflow-y:auto;cursor:default;margin:0;padding-left:2pt;padding-right:5pt;text-align:left;outline:0;font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt}div.jsoneditor div.autocomplete.dropdown .item{color:#333}div.jsoneditor div.autocomplete.dropdown .item.hover{background-color:#ddd}div.jsoneditor div.autocomplete.hint{color:#aaa;top:4px;left:4px}div.jsoneditor-treepath{padding:0 5px;overflow:hidden}div.jsoneditor-treepath div.jsoneditor-contextmenu-root{position:absolute;left:0}div.jsoneditor-treepath span.jsoneditor-treepath-element{margin:1px;font-family:arial,sans-serif;font-size:10pt}div.jsoneditor-treepath span.jsoneditor-treepath-seperator{margin:2px;font-size:9pt;font-family:arial,sans-serif}div.jsoneditor-treepath span.jsoneditor-treepath-element:hover,div.jsoneditor-treepath span.jsoneditor-treepath-seperator:hover{cursor:pointer;text-decoration:underline}div.jsoneditor-statusbar{line-height:26px;height:26px;margin-top:-1px;color:grey;background-color:#ebebeb;border-top:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:10pt}div.jsoneditor-statusbar>.jsoneditor-curserinfo-label{margin:0 2px 0 4px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-val{margin-right:12px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-count{margin-left:4px}div.jsoneditor-navigation-bar{width:100%;height:26px;line-height:26px;padding:0;margin:0;border-bottom:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:grey;background-color:#ebebeb;overflow:hidden;font-family:arial,sans-serif;font-size:10pt}/*! +div.jsoneditor .jsoneditor-search input{height:auto;border:inherit}div.jsoneditor .jsoneditor-search input:focus{border:none!important;box-shadow:none!important}div.jsoneditor table{border-collapse:collapse;width:auto}div.jsoneditor td,div.jsoneditor th{padding:0;display:table-cell;text-align:left;vertical-align:inherit;border-radius:inherit}div.jsoneditor-field,div.jsoneditor-readonly,div.jsoneditor-value{border:1px solid transparent;min-height:16px;min-width:32px;padding:2px;margin:1px;word-wrap:break-word;float:left}div.jsoneditor-field p,div.jsoneditor-value p{margin:0}div.jsoneditor-value{word-break:break-word}div.jsoneditor-readonly{min-width:16px;color:grey}div.jsoneditor-empty{border-color:#d3d3d3;border-style:dashed;border-radius:2px}div.jsoneditor-field.jsoneditor-empty::after,div.jsoneditor-value.jsoneditor-empty::after{pointer-events:none;color:#d3d3d3;font-size:8pt}div.jsoneditor-field.jsoneditor-empty::after{content:"field"}div.jsoneditor-value.jsoneditor-empty::after{content:"value"}a.jsoneditor-value.jsoneditor-url,div.jsoneditor-value.jsoneditor-url{color:green;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;padding:2px;margin:2px}a.jsoneditor-value.jsoneditor-url:focus,a.jsoneditor-value.jsoneditor-url:hover{color:#ee422e}div.jsoneditor td.jsoneditor-separator{padding:3px 0;vertical-align:top;color:grey}div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value.jsoneditor-highlight,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover{background-color:#ffffab;border:1px solid #ff0;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-string{color:green}div.jsoneditor-value.jsoneditor-array,div.jsoneditor-value.jsoneditor-object{min-width:16px;color:grey}div.jsoneditor-value.jsoneditor-number{color:#ee422e}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-value.jsoneditor-invalid{color:#000}div.jsoneditor-tree button{width:24px;height:24px;padding:0;margin:0;border:none;cursor:pointer;background:transparent url(img/jsoneditor-icons.svg)}div.jsoneditor-mode-form tr.jsoneditor-expandable td.jsoneditor-tree,div.jsoneditor-mode-view tr.jsoneditor-expandable td.jsoneditor-tree{cursor:pointer}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-contextmenu.jsoneditor-selected,div.jsoneditor-tree button.jsoneditor-contextmenu:focus,div.jsoneditor-tree button.jsoneditor-contextmenu:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu{background-position:-48px -48px}div.jsoneditor-tree :focus{outline:0}div.jsoneditor-tree button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-invisible{visibility:hidden;background:0 0}div.jsoneditor-tree div.jsoneditor-show-more{display:inline-block;padding:3px 4px;margin:2px 0;background-color:#e5e5e5;border-radius:3px;color:grey;font-family:arial,sans-serif;font-size:10pt}div.jsoneditor-tree div.jsoneditor-show-more a{display:inline-block;color:grey}div.jsoneditor-tree div.jsoneditor-show-more a:focus,div.jsoneditor-tree div.jsoneditor-show-more a:hover{color:#ee422e}div.jsoneditor{color:#1a1a1a;border:1px solid #3883fa;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;position:relative;padding:0;line-height:100%}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%}div.jsoneditor-tree div.jsoneditor-tree-inner{padding-bottom:300px}div.jsoneditor-outer{position:static;width:100%;height:100%;margin:-35px 0 0 0;padding:35px 0 0 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div.jsoneditor-outer.has-nav-bar{margin:-61px 0 0 0;padding:61px 0 0 0}div.jsoneditor-outer.has-status-bar{margin:-35px 0 -26px 0;padding:35px 0 26px 0}.ace-jsoneditor,textarea.jsoneditor-text{min-height:150px}div.jsoneditor-tree{width:100%;height:100%;position:relative;overflow:auto}textarea.jsoneditor-text{width:100%;height:100%;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;outline-width:0;border:none;background-color:#fff;resize:none}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#d3d3d3}tr.jsoneditor-selected button.jsoneditor-contextmenu,tr.jsoneditor-selected button.jsoneditor-dragarea{visibility:hidden}tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{visibility:visible}div.jsoneditor-tree button.jsoneditor-dragarea{background:url(img/jsoneditor-icons.svg) -72px -72px;cursor:move}div.jsoneditor-tree button.jsoneditor-dragarea:focus,div.jsoneditor-tree button.jsoneditor-dragarea:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}div.jsoneditor td,div.jsoneditor th,div.jsoneditor tr{padding:0;margin:0}div.jsoneditor td{vertical-align:top}div.jsoneditor td.jsoneditor-tree{vertical-align:top}.jsoneditor-schema-error,div.jsoneditor td,div.jsoneditor textarea,div.jsoneditor th,div.jsoneditor-field,div.jsoneditor-value{font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt;color:#1a1a1a}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}div.jsoneditor-tree .jsoneditor-schema-error{width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}.jsoneditor-schema-error .jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.4);color:#fff;display:none;padding:7px 10px;position:absolute;width:200px;z-index:4}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below{top:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left{top:-7px;right:32px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right{top:-7px;left:32px}.jsoneditor-schema-error .jsoneditor-popover:before{border-right:7px solid transparent;border-left:7px solid transparent;content:'';display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;right:-14px;left:inherit;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;left:-14px;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error:focus .jsoneditor-popover,.jsoneditor-schema-error:hover .jsoneditor-popover{display:block;-webkit-animation:fade-in .3s linear 1,move-up .3s linear 1;-moz-animation:fade-in .3s linear 1,move-up .3s linear 1;-ms-animation:fade-in .3s linear 1,move-up .3s linear 1}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@-moz-keyframes fade-in{from{opacity:0}to{opacity:1}}@-ms-keyframes fade-in{from{opacity:0}to{opacity:1}}.jsoneditor .jsoneditor-text-errors{width:100%;border-collapse:collapse;background-color:#ffef8b;border-top:1px solid gold}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}div.jsoneditor-contextmenu-root{position:relative;width:0;height:0}div.jsoneditor-contextmenu{position:absolute;box-sizing:content-box;z-index:99999}div.jsoneditor-contextmenu li,div.jsoneditor-contextmenu ul{box-sizing:content-box;position:relative}div.jsoneditor-contextmenu ul{position:relative;left:0;top:0;width:128px;background:#fff;border:1px solid #d3d3d3;box-shadow:2px 2px 12px rgba(128,128,128,.3);list-style:none;margin:0;padding:0}div.jsoneditor-contextmenu ul li button{position:relative;padding:0 4px 0 0;margin:0;width:128px;height:auto;border:none;cursor:pointer;color:#4d4d4d;background:0 0;font-size:10pt;font-family:arial,sans-serif;box-sizing:border-box;text-align:left}div.jsoneditor-contextmenu ul li button::-moz-focus-inner{padding:0;border:0}div.jsoneditor-contextmenu ul li button:focus,div.jsoneditor-contextmenu ul li button:hover{color:#1a1a1a;background-color:#f5f5f5;outline:0}div.jsoneditor-contextmenu ul li button.jsoneditor-default{width:96px}div.jsoneditor-contextmenu ul li button.jsoneditor-expand{float:right;width:32px;height:24px;border-left:1px solid #e5e5e5}div.jsoneditor-contextmenu div.jsoneditor-icon{position:absolute;top:0;left:0;width:24px;height:24px;border:none;padding:0;margin:0;background-image:url(img/jsoneditor-icons.svg)}div.jsoneditor-contextmenu ul li ul div.jsoneditor-icon{margin-left:24px}div.jsoneditor-contextmenu div.jsoneditor-text{padding:4px 0 4px 24px;word-wrap:break-word}div.jsoneditor-contextmenu div.jsoneditor-text.jsoneditor-right-margin{padding-right:24px}div.jsoneditor-contextmenu ul li button div.jsoneditor-expand{position:absolute;top:0;right:0;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) 0 -72px}div.jsoneditor-contextmenu div.jsoneditor-separator{height:0;border-top:1px solid #e5e5e5;padding-top:5px;margin-top:5px}div.jsoneditor-contextmenu button.jsoneditor-remove>div.jsoneditor-icon{background-position:-24px 0}div.jsoneditor-contextmenu button.jsoneditor-append>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-insert>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-duplicate>div.jsoneditor-icon{background-position:-48px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-asc>div.jsoneditor-icon{background-position:-168px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-desc>div.jsoneditor-icon{background-position:-192px 0}div.jsoneditor-contextmenu button.jsoneditor-transform>div.jsoneditor-icon{background-position:-216px 0}div.jsoneditor-contextmenu ul li button.jsoneditor-selected,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover{color:#fff;background-color:#ee422e}div.jsoneditor-contextmenu ul li{overflow:hidden}div.jsoneditor-contextmenu ul li ul{display:none;position:relative;left:-10px;top:0;border:none;box-shadow:inset 0 0 10px rgba(128,128,128,.5);padding:0 10px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}div.jsoneditor-contextmenu ul li ul li button{padding-left:24px;animation:all ease-in-out 1s}div.jsoneditor-contextmenu ul li ul li button:focus,div.jsoneditor-contextmenu ul li ul li button:hover{background-color:#f5f5f5}div.jsoneditor-contextmenu button.jsoneditor-type-string>div.jsoneditor-icon{background-position:-144px 0}div.jsoneditor-contextmenu button.jsoneditor-type-auto>div.jsoneditor-icon{background-position:-120px 0}div.jsoneditor-contextmenu button.jsoneditor-type-object>div.jsoneditor-icon{background-position:-72px 0}div.jsoneditor-contextmenu button.jsoneditor-type-array>div.jsoneditor-icon{background-position:-96px 0}div.jsoneditor-contextmenu button.jsoneditor-type-modes>div.jsoneditor-icon{background-image:none;width:6px}.jsoneditor-modal-overlay{position:absolute!important;background:#010101!important;opacity:.3!important}.jsoneditor-modal{position:absolute!important;max-width:95%!important;width:auto!important;border-radius:2px!important;padding:45px 15px 15px 15px!important;box-shadow:2px 2px 12px rgba(128,128,128,.3)!important;color:#4d4d4d;line-height:1.3em}.jsoneditor-modal.jsoneditor-modal-transform{width:600px!important}.jsoneditor-modal .pico-modal-header{position:absolute;box-sizing:border-box;top:0;left:0;width:100%;padding:0 10px;height:30px;line-height:30px;font-family:arial,sans-serif;font-size:11pt;background:#3883fa;color:#fff}.jsoneditor-modal table{width:100%}.jsoneditor-modal table td,.jsoneditor-modal table th{padding:5px 20px 5px 0;text-align:left;vertical-align:top;font-weight:400;color:#4d4d4d;line-height:32px}.jsoneditor-modal p:first-child{margin-top:0}.jsoneditor-modal a{color:#3883fa}.jsoneditor-modal table td.jsoneditor-modal-input{text-align:right;padding-right:0;white-space:nowrap}.jsoneditor-modal table td.jsoneditor-modal-actions{padding-top:15px}.jsoneditor-modal .pico-close{background:0 0!important;font-size:24px!important;top:7px!important;right:7px!important;color:#fff}.jsoneditor-modal #query,.jsoneditor-modal input,.jsoneditor-modal select,.jsoneditor-modal textarea{background:#fff;border:1px solid #d3d3d3;color:#4d4d4d;border-radius:3px;padding:4px}.jsoneditor-modal,.jsoneditor-modal #query,.jsoneditor-modal input,.jsoneditor-modal option,.jsoneditor-modal select,.jsoneditor-modal table td,.jsoneditor-modal table th,.jsoneditor-modal textarea{font-size:10.5pt;font-family:arial,sans-serif}.jsoneditor-modal #query,.jsoneditor-modal .jsoneditor-transform-preview{font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt}.jsoneditor-modal input[type=button],.jsoneditor-modal input[type=submit]{background:#f5f5f5;padding:4px 20px}.jsoneditor-modal input,.jsoneditor-modal select{cursor:pointer}.jsoneditor-modal input{padding:4px}.jsoneditor-modal input[type=text]{cursor:inherit}.jsoneditor-modal input[disabled]{background:#d3d3d3;color:grey}.jsoneditor-modal .jsoneditor-select-wrapper{position:relative;display:inline-block}.jsoneditor-modal .jsoneditor-select-wrapper:after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #666;position:absolute;right:8px;top:14px;pointer-events:none}.jsoneditor-modal select{padding:3px 24px 3px 10px;min-width:180px;max-width:350px;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:0;text-overflow:"";font-size:10pt;line-height:1.5em}.jsoneditor-modal select::-ms-expand{display:none}.jsoneditor-modal .jsoneditor-button-group input{padding:4px 10px;margin:0;border-radius:0;border-left-style:none}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-first{border-top-left-radius:3px;border-bottom-left-radius:3px;border-left-style:solid}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-last{border-top-right-radius:3px;border-bottom-right-radius:3px}.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc,.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc{background:#3883fa;border-color:#3883fa;color:#fff}.jsoneditor-modal #query,.jsoneditor-modal .jsoneditor-transform-preview{width:100%;box-sizing:border-box}.jsoneditor-modal .jsoneditor-transform-preview{background:#f5f5f5;height:200px}.jsoneditor-modal .jsoneditor-transform-preview.jsoneditor-error{color:#ee422e}.jsoneditor-modal .jsoneditor-jmespath-wizard{line-height:1.2em;width:100%;background:#ffffe0;border:1px solid #ffe99a;padding:0 10px 10px;border-radius:3px}.jsoneditor-modal .jsoneditor-jmespath-wizard-label{font-style:italic;margin:4px 0 2px 0}.jsoneditor-modal .jsoneditor-inline{position:relative;display:inline-block;width:100%;padding:2px}.jsoneditor-modal .jsoneditor-jmespath-filter{display:flex;flex-wrap:wrap}.jsoneditor-modal .jsoneditor-jmespath-filter-field{width:170px}.jsoneditor-modal .jsoneditor-jmespath-filter-relation{width:100px}.jsoneditor-modal .jsoneditor-jmespath-filter-value{min-width:100px;flex:1}.jsoneditor-modal .jsoneditor-jmespath-sort-field{width:170px}.jsoneditor-modal .jsoneditor-jmespath-sort-order{width:150px}.jsoneditor-modal .jsoneditor-jmespath-select-fields{width:100%}.jsoneditor-modal .selectr-selected{border-color:#d3d3d3;padding:4px 28px 4px 8px}.jsoneditor-modal .selectr-selected .selectr-tag{background-color:#3883fa;border-radius:5px}div.jsoneditor-menu{width:100%;height:35px;padding:2px;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;background-color:#3883fa;border-bottom:1px solid #3883fa}div.jsoneditor-menu>button,div.jsoneditor-menu>div.jsoneditor-modes>button{width:26px;height:26px;margin:2px;padding:0;border-radius:2px;border:1px solid transparent;background:transparent url(img/jsoneditor-icons.svg);color:#fff;opacity:.8;font-family:arial,sans-serif;font-size:10pt;float:left}div.jsoneditor-menu>button:hover,div.jsoneditor-menu>div.jsoneditor-modes>button:hover{background-color:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4)}div.jsoneditor-menu>button:active,div.jsoneditor-menu>button:focus,div.jsoneditor-menu>div.jsoneditor-modes>button:active,div.jsoneditor-menu>div.jsoneditor-modes>button:focus{background-color:rgba(255,255,255,.3)}div.jsoneditor-menu>button:disabled,div.jsoneditor-menu>div.jsoneditor-modes>button:disabled{opacity:.5}div.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}div.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}div.jsoneditor-menu>button.jsoneditor-sort{background-position:-120px -96px}div.jsoneditor-menu>button.jsoneditor-transform{background-position:-144px -96px}div.jsoneditor.jsoneditor-mode-form>div.jsoneditor-menu>button.jsoneditor-sort,div.jsoneditor.jsoneditor-mode-form>div.jsoneditor-menu>button.jsoneditor-transform,div.jsoneditor.jsoneditor-mode-view>div.jsoneditor-menu>button.jsoneditor-sort,div.jsoneditor.jsoneditor-mode-view>div.jsoneditor-menu>button.jsoneditor-transform{display:none}div.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}div.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}div.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}div.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}div.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}div.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}div.jsoneditor-menu>button.jsoneditor-repair{background-position:-96px -96px}div.jsoneditor-menu>div.jsoneditor-modes{display:inline-block;float:left}div.jsoneditor-menu>div.jsoneditor-modes>button{background-image:none;width:auto;padding-left:6px;padding-right:6px}div.jsoneditor-menu>button.jsoneditor-separator,div.jsoneditor-menu>div.jsoneditor-modes>button.jsoneditor-separator{margin-left:10px}div.jsoneditor-menu a{font-family:arial,sans-serif;font-size:10pt;color:#fff;opacity:.8;vertical-align:middle}div.jsoneditor-menu a:hover{opacity:1}div.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;position:absolute;right:0;top:0;padding:10px}table.jsoneditor-search div.jsoneditor-results,table.jsoneditor-search input{font-family:arial,sans-serif;font-size:10pt;color:#1a1a1a;background:0 0}table.jsoneditor-search div.jsoneditor-results{color:#fff;padding-right:5px;line-height:24px;padding-top:2px}table.jsoneditor-search{position:absolute;right:4px;top:4px;border-collapse:collapse;border-spacing:0}table.jsoneditor-search div.jsoneditor-frame{border:1px solid transparent;background-color:#fff;padding:0 2px;margin:0}table.jsoneditor-search div.jsoneditor-frame table{border-collapse:collapse}table.jsoneditor-search input{width:120px;border:none;outline:0;margin:1px;line-height:20px}table.jsoneditor-search button{width:16px;height:24px;padding:0;margin:0;border:none;background:url(img/jsoneditor-icons.svg);vertical-align:top}table.jsoneditor-search button:hover{background-color:transparent}table.jsoneditor-search button.jsoneditor-refresh{width:18px;background-position:-99px -73px}table.jsoneditor-search button.jsoneditor-next{cursor:pointer;background-position:-124px -73px}table.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}table.jsoneditor-search button.jsoneditor-previous{cursor:pointer;background-position:-148px -73px;margin-right:2px}table.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}div.jsoneditor div.autocomplete.dropdown{position:absolute;background:#fff;box-shadow:2px 2px 12px rgba(128,128,128,.3);border:1px solid #d3d3d3;z-index:100;overflow-x:hidden;overflow-y:auto;cursor:default;margin:0;padding-left:2pt;padding-right:5pt;text-align:left;outline:0;font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt}div.jsoneditor div.autocomplete.dropdown .item{color:#333}div.jsoneditor div.autocomplete.dropdown .item.hover{background-color:#ddd}div.jsoneditor div.autocomplete.hint{color:#aaa;top:4px;left:4px}div.jsoneditor-treepath{padding:0 5px;overflow:hidden}div.jsoneditor-treepath div.jsoneditor-contextmenu-root{position:absolute;left:0}div.jsoneditor-treepath span.jsoneditor-treepath-element{margin:1px;font-family:arial,sans-serif;font-size:10pt}div.jsoneditor-treepath span.jsoneditor-treepath-seperator{margin:2px;font-size:9pt;font-family:arial,sans-serif}div.jsoneditor-treepath span.jsoneditor-treepath-element:hover,div.jsoneditor-treepath span.jsoneditor-treepath-seperator:hover{cursor:pointer;text-decoration:underline}div.jsoneditor-statusbar{line-height:26px;height:26px;margin-top:-1px;color:grey;background-color:#ebebeb;border-top:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:10pt}div.jsoneditor-statusbar>.jsoneditor-curserinfo-label{margin:0 2px 0 4px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-val{margin-right:12px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-count{margin-left:4px}div.jsoneditor-navigation-bar{width:100%;height:26px;line-height:26px;padding:0;margin:0;border-bottom:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:grey;background-color:#ebebeb;overflow:hidden;font-family:arial,sans-serif;font-size:10pt}/*! * Selectr 2.4.0 * https://github.com/Mobius1/Selectr * diff --git a/dist/jsoneditor.min.js b/dist/jsoneditor.min.js index 37c6fc8..9d932b5 100644 --- a/dist/jsoneditor.min.js +++ b/dist/jsoneditor.min.js @@ -24,19 +24,19 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.19.2 - * @date 2018-08-02 + * @version 5.20.0 + * @date 2018-08-10 */ -!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 s=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===s.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 s=i(51),o=i(71),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,s=a.extend({},this.options),o=s.mode;s.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+s.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,s),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 s.onModeChange&&e!==o)try{s.onModeChange(e,o)}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 s(e,t,i){var n=o.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function o(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),y=["%","/","?",";","#"].concat(v),w=["/","?","#"],C={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},A={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},E=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 s=r.toLowerCase();this.protocol=s,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var o="//"===n.substr(0,2);!o||r&&b[r]||(n=n.substr(2),this.slashes=!0)}if(!b[r]&&(o||r&&!A[r])){for(var a=-1,c=0;c127?S+="x":S+=x[_];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var $=g.slice(0,c),k=g.slice(c+1),B=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);B&&($.push(B[1]),k.unshift(B[2])),k.length&&(n="/"+k.join(".")+n),this.hostname=$.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],y=(i.host||e.host)&&("."===v||".."===v)||""===v,w=0,C=p.length;C>=0;C--)v=p[C],"."==v?p.splice(C,1):".."===v?(p.splice(C,1),w++):w&&(p.splice(C,1),w--);if(!u&&!f)for(;w--;w)p.unshift("..");!u||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),y&&"/"!==p.join("/").substr(-1)&&p.push("");var E=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=E?"":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 u=u||i.host&&p.length,u&&!E&&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(s){function o(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(B,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,s=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function d(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:b}function u(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*E>>1;n+=b)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,s,a,l,c,u,p,m=[],g=e.length,v=0,y=_,w=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&o("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&o("invalid-input"),c=d(e.charCodeAt(r++)),(c>=b||c>T((C-v)/a))&&o("overflow"),v+=c*a,u=l<=w?A:l>=w+E?E:l-w,!(cT(C/p)&&o("overflow"),a*=p;t=m.length+1,w=f(v-s,t,0==s),T(v/t)>C-y&&o("overflow"),y+=T(v/t),v%=t,m.splice(v++,0,y)}return h(m)}function m(e){var t,i,n,r,s,a,l,h,d,p,m,g,v,y,w,F=[];for(e=c(e),g=e.length,t=_,i=0,s=S,a=0;a=t&&mT((C-i)/v)&&o("overflow"),i+=(l-t)*v,t=l,a=0;aC&&o("overflow"),m==t){for(h=i,d=b;p=d<=s?A:d>=s+E?E:d-s,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=b-A,T=Math.floor,P=String.fromCharCode;w={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return w}.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 s={};if("string"!=typeof e||0===e.length)return s;e=e.split(t);var o=1e3;r&&"number"==typeof r.maxKeys&&(o=r.maxKeys);var a=e.length;o>0&&a>o&&(a=o);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),d=decodeURIComponent(c),u=decodeURIComponent(h),i(s,d)?Array.isArray(s[d])?s[d].push(u):s[d]=[s[d],u]:s[d]=u}return s}},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 s=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return s+encodeURIComponent(i(e))}).join(t):s+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";var i=Array.isArray,n=Object.keys,r=Object.prototype.hasOwnProperty;e.exports=function e(t,s){if(t===s)return!0;var o,a,l,c=i(t),h=i(s);if(c&&h){if((a=t.length)!=s.length)return!1;for(o=0;o=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(s="data"+(t-n||""),!r)return s}for(var a=s,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=d.call(arguments,1)),i(t)})})}function s(e){return Promise.all(e.map(n,this))}function o(e){for(var t=new e.constructor,i=Object.keys(e),r=[],s=0;s=1&&i<=12&&n>=1&&n<=u[i]}function s(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],s=i[3],o=i[5];return n<=23&&r<=59&&s<=59&&(!t||o)}function o(e){var t=e.split(C);return 2==t.length&&r(t[0])&&s(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return b.test(e)&&m.test(e)}function c(e){if(A.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),d=/^\d\d\d\d-(\d\d)-(\d\d)$/,u=[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,y=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,w=/^(?:\/(?:[^~\/]|~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:y,"json-pointer":w,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:s,"date-time":o,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:y,"json-pointer":w,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var C=/t|\s/i,b=/\/|:/,A=/[^\\]\\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"],s=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(s),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var s=Object.keys(i)[0];r=i[s],i=s,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,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(a||""),u="valid"+o;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(s),s="",!1!==e.createErrors?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),s+=" } "):s+=" {} ";var g=s;s=m.pop(),!e.compositeRule&&h?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(s+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(s+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var y="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var w=e.validate(v).replace(/validate\.schema/g,f.code);s+=" "+w+" ",h&&(s+=" if ("+y+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(s),s="",e.opts.passContext?s+=" "+r+".call(this, ":s+=" "+r+"( ",s+=" "+d+", (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);s+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var C=s;if(s=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(s+=" var "+u+"; "),s+=" try { "+e.yieldAwait+" "+C+"; ",h&&(s+=" "+u+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(s+=" "+u+" = false; "),s+=" } ",h&&(s+=" if ("+u+") { ")}else s+=" if (!"+C+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(s+=" else { ")}return s}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],s=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,d=l.baseId,u=!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 "'+o+'" 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 y=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(y){if(!e.async)throw new Error("async format in sync schema");var w="formats"+e.util.getProperty(o)+".validate";n+=" if (!("+e.yieldAwait+" "+w+"("+h+"))) { "}else{n+=" if (! ";var w="formats"+e.util.getProperty(o);g&&(w+=".validate"),n+="function"==typeof m?" "+w+"("+h+") ":" "+w+".test("+h+") ",n+=") { "}}var C=C||[];C.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=u?""+d:""+e.util.toQuotedString(o),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=u?"' + "+d+" + '":""+e.util.escapeQuotes(o),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=u?"validate.schema"+a:""+e.util.toQuotedString(o),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;return n=C.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+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,s=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="valid"+r,u="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,g="i"+r,v=f.dataLevel=e.dataLevel+1,y="data"+v,w=e.baseId;if(n+="var "+u+" = errors;var "+d+";",Array.isArray(o)){var C=e.schema.additionalItems;if(!1===C){n+=" "+d+" = "+h+".length <= "+o.length+"; ";var b=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+d+") { ";var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var E=n;n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=b,c&&(p+="}",n+=" else { ")}var F=o;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 $=e.validate(f);f.baseId=w,e.util.varOccurences($,y)<2?n+=" "+e.util.varReplace($,y,D)+" ":n+=" var "+y+" = "+D+"; "+$+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof C&&e.util.schemaHasRules(C,e.RULES.all)){f.schema=C,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+o.length+") { for (var "+g+" = "+o.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 $=e.validate(f);f.baseId=w,e.util.varOccurences($,y)<2?n+=" "+e.util.varReplace($,y,D)+" ":n+=" var "+y+" = "+D+"; "+$+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,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 $=e.validate(f);f.baseId=w,e.util.varOccurences($,y)<2?n+=" "+e.util.varReplace($,y,D)+" ":n+=" var "+y+" = "+D+"; "+$+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(s+=" var schema"+o+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,y=p?"<":">",w=p?">":"<",n=void 0;if(v){var C=e.util.getData(g.$data,a,e.dataPathArr),b="exclusive"+o,A="exclType"+o,E="exclIsNumber"+o,F="op"+o,x="' + "+F+" + '";s+=" var schemaExcl"+o+" = "+C+"; ",C="schemaExcl"+o,s+=" var "+b+"; var "+A+" = typeof "+C+"; if ("+A+" != 'boolean' && "+A+" != 'undefined' && "+A+" != 'number') { ";var n=m,S=S||[];S.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var _=s;s=S.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+_+"]); ":s+=" validate.errors = ["+_+"]; return false; ":s+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" "+A+" == 'number' ? ( ("+b+" = "+r+" === undefined || "+C+" "+y+"= "+r+") ? "+u+" "+w+"= "+C+" : "+u+" "+w+" "+r+" ) : ( ("+b+" = "+C+" === true) ? "+u+" "+w+"= "+r+" : "+u+" "+w+" "+r+" ) || "+u+" !== "+u+") { var op"+o+" = "+b+" ? '"+y+"' : '"+y+"=';"}else{var E="number"==typeof g,x=y;if(E&&f){var F="'"+x+"'";s+=" if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" ( "+r+" === undefined || "+g+" "+y+"= "+r+" ? "+u+" "+w+"= "+g+" : "+u+" "+w+" "+r+" ) || "+u+" !== "+u+") { "}else{E&&void 0===l?(b=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,w+="="):(E&&(r=Math[p?"min":"max"](g,l)),g===(!E||r)?(b=!0,n=m,h=e.errSchemaPath+"/"+m,w+="="):(b=!1,x+="="));var F="'"+x+"'";s+=" if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" "+u+" "+w+" "+r+" || "+u+" !== "+u+") { "}}n=n||t;var S=S||[];S.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+b+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+x+" ",s+=f?"' + "+r:r+"'"),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+c:""+l,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var _=s;return s=S.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+_+"]); ":s+=" validate.errors = ["+_+"]; return false; ":s+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",d&&(s+=" else { "),s}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(s+=" var schema"+o+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=l;var p="maxItems"==t?">":"<";s+="if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" "+u+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==t?"more":"less",s+=" than ",s+=f?"' + "+r+" + '":""+l,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+c:""+l,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var g=s;return s=m.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",d&&(s+=" else { "),s}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(s+=" var schema"+o+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=l;var p="maxLength"==t?">":"<";s+="if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?s+=" "+u+".length ":s+=" ucs2length("+u+") ",s+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==t?"longer":"shorter",s+=" than ",s+=f?"' + "+r+" + '":""+l,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+c:""+l,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var g=s;return s=m.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",d&&(s+=" else { "),s}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(s+=" var schema"+o+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=l;var p="maxProperties"==t?">":"<";s+="if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" Object.keys("+u+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==t?"more":"less",s+=" than ",s+=f?"' + "+r+" + '":""+l,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+c:""+l,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var g=s;return s=m.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",d&&(s+=" else { "),s}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",s=e.level,o=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(o||""),u=e.opts.$data&&a&&a.$data;u?(r+=" var schema"+s+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+s):n=a,r+="var division"+s+";if (",u&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+s+" = "+d+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+s+") - division"+s+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+s+" !== parseInt(division"+s+") ",r+=" ) ",u&&(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+=u?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),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,s=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(o,e.RULES.all)){u.schema=o,u.schemaPath=a,u.errSchemaPath=l,n+=" var "+d+" = errors; ";var p=e.compositeRule;e.compositeRule=u.compositeRule=!0,u.createErrors=!1;var m;u.opts.allErrors&&(m=u.opts.allErrors,u.opts.allErrors=!1),n+=" "+e.validate(u)+" ",u.createErrors=!0,m&&(u.opts.allErrors=m),e.compositeRule=u.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 = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; 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,s=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="valid"+r,u="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;n+="var "+u+" = errors;var prevValid"+r+" = false;var "+d+" = false;";var g=f.baseId,v=e.compositeRule;e.compositeRule=f.compositeRule=!0;var y=o;if(y)for(var w,C=-1,b=y.length-1;C5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=b;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+d+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ce+"', limit: "+we+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+be+" than "+we+' 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 X=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+X+"]); ":n+=" validate.errors = ["+X+"]; return false; ":n+=" var err = "+X+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==ye&&(n+=" else ")}if(void 0!==ye){var we=ye,Ce="maximum",be="more";n+=" "+d+" = pgPropCount"+r+" <= "+ye+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+d+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ce+"', limit: "+we+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+be+" than "+we+' 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 X=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+X+"]); ":n+=" validate.errors = ["+X+"]; return false; ":n+=" var err = "+X+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+d+") { ",p+="}")}}}}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,s=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(o,e.RULES.all)){u.schema=o,u.schemaPath=a,u.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",y=u.dataLevel=e.dataLevel+1,w="data"+y,C="dataProperties"+r,b=e.opts.ownProperties,A=e.baseId;n+=" var "+d+" = errors; ",b&&(n+=" var "+C+" = undefined; "),n+=b?" "+C+" = "+C+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+C+".length; "+m+"++) { var "+p+" = "+C+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var E=p,F=e.compositeRule;e.compositeRule=u.compositeRule=!0;var x=e.validate(u);u.baseId=A,e.util.varOccurences(x,w)<2?n+=" "+e.util.varReplace(x,w,E)+" ":n+=" var "+w+" = "+E+"; "+x+" ",e.compositeRule=u.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,A=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",b){u||(n+=" var "+f+" = validate.schema"+a+"; ");var E="i"+r,F="schema"+r+"["+E+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(C,F,e.opts.jsonPointers)),n+=" var "+d+" = true; ",u&&(n+=" if (schema"+r+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+r+")) "+d+" = false; else {"),n+=" for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { "+d+" = "+h+"["+f+"["+E+"]] !== undefined ",A&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+E+"]) "),n+="; if (!"+d+") break; } ",u&&(n+=" } "),n+=" if (!"+d+") { ";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 $,E=-1,k=D.length-1;E 1) { var i = "+d+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+d+"[i], "+d+"[j])) { "+u+" = false; break outer; } } } } ",f&&(r+=" } "),r+=" if (!"+u+") { ";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: "+d+" "),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>s-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=o,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},y._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=p("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");n.type="button",n.title=p("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n);var r=document.createElement("button");r.type="button",r.className="jsoneditor-sort",r.title=p("sortTitleShort"),r.onclick=function(){var e=t.options.modalAnchor||v;u(t.node,e)},this.menu.appendChild(r);var o=document.createElement("button");if(o.type="button",o.title=p("transformTitleShort"),o.className="jsoneditor-transform",o.onclick=function(){var e=t.options.modalAnchor||v;f(t.node,e)},this.menu.appendChild(o),this.history){var l=document.createElement("button");l.type="button",l.className="jsoneditor-undo jsoneditor-separator",l.title=p("undo"),l.onclick=function(){t._onUndo()},this.menu.appendChild(l),this.dom.undo=l;var d=document.createElement("button");d.type="button",d.className="jsoneditor-redo",d.title=p("redo"),d.onclick=function(){t._onRedo()},this.menu.appendChild(d),this.dom.redo=d,this.history.onChange=function(){l.disabled=!t.history.canUndo(),d.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var m=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){m.modeSwitcher.destroy(),m.setMode(e),m.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new s(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)))},y._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},y._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},y._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)},y._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")},y._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},y._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())}},y._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},y._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},y._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)}))}},y._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;if(i&&n){if(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.multiselection.nodes&&this.multiselection.nodes.length){var r=this.multiselection.nodes[0];this.multiselection.start===r||this.multiselection.start.isDescendantOf(r)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},y._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)},y.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},y.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];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var i=this.getSelection();this._selectionChangedHandler(i.start,i.end)}}},y._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 d=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,d,e.target),50)}o&&(e.preventDefault(),e.stopPropagation())},y._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.scrollableContent=document.createElement("div"),this.scrollableContent.className="jsoneditor-tree",e.appendChild(this.scrollableContent),this.content=document.createElement("div"),this.content.className="jsoneditor-tree-inner",this.scrollableContent.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)},y.showContextMenu=function(e,t){var i=[],n=this;i.push({text:p("duplicateText"),title:p("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:p("remove"),title:p("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new o(i,{close:t}).show(e,this.content)},y.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],i=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=i.serialize()):(e.start=i.serialize(),e.end=t.serialize())}return e},y.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=h.debounce(e,this.DEBOUNCE_INTERVAL))},y.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var i=this._getNodeIntsncesByRange(e,t);i.forEach(function(e){e.expandTo()}),this.select(i)},y._getNodeIntsncesByRange=function(e,t){var i,n;e&&e.path&&(i=this.node.findNodeByPath(e.path),t&&t.path&&(n=this.node.findNodeByPath(t.path)));var r=[];if(i instanceof l)if(n instanceof l&&n!==i)if(i.parent===n.parent){var e,t;i.getIndex()=0},n.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(s.push(" "),o++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=s.length-1;e>=0;){var t=s[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,o++,n=t();-1===e.indexOf(i)?s.push('"'+i+'"'):s.push(i)}():(s.push(c),o++)}return s.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=o[a];!0===l.specified&&s.removeAttribute(l.name)}t.stripFormatting(s)}},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="",s=0,o=n.length;s5){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,s=arguments,o=function(){n=null,i||e.apply(r,s)},a=i&&!n;clearTimeout(n),n=setTimeout(o,t),a&&e.apply(r,s)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,s=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)s--,r--;return{start:n,end:s}},t.getInputSelection=function(e){function t(t){var i=e.value.substring(0,t);return{row:(i.match(/\n/g)||[]).length+1,column:i.length-i.lastIndexOf("\n")}}var i,n,r,s,o,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(n=document.selection.createRange())&&n.parentElement()==e&&(s=e.value.length,i=e.value.replace(/\r\n/g,"\n"),r=e.createTextRange(),r.moveToBookmark(n.getBookmark()),o=e.createTextRange(),o.collapse(!1),r.compareEndPoints("StartToEnd",o)>-1?a=l=s:(a=-r.moveStart("character",-s),a+=i.slice(0,a).split("\n").length-1,r.compareEndPoints("EndToEnd",o)>-1?l=s:(l=-r.moveEnd("character",-s),l+=i.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,i){var n=e.value||"";if(t>0&&i>0){var r=n.split("\n",t);t=Math.min(r.length,t),i=Math.min(r[t-1].length,i-1);var s=1==t?i:i+1;return r.slice(0,t-1).join("\n").length+s}return-1},"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&&b.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:b})}if(3==h){if(1==f)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,f=t()}for(;;){if(d.toString()in o[m])break;if(0==m)throw new Error(E||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,s.length=s.length-e}(1),m=n[n.length-1]}p=f,f=d,m=n[n.length-1],g=o[m]&&o[m][d],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),s.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,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[g[1]][1],A.$=r[r.length-w],A._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},void 0!==(v=this.performAction.call(A,a,c,l,this.yy,g[1],r,s)))return v;w&&(n=n.slice(0,-1*w*2),r=r.slice(0,-1*w),s=s.slice(0,-1*w)),n.push(this.productions_[g[1]][0]),r.push(A.$),s.push(A._$),C=o[n[n.length-2]][n[n.length-1]],n.push(C);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 s=this._currentRules(),o=0;ot[0].length)||(t=i,n=o,this.options.flex));o++);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,s[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 s=document.createElement("tr");r.appendChild(s);var o=document.createElement("td");s.appendChild(o);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",o.appendChild(a),o=document.createElement("td"),s.appendChild(o);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",o.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),s=document.createElement("tr"),h.appendChild(s);var d=document.createElement("button");d.type="button",d.className="jsoneditor-refresh",o=document.createElement("td"),o.appendChild(d),s.appendChild(o);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},d.onclick=function(e){u.select()},o=document.createElement("td"),o.appendChild(u),s.appendChild(o);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},o=document.createElement("td"),o.appendChild(f),s.appendChild(o);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},o=document.createElement("td"),o.appendChild(p),s.appendChild(o)}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){this.lastText=i,this.results=this.editor.search(i);var n=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0;if(this._setActiveResult(0,!1),void 0!==i){var r=this.results.length;this.dom.results.innerHTML=0===r?"no results":1===r?"1 result":r>n?n+"+ results":r+" 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 s=document.createElement("div");s.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(s),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 d=document.createElement("div");d.className="jsoneditor-text"+(r.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(r.text)),c.appendChild(d);var u;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),u=f}else{var p=document.createElement("div");p.className="jsoneditor-expand",c.appendChild(p),u=c}u.onclick=function(e){e.preventDefault(),n._onExpandItem(a),u.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='
    '+o(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 s=document.createElement("div");s.className="jsoneditor-contextmenu-root",r.root=s;var a=document.createElement("div");a.className="jsoneditor-contextmenu",r.menu=a,s.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 s=i(54),o=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,o=e.parentNode,a=e.getBoundingClientRect(),l=o.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,d=a.top-l.top;if(i){var u=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+"px",this.dom.menu.style.bottom="0px";this.rootNode=n(e),o.insertBefore(this.dom.root,o.firstChild);var f=this,p=this.dom.list;this.eventListeners.mousedown=s.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=s.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=s.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&&s.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="",s.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.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},n.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr){t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var n=document.createElement("button");n.type="button",n.className="jsoneditor-schema-error",n.appendChild(i),n.onmouseover=n.onfocus=function(){for(var e=["right","above","below","left"],t=0;tthis.visibleChilds){var r=this.childs[this.visibleChilds-1];this.insertBefore(e,r)}else this.appendChild(e);else this.insertBefore(e,t);i&&i.removeChild(n)}},n.prototype.moveTo=function(e,t){if(e.parent==this){this.childs.indexOf(e)0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:u("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(s))}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=u("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=u("actionsMenu"),n.appendChild(e.menu),e.tr.appendChild(n)}var s=document.createElement("td");return e.tr.appendChild(s),e.tree=this._createDomTree(),s.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},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],s=n.getNodeFromTarget(t.target),o=r.nextSibling(),a=i.editor,l=d.getAbsoluteTop(s.dom.tr)-d.getAbsoluteTop(i.dom.tr);a.mousemove||(a.mousemove=d.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),a.mouseup||(a.mouseup=d.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),a.highlighter.lock(),a.drag={oldCursor:document.body.style.cursor,oldSelection:a.getDomSelection(),oldBeforeNode:o,mouseX:t.pageX,offsetY:l,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,s,o,a,l,c,h,u,f,m,g,v,y,w=e[0].editor,C=t.pageY-w.drag.offsetY,b=t.pageX,A=!1,E=e[0];if(i=E.dom.tr,u=d.getAbsoluteTop(i),g=i.offsetHeight,Cf+g&&(c=void 0)),c&&(e.forEach(function(e){c.parent.moveBefore(e,c)}),A=!0)}else{var F=e[e.length-1];if(a=F.expanded&&F.append?F.append.getDom():F.dom.tr,o=a?a.nextSibling:void 0){m=d.getAbsoluteTop(o),s=o;do{h=n.getNodeFromTarget(s),s&&(v=s.nextSibling?d.getAbsoluteTop(s.nextSibling):0,y=s?v-m:0,h&&h.parent.childs.length==e.length&&h.parent.childs[e.length-1]==F&&(u+=27),s=s.nextSibling)}while(s&&C>u+y);if(h&&h.parent){var x=b-w.drag.mouseX,S=Math.round(x/24/2),_=w.drag.level+S,D=h.getLevel();for(r=h.dom.tr&&h.dom.tr.previousSibling;D<_&&r;){c=n.getNodeFromTarget(r);if(e.some(function(e){return e===c||c.isDescendantOf(e)}));else{if(!(c instanceof p))break;var $=c.parent.childs;if($.length==e.length&&$[e.length-1]==F)break;h=n.getNodeFromTarget(r),D=h.getLevel()}r=r.previousSibling}h instanceof p&&!h.isVisible()&&h.parent.showMore.isVisible()&&(h=h._nextNode()),h&&h.dom.tr&&a.nextSibling!=h.dom.tr&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),A=!0)}}}A&&(w.drag.mouseX=b,w.drag.level=E.getLevel()),w.startAutoScroll(C),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,s=i.parent,o=s.childs.indexOf(i),a=s.childs[o+e.length]||s.append;e[0]&&e[0].dom.menu.focus();var l={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getDomSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:a};l.oldBeforeNode!=l.newBeforeNode&&r._onAction("moveNodes",l),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&&(d.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(d.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype.isDescendantOf=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?d.addClassName(this.dom.tr,"jsoneditor-highlight"):d.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?d.addClassName(this.dom.tr,"jsoneditor-selected"):d.removeClassName(this.dom.tr,"jsoneditor-selected"),t?d.addClassName(this.dom.tr,"jsoneditor-first"):d.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.showMore&&this.showMore.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 s=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+s+"]",d.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+s+"}",d.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),d.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.error&&this.updateError(),this.append&&this.append.updateDom(),this.showMore&&this.showMore.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,s=e.oneOf||e.anyOf||e.allOf;s||(s=[e]);for(var o=0;o0?this.editor.multiselection.nodes:[this],C=w[0],b=w[w.length-1];if(13==h){if(u==this.dom.value)this.editable.value&&!e.ctrlKey||d.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(u==this.dom.expand){var A=this._hasChilds();if(A){var E=e.ctrlKey;this._onExpand(E),u.focus(),v=!0}}}else if(68==h)f&&y&&(n.onDuplicate(w),v=!0);else if(69==h)f&&(this._onExpand(m),u.focus(),v=!0);else if(77==h&&y)f&&(this.showContextMenu(u),v=!0);else if(46==h&&y)f&&(n.onRemove(w),v=!0);else if(45==h&&y)f&&!m?(this._onInsertBefore(),v=!0):f&&m&&(this._onInsertAfter(),v=!0);else if(35==h){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(u)),v=!0}}else if(36==h){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(u)),v=!0}}else if(37==h){if(g&&!m){var S=this._previousElement(u);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&y){if(b.expanded){var _=b.getAppendDom();r=_?_.nextSibling:void 0}else{var D=b.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),s=r.nextSibling,B=n.getNodeFromTarget(s),i&&i instanceof p&&1!=b.parent.childs.length&&B&&B.parent&&(o=this.editor.getDomSelection(),a=b.nextSibling(),w.forEach(function(e){B.parent.moveBefore(e,B)}),this.focus(n.focusElement||this._getElementName(u)),this.editor._onAction("moveNodes",{nodes:w,oldBeforeNode:a,newBeforeNode:B,oldSelection:o,newSelection:this.editor.getDomSelection()})))}}else if(38==h)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(u))),v=!0):!g&&f&&m&&y?(t=this._previousNode(),t&&(c=this.editor.multiselection,c.start=c.start||this,c.end=t,l=this.editor._findTopLevelNodes(c.start,c.end),this.editor.select(l),t.focus("field")),v=!0):g&&m&&y&&(t=C._previousNode(),t&&t.parent&&(o=this.editor.getDomSelection(),a=b.nextSibling(),w.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(u)),this.editor._onAction("moveNodes",{nodes:w,oldBeforeNode:a,newBeforeNode:t,oldSelection:o,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==h){if(g&&!m){var $=this._nextElement(u);$&&this.focus(this._getElementName($)),v=!0}else if(g&&m&&y){D=C.getDom();var k=D.previousSibling;k&&(t=n.getNodeFromTarget(k))&&t.parent&&!t.isVisible()&&(o=this.editor.getDomSelection(),a=b.nextSibling(),w.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(u)),this.editor._onAction("moveNodes",{nodes:w,oldBeforeNode:a,newBeforeNode:t,oldSelection:o,newSelection:this.editor.getDomSelection()}))}}else if(40==h)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(u))),v=!0;else if(!g&&f&&m&&y)i=this._nextNode(),i&&(c=this.editor.multiselection,c.start=c.start||this,c.end=i,l=this.editor._findTopLevelNodes(c.start,c.end),this.editor.select(l),i.focus("field")),v=!0;else if(g&&m&&y){i=b.expanded?b.append?b.append._nextNode():void 0:b._nextNode(),i&&!i.isVisible()&&(i=i.parent.showMore),i&&i instanceof p&&(i=b);var B=i&&(i._nextNode()||i.parent.append);B&&B.parent&&(o=this.editor.getDomSelection(),a=b.nextSibling(),w.forEach(function(e){B.parent.moveBefore(e,B)}),this.focus(n.focusElement||this._getElementName(u)),this.editor._onAction("moveNodes",{nodes:w,oldBeforeNode:a,newBeforeNode:B,oldSelection:o,newSelection:this.editor.getDomSelection()})),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,s=t.getIndex();r.highlighter.unhighlight();var o=r.getDomSelection();n.blurNodes(e);var a=r.getDomSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:s,oldSelection:o,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 s=r.getDomSelection(),o=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,o),o=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getDomSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:s,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getDomSelection(),s=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});s.expand(!0),this.parent.insertBefore(s,this),this.editor.highlighter.unhighlight(),s.focus("field");var o=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[s],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:o})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getDomSelection(),s=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});s.expand(!0),this.parent.insertAfter(s,this),this.editor.highlighter.unhighlight(),s.focus("field");var o=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[s],afterNode:this,parent:this.parent,oldSelection:r,newSelection:o})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getDomSelection(),s=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});s.expand(!0),this.parent.appendChild(s),this.editor.highlighter.unhighlight(),s.focus("field");var o=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[s],parent:this.parent,oldSelection:r,newSelection:o})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getDomSelection();this.changeType(e);var n=this.editor.getDomSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e,t){if(this._hasChilds()){this.hideChilds();var i=this.childs;this.childs=this.childs.concat();var n="desc"===t?-1:1;"object"===this.type?this.childs.sort(function(e,t){return n*s(e.field,t.field)}):this.childs.sort(function(t,i){var r=t.getNestedChild(e),o=i.getNestedChild(e);if(!r)return n;if(!o)return-n;var a=r.value,l=o.value;return"string"!=typeof a&&"string"!=typeof l?a>l?n:a/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=d.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return d.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;i="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function l(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function h(){}function d(e){this.runtime=e}function u(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[v]}]},avg:{_func:this._functionAvg,_signature:[{types:[E]}]},ceil:{_func:this._functionCeil,_signature:[{types:[v]}]},contains:{_func:this._functionContains,_signature:[{types:[w,C]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[w]},{types:[w]}]},floor:{_func:this._functionFloor,_signature:[{types:[v]}]},length:{_func:this._functionLength,_signature:[{types:[w,C,b]}]},map:{_func:this._functionMap,_signature:[{types:[A]},{types:[C]}]},max:{_func:this._functionMax,_signature:[{types:[E,F]}]},merge:{_func:this._functionMerge,_signature:[{types:[b],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[C]},{types:[A]}]},sum:{_func:this._functionSum,_signature:[{types:[E]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[w]},{types:[w]}]},min:{_func:this._functionMin,_signature:[{types:[E,F]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[C]},{types:[A]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[b]}]},values:{_func:this._functionValues,_signature:[{types:[b]}]},sort:{_func:this._functionSort,_signature:[{types:[F,E]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[C]},{types:[A]}]},join:{_func:this._functionJoin,_signature:[{types:[w]},{types:[F]}]},reverse:{_func:this._functionReverse,_signature:[{types:[w,C]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function f(e){return(new h).parse(e)}function p(e){return(new c).tokenize(e)}function m(e,t){var i=new h,n=new u,r=new d(n);n._interpreter=r;var s=i.parse(t);return r.search(s,e)}var g;g="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var v=0,y=1,w=2,C=3,b=4,A=6,E=8,F=9,x={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},S={"<":!0,">":!0,"=":!0,"!":!0},_={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var i,n,r;this._current"===i?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===i&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,i=this._current,n=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(i.indexOf(e)>=0)return!0;if(!(n.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var D={};D.EOF=0,D.UnquotedIdentifier=0,D.QuotedIdentifier=0,D.Rbracket=0,D.Rparen=0,D.Comma=0,D.Rbrace=0,D.Number=0,D.Current=0,D.Expref=0,D.Pipe=1,D.Or=2,D.And=3,D.EQ=5,D.GT=5,D.LT=5,D.GTE=5,D.LTE=5,D.NE=5,D.Flatten=9,D.Star=20,D.Filter=21,D.Dot=40,D.Not=45,D.Lbrace=50,D.Lbracket=55,D.Lparen=60,h.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var i=this._lookaheadToken(0),n=new Error("Unexpected token type: "+i.type+", value: "+i.value);throw n.name="ParserError",n}return t},_loadTokens:function(e){var t=new c,i=t.tokenize(e);i.push({type:"EOF",value:"",start:e.length}),this.tokens=i},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var i=this.nud(t),n=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(D[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var i=this._lookaheadToken(0),n=new Error("Sytanx error, unexpected token: "+i.value+"("+i.type+")");throw n.name="ParserError",n}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,i,n,r=[],s=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),s.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),i=this.expression(0),n={type:"KeyValuePair",name:t,value:i},r.push(n),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:r}}},d.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,o){var a,l,c,h,d,u,f,p,m;switch(e.type){case"Field":return null===o?null:i(o)?(u=o[e.name],void 0===u?null:u):null;case"Subexpression":for(c=this.visit(e.children[0],o),m=1;m0)for(m=w;mC;m+=b)c.push(o[m]);return c;case"Projection":var A=this.visit(e.children[0],o);if(!t(A))return null;for(p=[],m=0;md;break;case"GTE":c=h>=d;break;case"LT":c=h=e&&(t=i<0?e-1:e),t}},u.prototype={callFunction:function(e,t){var i=this.functionTable[e];if(void 0===i)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,i._signature),i._func.call(this,t)},_validateArgs:function(e,t,i){var n;if(i[i.length-1].variadic){if(t.length=0;n--)i+=t[n];return i}var r=e[0].slice(0);return r.reverse(),r},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,i=e[0],n=0;n=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return i(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],i=this._interpreter,n=e[0],r=e[1],s=0;s0){if(this._getTypeName(e[0][0])===v)return Math.max.apply(Math,e[0]);for(var t=e[0],i=t[0],n=1;n0){if(this._getTypeName(e[0][0])===v)return Math.min.apply(Math,e[0]);for(var t=e[0],i=t[0],n=1;na?1:oo&&(o=i,t=r[a]);return t},_functionMinBy:function(e){for(var t,i,n=e[1],r=e[0],s=this.createKeyFunction(n,[v,w]),o=1/0,a=0;am)return 1}for(var g=0,v=Math.max(u.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.className="jsoneditor-append",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"),s=document.createElement("div");return s.innerHTML="("+o("empty")+")",s.className="jsoneditor-readonly",r.appendChild(s),e.td=r,e.text=s,this.updateDom(),t},t.prototype.updateDom=function(e){var t=this.dom,i=t.td;i&&(i.style.paddingLeft=24*this.getLevel()+26+"px");var n=t.text;n&&(n.innerHTML="("+o("empty")+" "+this.parent.type+")");var r=t.tr;this.isVisible()?t.tr.firstChild||(t.tdDrag&&r.appendChild(t.tdDrag),t.tdMenu&&r.appendChild(t.tdMenu),r.appendChild(i)):t.tr.firstChild&&(t.tdDrag&&r.removeChild(t.tdDrag),t.tdMenu&&r.removeChild(t.tdMenu),r.removeChild(i))},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:o("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:o("array"),className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:o("object"),className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:o("string"),className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(a,!0);var l=[{text:o("appendText"),title:o("appendTitleAuto"),submenuTitle:o("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:a}];new s(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 s=this.editor.highlighter;s.highlight(this.parent),s.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),s.unlock(),s.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(54),s=i(57),o=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e){function t(e,t){this.editor=e,this.parent=t,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){if(this.dom.tr)return this.dom.tr;if(this._updateEditability(),!this.dom.tr){var e=this,t=this.parent,i=document.createElement("a");i.appendChild(document.createTextNode(r("showMore"))),i.href="#",i.onclick=function(i){return t.visibleChilds=Math.floor(t.visibleChilds/t.MAX_VISIBLE_CHILDS+1)*t.MAX_VISIBLE_CHILDS,e.updateDom(),t.showChilds(),i.preventDefault(),!1};var n=document.createElement("a");n.appendChild(document.createTextNode(r("showAll"))),n.href="#",n.onclick=function(i){return t.visibleChilds=1/0,e.updateDom(),t.showChilds(),i.preventDefault(),!1};var s=document.createElement("div"),o=document.createTextNode(this._getShowMoreText());s.className="jsoneditor-show-more",s.appendChild(o),s.appendChild(i),s.appendChild(document.createTextNode(". ")),s.appendChild(n),s.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(s);var l=document.createElement("tr");l.appendChild(document.createElement("td")),l.appendChild(document.createElement("td")),l.appendChild(a),l.className="jsoneditor-show-more",this.dom.tr=l,this.dom.moreContents=s,this.dom.moreText=o}return this.updateDom(),this.dom.tr},t.prototype.updateDom=function(e){if(this.isVisible()){if(this.dom.tr.node=this.parent.childs[this.parent.visibleChilds],!this.dom.tr.parentNode){var t=this.parent._getNextTr();t&&t.parentNode.insertBefore(this.dom.tr,t)}this.dom.moreText.nodeValue=this._getShowMoreText(),this.dom.moreContents.style.marginLeft=24*(this.getLevel()+1)+"px"}else this.dom.tr&&this.dom.tr.parentNode&&this.dom.tr.parentNode.removeChild(this.dom.tr)},t.prototype._getShowMoreText=function(){return r("showMoreStatus",{visibleChilds:this.parent.visibleChilds,totalChilds:this.parent.childs.length})+" "},t.prototype.isVisible=function(){return this.parent.expanded&&this.parent.childs.length>this.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var r=i(58).translate;e.exports=n},function(e,t,i){function n(e,t){var i='
    '+s("sort")+"
    "+s("sortFieldLabel")+'
    '+s("sortDirectionLabel")+'
    ';r({parent:t,content:i,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-sort"}).afterCreate(function(t){function i(e){o.value=e,o.className="jsoneditor-button-group jsoneditor-button-group-value-"+o.value}var n=t.modalElem().querySelector("form"),r=t.modalElem().querySelector("#ok"),s=t.modalElem().querySelector("#field"),o=t.modalElem().querySelector("#direction"),a="array"===e.type?e.getChildPaths():["."];a.forEach(function(e){var t=document.createElement("option");t.text=e,t.value=e,s.appendChild(t)}),s.value=e.sortedBy?e.sortedBy.path:a[0],i(e.sortedBy?e.sortedBy.direction:"asc"),o.onclick=function(e){i(e.target.getAttribute("data-value"))},r.onclick=function(i){i.preventDefault(),i.stopPropagation(),t.close();var n=s.value,r="."===n?[]:n.split(".").slice(1);e.sortedBy={path:n,direction:o.value},e.sort(r,o.value)},n&&(n.onsubmit=r.onclick)}).afterClose(function(e){e.destroy()}).show()}var r=i(66),s=i(58).translate;e.exports=n},function(e,t,i){var n,r,s;!function(i,o){"use strict";r=[],n=o,void 0!==(s="function"==typeof n?n.apply(t,r):n)&&(e.exports=s)}(0,function(){"use strict";function e(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType}function t(e){return"string"==typeof e}function i(){var e=[];return{watch:e.push.bind(e),trigger:function(t,i){for(var n=!0,r={detail:i,preventDefault:function(){n=!1}},s=0;s
    '+a("transform")+'

    Enter a JMESPath query to filter, sort, or transform the JSON data.
    To learn JMESPath, go to the interactive tutorial.

    '+a("transformWizardLabel")+'
    '+a("transformWizardFilter")+'
    '+a("transformWizardSortBy")+'
    '+a("transformWizardSelectFields")+'
    '+a("transformQueryLabel")+'
    '+a("transformPreviewLabel")+'
    ';s({parent:t,content:n,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-transform",focus:!1}).afterCreate(function(t){function n(e){return"."===e[0]?"."===e?"@":e.slice(1):e}function s(){if(f.value&&p.value&&m.value){var t=f.value,i=JSON.stringify(e._stringCast(m.value));w.value="[? "+t+" "+p.value+" `"+i+"`]"}else w.value="[*]";if(g.value&&v.value){var n=g.value;"desc"===v.value?w.value+=" | reverse(sort_by(@, &"+n+"))":w.value+=" | sort_by(@, &"+n+")"}if(y.value){for(var r=[],s=0;s1&&(w.value+=".{"+r.map(function(e){var t=e.split(".");return t[t.length-1]+": "+e}).join(", ")+"}")}_()}function a(){try{var e=r.search(i,w.value),t=JSON.stringify(e,null,2).split("\n");t.length>c&&(t=t.slice(0,c).concat(["..."])),C.className="jsoneditor-transform-preview",C.value=t.join("\n"),u.disabled=!1}catch(e){C.className="jsoneditor-transform-preview jsoneditor-error",C.value=e.toString(),u.disabled=!0}}var h=t.modalElem(),d=h.querySelector("#wizard"),u=h.querySelector("#ok"),f=h.querySelector("#filterField"),p=h.querySelector("#filterRelation"),m=h.querySelector("#filterValue"),g=h.querySelector("#sortField"),v=h.querySelector("#sortOrder"),y=h.querySelector("#selectFields"),w=h.querySelector("#query"),C=h.querySelector("#preview");Array.isArray(i)||(d.style.display="none",d.parentNode.style.fontStyle="italic",d.parentNode.appendChild(document.createTextNode("(wizard not available for objects, only for arrays)"))),e.getChildPaths().forEach(function(e){var t=n(e),i=document.createElement("option");i.text=t,i.value=t,f.appendChild(i);var r=document.createElement("option");r.text=t,r.value=t,g.appendChild(r)});var b=e.getChildPaths(!0).filter(function(e){return"."!==e});b.length>0?b.forEach(function(e){var t=n(e),i=document.createElement("option");i.text=t,i.value=t,y.appendChild(i)}):h.querySelector("#selectFieldsPart").style.display="none";var A=new o(f,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),E=new o(p,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"compare..."}),F=new o(g,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),x=new o(v,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"order..."}),S=new o(y,{multiple:!0,clearable:!0,defaultSelected:!1});A.on("selectr.change",s), -E.on("selectr.change",s),m.oninput=s,F.on("selectr.change",s),x.on("selectr.change",s),S.on("selectr.change",s),h.querySelector(".pico-modal-contents").onclick=function(e){e.preventDefault()},w.value=Array.isArray(i)?"[*]":"@";var _=l(a,300);w.oninput=_,_(),u.onclick=function(i){i.preventDefault(),i.stopPropagation(),t.close(),e.transform(w.value)},setTimeout(function(){w.select(),w.focus(),w.selectionStart=3,w.selectionEnd=3})}).afterClose(function(e){e.destroy()}).show()}var r=i(61),s=i(66),o=i(68),a=i(58).translate,l=i(54).debounce,c=100;e.exports=n},function(e,t){"use strict";function i(e,t){return e.hasOwnProperty(t)&&(!0===e[t]||e[t].length)}function n(e,t,i){e.parentNode?e.parentNode.parentNode||t.appendChild(e.parentNode):t.appendChild(e),o.removeClass(e,"excluded"),i||(e.innerHTML=e.textContent)}var r={defaultSelected:!0,width:"auto",disabled:!1,searchable:!0,clearable:!1,sortSelected:!1,allowDeselect:!1,closeOnScroll:!1,nativeDropdown:!1,placeholder:"Select an option...",taggable:!1,tagPlaceholder:"Enter a tag..."},s=function(){};s.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t-1},truncate:function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}},a=function(){if(this.items.length){var e=document.createDocumentFragment();if(this.config.pagination){var t=this.pages.slice(0,this.pageIndex);o.each(t,function(t,i){o.each(i,function(t,i){n(i,e,this.customOption)},this)},this)}else o.each(this.items,function(t,i){n(i,e,this.customOption)},this);e.childElementCount&&(o.removeClass(this.items[this.navIndex],"active"),this.navIndex=e.querySelector(".selectr-option").idx,o.addClass(this.items[this.navIndex],"active")),this.tree.appendChild(e)}},l=function(e){var t=e.target;this.container.contains(t)||!this.opened&&!o.hasClass(this.container,"notice")||this.close()},c=function(e,t){t=t||e;var i=this.customOption?this.config.renderOption(t):e.textContent,n=o.createElement("li",{class:"selectr-option",html:i,role:"treeitem","aria-selected":!1});return n.idx=e.idx,this.items.push(n),e.defaultSelected&&this.defaultSelected.push(e.idx),e.disabled&&(n.disabled=!0,o.addClass(n,"disabled")),n},h=function(){this.requiresPagination=this.config.pagination&&this.config.pagination>0,i(this.config,"width")&&(o.isInt(this.config.width)?this.width=this.config.width+"px":"auto"===this.config.width?this.width="100%":o.includes(this.config.width,"%")&&(this.width=this.config.width)),this.container=o.createElement("div",{class:"selectr-container"}),this.config.customClass&&o.addClass(this.container,this.config.customClass),this.mobileDevice?o.addClass(this.container,"selectr-mobile"):o.addClass(this.container,"selectr-desktop"),this.el.tabIndex=-1,this.config.nativeDropdown||this.mobileDevice?o.addClass(this.el,"selectr-visible"):o.addClass(this.el,"selectr-hidden"),this.selected=o.createElement("div",{class:"selectr-selected",disabled:this.disabled,tabIndex:1,"aria-expanded":!1}),this.label=o.createElement(this.el.multiple?"ul":"span",{class:"selectr-label"});var e=o.createElement("div",{class:"selectr-options-container"});if(this.tree=o.createElement("ul",{class:"selectr-options",role:"tree","aria-hidden":!0,"aria-expanded":!1}),this.notice=o.createElement("div",{class:"selectr-notice"}),this.el.setAttribute("aria-hidden",!0),this.disabled&&(this.el.disabled=!0),this.el.multiple&&(o.addClass(this.label,"selectr-tags"),o.addClass(this.container,"multiple"),this.tags=[],this.selectedValues=this.getSelectedProperties("value"),this.selectedIndexes=this.getSelectedProperties("idx")),this.selected.appendChild(this.label),this.config.clearable&&(this.selectClear=o.createElement("button",{class:"selectr-clear",type:"button"}),this.container.appendChild(this.selectClear),o.addClass(this.container,"clearable")),this.config.taggable){var t=o.createElement("li",{class:"input-tag"});this.input=o.createElement("input",{class:"selectr-tag-input",placeholder:this.config.tagPlaceholder,tagIndex:0,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),t.appendChild(this.input),this.label.appendChild(t),o.addClass(this.container,"taggable"),this.tagSeperators=[","],this.config.tagSeperators&&(this.tagSeperators=this.tagSeperators.concat(this.config.tagSeperators))}this.config.searchable&&(this.input=o.createElement("input",{class:"selectr-input",tagIndex:-1,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),this.inputClear=o.createElement("button",{class:"selectr-input-clear",type:"button"}),this.inputContainer=o.createElement("div",{class:"selectr-input-container"}),this.inputContainer.appendChild(this.input),this.inputContainer.appendChild(this.inputClear),e.appendChild(this.inputContainer)),e.appendChild(this.notice),e.appendChild(this.tree),this.items=[],this.options=[],this.el.options.length&&(this.options=[].slice.call(this.el.options));var n=!1,r=0;if(this.el.children.length&&o.each(this.el.children,function(e,t){"OPTGROUP"===t.nodeName?(n=o.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.label+"
  • "}),o.each(t.children,function(e,t){t.idx=r,n.appendChild(c.call(this,t,n)),r++},this)):(t.idx=r,c.call(this,t),r++)},this),this.config.data&&Array.isArray(this.config.data)){this.data=[];var s,a=!1;n=!1,r=0,o.each(this.config.data,function(e,t){i(t,"children")?(a=o.createElement("optgroup",{label:t.text}),n=o.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.text+"
  • "}),o.each(t.children,function(e,t){s=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),s.disabled=i(t,"disabled"),this.options.push(s),a.appendChild(s),s.idx=r,n.appendChild(c.call(this,s,t)),this.data[r]=t,r++},this)):(s=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),s.disabled=i(t,"disabled"),this.options.push(s),s.idx=r,c.call(this,s,t),this.data[r]=t,r++)},this)}this.setSelected(!0);var l;this.navIndex=0;for(var h=0;h0)&&this.change(this.navIndex);var t,i=this.items[this.navIndex];switch(e.which){case 38:t=0,this.navIndex>0&&this.navIndex--;break;case 40:t=1,this.navIndexthis.tree.lastElementChild.idx){this.navIndex=this.tree.lastElementChild.idx;break}if(this.navIndexthis.optsRect.top+this.optsRect.height&&(this.tree.scrollTop=this.tree.scrollTop+(n.top+n.height-(this.optsRect.top+this.optsRect.height))),this.navIndex===this.tree.childElementCount-1&&this.requiresPagination&&p.call(this)):0===this.navIndex?this.tree.scrollTop=0:n.top-this.optsRect.top<0&&(this.tree.scrollTop=this.tree.scrollTop+(n.top-this.optsRect.top)),i&&o.removeClass(i,"active"),o.addClass(this.items[this.navIndex],"active")},u=function(e){var t,i=this,n=document.createDocumentFragment(),r=this.options[e.idx],s=this.data?this.data[e.idx]:r,a=this.customSelected?this.config.renderSelection(s):r.textContent,l=o.createElement("li",{class:"selectr-tag",html:a}),c=o.createElement("button",{class:"selectr-tag-remove",type:"button"});if(l.appendChild(c),l.idx=e.idx,l.tag=r.value,this.tags.push(l),this.config.sortSelected){var h=this.tags.slice();t=function(e,t){e.replace(/(\d+)|(\D+)/g,function(e,i,n){t.push([i||1/0,n||""])})},h.sort(function(e,n){var r,s,o=[],a=[];for(!0===i.config.sortSelected?(r=e.tag,s=n.tag):"text"===i.config.sortSelected&&(r=e.textContent,s=n.textContent),t(r,o),t(s,a);o.length&&a.length;){var l=o.shift(),c=a.shift(),h=l[0]-c[0]||l[1].localeCompare(c[1]);if(h)return h}return o.length-a.length}),o.each(h,function(e,t){n.appendChild(t)}),this.label.innerHTML=""}else n.appendChild(l);this.config.taggable?this.label.insertBefore(n,this.input.parentNode):this.label.appendChild(n)},f=function(e){var t=!1;o.each(this.tags,function(i,n){n.idx===e.idx&&(t=n)},this),t&&(this.label.removeChild(t),this.tags.splice(this.tags.indexOf(t),1))},p=function(){var e=this.tree;if(e.scrollTop>=e.scrollHeight-e.offsetHeight&&this.pageIndex"+i[0]+"")},v=function(e,t){if(t=t||{},!e)throw new Error("You must supply either a HTMLSelectElement or a CSS3 selector string.");if(this.el=e,"string"==typeof e&&(this.el=document.querySelector(e)),null===this.el)throw new Error("The element you passed to Selectr can not be found.");if("select"!==this.el.nodeName.toLowerCase())throw new Error("The element you passed to Selectr is not a HTMLSelectElement.");this.render(t)};v.prototype.render=function(e){if(!this.rendered){this.config=o.extend(r,e),this.originalType=this.el.type,this.originalIndex=this.el.tabIndex,this.defaultSelected=[],this.originalOptionCount=this.el.options.length,(this.config.multiple||this.config.taggable)&&(this.el.multiple=!0),this.disabled=i(this.config,"disabled"),this.opened=!1,this.config.taggable&&(this.config.searchable=!1),this.navigating=!1,this.mobileDevice=!1,/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent)&&(this.mobileDevice=!0),this.customOption=this.config.hasOwnProperty("renderOption")&&"function"==typeof this.config.renderOption,this.customSelected=this.config.hasOwnProperty("renderSelection")&&"function"==typeof this.config.renderSelection,s.mixin(this),h.call(this),this.bindEvents(),this.update(),this.optsRect=o.rect(this.tree),this.rendered=!0,this.el.multiple||(this.el.selectedIndex=this.selectedIndex);var t=this;setTimeout(function(){t.emit("selectr.init")},20)}},v.prototype.getSelected=function(){return this.el.querySelectorAll("option:checked")},v.prototype.getSelectedProperties=function(e){var t=this.getSelected();return[].slice.call(t).map(function(t){return t[e]}).filter(function(e){return null!==e&&void 0!==e})},v.prototype.bindEvents=function(){var e=this;if(this.events={},this.events.dismiss=l.bind(this),this.events.navigate=d.bind(this),this.events.reset=this.reset.bind(this),this.config.nativeDropdown||this.mobileDevice){this.container.addEventListener("touchstart",function(t){t.changedTouches[0].target===e.el&&e.toggle()}),(this.config.nativeDropdown||this.mobileDevice)&&this.container.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation(),t.target===e.el&&e.toggle()});var t=function(e,t){for(var i,n=[],r=e.slice(0),s=0;s-1?r.splice(i,1):n.push(t[s]);return[n,r]};this.el.addEventListener("change",function(i){if(e.el.multiple){var n=e.getSelectedProperties("idx"),r=t(e.selectedIndexes,n);o.each(r[0],function(t,i){e.select(i)},e),o.each(r[1],function(t,i){e.deselect(i)},e)}else e.el.selectedIndex>-1&&e.select(e.el.selectedIndex)})}this.config.nativeDropdown&&this.container.addEventListener("keydown",function(t){"Enter"===t.key&&e.selected===document.activeElement&&(e.toggle(),setTimeout(function(){e.el.focus()},200))}),this.selected.addEventListener("click",function(t){e.disabled||e.toggle(),t.preventDefault(),t.stopPropagation()}),this.label.addEventListener("click",function(t){o.hasClass(t.target,"selectr-tag-remove")&&e.deselect(t.target.parentNode.idx)}),this.selectClear&&this.selectClear.addEventListener("click",this.clear.bind(this)),this.tree.addEventListener("mousedown",function(e){e.preventDefault()}),this.tree.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation();var i=o.closest(t.target,function(e){return e&&o.hasClass(e,"selectr-option")});i&&(o.hasClass(i,"disabled")||(o.hasClass(i,"selected")?(e.el.multiple||!e.el.multiple&&e.config.allowDeselect)&&e.deselect(i.idx):e.select(i.idx),e.opened&&!e.el.multiple&&e.close()))}),this.tree.addEventListener("mouseover",function(t){o.hasClass(t.target,"selectr-option")&&(o.hasClass(t.target,"disabled")||(o.removeClass(e.items[e.navIndex],"active"),o.addClass(t.target,"active"),e.navIndex=[].slice.call(e.items).indexOf(t.target)))}),this.config.searchable&&(this.input.addEventListener("focus",function(t){e.searching=!0}),this.input.addEventListener("blur",function(t){e.searching=!1}),this.input.addEventListener("keyup",function(t){e.search(),e.config.taggable||(this.value.length?o.addClass(this.parentNode,"active"):o.removeClass(this.parentNode,"active"))}),this.inputClear.addEventListener("click",function(t){e.input.value=null,m.call(e),e.tree.childElementCount||a.call(e)})),this.config.taggable&&this.input.addEventListener("keyup",function(t){if(e.search(),e.config.taggable&&this.value.length){var i=this.value.trim();if(13===t.which||o.includes(e.tagSeperators,t.key)){o.each(e.tagSeperators,function(e,t){i=i.replace(t,"")});e.add({value:i,text:i,selected:!0},!0)?(e.close(),m.call(e)):(this.value="",e.setMessage("That tag is already in use."))}}}),this.update=o.debounce(function(){e.opened&&e.config.closeOnScroll&&e.close(),e.width&&(e.container.style.width=e.width),e.invert()},50),this.requiresPagination&&(this.paginateItems=o.debounce(function(){p.call(this)},50),this.tree.addEventListener("scroll",this.paginateItems.bind(this))),document.addEventListener("click",this.events.dismiss),window.addEventListener("keydown",this.events.navigate),window.addEventListener("resize",this.update),window.addEventListener("scroll",this.update),this.el.form&&this.el.form.addEventListener("reset",this.events.reset)},v.prototype.setSelected=function(e){if(this.config.data||this.el.multiple||!this.el.options.length||(0===this.el.selectedIndex&&(this.el.options[0].defaultSelected||this.config.defaultSelected||(this.el.selectedIndex=-1)),this.selectedIndex=this.el.selectedIndex,this.selectedIndex>-1&&this.select(this.selectedIndex)),this.config.multiple&&"select-one"===this.originalType&&!this.config.data&&this.el.options[0].selected&&!this.el.options[0].defaultSelected&&(this.el.options[0].selected=!1),o.each(this.options,function(e,t){t.selected&&t.defaultSelected&&this.select(t.idx)},this),this.config.selectedValue&&this.setValue(this.config.selectedValue),this.config.data){!this.el.multiple&&this.config.defaultSelected&&this.el.selectedIndex<0&&this.select(0);var t=0;o.each(this.config.data,function(e,n){i(n,"children")?o.each(n.children,function(e,i){i.hasOwnProperty("selected")&&!0===i.selected&&this.select(t),t++},this):(n.hasOwnProperty("selected")&&!0===n.selected&&this.select(t),t++)},this)}},v.prototype.destroy=function(){this.rendered&&(this.emit("selectr.destroy"),"select-one"===this.originalType&&(this.el.multiple=!1),this.config.data&&(this.el.innerHTML=""),o.removeClass(this.el,"selectr-hidden"),this.el.form&&o.off(this.el.form,"reset",this.events.reset),o.off(document,"click",this.events.dismiss),o.off(document,"keydown",this.events.navigate),o.off(window,"resize",this.update),o.off(window,"scroll",this.update),this.container.parentNode.replaceChild(this.el,this.container),this.rendered=!1)},v.prototype.change=function(e){var t=this.items[e],i=this.options[e];i.disabled||(i.selected&&o.hasClass(t,"selected")?this.deselect(e):this.select(e),this.opened&&!this.el.multiple&&this.close())},v.prototype.select=function(e){var t=this.items[e],i=[].slice.call(this.el.options),n=this.options[e];if(this.el.multiple){if(o.includes(this.selectedIndexes,e))return!1;if(this.config.maxSelections&&this.tags.length===this.config.maxSelections)return this.setMessage("A maximum of "+this.config.maxSelections+" items can be selected.",!0),!1;this.selectedValues.push(n.value),this.selectedIndexes.push(e),u.call(this,t)}else{var r=this.data?this.data[e]:n;this.label.innerHTML=this.customSelected?this.config.renderSelection(r):n.textContent,this.selectedValue=n.value,this.selectedIndex=e,o.each(this.options,function(t,i){var n=this.items[t];t!==e&&(n&&o.removeClass(n,"selected"),i.selected=!1,i.removeAttribute("selected"))},this)}o.includes(i,n)||this.el.add(n),t.setAttribute("aria-selected",!0),o.addClass(t,"selected"),o.addClass(this.container,"has-selected"),n.selected=!0,n.setAttribute("selected",""),this.emit("selectr.change",n),this.emit("selectr.select",n)},v.prototype.deselect=function(e,t){var i=this.items[e],n=this.options[e];if(this.el.multiple){var r=this.selectedIndexes.indexOf(e);this.selectedIndexes.splice(r,1);var s=this.selectedValues.indexOf(n.value);this.selectedValues.splice(s,1),f.call(this,i),this.tags.length||o.removeClass(this.container,"has-selected")}else{if(!t&&!this.config.clearable&&!this.config.allowDeselect)return!1;this.label.innerHTML="",this.selectedValue=null,this.el.selectedIndex=this.selectedIndex=-1,o.removeClass(this.container,"has-selected")}this.items[e].setAttribute("aria-selected",!1),o.removeClass(this.items[e],"selected"),n.selected=!1,n.removeAttribute("selected"),this.emit("selectr.change",null),this.emit("selectr.deselect",n)},v.prototype.setValue=function(e){var t=Array.isArray(e);if(t||(e=e.toString().trim()),!this.el.multiple&&t)return!1;o.each(this.options,function(i,n){(t&&o.includes(e.toString(),n.value)||n.value===e)&&this.change(n.idx)},this)},v.prototype.getValue=function(e,t){var i;if(this.el.multiple)e?this.selectedIndexes.length&&(i={},i.values=[],o.each(this.selectedIndexes,function(e,t){var n=this.options[t];i.values[e]={value:n.value,text:n.textContent}},this)):i=this.selectedValues.slice();else if(e){var n=this.options[this.selectedIndex];i={value:n.value,text:n.textContent}}else i=this.selectedValue;return e&&t&&(i=JSON.stringify(i)),i},v.prototype.add=function(e,t){if(e){if(this.data=this.data||[],this.items=this.items||[],this.options=this.options||[],Array.isArray(e))o.each(e,function(e,i){this.add(i,t)},this);else if("[object Object]"===Object.prototype.toString.call(e)){if(t){var i=!1;if(o.each(this.options,function(t,n){n.value.toLowerCase()===e.value.toLowerCase()&&(i=!0)}),i)return!1}var n=o.createElement("option",e);return this.data.push(e),this.options.push(n),n.idx=this.options.length>0?this.options.length-1:0,c.call(this,n),e.selected&&this.select(n.idx),n}return this.setPlaceholder(),this.config.pagination&&this.paginate(),!0}},v.prototype.remove=function(e){var t=[];if(Array.isArray(e)?o.each(e,function(i,n){o.isInt(n)?t.push(this.getOptionByIndex(n)):"string"==typeof e&&t.push(this.getOptionByValue(n))},this):o.isInt(e)?t.push(this.getOptionByIndex(e)):"string"==typeof e&&t.push(this.getOptionByValue(e)),t.length){var i;o.each(t,function(e,t){i=t.idx,this.el.remove(t),this.options.splice(i,1);var n=this.items[i].parentNode;n&&n.removeChild(this.items[i]),this.items.splice(i,1),o.each(this.options,function(e,t){t.idx=e,this.items[e].idx=e},this)},this),this.setPlaceholder(),this.config.pagination&&this.paginate()}},v.prototype.removeAll=function(){this.clear(!0),o.each(this.el.options,function(e,t){this.el.remove(t)},this),o.truncate(this.tree),this.items=[],this.options=[],this.data=[],this.navIndex=0,this.requiresPagination&&(this.requiresPagination=!1,this.pageIndex=1,this.pages=[]),this.setPlaceholder()},v.prototype.search=function(e){if(!this.navigating){e=e||this.input.value;var t=document.createDocumentFragment();if(this.removeMessage(),o.truncate(this.tree),e.length>1)if(o.each(this.options,function(i,r){var s=this.items[r.idx];o.includes(r.textContent.toLowerCase(),e.toLowerCase())&&!r.disabled?(n(s,t,this.customOption),o.removeClass(s,"excluded"),this.customOption||(s.innerHTML=g(e,r))):o.addClass(s,"excluded")},this),t.childElementCount){var i=this.items[this.navIndex],r=t.firstElementChild;o.removeClass(i,"active"),this.navIndex=r.idx,o.addClass(r,"active")}else this.config.taggable||this.setMessage("no results.");else a.call(this);this.tree.appendChild(t)}},v.prototype.toggle=function(){this.disabled||(this.opened?this.close():this.open())},v.prototype.open=function(){var e=this;return!!this.options.length&&(this.opened||this.emit("selectr.open"),this.opened=!0,this.mobileDevice||this.config.nativeDropdown?(o.addClass(this.container,"native-open"),void(this.config.data&&o.each(this.options,function(e,t){this.el.add(t)},this))):(o.addClass(this.container,"open"),a.call(this),this.invert(),this.tree.scrollTop=0,o.removeClass(this.container,"notice"),this.selected.setAttribute("aria-expanded",!0),this.tree.setAttribute("aria-hidden",!1),this.tree.setAttribute("aria-expanded",!0),void(this.config.searchable&&!this.config.taggable&&setTimeout(function(){e.input.focus(),e.input.tabIndex=0},10))))},v.prototype.close=function(){if(this.opened&&this.emit("selectr.close"),this.opened=!1,this.mobileDevice||this.config.nativeDropdown)return void o.removeClass(this.container,"native-open");var e=o.hasClass(this.container,"notice");this.config.searchable&&!e&&(this.input.blur(),this.input.tabIndex=-1,this.searching=!1),e&&(o.removeClass(this.container,"notice"),this.notice.textContent=""),o.removeClass(this.container,"open"),o.removeClass(this.container,"native-open"),this.selected.setAttribute("aria-expanded",!1),this.tree.setAttribute("aria-hidden",!0),this.tree.setAttribute("aria-expanded",!1),o.truncate(this.tree),m.call(this)},v.prototype.enable=function(){this.disabled=!1,this.el.disabled=!1,this.selected.tabIndex=this.originalIndex,this.el.multiple&&o.each(this.tags,function(e,t){t.lastElementChild.tabIndex=0}),o.removeClass(this.container,"selectr-disabled")},v.prototype.disable=function(e){e||(this.el.disabled=!0),this.selected.tabIndex=-1,this.el.multiple&&o.each(this.tags,function(e,t){t.lastElementChild.tabIndex=-1}),this.disabled=!0,o.addClass(this.container,"selectr-disabled")},v.prototype.reset=function(){this.disabled||(this.clear(),this.setSelected(!0),o.each(this.defaultSelected,function(e,t){this.select(t)},this),this.emit("selectr.reset"))},v.prototype.clear=function(e){if(this.el.multiple){if(this.selectedIndexes.length){var t=this.selectedIndexes.slice();o.each(t,function(e,t){this.deselect(t)},this)}}else this.selectedIndex>-1&&this.deselect(this.selectedIndex,e);this.emit("selectr.clear")},v.prototype.serialise=function(e){var t=[];return o.each(this.options,function(e,i){var n={value:i.value,text:i.textContent};i.selected&&(n.selected=!0),i.disabled&&(n.disabled=!0),t[e]=n}),e?JSON.stringify(t):t},v.prototype.serialize=function(e){return this.serialise(e)},v.prototype.setPlaceholder=function(e){e=e||this.config.placeholder||this.el.getAttribute("placeholder"),this.options.length||(e="No options available"),this.placeEl.innerHTML=e},v.prototype.paginate=function(){if(this.items.length){var e=this;return this.pages=this.items.map(function(t,i){return i%e.config.pagination==0?e.items.slice(i,i+e.config.pagination):null}).filter(function(e){return e}),this.pages}},v.prototype.setMessage=function(e,t){t&&this.close(),o.addClass(this.container,"notice"),this.notice.textContent=e},v.prototype.removeMessage=function(){o.removeClass(this.container,"notice"),this.notice.innerHTML=""},v.prototype.invert=function(){var e=o.rect(this.selected),t=this.tree.parentNode.offsetHeight,i=window.innerHeight;e.top+e.height+t>i?(o.addClass(this.container,"inverted"),this.isInverted=!0):(o.removeClass(this.container,"inverted"),this.isInverted=!1),this.optsRect=o.rect(this.tree)},v.prototype.getOptionByIndex=function(e){return this.options[e]},v.prototype.getOptionByValue=function(e){for(var t=!1,i=0,n=this.options.length;i/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",s=document.createElement("div");s.style.position="relative",s.style.outline="0",s.style.border="0",s.style.margin="0",s.style.padding="0";var o=document.createElement("div");o.className="autocomplete dropdown",o.style.position="absolute",o.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:s,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;o.style.marginLeft="0",o.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",d),this.element.addEventListener("keydown",d,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),s.appendChild(this.elementHint),s.appendChild(o),e.parentElement.appendChild(s),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),s=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+s[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),u>3*f?(t.style.maxHeight=u+"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!=s&&n[s]&&(n[s].className="item"),n[e].className="item hover",s=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}(o,c),d=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 s=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+s+a.substring(s.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var s=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+s+a.substring(s.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var d="hidden"==o.style.visibility;if(h.hide(),d)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),u=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(72),r=i(69),s=i(54),o={};o.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 o=t.ace?t.ace:n;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===o&&(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&&o)try{i(78)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=s.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 d={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(d);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=o.edit(this.editorDom);f.$blockScrolling=1/0,f.setTheme(this.theme),f.setOptions({readOnly:u}),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=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){s.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 w=document.createElement("span");w.className="jsoneditor-curserinfo-val",w.innerText="1",v.appendChild(y),v.appendChild(w);var C=document.createElement("span");C.className="jsoneditor-curserinfo-label",C.innerText="Col:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(C),v.appendChild(b),this.curserInfoElements.colVal=b,this.curserInfoElements.lnVal=w;var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="characters selected",A.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=A,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(A)}this.setSchema(this.options.schema,this.options.schemaRefs)},o._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},o._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},o._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._updateCursorInfo(),this._emitSelectionChange()},o._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},o._onBlur=function(e){this._updateCursorInfo(),this._emitSelectionChange()},o._updateCursorInfo=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.textarea)setTimeout(function(){var o=s.getInputSelection(r.textarea);o.startIndex!==o.endIndex&&(n=o.endIndex-o.startIndex),n&&r.cursorInfo&&r.cursorInfo.line===o.end.row&&r.cursorInfo.column===o.end.column?(t=o.start.row,i=o.start.column):(t=o.end.row,i=o.end.column),r.cursorInfo={line:t,column:i,count:n},r.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var o=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=o.row+1,i=o.column+1,n=a.length,r.cursorInfo={line:t,column:i,count:n},this.options.statusBar&&e()}},o._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},o.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},o.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},o.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},o.repair=function(){var e=this.getText(),t=s.sanitize(e);this.setText(t)},o.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},o.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},o.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},o.get=function(){var e,t=this.getText();try{e=s.parse(t)}catch(i){t=s.sanitize(t),e=s.parse(t)}return e},o.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},o.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?s.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()},o.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 s.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 o=r.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-o+"px",this.content.style.paddingBottom=o+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},o.getTextSelection=function(){var e={};if(this.textarea){var t=s.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var i=this.aceEditor.getSelection(),n=this.aceEditor.getSelectedText(),r=i.getRange(),o=i.getSelectionLead();return o.row===r.end.row&&o.column===r.end.column?e=r:(e.start=r.end,e.end=r.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:n}}},o.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=s.debounce(e,this.DEBOUNCE_INTERVAL))},o.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var i=s.getIndexForPosition(this.textarea,e.row,e.column),n=s.getIndexForPosition(this.textarea,t.row,t.column);if(i>-1&&n>-1)if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(i,n);else if(this.textarea.createTextRange){var r=this.textarea.createTextRange();r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",i),r.select()}}else if(this.aceEditor){var r={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(r)}},e.exports=[{mode:"text",mixin:o,data:"text",load:o.format},{mode:"code",mixin:o,data:"text",load:o.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(73),i(75),i(77)}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=s(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var o=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,s.replace.call(n(this),"g","")),s.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=s.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 s(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 o,a,l,c,h,d=Function.prototype.call,u=Array.prototype,f=Object.prototype,p=u.slice,m=d.bind(f.toString),g=d.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(o=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];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(d=c;d--;)this[l+d]=this[a+d];if(s&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+s,d=0;d>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,s=[],o=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 s=0;s>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>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,s=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(s in i){r=i[s++];break}if(++s>=n)throw new TypeError("reduce of empty array with no initial value")}for(;s>>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,s=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(s in i){r=i[s--];break}if(--s<0)throw new TypeError("reduceRight of empty array with no initial value")}do{s in this&&(r=e.call(void 0,r,i[s],s,t))}while(s--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=w&&"[object String]"==m(this)?this.split(""):B(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=s(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,s(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 s=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=s,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var C;C=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=C();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var b=r({}),A="undefined"==typeof document||r(document.createElement("div"));if(!b||!A)var E=Object.defineProperty}if(!Object.defineProperty||E){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(E)try{return E.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")&&o(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(!o.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 s.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(o.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in s.FUNCTION_KEYS||i in s.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var s=e("./keys"),o=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||o.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 s=t[0];e.wheelX=n-s.clientX,e.wheelY=r-s.clientY,n=s.clientX,r=s.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 s(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,o.isIE){var s=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!s||(d=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),1==d&&(l=e.clientX,c=e.clientY)}if(e._clicks=d,n[r]("mousedown",e),d>4)d=0;else if(d>1)return n[r](u[d],e)}function a(e){d=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),n[r]("mousedown",e),n[r](u[d],e)}var l,c,h,d=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",s),o.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!o.isMac||!o.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 s.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var s=t.addListener;if(o.isOldGecko||o.isOpera&&!("KeyboardEvent"in window)){var l=null;s(e,"keydown",function(e){l=e.keyCode}),s(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;s(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),s(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),s(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),s(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!o.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))},$=function(e){if(!y){var t=f.value;D(t),d()}},k=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 k(e,t,!0)}}},B=function(e,s){var o=t.getCopyText();if(!o)return n.preventDefault(e);k(e,o)?(r.isIOS&&(g=s,f.value="\n aa"+o+"a a\n",f.setSelectionRange(4,4+o.length),m={value:o}),s?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=o,f.select(),setTimeout(function(){m=!1,d(),i(),s?t.onCut():t.onCopy()}))},L=function(e){B(e,!0)},R=function(e){B(e,!1)},T=function(e){var s=k(e);"string"==typeof s?(s&&t.onPaste(s,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",$),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){y||!t.onCompositionStart||t.$readOnly||(y={},y.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),y.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(y&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(y.lastValue!==e&&(t.onCompositionUpdate(e),y.lastValue&&t.undo(),y.canUndo&&(y.lastValue=e),y.lastValue)){var i=t.selection.getRange();t.insert(y.lastValue),t.session.markUndoGroup(),y.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=y;y=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");y||(e==i.lastValue?d():!i.lastValue&&e&&(d(),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)&&$()}},I=o.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){w||(w=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var o=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),l=o.top+(parseInt(a.borderTopWidth)||0),c=o.left+(parseInt(o.borderLeftWidth)||0),h=o.bottom-l-f.clientHeight-2,d=function(e){f.style.left=e.clientX-c-2+"px",f.style.top=Math.min(e.clientY-l-2,h)+"px"};d(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&n.capture(t.container,d,u))},this.onContextMenuClose=u;var N,j=function(e){t.textInput.onContextMenu(e),u()};if(n.addListener(f,"mouseup",j),n.addListener(f,"mousedown",function(e){e.preventDefault(),u()}),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=d}),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"),s=e("../lib/dom"),o=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:u.value.length-1;else var t=e?2:1,i=2;try{u.setSelectionRange(t,i)}catch(e){}g=!1}}function h(){g||(u.value=f,r.isWebKit&&b.schedule())}function d(){clearTimeout(O),O=setTimeout(function(){v&&(u.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 u=s.createElement("textarea");u.className="ace_text-input",u.setAttribute("wrap","off"),u.setAttribute("autocorrect","off"),u.setAttribute("autocapitalize","off"),u.setAttribute("spellcheck",!1),u.style.opacity="0",e.insertBefore(u,e.firstChild);var f="\u2028\u2028",p=!1,m=!1,g=!1,v="",y=!0;try{var w=document.activeElement===u}catch(e){}n.addListener(u,"blur",function(e){t.onBlur(e),w=!1}),n.addListener(u,"focus",function(e){w=!0,t.onFocus(e),i()}),this.focus=function(){if(v)return u.focus();var e=u.style.top;u.style.position="fixed",u.style.top="0px",u.focus(),setTimeout(function(){u.style.position="","0px"==u.style.top&&(u.style.top=e)},0)},this.blur=function(){u.blur()},this.isFocused=function(){return w};var C=o.delayedCall(function(){w&&i(y)}),b=o.delayedCall(function(){g||(u.value=f,w&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=y&&(y=!y,C.schedule())}),h(),w&&t.onFocus();var A=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},E=function(e){p?p=!1:A(u)?(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=u.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)}}},$=function(e,r){var s=t.getCopyText();if(!s)return n.preventDefault(e);D(e,s)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,u.value=s,u.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},k=function(e){$(e,!0)},B=function(e){$(e,!1)},L=function(e){var s=D(e);"string"==typeof s?(s&&t.onPaste(s,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(u.value="",m=!0)};n.addCommandKeyListener(u,t.onCommandKey.bind(t)),n.addListener(u,"select",E),n.addListener(u,"input",_),n.addListener(u,"cut",k),n.addListener(u,"copy",B),n.addListener(u,"paste",L),"oncut"in u&&"oncopy"in u&&"onpaste"in u||n.addListener(e,"keydown",function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:B(e);break;case 86:L(e);break;case 88:k(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=u.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=u.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=o.delayedCall(T,50);n.addListener(u,"compositionstart",R),r.isGecko?n.addListener(u,"text",function(){M.schedule()}):(n.addListener(u,"keyup",function(){M.schedule()}),n.addListener(u,"keydown",function(){M.schedule()})),n.addListener(u,"compositionend",P),this.getElement=function(){return u},this.setReadOnly=function(e){u.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=u.style.cssText),u.style.cssText=(i?"z-index:100000;":"")+"height:"+u.style.height+";"+(r.isIE?"opacity:0.1;":"");var o=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),l=o.top+(parseInt(a.borderTopWidth)||0),c=o.left+(parseInt(o.borderLeftWidth)||0),h=o.bottom-l-u.clientHeight-2,f=function(e){u.style.left=e.clientX-c-2+"px",u.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,d))},this.onContextMenuClose=d;var O,I=function(e){t.textInput.onContextMenu(e),d()};n.addListener(u,"mouseup",I),n.addListener(u,"mousedown",function(e){e.preventDefault(),d()}),n.addListener(t.renderer.scroller,"contextmenu",I),n.addListener(u,"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 s(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 o=(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 s=n.getSelectionRange(),a=s.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),o.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=s(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 o=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==o&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&o>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==o&&1==a)n=r.end,t=r.start;else{var l=s(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,s=e.wheelX/r,o=e.wheelY/r;r<250&&(s=(s+i.vx)/2,o=(o+i.vy)/2);var a=Math.abs(s/o),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(s)<=1.1*Math.abs(i.vx)&&Math.abs(o)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=s,i.vy=o,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=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,d.y).row,a=d.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return i()}if(u!=r)if(u=r.text.join("
    "),c.setHtml(u),c.show(),o._signal("showGutterTooltip",c),o.on("mousewheel",i),e.$tooltipFollowsMouse)n(d);else{var h=d.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)),u&&(c.hide(),u=null,o._signal("hideGutterTooltip",c),o.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var o=e.editor,l=o.renderer.$gutterLayer,c=new r(o.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(o.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=o.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var o=r.domEvent.target||r.domEvent.srcElement;if(s.hasCssClass(o,"ace_fold-widget"))return i();u&&e.$tooltipFollowsMouse&&n(r),d=r,h||(h=setTimeout(function(){h=null,d&&!e.isMousePressed?t():i()},50))}),a.addListener(o.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),o.on("changeSession",i)}function r(e){l.call(this,e)}var s=e("../lib/dom"),o=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;o.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(),s=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+s>n&&(t-=20+s),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"),s=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(s.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,s=!t||e.column!=t.column;if(!_||n||s)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,_=i,D={x:w,y:C};else{r(D.x,D.y,w,C)>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,s=g.renderer.scroller.getBoundingClientRect(),o={x:{left:w-s.left,right:s.right-w},y:{top:C-s.top,bottom:s.bottom-C}},a=Math.min(o.x.left,o.x.right),c=Math.min(o.y.top,o.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=o.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=E;E=g.renderer.screenToTextCoordinates(w,C),t(E,e),i(E,e)}function d(){A=g.selection.toOrientedRange(),y=g.session.addMarker(A,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(b),n(),b=setInterval(n,20),k=0,o.addListener(document,"mousemove",f)}function u(){clearInterval(b),g.session.removeMarker(y),y=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(A),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),A=null,E=null,k=0,S=null,_=null,o.removeListener(document,"mousemove",f)}function f(){null==B&&(B=setTimeout(function(){null!=B&&y&&u()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function 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 s="none";return n&&t.indexOf(r)>=0?s="copy":i.indexOf(r)>=0?s="move":t.indexOf(r)>=0&&(s="copy"),s}var g=e.editor,v=s.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 y,w,C,b,A,E,F,x,S,_,D,$=g.container,k=0;this.onDragStart=function(e){if(this.cancelDrag||!$.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}A=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($.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 w=e.clientX,C=e.clientY,y||d(),k++,e.dataTransfer.dropEffect=F=m(e),o.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return w=e.clientX,C=e.clientY,y||(d(),k++),null!==B&&(B=null),e.dataTransfer.dropEffect=F=m(e),o.preventDefault(e)},this.onDragLeave=function(e){if(--k<=0&&y)return u(),F=null,o.preventDefault(e)},this.onDrop=function(e){if(E){var t=e.dataTransfer;if(x)switch(F){case"move":A=A.contains(E.row,E.column)?{start:E,end:E}:g.moveText(A,E);break;case"copy":A=g.moveText(A,E,!0)}else{var i=t.getData("Text");A={start:E,end:g.session.insert(E,i)},g.focus(),F=null}return u(),o.preventDefault(e)}},o.addListener($,"dragstart",this.onDragStart.bind(e)),o.addListener($,"dragend",this.onDragEnd.bind(e)),o.addListener($,"dragenter",this.onDragEnter.bind(e)),o.addListener($,"dragover",this.onDragOver.bind(e)),o.addListener($,"dragleave",this.onDragLeave.bind(e)),o.addListener($,"drop",this.onDrop.bind(e));var B=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var s=e("../lib/dom"),o=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},s=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=s),i=i.slice();for(var o=0;o1&&(r=i[i.length-2]);var o=h[t+"Path"];return null==o?o=h.basePath:"/"==n&&(t=n=""),o&&"/"!=o.slice(-1)&&(o+="/"),o+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,s;Array.isArray(i)&&(s=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 o=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 o();a.loadScript(t.moduleUrl(i,s),o)}},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"),s=e("./default_handlers").DefaultHandlers,o=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 s(this),new o(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(),s=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?s.setCursorStyle("default"):s.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 s=this,o=function(e){if(e){if(r.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new a(e,s.editor),s.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},c=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});s.$onCaptureMouseMove=o,s.releaseMouse=n.capture(this.editor.container,o,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),s=r.range||r.firstRange;if(s){i=s.start.row;var o=n.getFoldAt(i,n.getLine(i).length,1);o?n.removeFold(o):(n.addFold("...",s),e.renderer.scrollCursorIntoView({row:s.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),s=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 s,o=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((s=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&s.command&&(o="null"==s.command||a.exec(s.command,this.$editor,s.args,n),o&&n&&-1!=e&&1!=s.passEvent&&1!=s.command.passEvent&&r.stopEvent(n),o)););return o||-1!=e||(s={command:"insertstring"},o=a.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},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(s.prototype),t.KeyBinding=s}),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,y=0,w=null,C=-1,E=null,x=null,S=[];if(!n)for(E=0,n=[];E0)if(16==w){for(E=C;E-1){for(E=C;E=0&&n[_]==F;_--)t[_]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,s=n-1;r=t.length||(r=i[n-1])!=y&&r!=w||(s=t[n+1])!=y&&s!=w?C:(c&&(s=w),s==r?s:C);case S:return r=n>0?i[n-1]:b,r==y&&n+10&&i[n-1]==y)return y;if(c)return C;for(l=n+1,o=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==E))return v}return n<1||(r=t[n-1])==b?C:i[n-1];case b:return c=!1,d=!0,a;case A:return u=!0,C;case $:case k:case L:case R:case B:c=!1;case T:return C}}function o(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)?w:1642==t?_:/[\u06f0-\u06f9]/.test(e)?y:E:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?E:C}var a=0,l=0,c=!1,h=!1,d=!1,u=!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,y=2,w=3,C=4,b=5,A=6,E=7,F=8,x=9,S=10,_=11,D=12,$=13,k=14,B=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,A,b,A,F,b,T,T,T,T,T,T,T,T,T,T,T,T,T,T,b,b,b,A,F,C,C,_,_,_,C,C,C,C,C,S,x,S,x,x,y,y,y,y,y,y,y,y,y,y,x,C,C,C,C,C,C,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,C,C,C,C,C,C,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,C,C,C,C,T,T,T,T,T,T,b,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,C,_,_,_,_,C,C,C,C,g,C,C,T,C,C,_,_,y,y,C,g,C,C,C,y,g,C,C,C,C,C],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,F,b,$,k,B,L,R,x,_,_,_,_,_,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,x,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,F];t.L=g,t.R=v,t.EN=y,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,s){if(e.length<2)return{};var o=e.split(""),l=new Array(o.length),c=new Array(o.length),h=[];a=s?m:0,n(o,h,o.length,i);for(var d=0;dE&&i[d]<$||i[d]===C||i[d]===T)?h[d]=t.ON_R:d>0&&"ل"===o[d-1]&&/\u0622|\u0623|\u0625|\u0627/.test(o[d])&&(h[d-1]=h[d]=t.R_H,d++);o[o.length-1]===t.DOT&&(h[o.length-1]=t.B);for(var d=0;d=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 s=0;s=c&&ri+o/2;){if(i+=o,r===s.length-1){o=0;break}o=this.charWidths[s[++r]]}return r>0&&s[r-1]%2!=0&&s[r]%2==0?(e0&&s[r-1]%2==0&&s[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===s.length-1&&0===o&&s[r-1]%2==0||!this.isRtlDir&&0===r&&s[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&s[r-1]%2!=0&&0!==o&&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()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.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 o(n,0,i,this.session.getLine(i).length):new o(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(s)&&(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 s=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var s=r.stringReverse(n),o=this.$shortWordEndIndex(s);return this.moveCursorTo(t,i-o)},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 o.fromPoints(t,i)}catch(e){return o.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=o.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,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",a=[],l=0;l1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),s[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(s[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",o)}};(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,s=i.length;rh){var v=e.substring(h,g-m.length);u.type==f?u.value+=v:(u.type&&c.push(u),u={type:f,value:v})}for(var y=0;yr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(s.prototype),t.Tokenizer=s}),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"),s=e("../behaviour").Behaviour,o=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},d={'"':'"',"'":"'"},u=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,s,o){var l=r.getCursorPosition(),c=s.doc.getLine(l.row);if("{"==o){u(r);var h=r.getSelectionRange(),d=s.doc.getTextRange(h);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return f(h,d,"{","}");if(p.isSaneInsertion(r,s))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,s,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,s,"{"),{text:"{",selection:[1,1]})}else if("}"==o){u(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=s.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,o))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==o||"\r\n"==o){u(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 y=s.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!y)return null;var w=this.$getIndent(s.getLine(y.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var w=this.$getIndent(c)}var C=w+s.getTabString();return{text:"\n"+C+"\n"+w+v,selection:[1,C.length,1,C.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,s){var o=r.doc.getTextRange(s);if(!s.isMultiLine()&&"{"==o){u(i);if("}"==r.doc.getLine(s.start.row).substring(s.end.column,s.end.column+1))return s.end.column++,s;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){u(i);var s=i.getSelectionRange(),o=n.doc.getTextRange(s);if(""!==o&&i.getWrapBehavioursEnabled())return f(s,o,"(",")");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){u(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 s=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==s){u(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){u(i);var s=i.getSelectionRange(),o=n.doc.getTextRange(s);if(""!==o&&i.getWrapBehavioursEnabled())return f(s,o,"[","]");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){u(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 s=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==s){u(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 s=n.$mode.$quotes||d;if(1==r.length&&s[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;u(i);var o=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&s[l])&&i.getWrapBehavioursEnabled())return f(a,l,o,o);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 y,w=g&&/string|escape/.test(g.type),C=!v||/string|escape/.test(v.type);if(m==o)(y=w!==C)&&/string\.end/.test(v.type)&&(y=!1);else{if(w&&!C)return null;if(w&&C)return null;var b=n.$mode.tokenRe;b.lastIndex=0;var A=b.test(p);b.lastIndex=0;var E=b.test(p);if(A||E)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;y=!0}return{text:y?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var s=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==s||"'"==s)){u(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==s)return r.end.column++,r}})};p.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new o(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new o(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(),s=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,s,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+s.substr(r.column),n.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),s=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,s)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=s.substr(0,r.column)+i,n.maybeInsertedLineEnd=s.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,s),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,s=e("./behaviour/cstyle").CstyleBehaviour,o=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp("^["+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.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(s.getLine(t),t)}var s=t.doc,o=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;y(e,n,r)||" "!=i[0][r-1]||r--,s.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){o&&!/\S/.test(e)||(y(e,c,c)?s.insertInLine({row:t,column:c},m):s.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},y=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,w=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),C=new RegExp("(?:"+a.escapeRegExp(w)+")\\s*$"),g=function(e,t){v(e,t)||o&&!/\S/.test(e)||(s.insertInLine({row:t,column:e.length},w),s.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(C))&&s.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&s.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(b=e.length)}),c==1/0&&(c=b,o=!1,l=!1),d&&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 s,o,a=new l(t,n.row,n.column),h=a.getCurrentToken(),d=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var u,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;u=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),u&&(t.remove(u),s=u.start.row,o=-r.start.length)}else o=r.start.length,s=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==s&&(d.start.column+=o),d.end.row==s&&(d.end.column+=o),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;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(s.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,s=e("./lib/event_emitter").EventEmitter,o=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,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(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 o||(e=o.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]:!o.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,s=e.start.column,o=0,a=0;;){o=a,a+=t-1;var l=i.slice(o,a);if(a>n){e.lines=l,e.start.row=r+o,e.start.column=s;break}l.push(""),this.applyDelta({start:this.pos(r+o,s),end:this.pos(r+a,s=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,s=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),s<=n&&i.fireUpdateEvent(s,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(s.prototype),t.BackgroundTokenizer=s}),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),s=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,s){if(this.regExp)for(var o=s.firstRow,a=s.lastRow,l=o;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,s)}}}).call(s.prototype),t.SearchHighlight=s}),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,s,o=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,o.start);return 0===a?t&&0!==l?-s-2:s:l>0||0===l&&!t?s:-s-1}}return-s-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],s=1;s=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+=o,h.start.row+=s)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&o>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=o),h.end.column+=o,h.end.row+=s}}}if(0!=s&&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}o>=e&&(n-=a>=e?o-a:o-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 o?i=e:(i=new o(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 s=n;s.length;)this.expandFolds(s),s=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 s=this.doc,o="";return e.walk(function(e,t,i,a){if(!(th)break}while(s&&l.test(s.type));s=n.stepBackward()}else s=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+s.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=s.end.row;try{var o=this.addFold("...",s);o&&(o.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 s=i[r];if(null==s&&(s=i[r]=this.getFoldWidget(r)),"start"==s){var o=this.getFoldWidgetRange(r);if(n||(n=o),o&&o.end.row>=e)break}r--}return{range:-1!==r&&o,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,s=this.getFoldAt(e,-1===r?0:n.length,r);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()&&(s=this.getFoldAt(o.start.row,o.start.column,1))&&o.isEqual(s.range))return this.removeFold(s),s;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=o?o.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o}},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,s=e("./fold_line").FoldLine,o=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),o=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(o||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},o=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!o)return null;if(o[1]){var a=this.$findClosingBracket(o[1],e);if(!a)return null;t=s.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(o[2],e);if(!a)return null;t=s.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],s=1,o=new r(this,t.row,t.column),a=o.getCurrentToken();if(a||(a=o.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-o.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(s-=1))return{row:o.getCurrentTokenRow(),column:l+o.getCurrentTokenColumn()}}else h==e&&(s+=1);l-=1}do{a=o.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],s=1,o=new r(this,t.row,t.column),a=o.getCurrentToken();if(a||(a=o.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-o.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,s=e[r];if(t>s)i=r+1;else{if(!(t=t);s++);return(i=n[s])?(i.index=s,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 s=t;if(s>0){do{s--}while(s>=0&&i.charAt(s).match(r));s++}for(var o=t;oe&&(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,s=this.$foldData[r],o=s?s.start.row:1/0,a=t.length,l=0;lo){if((l=s.end.row+1)>=a)break;s=this.$foldData[r++],o=s?s.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&&(s.start.column+=a),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=a)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}if(s.end=this.insert(s.start,n),r.length){var l=e.start,c=s.start,o=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+=o,e.end.row+=o,e}))}return s},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 s=this.getLine(r);i.start.row=r,i.end.row=r;for(var o=0;o0){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 s=new h(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).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),o.length&&this.addFolds(o),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,s=n.row,o=r.row,a=o-s,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(s,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(s);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}o=s}else{var f=Array(a);f.unshift(s,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(s),d=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(o,0,r.column-n.column)):-1==m&&(h.addRemoveChars(s,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=s&&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(s);h&&h.addRemoveChars(s,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(s,o):this.$updateRowLengthCache(s,o),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,s,o=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,o.length-1);h<=n;)s=this.getFoldLine(h,s),s?(r=[],s.walk(function(e,n,s,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var y=u+n-v;if(e[y-1]>=s&&e[y]>=s)a(y);else if(e[y]!=t&&e[y]!=i){for(var w=Math.max(y-(n-(n>>2)),u-1);y>w&&e[y]w&&e[y]w&&9==e[y];)y--}else for(;y>w&&e[y]w?a(++y):(y=u+n,2==e[y]&&y--,a(y-v))}else{for(y;y!=u-1&&e[y]!=t;y--);if(y>u){a(y);continue}for(y=u+n;y39&&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,s;for(s=0;s=4352&&e(r)?n+=2:n+=1,!(n>i));s++);return[n,s]},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],s=this.$docRowCache[h],u=e>c[d-1];else var u=!d;for(var f=this.getLength()-1,p=this.getNextFoldLine(s),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(s),!(a+l>e||s>=f));)a+=l,++s>m&&(s=p.end.row+1,p=this.getNextFoldLine(s,p),m=p?p.start.row:1/0),u&&(this.$docRowCache.push(s),this.$screenRowCache.push(a));if(p&&p.start.row<=s)n=this.getFoldDisplayLine(p),s=p.start.row;else{if(a+l<=e||s>f)return{row:f,column:this.getLine(f).length};n=this.getLine(s),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var y=this.$wrapData[s];y&&(r=y[v],v>0&&y.length&&(g=y.indent,o=y[v-1]||y[y.length-1],n=n.substring(o)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,s,v)&&(t=this.$bidiHandler.offsetToCol(i)),o+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&o>=r&&(o=r-1),p?p.idxToPosition(o):{row:s,column:o}},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,s=null;(s=this.getFoldAt(e,t,1))&&(e=s.start.row,t=s.start.column);var o,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getNextFoldLine(a),f=u?u.start.row:1/0;a=f){if((o=u.end.row+1)>e)break;u=this.getNextFoldLine(o,u),f=u?u.start.row:1/0}else o=a+1;n+=this.getRowLength(a),a=o,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var 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++],s=t?t.start.row:1/0;ns&&(n=t.end.row+1,t=this.$foldData[r++],s=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));s++);return[n,s]})},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),o.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"),s=e("./lib/oop"),o=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return s.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,s){return n=new o(e,i,r,s),!(i==s&&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(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var d=a.offset||0;d<=h;d++){for(var u=0;um||(s.push(l=new o(d,m,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var v=0;vb&&s[u].end.row==i.end.row;)u--;for(s=s.slice(v,u+1),v=0,u=s.length;v=a;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=o.row;i>=a;i--)if(d(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=o.row;if(!d(i,o.column,e)){for(i+=1;i<=l;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=a,l=o.row;i<=l;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var h=i.length,d=function(t,r,s){var o=n?t-h+1:t;if(!(o<0)){var a=e.getLine(o),l=a.search(i[0]);if(!(!n&&lr))return!!s(o,l,o+h-1,d)||void 0}}};else if(n)var d=function(t,n,r){var s,o=e.getLine(t),a=[],l=0;for(i.lastIndex=0;s=i.exec(o);){var c=s[0].length;if(l=s.index,!c){if(l>=o.length)break;i.lastIndex=l+=1}if(s.index+c>n)break;a.push(s.index,c)}for(var h=a.length-1;h>=0;h-=2){var d=a[h-1],c=a[h];if(r(t,d,t,d+c))return!0}};else var d=function(t,n,r){var s,o=e.getLine(t),a=n;for(i.lastIndex=n;s=i.exec(o);){var l=s[0].length;if(a=s.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=o.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||(o.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 s=e("../lib/keys"),o=e("../lib/useragent"),a=s.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 s=n[r];if(s==e)delete n[r];else if(Array.isArray(s)){var o=s.indexOf(e);-1!=o&&(s.splice(o,1),1==s.length&&(n[r]=s[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 s=this.parseKeys(e),o=a[s.hashId]+s.key;this._addCommandToBinding(n+o,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,s=this.commandKeyBinding;if(i)if(!s[t]||this.$singleCommand)s[t]=i;else{Array.isArray(s[t])?-1!=(r=s[t].indexOf(i))&&s[t].splice(r,1):s[t]=[s[t]],"number"!=typeof n&&(n=e(i));var o=s[t];for(r=0;rn)break}o.splice(r,0,i)}else delete s[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=s[i];if(s.FUNCTION_KEYS[n])i=s.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,o=t.length;o--;){var a=s.KEY_MODS[t[o]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[o]+" 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,s=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,s=this.commandKeyBinding[e.$keyChain]||s),!s||"chainKeys"!=s&&"chainKeys"!=s[s.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:s}):(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,s=e("../lib/event_emitter").EventEmitter,o=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(o,r),function(){n.implement(this,s),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(o.prototype),t.CommandManager=o}),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"),s=e("../config"),o=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){s.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){s.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){s.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){s.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){s.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(),s=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(s=e.session.doc.getLine(i.row).length>s?s+1:s,e.selection.moveCursorTo(i.row,s))},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 s=0;s0&&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 y(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 s=r.value,o=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===s&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?o++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===s&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?o++:"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),s=r.length,o=r.substring(Math.max(i,0),Math.min(n,s));if(!(i>=0&&/^[\w\d]/.test(o)||n<=s&&/[\w\d]$/.test(o))&&(o=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(o))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o})}}},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 s=n[r];s.isEmpty()||this.session.remove(s),this.session.insert(s.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 s=n.transformAction(i.getState(r.row),"insertion",this,i,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){var o=new f.fromPoints(r,r);o.end.column+=e.length,this.session.remove(o)}}else{var o=this.getSelectionRange();r=this.session.remove(o),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(s&&s.selection&&(2==s.selection.length?this.selection.setSelectionRange(new f(r.row,c+s.selection[0],r.row,c+s.selection[1])):this.selection.setSelectionRange(new f(r.row+s.selection[0],s.selection[1],r.row+s.selection[2],s.selection[3]))),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var s=i.getTextRange(t);if("\n"==s[s.length-1]){var o=i.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.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 s=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=s.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 s=this.getNumberAt(t,i);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,a=s.start+s.value.length-o,l=parseFloat(s.value);l*=Math.pow(10,a),o!==s.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);d<=h;)o[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var s=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(s)},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 y(this.session,i.row,i.column),r=n.getCurrentToken(),s=r||n.stepForward();if(s){var o,a,l=!1,c={},h=i.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h=0;--s)this.$tryReplace(i[s],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 s=this.$search.find(this.session);return t.preventScroll?s:s?(this.revealRange(s,i),s):(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 s=this.on("changeSelection",function(){n=!0}),o=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,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,a=s.top-o.offset;n=s.top>=0&&a+t.top<0||!(s.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=s.left+"px",r.style.height=o.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",o))}}},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(w.prototype),v.defineOptions(w.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=w}),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"),s=e("../lib/lang"),o=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,o),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;to&&(m=s.end.row+1,s=t.getNextFoldLine(m,s),o=s?s.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 y=a[m];null==y&&(y=a[m]=t.getFoldWidget(m))}if(y){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+y;"start"==y&&m==o&&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"),s=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 s=this.$getTop(r.start.row,e),o=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,o,s,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,s,o){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,d=0,u=0,f=a.getScreenLastRowColumn(h),p=null,m=new n(h,i.start.column,h,u);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,d=u,u=f,f=h+1f,h==c),this.session.$bidiHandler.isBidiRow(h)?this.drawBidiSingleLineMarker(t,m,p,s,h==c?0:1,o):this.drawSingleLineMarker(t,m,p,s,h==c?0:1,o)},this.drawMultiLineMarker=function(e,t,i,n,r){var s,o,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 s=n.lineHeight,o=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;s=n.lineHeight,o=this.$getTop(t.end.row,n),e.push("
    ")}if(!((s=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){o=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
    ")}},this.drawSingleLineMarker=function(e,t,i,n,r,s){var o=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,s){var o=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 s=this.$getTop(t.start.row,n),o=n.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,n)-s),e.push("
    ")},this.drawScreenLineMarker=function(e,t,i,n,r){var s=this.$getTop(t.start.row,n),o=n.lineHeight;e.push("
    ")}}).call(s.prototype),t.Marker=s}),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"),s=e("../lib/lang"),o=(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,o),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"+s.stringRepeat(this.TAB_CHAR,i)+""):t.push(s.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",o="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",o=" ace_invisible_tab";var a=s.stringRepeat(this.SPACE_CHAR,this.tabSize),l=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=s.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),s=this.element.childNodes,o=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=s[o++];if(h){var d=[];this.$renderLine(d,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=d.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),a=o?o.start.row:1/0;;){if(s>a&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),a=o?o.start.row:1/0),s>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,s,!1,s==a&&o),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);s++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,s=this.session.getNextFoldLine(r),o=s?s.start.row:1/0;;){if(r>o&&(r=s.end.row+1,s=this.session.getNextFoldLine(r,s),o=s?s.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
    "),this.$renderLine(t,r,!1,r==o&&s),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,o=function(e,i,n,o,a){ -if(i)return r.showInvisibles?""+s.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+o);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,o);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(s.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(s.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,o=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
    "),e.push(s.stringRepeat(" ",i.indent)),o++,l=0,a=i[o]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var s=1;s"),r.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,r,s,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,s=0;s+e[n].value.lengthi-t&&(o=o.substring(0,i-t)),r.push({type:e[n].type,value:o}),s=t+o.length,n+=1}for(;si?r.push({type:e[n].type,value:o.substring(0,i-s)}):r.push(e[n]),s+=o.length,n+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(s=n.getTokens(t)),s.length&&i(s,a,o))},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"),s=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||s.top<0)&&i>1)){var o=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[i],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=s,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(s.prototype),t.Cursor=s}),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"),s=e("./lib/event"),o=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,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){n.implement(this,o),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"),s=e("../lib/lang"),o=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=s.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",o.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=s.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"),s=e("./config"),o=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,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=!o.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 u(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),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),s.resetOptions(this),s._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 s=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|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,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};return n&&(e||s.height!=n)&&(s.height=n,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||s.width!=i)&&(r|=this.CHANGE_SIZE,s.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",s.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)),s.$dirty=!i||!n,r&&this._signal("resize",o),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 s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-s&&(i=this.$size.scrollerWidth-s),i+=this.gutterWidth,n.height=r+"px",n.width=s+"px",n.left=Math.min(i,this.$size.scrollerWidth-s)+"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,s=this.$getLongestLine(),o=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),a=this.$horizScroll!==o;a&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),w=y+v,C=this.lineHeight;y=e.screenToDocumentRow(y,0);var b=e.getFoldLine(y);b&&(y=b.start.row),m=e.documentToScreenRow(y,0),g=e.getRowLength(y)*C,w=Math.min(e.screenToDocumentRow(w,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(w)*C+g,c=this.scrollTop-m*C;var A=0;return this.layerConfig.width!=s&&(A=this.CHANGE_H_SCROLL),(a||p)&&(A=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine())),this.layerConfig={width:s,padding:this.$padding,firstRow:y,firstRowScreen:m,lastRow:w,lineHeight:C,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:C?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/C)):0,height:this.$size.scrollerHeight},A},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||ts?(t&&l+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),0===s&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):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,s=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),o=Math.round(r);return{row:s,column:o,side:r-o>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),s=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(s,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)),s=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+s-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 s="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),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 o=e||this.$options.theme.initialValue;s.loadModule(["theme",o],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),s.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;o.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,s=r.createObjectURL(i);return new Worker(s)}var s=e("../lib/oop"),o=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,s,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),l.get("packaged")||!e.toUrl)s=s||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;s=s||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(s,i),o&&this.send("importScripts",o),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){s.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 o.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(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,s=Object.create(a),o=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){o.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=o.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&s._signal(e.event,e.data)};s.postMessage=function(e){o.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},s.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},l.loadModule(["worker",t],function(e){for(n=new e[i](s);o.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,s=e("./lib/oop"),o=function(e,t,i,n,r,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){o.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(){s.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,s=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var o=this.others.length-1;o>=0;o--){var a=this.others[o],l={row:a.row,column:a.column+s};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var o=this.others.length-1;o>=0;o--){var a=this.others[o],l={row:a.row,column:a.column+s};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,s=i.end.row;if(r==s){if(n)var o=i.end,a=i.start;else var o=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(o,o))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var d=r+1;d1){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=[],s=e.column0;)v--;if(v>0)for(var y=0;n[y].isEmpty();)y++;for(var w=v;w>=y;w--)n[w].isEmpty()&&n.splice(w,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,s=1==i||i&&i.$byLines,o=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(o);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(s)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=o.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=o.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,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;ns&&(s=i.column),rc?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=s,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(d)}while(/[=:]/.test(p)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var g=this.session.removeFullLines(h,d);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 u.stringRepeat(" ",e)}function n(e){return e[2]?i(o)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(o+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function s(e){return e[2]?i(o)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var o,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==o?(o=t[1].length,a=t[2].length,l=t[3].length,t):(o+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),o!=t[1].length&&(c=!1),o>t[1].length&&(o=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:s)}}).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=s,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){s(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),s=r.search(/\S/);if(-1!=s){for(var o=i||r.length,a=e.getLength(),l=t,c=t;++tl){var d=e.getLine(c).length;return new n(l,o,c,d)}}},this.openingBracketBlock=function(e,t,i,r,s){var o={row:i,column:r+1},a=e.$findClosingBracket(t,o,s);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>o.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(o,a)}},this.closingBracketBlock=function(e,t,i,r,s){var o={row:i,column:r},a=e.$findOpeningBracket(t,o);if(a)return a.column++,o.column--,n.fromPoints(a,o)}}).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,s=n.end.row,o="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var o=r;o<=s;o++){var a=n[o];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:o,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 s=n+r>>1,o=i(t,e[s]);if(o>0)n=s+1;else{if(!(o<0))return s;r=s-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var s=n(r,{row:t,column:-1},a.comparePoints);s<0&&(s=-s-1),s>=r.length?s=i>0?0:r.length-1:0===s&&i<0&&(s=r.length-1);var o=r[s];if(o&&i){if(o.row===t){do{o=r[s+=i]}while(o&&o.row===t);if(!o)return r.slice()}var l=[];t=o.row;do{l[i<0?"unshift":"push"](o),o=r[s+=i]}while(o&&o.row==t);return l.length&&l}}}var s=e("../line_widgets").LineWidgets,o=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new s(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:o.createElement("div"),type:"errorMarker"},f=u.el.appendChild(o.createElement("div")),p=u.el.appendChild(o.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",u.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
    "),f.appendChild(o.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return u.destroy(),{command:"null"}};u.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(u),e.off("changeSelection",u.destroy),e.off("changeSession",u.destroy),e.off("mouseup",u.destroy),e.off("change",u.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",u.destroy),e.on("changeSession",u.destroy),e.on("mouseup",u.destroy),e.on("change",u.destroy),e.session.widgetManager.addLineWidget(u),u.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:u.el.offsetHeight})},o.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"),s=e("./lib/event"),o=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(74),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 o)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 o(new c(e));h.setSession(l);var d={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),s.addListener(window,"resize",d.onResize),h.on("destroy",function(){s.removeListener(window,"resize",d.onResize),d.editor.container.env=null}),h.container.env=h.env=d,h},t.createEditSession=function(e,t){var i=new 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,s=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(s,r),t.JsonHighlightRules=s}),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 s=r[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,s-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,s=e("./fold_mode").FoldMode,o=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(o,s),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 s=r.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],i,o);var a=e.getCommentFoldRange(i,o+s[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var s=r.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],i,o):e.getCommentFoldRange(i,o,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),s=t,o=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<=s)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(s,o,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),s=e.getLength(),o=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++io)return new r(o,n,h,t.length)}}.call(o.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"),s=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=o,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,s),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(76),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){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.");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.onChangeJSON&&("text"===t.mode||"code"===t.mode||t.modes&&(-1!==t.modes.indexOf("text")||-1!==t.modes.indexOf("code")))&&console.warn('Option "onChangeJSON" is not applicable to modes "text" and "code". Use "onChangeText" or "onChange" instead.'),t&&Object.keys(t).forEach(function(e){-1===n.VALID_OPTIONS.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 s=i(51),o=i(71),a=i(56);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.VALID_OPTIONS=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onChangeJSON","onChangeText","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"],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){if(e!==this.options.mode||!this.create){var t,i,r=this.container,s=a.extend({},this.options),o=s.mode;s.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+s.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,s),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 s.onModeChange&&e!==o)try{s.onModeChange(e,o)}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 s(e,t,i){var n=o.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function o(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),y=["%","/","?",";","#"].concat(v),w=["/","?","#"],C={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},A={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},E=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 s=r.toLowerCase();this.protocol=s,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var o="//"===n.substr(0,2);!o||r&&b[r]||(n=n.substr(2),this.slashes=!0)}if(!b[r]&&(o||r&&!A[r])){for(var a=-1,c=0;c127?S+="x":S+=x[_];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var $=g.slice(0,c),k=g.slice(c+1),B=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);B&&($.push(B[1]),k.unshift(B[2])),k.length&&(n="/"+k.join(".")+n),this.hostname=$.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],y=(i.host||e.host)&&("."===v||".."===v)||""===v,w=0,C=p.length;C>=0;C--)v=p[C],"."==v?p.splice(C,1):".."===v?(p.splice(C,1),w++):w&&(p.splice(C,1),w--);if(!u&&!f)for(;w--;w)p.unshift("..");!u||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),y&&"/"!==p.join("/").substr(-1)&&p.push("");var E=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=E?"":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 u=u||i.host&&p.length,u&&!E&&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(s){function o(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(B,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,s=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function d(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:b}function u(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*E>>1;n+=b)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,s,a,l,c,u,p,m=[],g=e.length,v=0,y=_,w=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&o("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&o("invalid-input"),c=d(e.charCodeAt(r++)),(c>=b||c>T((C-v)/a))&&o("overflow"),v+=c*a,u=l<=w?A:l>=w+E?E:l-w,!(cT(C/p)&&o("overflow"),a*=p;t=m.length+1,w=f(v-s,t,0==s),T(v/t)>C-y&&o("overflow"),y+=T(v/t),v%=t,m.splice(v++,0,y)}return h(m)}function m(e){var t,i,n,r,s,a,l,h,d,p,m,g,v,y,w,F=[];for(e=c(e),g=e.length,t=_,i=0,s=S,a=0;a=t&&mT((C-i)/v)&&o("overflow"),i+=(l-t)*v,t=l,a=0;aC&&o("overflow"),m==t){for(h=i,d=b;p=d<=s?A:d>=s+E?E:d-s,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=b-A,T=Math.floor,P=String.fromCharCode;w={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return w}.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 s={};if("string"!=typeof e||0===e.length)return s;e=e.split(t);var o=1e3;r&&"number"==typeof r.maxKeys&&(o=r.maxKeys);var a=e.length;o>0&&a>o&&(a=o);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),d=decodeURIComponent(c),u=decodeURIComponent(h),i(s,d)?Array.isArray(s[d])?s[d].push(u):s[d]=[s[d],u]:s[d]=u}return s}},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 s=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return s+encodeURIComponent(i(e))}).join(t):s+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";var i=Array.isArray,n=Object.keys,r=Object.prototype.hasOwnProperty;e.exports=function e(t,s){if(t===s)return!0;var o,a,l,c=i(t),h=i(s);if(c&&h){if((a=t.length)!=s.length)return!1;for(o=0;o=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(s="data"+(t-n||""),!r)return s}for(var a=s,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=d.call(arguments,1)),i(t)})})}function s(e){return Promise.all(e.map(n,this))}function o(e){for(var t=new e.constructor,i=Object.keys(e),r=[],s=0;s=1&&i<=12&&n>=1&&n<=u[i]}function s(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],s=i[3],o=i[5];return n<=23&&r<=59&&s<=59&&(!t||o)}function o(e){var t=e.split(C);return 2==t.length&&r(t[0])&&s(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return b.test(e)&&m.test(e)}function c(e){if(A.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),d=/^\d\d\d\d-(\d\d)-(\d\d)$/,u=[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,y=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,w=/^(?:\/(?:[^~\/]|~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:y,"json-pointer":w,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:s,"date-time":o,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:y,"json-pointer":w,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var C=/t|\s/i,b=/\/|:/,A=/[^\\]\\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"],s=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(s),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var s=Object.keys(i)[0];r=i[s],i=s,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,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(a||""),u="valid"+o;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(s),s="",!1!==e.createErrors?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),s+=" } "):s+=" {} ";var g=s;s=m.pop(),!e.compositeRule&&h?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(s+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(s+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var y="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var w=e.validate(v).replace(/validate\.schema/g,f.code);s+=" "+w+" ",h&&(s+=" if ("+y+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(s),s="",e.opts.passContext?s+=" "+r+".call(this, ":s+=" "+r+"( ",s+=" "+d+", (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);s+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var C=s;if(s=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(s+=" var "+u+"; "),s+=" try { "+e.yieldAwait+" "+C+"; ",h&&(s+=" "+u+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(s+=" "+u+" = false; "),s+=" } ",h&&(s+=" if ("+u+") { ")}else s+=" if (!"+C+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(s+=" else { ")}return s}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],s=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,d=l.baseId,u=!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 "'+o+'" 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 y=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(y){if(!e.async)throw new Error("async format in sync schema");var w="formats"+e.util.getProperty(o)+".validate";n+=" if (!("+e.yieldAwait+" "+w+"("+h+"))) { "}else{n+=" if (! ";var w="formats"+e.util.getProperty(o);g&&(w+=".validate"),n+="function"==typeof m?" "+w+"("+h+") ":" "+w+".test("+h+") ",n+=") { "}}var C=C||[];C.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=u?""+d:""+e.util.toQuotedString(o),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=u?"' + "+d+" + '":""+e.util.escapeQuotes(o),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=u?"validate.schema"+a:""+e.util.toQuotedString(o),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;return n=C.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+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,s=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="valid"+r,u="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,g="i"+r,v=f.dataLevel=e.dataLevel+1,y="data"+v,w=e.baseId;if(n+="var "+u+" = errors;var "+d+";",Array.isArray(o)){var C=e.schema.additionalItems;if(!1===C){n+=" "+d+" = "+h+".length <= "+o.length+"; ";var b=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+d+") { ";var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var E=n;n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=b,c&&(p+="}",n+=" else { ")}var F=o;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 $=e.validate(f);f.baseId=w,e.util.varOccurences($,y)<2?n+=" "+e.util.varReplace($,y,D)+" ":n+=" var "+y+" = "+D+"; "+$+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof C&&e.util.schemaHasRules(C,e.RULES.all)){f.schema=C,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+o.length+") { for (var "+g+" = "+o.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 $=e.validate(f);f.baseId=w,e.util.varOccurences($,y)<2?n+=" "+e.util.varReplace($,y,D)+" ":n+=" var "+y+" = "+D+"; "+$+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,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 $=e.validate(f);f.baseId=w,e.util.varOccurences($,y)<2?n+=" "+e.util.varReplace($,y,D)+" ":n+=" var "+y+" = "+D+"; "+$+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(s+=" var schema"+o+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,y=p?"<":">",w=p?">":"<",n=void 0;if(v){var C=e.util.getData(g.$data,a,e.dataPathArr),b="exclusive"+o,A="exclType"+o,E="exclIsNumber"+o,F="op"+o,x="' + "+F+" + '";s+=" var schemaExcl"+o+" = "+C+"; ",C="schemaExcl"+o,s+=" var "+b+"; var "+A+" = typeof "+C+"; if ("+A+" != 'boolean' && "+A+" != 'undefined' && "+A+" != 'number') { ";var n=m,S=S||[];S.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var _=s;s=S.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+_+"]); ":s+=" validate.errors = ["+_+"]; return false; ":s+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" "+A+" == 'number' ? ( ("+b+" = "+r+" === undefined || "+C+" "+y+"= "+r+") ? "+u+" "+w+"= "+C+" : "+u+" "+w+" "+r+" ) : ( ("+b+" = "+C+" === true) ? "+u+" "+w+"= "+r+" : "+u+" "+w+" "+r+" ) || "+u+" !== "+u+") { var op"+o+" = "+b+" ? '"+y+"' : '"+y+"=';"}else{var E="number"==typeof g,x=y;if(E&&f){var F="'"+x+"'";s+=" if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" ( "+r+" === undefined || "+g+" "+y+"= "+r+" ? "+u+" "+w+"= "+g+" : "+u+" "+w+" "+r+" ) || "+u+" !== "+u+") { "}else{E&&void 0===l?(b=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,w+="="):(E&&(r=Math[p?"min":"max"](g,l)),g===(!E||r)?(b=!0,n=m,h=e.errSchemaPath+"/"+m,w+="="):(b=!1,x+="="));var F="'"+x+"'";s+=" if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" "+u+" "+w+" "+r+" || "+u+" !== "+u+") { "}}n=n||t;var S=S||[];S.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+b+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+x+" ",s+=f?"' + "+r:r+"'"),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+c:""+l,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var _=s;return s=S.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+_+"]); ":s+=" validate.errors = ["+_+"]; return false; ":s+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",d&&(s+=" else { "),s}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(s+=" var schema"+o+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=l;var p="maxItems"==t?">":"<";s+="if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" "+u+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==t?"more":"less",s+=" than ",s+=f?"' + "+r+" + '":""+l,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+c:""+l,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var g=s;return s=m.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",d&&(s+=" else { "),s}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(s+=" var schema"+o+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=l;var p="maxLength"==t?">":"<";s+="if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?s+=" "+u+".length ":s+=" ucs2length("+u+") ",s+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==t?"longer":"shorter",s+=" than ",s+=f?"' + "+r+" + '":""+l,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+c:""+l,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var g=s;return s=m.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",d&&(s+=" else { "),s}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,s=" ",o=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(s+=" var schema"+o+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=l;var p="maxProperties"==t?">":"<";s+="if ( ",f&&(s+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),s+=" Object.keys("+u+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==t?"more":"less",s+=" than ",s+=f?"' + "+r+" + '":""+l,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+c:""+l,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var g=s;return s=m.pop(),!e.compositeRule&&d?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",d&&(s+=" else { "),s}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",s=e.level,o=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(o||""),u=e.opts.$data&&a&&a.$data;u?(r+=" var schema"+s+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+s):n=a,r+="var division"+s+";if (",u&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+s+" = "+d+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+s+") - division"+s+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+s+" !== parseInt(division"+s+") ",r+=" ) ",u&&(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+=u?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),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,s=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(o,e.RULES.all)){u.schema=o,u.schemaPath=a,u.errSchemaPath=l,n+=" var "+d+" = errors; ";var p=e.compositeRule;e.compositeRule=u.compositeRule=!0,u.createErrors=!1;var m;u.opts.allErrors&&(m=u.opts.allErrors,u.opts.allErrors=!1),n+=" "+e.validate(u)+" ",u.createErrors=!0,m&&(u.opts.allErrors=m),e.compositeRule=u.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 = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; 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,s=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="valid"+r,u="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;n+="var "+u+" = errors;var prevValid"+r+" = false;var "+d+" = false;";var g=f.baseId,v=e.compositeRule;e.compositeRule=f.compositeRule=!0;var y=o;if(y)for(var w,C=-1,b=y.length-1;C5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=b;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+d+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ce+"', limit: "+we+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+be+" than "+we+' 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 X=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+X+"]); ":n+=" validate.errors = ["+X+"]; return false; ":n+=" var err = "+X+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==ye&&(n+=" else ")}if(void 0!==ye){var we=ye,Ce="maximum",be="more";n+=" "+d+" = pgPropCount"+r+" <= "+ye+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+d+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ce+"', limit: "+we+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+be+" than "+we+' 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 X=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+X+"]); ":n+=" validate.errors = ["+X+"]; return false; ":n+=" var err = "+X+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+d+") { ",p+="}")}}}}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,s=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(o,e.RULES.all)){u.schema=o,u.schemaPath=a,u.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",y=u.dataLevel=e.dataLevel+1,w="data"+y,C="dataProperties"+r,b=e.opts.ownProperties,A=e.baseId;n+=" var "+d+" = errors; ",b&&(n+=" var "+C+" = undefined; "),n+=b?" "+C+" = "+C+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+C+".length; "+m+"++) { var "+p+" = "+C+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var E=p,F=e.compositeRule;e.compositeRule=u.compositeRule=!0;var x=e.validate(u);u.baseId=A,e.util.varOccurences(x,w)<2?n+=" "+e.util.varReplace(x,w,E)+" ":n+=" var "+w+" = "+E+"; "+x+" ",e.compositeRule=u.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,A=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",b){u||(n+=" var "+f+" = validate.schema"+a+"; ");var E="i"+r,F="schema"+r+"["+E+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(C,F,e.opts.jsonPointers)),n+=" var "+d+" = true; ",u&&(n+=" if (schema"+r+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+r+")) "+d+" = false; else {"),n+=" for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { "+d+" = "+h+"["+f+"["+E+"]] !== undefined ",A&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+E+"]) "),n+="; if (!"+d+") break; } ",u&&(n+=" } "),n+=" if (!"+d+") { ";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 $,E=-1,k=D.length-1;E 1) { var i = "+d+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+d+"[i], "+d+"[j])) { "+u+" = false; break outer; } } } } ",f&&(r+=" } "),r+=" if (!"+u+") { ";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: "+d+" "),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>s-24&&r+i.scrollTop0?this.multiselection.nodes.map(function(e){return e.getInternalPath()}):null,scrollTop:this.scrollableContent?this.scrollableContent.scrollTop:0}},y.scrollTo=function(e,t){var i=this.scrollableContent;if(i){var n=this;n.animateTimeout&&(clearTimeout(n.animateTimeout),delete n.animateTimeout),n.animateCallback&&(n.animateCallback(!1),delete n.animateCallback);var r=i.clientHeight,s=i.scrollHeight-r,o=Math.min(Math.max(e-r/4,0),s),a=function(){var e=i.scrollTop,r=o-e;Math.abs(r)>3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=o,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},y._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=p("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");n.type="button",n.title=p("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n);var r=document.createElement("button");r.type="button",r.className="jsoneditor-sort",r.title=p("sortTitleShort"),r.onclick=function(){var e=t.options.modalAnchor||v;u(t.node,e)},this.menu.appendChild(r);var o=document.createElement("button");if(o.type="button",o.title=p("transformTitleShort"),o.className="jsoneditor-transform",o.onclick=function(){var e=t.options.modalAnchor||v;f(t.node,e)},this.menu.appendChild(o),this.history){var l=document.createElement("button");l.type="button",l.className="jsoneditor-undo jsoneditor-separator",l.title=p("undo"),l.onclick=function(){t._onUndo()},this.menu.appendChild(l),this.dom.undo=l;var d=document.createElement("button");d.type="button",d.className="jsoneditor-redo",d.title=p("redo"),d.onclick=function(){t._onRedo()},this.menu.appendChild(d),this.dom.redo=d,this.history.onChange=function(){l.disabled=!t.history.canUndo(),d.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var m=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){m.modeSwitcher.destroy(),m.setMode(e),m.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new s(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)))},y._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},y._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},y._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)},y._updateTreePath=function(e){function t(e){return e.parent?"array"===e.parent.type?e.index:e.field:e.type}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")},y._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},y._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())}},y._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},y._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},y._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)}))}},y._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;if(i&&n){if(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.multiselection.nodes&&this.multiselection.nodes.length){var r=this.multiselection.nodes[0];this.multiselection.start===r||this.multiselection.start.isDescendantOf(r)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},y._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)},y.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},y.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];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var i=this.getSelection();this._selectionChangedHandler(i.start,i.end)}}},y._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 d=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,d,e.target),50)}o&&(e.preventDefault(),e.stopPropagation())},y._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.scrollableContent=document.createElement("div"),this.scrollableContent.className="jsoneditor-tree",e.appendChild(this.scrollableContent),this.content=document.createElement("div"),this.content.className="jsoneditor-tree-inner",this.scrollableContent.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)},y.showContextMenu=function(e,t){var i=[],n=this;i.push({text:p("duplicateText"),title:p("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:p("remove"),title:p("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new o(i,{close:t}).show(e,this.content)},y.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],i=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=i.serialize()):(e.start=i.serialize(),e.end=t.serialize())}return e},y.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=h.debounce(e,this.DEBOUNCE_INTERVAL))},y.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var i=this._getNodeInstancesByRange(e,t);i.forEach(function(e){e.expandTo()}),this.select(i)},y._getNodeInstancesByRange=function(e,t){var i,n;e&&e.path&&(i=this.node.findNodeByPath(e.path),t&&t.path&&(n=this.node.findNodeByPath(t.path)));var r=[];if(i instanceof l)if(n instanceof l&&n!==i)if(i.parent===n.parent){var e,t;i.getIndex()=0},i.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,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){this.lastText=i,this.results=this.editor.search(i);var n=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0,r=0;if(this.activeResult)for(var s=0;sn?n+"+ results":o+" 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.forceSearch=function(){this._onSearch(!0)},i.prototype.isEmpty=function(){return""===this.dom.search.value},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 s=document.createElement("div");s.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(s),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 d=document.createElement("div");d.className="jsoneditor-text"+(r.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(r.text)),c.appendChild(d);var u;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),u=f}else{var p=document.createElement("div");p.className="jsoneditor-expand",c.appendChild(p),u=c}u.onclick=function(e){e.preventDefault(),n._onExpandItem(a),u.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='
    '+o(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 s=document.createElement("div");s.className="jsoneditor-contextmenu-root",r.root=s;var a=document.createElement("div");a.className="jsoneditor-contextmenu",r.menu=a,s.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 s=i(56),o=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,o=e.parentNode,a=e.getBoundingClientRect(),l=o.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,d=a.top-l.top;if(i){var u=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+"px",this.dom.menu.style.bottom="0px";this.rootNode=n(e),o.insertBefore(this.dom.root,o.firstChild);var f=this,p=this.dom.list;this.eventListeners.mousedown=s.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=s.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=s.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&&s.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="",s.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;n=" "&&c<=" "||" "===c||" "===c||" "===c?(s.push(" "),o++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=s.length-1;e>=0;){var t=s[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,o++,n=t();-1===e.indexOf(i)?s.push('"'+i+'"'):s.push(i)}():(s.push(c),o++)}return s.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=o[a];!0===l.specified&&s.removeAttribute(l.name)}t.stripFormatting(s)}},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="",s=0,o=n.length;s5){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,s=arguments,o=function(){n=null,i||e.apply(r,s)},a=i&&!n;clearTimeout(n),n=setTimeout(o,t),a&&e.apply(r,s)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,s=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)s--,r--;return{start:n,end:s}},t.getInputSelection=function(e){function t(t){var i=e.value.substring(0,t);return{row:(i.match(/\n/g)||[]).length+1,column:i.length-i.lastIndexOf("\n")}}var i,n,r,s,o,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(n=document.selection.createRange())&&n.parentElement()==e&&(s=e.value.length,i=e.value.replace(/\r\n/g,"\n"),r=e.createTextRange(),r.moveToBookmark(n.getBookmark()),o=e.createTextRange(),o.collapse(!1),r.compareEndPoints("StartToEnd",o)>-1?a=l=s:(a=-r.moveStart("character",-s),a+=i.slice(0,a).split("\n").length-1,r.compareEndPoints("EndToEnd",o)>-1?l=s:(l=-r.moveEnd("character",-s),l+=i.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,i){var n=e.value||"";if(t>0&&i>0){var r=n.split("\n",t);t=Math.min(r.length,t),i=Math.min(r[t-1].length,i-1);var s=1==t?i:i+1;return r.slice(0,t-1).join("\n").length+s}return-1},"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&&b.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:b})}if(3==h){if(1==f)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,f=t()}for(;;){if(d.toString()in o[m])break;if(0==m)throw new Error(E||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,s.length=s.length-e}(1),m=n[n.length-1]}p=f,f=d,m=n[n.length-1],g=o[m]&&o[m][d],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),s.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,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[g[1]][1],A.$=r[r.length-w],A._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},void 0!==(v=this.performAction.call(A,a,c,l,this.yy,g[1],r,s)))return v;w&&(n=n.slice(0,-1*w*2),r=r.slice(0,-1*w),s=s.slice(0,-1*w)),n.push(this.productions_[g[1]][0]),r.push(A.$),s.push(A._$),C=o[n[n.length-2]][n[n.length-1]],n.push(C);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 s=this._currentRules(),o=0;ot[0].length)||(t=i,n=o,this.options.flex));o++);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,s[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";var i,n=["en","pt-BR"],r={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). \nCtrl+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",ok:"Ok",redo:"Redo (Ctrl+Shift+Z)",removeText:"Remove",removeTitle:"Remove selected fields (Ctrl+Del)",removeField:"Remove this field (Ctrl+Del)",selectNode:"Select a node...",showAll:"show all",showMore:"show more",showMoreStatus:"displaying ${visibleChilds} of ${totalChilds} items.",sort:"Sort",sortTitle:"Sort the childs of this ${type}",sortTitleShort:"Sort contents",sortFieldLabel:"Field:",sortDirectionLabel:"Direction:",sortFieldTitle:"Select the nested field by which to sort the array or object",sortAscending:"Ascending",sortAscendingTitle:"Sort the selected field in ascending order",sortDescending:"Descending",sortDescendingTitle:"Sort the selected field in descending order",string:"String",transform:"Transform",transformTitle:"Filter, sort, or transform the childs of this ${type}",transformTitleShort:"Filter, sort, or transform contents",transformQueryTitle:"Enter a JMESPath query",transformWizardLabel:"Wizard",transformWizardFilter:"Filter",transformWizardSortBy:"Sort by",transformWizardSelectFields:"Select fields",transformQueryLabel:"Query",transformPreviewLabel:"Preview",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). \nCtrl+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",ok:"Ok",redo:"Refazer (Ctrl+Shift+Z)",removeText:"Remover",removeTitle:"Remover campos selecionados (Ctrl+Del)",removeField:"Remover este campo (Ctrl+Del)",selectNode:"Select a node...",showAll:"mostre tudo",showMore:"mostre mais",showMoreStatus:"exibindo ${visibleChilds} de ${totalChilds} itens.",sort:"Organizar",sortTitle:"Organizar os filhos deste ${type}",sortTitleShort:"Organizar os filhos",sortFieldLabel:"Field:",sortDirectionLabel:"Direction:",sortFieldTitle:"Select the nested field by which to sort the array or object",sortAscending:"Ascending",sortAscendingTitle:"Sort the selected field in ascending order",sortDescending:"Descending",sortDescendingTitle:"Sort the selected field in descending order",string:"Texto",transform:"Transform",transformTitle:"Filter, sort, or transform the childs of this ${type}",transformTitleShort:"Filter, sort, or transform contents",transformQueryTitle:"Enter a JMESPath query",transformWizardLabel:"Wizard",transformWizardFilter:"Filter",transformWizardSortBy:"Sort by",transformWizardSelectFields:"Select fields",transformQueryLabel:"Query",transformPreviewLabel:"Preview",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.'}},s="undefined"!=typeof navigator?navigator.language||navigator.userLanguage:void 0;i=n.find(function(e){return e===s}),i||(i="en"),e.exports={_locales:n,_defs:r,_lang:i,setLanguage:function(e){if(e){var t=n.find(function(t){return t===e});t?i=t:console.error("Language not found")}},setLanguages:function(e){if(e)for(var t in e){var i=n.find(function(e){return e===t});i||n.push(t),r[t]=Object.assign({},r.en,r[t],e[t])}},translate:function(e,t,n){n||(n=i);var s=r[n][e];if(t)for(e in t)s=s.replace("${"+e+"}",t[e]);return s||e}}},function(e,t,i){"use strict";function n(e){e&&(this.path=document.createElement("div"),this.path.className="jsoneditor-treepath",e.appendChild(this.path),this.reset())}var r=i(55),s=i(58).translate;n.prototype.reset=function(){this.path.innerHTML=s("selectNode")},n.prototype.setPath=function(e){function t(e){this.selectionCallback&&this.selectionCallback(e)}function i(e,t){this.contextMenuCallback&&this.contextMenuCallback(e,t)}var n=this;this.path.innerHTML="",e&&e.length&&e.forEach(function(s,o){var a,l=document.createElement("span");if(l.className="jsoneditor-treepath-element",l.innerText=s.name,l.onclick=t.bind(n,s),n.path.appendChild(l),s.children.length&&(a=document.createElement("span"),a.className="jsoneditor-treepath-seperator",a.innerHTML="►",a.onclick=function(){var t=[];s.children.forEach(function(r){t.push({text:r.name,className:"jsoneditor-type-modes"+(e[o+1]+1&&e[o+1].name===r.name?" jsoneditor-selected":""),click:i.bind(n,s,r.name)})}),new r(t).show(a)},n.path.appendChild(a,n.container)),o===e.length-1){var c=(a||l).getBoundingClientRect().left;n.path.offsetWidth0;){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.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},n.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr){t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var n=document.createElement("button");n.type="button",n.className="jsoneditor-schema-error",n.appendChild(i),n.onmouseover=n.onfocus=function(){for(var e=["right","above","below","left"],t=0;t=e.length;a--)this.removeChild(this.childs[a],!1)}else if("object"===this.type){for(this.childs||(this.childs=[]),a=this.childs.length-1;a>=0;a--)e.hasOwnProperty(this.childs[a].field)||this.removeChild(this.childs[a],!1);o=0;for(var c in e)e.hasOwnProperty(c)&&(i=e[c],void 0===i||i instanceof Function||(r=this.findChildByProperty(c),r?(r.setField(c,!0),r.setValue(i)):(r=new n(this.editor,{field:c,value:i}),s=o=e.childs.length;o--)this.removeChild(this.childs[o],!1)}else if("object"===e.type){for(this.childs||(this.childs=[]),s=0;s=e.childs.length;o--)this.removeChild(this.childs[o],!1)}else this.hideChilds(),delete this.append,delete this.showMore,delete this.expanded,delete this.childs,this.value=e.value;Array.isArray(a)!==Array.isArray(this.childs)&&this.recreateDom(),this.updateDom({updateIndexes:!0}),this.previousValue=this.value},n.prototype.recreateDom=function(){if(this.dom&&this.dom.tr&&this.dom.tr.parentNode){var e=this._detachFromDom();this.clearDom(),this._attachToDom(e)}},n.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},n.prototype.getInternalValue=function(){return"array"===this.type?{type:this.type,childs:this.childs.map(function(e){return e.getInternalValue()})}:"object"===this.type?{type:this.type,childs:this.childs.map(function(e){return{field:e.getField(),value:e.getInternalValue()}})}:(void 0===this.value&&this._getDomValue(),{type:this.type,value:this.value})},n.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},n.prototype.getNodePath=function(){var e=this.parent?this.parent.getNodePath():[];return e.push(this),e},n.prototype.clone=function(){var e=new n(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.previousField=this.previousField,e.value=this.value,e.valueInnerText=this.valueInnerText,e.previousValue=this.previousValue,e.expanded=this.expanded,e.visibleChilds=this.visibleChilds,this.childs){var t=[];this.childs.forEach(function(i){var n=i.clone();n.setParent(e),t.push(n)}),e.childs=t}else e.childs=void 0;return e},n.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="jsoneditor-expanded"),this.showChilds(),!1!==e&&this.childs.forEach(function(t){t.expand(e)}))},n.prototype.collapse=function(e){this.childs&&(this.hideChilds(),!1!==e&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="jsoneditor-collapsed"),this.expanded=!1)},n.prototype.showChilds=function(){if(this.childs&&this.expanded){var e=this.dom.tr,t=e?e.parentNode:void 0;if(t){var i=this.getAppendDom();if(!i.parentNode){var n=e.nextSibling;n?t.insertBefore(i,n):t.appendChild(i)}for(var r=Math.min(this.childs.length,this.visibleChilds),n=this._getNextTr(),s=0;sthis.visibleChilds){var r=this.childs[this.visibleChilds-1];this.insertBefore(e,r)}else this.appendChild(e);else this.insertBefore(e,t);i&&i.removeChild(n)}},n.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(this.visibleChilds++,"object"===this.type&&void 0==e.field&&e.setField(""),t===this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var i=this.childs.indexOf(t);if(-1==i)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(i,0,e)}if(this.expanded){var n=e.getDom(),r=t.getDom(),s=r?r.parentNode:void 0;r&&s&&s.insertBefore(n,r),e.showChilds(),this.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.insertAfter=function(e,t){if(this._hasChilds()){var i=this.childs.indexOf(t),n=this.childs[i+1];n?this.insertBefore(e,n):this.appendChild(e)}},n.prototype.search=function(e,t){Array.isArray(t)||(t=[]);var i,n=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!==this.field&&t.length<=this.MAX_SEARCH_RESULTS){i=String(this.field).toLowerCase().indexOf(n),-1!==i&&(this.searchField=!0,t.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds())this.childs&&this.childs.forEach(function(i){i.search(e,t)});else if(void 0!==this.value&&t.length<=this.MAX_SEARCH_RESULTS){var r=String(this.value).toLowerCase();i=r.indexOf(n),-1!==i&&(this.searchValue=!0,t.push({node:this,elem:"value"})),this._updateDomValue()}return t},n.prototype.scrollTo=function(e){this.expandPathToNode(),this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},n.prototype.expandPathToNode=function(){for(var e=this;e&&e.parent;){for(var t="array"===e.parent.type?e.index:e.parent.childs.indexOf(e);e.parent.visibleChilds0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:p("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(s))}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=p("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=p("actionsMenu"),n.appendChild(e.menu),e.tr.appendChild(n)}var s=document.createElement("td");return e.tr.appendChild(s),e.tree=this._createDomTree(),s.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],s=e[e.length-1],o=i.parent,a=n.getNodeFromTarget(t.target),l=i.editor,c=f.getAbsoluteTop(a.dom.tr)-f.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=f.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=f.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getDomSelection(),oldPaths:e.map(r),oldParent:o,oldNextNode:o.childs[s.getIndex()+1]||o.append,oldParentPathRedo:o.getInternalPath(),oldIndexRedo:i.getIndex(),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,s,o,a,l,c,h,d,u,p,m,v,y,w=e[0].editor,C=t.pageY-w.drag.offsetY,b=t.pageX,A=!1,E=e[0];if(i=E.dom.tr,d=f.getAbsoluteTop(i),m=i.offsetHeight,Cu+m&&(c=void 0)),c&&(e.forEach(function(e){c.parent.moveBefore(e,c)}),A=!0)}else{var F=e[e.length-1];if(a=F.expanded&&F.append?F.append.getDom():F.dom.tr,o=a?a.nextSibling:void 0){p=f.getAbsoluteTop(o),s=o;do{h=n.getNodeFromTarget(s),s&&(v=s.nextSibling?f.getAbsoluteTop(s.nextSibling):0,y=s?v-p:0,h&&h.parent.childs.length==e.length&&h.parent.childs[e.length-1]==F&&(d+=27),s=s.nextSibling)}while(s&&C>d+y);if(h&&h.parent){var x=b-w.drag.mouseX,S=Math.round(x/24/2),_=w.drag.level+S,D=h.getLevel();for(r=h.dom.tr&&h.dom.tr.previousSibling;D<_&&r;){c=n.getNodeFromTarget(r);if(e.some(function(e){return e===c||c.isDescendantOf(e)}));else{if(!(c instanceof g))break;var $=c.parent.childs;if($.length==e.length&&$[e.length-1]==F)break;h=n.getNodeFromTarget(r),D=h.getLevel()}r=r.previousSibling}h instanceof g&&!h.isVisible()&&h.parent.showMore.isVisible()&&(h=h._nextNode()),h&&h.dom.tr&&a.nextSibling!=h.dom.tr&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),A=!0)}}}A&&(w.drag.mouseX=b,w.drag.level=E.getLevel()),w.startAutoScroll(C),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;e[0]&&e[0].dom.menu.focus();var o=r.drag.oldParent.getInternalPath(),a=i.parent.getInternalPath(),l=r.drag.oldParent===i.parent,c=r.drag.oldNextNode.getIndex(),h=i.getIndex(),d=r.drag.oldParentPathRedo,u=r.drag.oldIndexRedo,p=l&&u0)return i[0].enum}return null},n._findSchema=function(e,t){var i=e,r=i,s=e.oneOf||e.anyOf||e.allOf;s||(s=[e]);for(var o=0;o0?this.editor.multiselection.nodes:[this],S=x[0],_=x[x.length-1];if(13==y){if(w==this.dom.value)this.editable.value&&!e.ctrlKey||f.isUrl(this.value)&&(window.open(this.value,"_blank"),E=!0);else if(w==this.dom.expand){var D=this._hasChilds();if(D){var $=e.ctrlKey;this._onExpand($),w.focus(),E=!0}}}else if(68==y)C&&F&&(n.onDuplicate(x),E=!0);else if(69==y)C&&(this._onExpand(b),w.focus(),E=!0);else if(77==y&&F)C&&(this.showContextMenu(w),E=!0);else if(46==y&&F)C&&(n.onRemove(x),E=!0);else if(45==y&&F)C&&!b?(this._onInsertBefore(),E=!0):C&&b&&(this._onInsertAfter(),E=!0);else if(35==y){if(A){var k=this._lastNode();k&&k.focus(n.focusElement||this._getElementName(w)),E=!0}}else if(36==y){if(A){var B=this._firstNode();B&&B.focus(n.focusElement||this._getElementName(w)),E=!0}}else if(37==y){if(A&&!b){var L=this._previousElement(w);L&&this.focus(this._getElementName(L)),E=!0}else if(A&&b&&F){if(_.expanded){var R=_.getAppendDom();r=R?R.nextSibling:void 0}else{var T=_.getDom();r=T.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,O=n.getNodeFromTarget(o),i&&i instanceof g&&1!=_.parent.childs.length&&O&&O.parent&&(a=this.editor.getDomSelection(),c=S.parent,l=c.childs[_.getIndex()+1]||c.append,h=S.getIndex(),d=O.getIndex(),u=c.getInternalPath(),p=O.parent.getInternalPath(),x.forEach(function(e){O.parent.moveBefore(e,O)}),this.focus(n.focusElement||this._getElementName(w)),this.editor._onAction("moveNodes",{count:x.length,fieldNames:x.map(s),oldParentPath:c.getInternalPath(),newParentPath:S.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:S.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()})))}}else if(38==y)A&&!b?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(w))),E=!0):!A&&C&&b&&F?(t=this._previousNode(),t&&(v=this.editor.multiselection,v.start=v.start||this,v.end=t,m=this.editor._findTopLevelNodes(v.start,v.end),this.editor.select(m),t.focus("field")),E=!0):A&&b&&F&&(t=S._previousNode(),t&&t.parent&&(a=this.editor.getDomSelection(),c=S.parent,l=c.childs[_.getIndex()+1]||c.append,h=S.getIndex(),d=t.getIndex(),u=c.getInternalPath(),p=t.parent.getInternalPath(),x.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(w)),this.editor._onAction("moveNodes",{count:x.length,fieldNames:x.map(s),oldParentPath:c.getInternalPath(),newParentPath:S.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:S.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()})),E=!0);else if(39==y){if(A&&!b){var P=this._nextElement(w);P&&this.focus(this._getElementName(P)),E=!0}else if(A&&b&&F){T=S.getDom();var M=T.previousSibling;M&&(t=n.getNodeFromTarget(M))&&t.parent&&!t.isVisible()&&(a=this.editor.getDomSelection(),c=S.parent,l=c.childs[_.getIndex()+1]||c.append,h=S.getIndex(),d=t.getIndex(),u=c.getInternalPath(),p=t.parent.getInternalPath(),x.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(w)),this.editor._onAction("moveNodes",{count:x.length,fieldNames:x.map(s),oldParentPath:c.getInternalPath(),newParentPath:S.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:S.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()}))}}else if(40==y)if(A&&!b)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(w))),E=!0;else if(!A&&C&&b&&F)i=this._nextNode(),i&&(v=this.editor.multiselection,v.start=v.start||this,v.end=i,m=this.editor._findTopLevelNodes(v.start,v.end),this.editor.select(m),i.focus("field")),E=!0;else if(A&&b&&F){i=_.expanded?_.append?_.append._nextNode():void 0:_._nextNode(),i&&!i.isVisible()&&(i=i.parent.showMore),i&&i instanceof g&&(i=_);var O=i&&(i._nextNode()||i.parent.append);O&&O.parent&&(a=this.editor.getDomSelection(),c=S.parent,l=c.childs[_.getIndex()+1]||c.append,h=S.getIndex(),d=O.getIndex(),u=c.getInternalPath(),p=O.parent.getInternalPath(),x.forEach(function(e){O.parent.moveBefore(e,O)}),this.focus(n.focusElement||this._getElementName(w)),this.editor._onAction("moveNodes",{count:x.length,fieldNames:x.map(s),oldParentPath:c.getInternalPath(),newParentPath:S.parent.getInternalPath(),oldParentPathRedo:u,newParentPathRedo:p,oldIndexRedo:h,newIndexRedo:d,oldIndex:l.getIndex(),newIndex:S.getIndex(),oldSelection:a,newSelection:this.editor.getDomSelection()})),E=!0}E&&(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,s=t.editor,o=t.getIndex();s.highlighter.unhighlight();var a=s.getDomSelection();n.blurNodes(e);var l=s.getDomSelection(),c=e.map(r);e.forEach(function(e){e.parent._remove(e)}),s._onAction("removeNodes",{nodes:e,paths:c,parentPath:i.getInternalPath(),index:o,oldSelection:a,newSelection:l})}},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,s=t.editor;s.deselect(s.multiselection.nodes);var o=s.getDomSelection(),a=t,l=e.map(function(e){var t=e.clone();return i.insertAfter(t,a),a=t,t});1===e.length?l[0].focus():s.select(l);var c=s.getDomSelection();s._onAction("duplicateNodes",{paths:e.map(r),clonePaths:l.map(r),afterPath:t.getInternalPath(),parentPath:i.getInternalPath(),oldSelection:o,newSelection:c})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getDomSelection(),s=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});s.expand(!0);var o=this.getInternalPath();this.parent.insertBefore(s,this),this.editor.highlighter.unhighlight(),s.focus("field");var a=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[s],paths:[s.getInternalPath()],beforePath:o,parentPath:this.parent.getInternalPath(),oldSelection:r,newSelection:a})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getDomSelection(),s=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});s.expand(!0),this.parent.insertAfter(s,this),this.editor.highlighter.unhighlight(),s.focus("field");var o=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[s],paths:[s.getInternalPath()],afterPath:this.getInternalPath(),parentPath:this.parent.getInternalPath(),oldSelection:r,newSelection:o})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getDomSelection(),s=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});s.expand(!0),this.parent.appendChild(s),this.editor.highlighter.unhighlight(),s.focus("field");var o=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[s],paths:[s.getInternalPath()],parentPath:this.parent.getInternalPath(),oldSelection:r,newSelection:o})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getDomSelection();this.changeType(e);var n=this.editor.getDomSelection();this.editor._onAction("changeType",{path:this.getInternalPath(),oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e,t){if(this._hasChilds()){this.hideChilds();var i=this.childs;this.childs=this.childs.concat();var n="desc"===t?-1:1;"object"===this.type?this.childs.sort(function(e,t){return n*a(e.field,t.field)}):this.childs.sort(function(t,i){var r=t.getNestedChild(e),s=i.getNestedChild(e);if(!r)return n;if(!s)return-n;var o=r.value,l=s.value;return"string"!=typeof o&&"string"!=typeof l?o>l?n:o/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=f.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return f.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;i="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function l(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function h(){}function d(e){this.runtime=e}function u(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[v]}]},avg:{_func:this._functionAvg,_signature:[{types:[E]}]},ceil:{_func:this._functionCeil,_signature:[{types:[v]}]},contains:{_func:this._functionContains,_signature:[{types:[w,C]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[w]},{types:[w]}]},floor:{_func:this._functionFloor,_signature:[{types:[v]}]},length:{_func:this._functionLength,_signature:[{types:[w,C,b]}]},map:{_func:this._functionMap,_signature:[{types:[A]},{types:[C]}]},max:{_func:this._functionMax,_signature:[{types:[E,F]}]},merge:{_func:this._functionMerge,_signature:[{types:[b],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[C]},{types:[A]}]},sum:{_func:this._functionSum,_signature:[{types:[E]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[w]},{types:[w]}]},min:{_func:this._functionMin,_signature:[{types:[E,F]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[C]},{types:[A]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[b]}]},values:{_func:this._functionValues,_signature:[{types:[b]}]},sort:{_func:this._functionSort,_signature:[{types:[F,E]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[C]},{types:[A]}]},join:{_func:this._functionJoin,_signature:[{types:[w]},{types:[F]}]},reverse:{_func:this._functionReverse,_signature:[{types:[w,C]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function f(e){return(new h).parse(e)}function p(e){return(new c).tokenize(e)}function m(e,t){var i=new h,n=new u,r=new d(n);n._interpreter=r;var s=i.parse(t);return r.search(s,e)}var g;g="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var v=0,y=1,w=2,C=3,b=4,A=6,E=8,F=9,x={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},S={"<":!0,">":!0,"=":!0,"!":!0},_={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var i,n,r;this._current"===i?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===i&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,i=this._current,n=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(i.indexOf(e)>=0)return!0;if(!(n.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var D={};D.EOF=0,D.UnquotedIdentifier=0,D.QuotedIdentifier=0,D.Rbracket=0,D.Rparen=0,D.Comma=0,D.Rbrace=0,D.Number=0,D.Current=0,D.Expref=0,D.Pipe=1,D.Or=2,D.And=3,D.EQ=5,D.GT=5,D.LT=5,D.GTE=5,D.LTE=5,D.NE=5,D.Flatten=9,D.Star=20,D.Filter=21,D.Dot=40,D.Not=45,D.Lbrace=50,D.Lbracket=55,D.Lparen=60,h.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var i=this._lookaheadToken(0),n=new Error("Unexpected token type: "+i.type+", value: "+i.value);throw n.name="ParserError",n}return t},_loadTokens:function(e){var t=new c,i=t.tokenize(e);i.push({type:"EOF",value:"",start:e.length}),this.tokens=i},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var i=this.nud(t),n=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(D[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var i=this._lookaheadToken(0),n=new Error("Sytanx error, unexpected token: "+i.value+"("+i.type+")");throw n.name="ParserError",n}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,i,n,r=[],s=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),s.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),i=this.expression(0),n={type:"KeyValuePair",name:t,value:i},r.push(n),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:r}}},d.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,o){var a,l,c,h,d,u,f,p,m;switch(e.type){case"Field":return null===o?null:i(o)?(u=o[e.name],void 0===u?null:u):null;case"Subexpression":for(c=this.visit(e.children[0],o),m=1;m0)for(m=w;mC;m+=b)c.push(o[m]);return c;case"Projection":var A=this.visit(e.children[0],o);if(!t(A))return null;for(p=[],m=0;md;break;case"GTE":c=h>=d;break;case"LT":c=h=e&&(t=i<0?e-1:e),t}},u.prototype={callFunction:function(e,t){var i=this.functionTable[e];if(void 0===i)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,i._signature),i._func.call(this,t)},_validateArgs:function(e,t,i){var n;if(i[i.length-1].variadic){if(t.length=0;n--)i+=t[n];return i}var r=e[0].slice(0);return r.reverse(),r},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,i=e[0],n=0;n=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return i(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],i=this._interpreter,n=e[0],r=e[1],s=0;s0){if(this._getTypeName(e[0][0])===v)return Math.max.apply(Math,e[0]);for(var t=e[0],i=t[0],n=1;n0){if(this._getTypeName(e[0][0])===v)return Math.min.apply(Math,e[0]);for(var t=e[0],i=t[0],n=1;na?1:oo&&(o=i,t=r[a]);return t},_functionMinBy:function(e){for(var t,i,n=e[1],r=e[0],s=this.createKeyFunction(n,[v,w]),o=1/0,a=0;am)return 1}for(var g=0,v=Math.max(u.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.className="jsoneditor-append",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"),s=document.createElement("div");return s.innerHTML="("+o("empty")+")",s.className="jsoneditor-readonly",r.appendChild(s),e.td=r,e.text=s,this.updateDom(),t},t.prototype.getPath=function(){return null},t.prototype.getIndex=function(){return null},t.prototype.updateDom=function(e){var t=this.dom,i=t.td;i&&(i.style.paddingLeft=24*this.getLevel()+26+"px");var n=t.text;n&&(n.innerHTML="("+o("empty")+" "+this.parent.type+")");var r=t.tr;this.isVisible()?t.tr.firstChild||(t.tdDrag&&r.appendChild(t.tdDrag),t.tdMenu&&r.appendChild(t.tdMenu),r.appendChild(i)):t.tr.firstChild&&(t.tdDrag&&r.removeChild(t.tdDrag),t.tdMenu&&r.removeChild(t.tdMenu),r.removeChild(i))},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:o("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:o("array"),className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:o("object"),className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:o("string"),className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(a,!0);var l=[{text:o("appendText"),title:o("appendTitleAuto"),submenuTitle:o("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:a}];new s(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 s=this.editor.highlighter;s.highlight(this.parent),s.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),s.unlock(),s.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(56),s=i(55),o=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e){function t(e,t){this.editor=e,this.parent=t,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){if(this.dom.tr)return this.dom.tr;if(this._updateEditability(),!this.dom.tr){var e=this,t=this.parent,i=document.createElement("a");i.appendChild(document.createTextNode(r("showMore"))),i.href="#",i.onclick=function(i){return t.visibleChilds=Math.floor(t.visibleChilds/t.MAX_VISIBLE_CHILDS+1)*t.MAX_VISIBLE_CHILDS,e.updateDom(),t.showChilds(),i.preventDefault(),!1};var n=document.createElement("a");n.appendChild(document.createTextNode(r("showAll"))),n.href="#",n.onclick=function(i){return t.visibleChilds=1/0,e.updateDom(),t.showChilds(),i.preventDefault(),!1};var s=document.createElement("div"),o=document.createTextNode(this._getShowMoreText());s.className="jsoneditor-show-more",s.appendChild(o),s.appendChild(i),s.appendChild(document.createTextNode(". ")),s.appendChild(n),s.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(s);var l=document.createElement("tr");l.appendChild(document.createElement("td")),l.appendChild(document.createElement("td")),l.appendChild(a),l.className="jsoneditor-show-more",this.dom.tr=l,this.dom.moreContents=s,this.dom.moreText=o}return this.updateDom(),this.dom.tr},t.prototype.updateDom=function(e){if(this.isVisible()){if(this.dom.tr.node=this.parent.childs[this.parent.visibleChilds],!this.dom.tr.parentNode){var t=this.parent._getNextTr();t&&t.parentNode.insertBefore(this.dom.tr,t)}this.dom.moreText.nodeValue=this._getShowMoreText(),this.dom.moreContents.style.marginLeft=24*(this.getLevel()+1)+"px"}else this.dom.tr&&this.dom.tr.parentNode&&this.dom.tr.parentNode.removeChild(this.dom.tr)},t.prototype._getShowMoreText=function(){return r("showMoreStatus",{visibleChilds:this.parent.visibleChilds,totalChilds:this.parent.childs.length})+" "},t.prototype.isVisible=function(){return this.parent.expanded&&this.parent.childs.length>this.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var r=i(58).translate;e.exports=n},function(e,t,i){function n(e,t){var i='
    '+s("sort")+"
    "+s("sortFieldLabel")+'
    '+s("sortDirectionLabel")+'
    ';r({parent:t,content:i,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-sort"}).afterCreate(function(t){function i(e){o.value=e,o.className="jsoneditor-button-group jsoneditor-button-group-value-"+o.value}var n=t.modalElem().querySelector("form"),r=t.modalElem().querySelector("#ok"),s=t.modalElem().querySelector("#field"),o=t.modalElem().querySelector("#direction"),a="array"===e.type?e.getChildPaths():["."];a.forEach(function(e){var t=document.createElement("option");t.text=e,t.value=e,s.appendChild(t)}),s.value=e.sortedBy?e.sortedBy.path:a[0],i(e.sortedBy?e.sortedBy.direction:"asc"),o.onclick=function(e){i(e.target.getAttribute("data-value"))},r.onclick=function(i){i.preventDefault(),i.stopPropagation(),t.close();var n=s.value,r="."===n?[]:n.split(".").slice(1);e.sortedBy={path:n,direction:o.value},e.sort(r,o.value)},n&&(n.onsubmit=r.onclick)}).afterClose(function(e){e.destroy()}).show()}var r=i(66),s=i(58).translate;e.exports=n},function(e,t,i){var n,r,s;!function(i,o){"use strict";r=[],n=o,void 0!==(s="function"==typeof n?n.apply(t,r):n)&&(e.exports=s)}(0,function(){"use strict";function e(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType}function t(e){return"string"==typeof e}function i(){var e=[];return{watch:e.push.bind(e),trigger:function(t,i){for(var n=!0,r={detail:i,preventDefault:function(){n=!1}},s=0;s
    '+a("transform")+'

    Enter a JMESPath query to filter, sort, or transform the JSON data.
    To learn JMESPath, go to the interactive tutorial.

    '+a("transformWizardLabel")+'
    '+a("transformWizardFilter")+'
    '+a("transformWizardSortBy")+'
    '+a("transformWizardSelectFields")+'
    '+a("transformQueryLabel")+'
    '+a("transformPreviewLabel")+'
    ';s({parent:t,content:n,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-transform",focus:!1}).afterCreate(function(t){function n(e){return"."===e[0]?"."===e?"@":e.slice(1):e}function s(){if(f.value&&p.value&&m.value){var t=f.value,i=JSON.stringify(e._stringCast(m.value));w.value="[? "+t+" "+p.value+" `"+i+"`]"}else w.value="[*]";if(g.value&&v.value){var n=g.value;"desc"===v.value?w.value+=" | reverse(sort_by(@, &"+n+"))":w.value+=" | sort_by(@, &"+n+")"}if(y.value){for(var r=[],s=0;s1&&(w.value+=".{"+r.map(function(e){var t=e.split(".");return t[t.length-1]+": "+e}).join(", ")+"}")}_()}function a(){try{var e=r.search(i,w.value),t=JSON.stringify(e,null,2).split("\n");t.length>c&&(t=t.slice(0,c).concat(["..."])),C.className="jsoneditor-transform-preview",C.value=t.join("\n"),u.disabled=!1}catch(e){C.className="jsoneditor-transform-preview jsoneditor-error",C.value=e.toString(),u.disabled=!0}}var h=t.modalElem(),d=h.querySelector("#wizard"),u=h.querySelector("#ok"),f=h.querySelector("#filterField"),p=h.querySelector("#filterRelation"),m=h.querySelector("#filterValue"),g=h.querySelector("#sortField"),v=h.querySelector("#sortOrder"),y=h.querySelector("#selectFields"),w=h.querySelector("#query"),C=h.querySelector("#preview");Array.isArray(i)||(d.style.display="none",d.parentNode.style.fontStyle="italic",d.parentNode.appendChild(document.createTextNode("(wizard not available for objects, only for arrays)"))),e.getChildPaths().forEach(function(e){var t=n(e),i=document.createElement("option");i.text=t,i.value=t,f.appendChild(i);var r=document.createElement("option");r.text=t,r.value=t,g.appendChild(r)});var b=e.getChildPaths(!0).filter(function(e){return"."!==e});b.length>0?b.forEach(function(e){var t=n(e),i=document.createElement("option");i.text=t,i.value=t,y.appendChild(i)}):h.querySelector("#selectFieldsPart").style.display="none";var A=new o(f,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),E=new o(p,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"compare..."}),F=new o(g,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),x=new o(v,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"order..."}),S=new o(y,{multiple:!0,clearable:!0,defaultSelected:!1});A.on("selectr.change",s),E.on("selectr.change",s),m.oninput=s,F.on("selectr.change",s),x.on("selectr.change",s),S.on("selectr.change",s),h.querySelector(".pico-modal-contents").onclick=function(e){e.preventDefault()},w.value=Array.isArray(i)?"[*]":"@";var _=l(a,300);w.oninput=_,_(),u.onclick=function(i){i.preventDefault(),i.stopPropagation(),t.close(),e.transform(w.value)},setTimeout(function(){w.select(),w.focus(),w.selectionStart=3,w.selectionEnd=3})}).afterClose(function(e){e.destroy()}).show()}var r=i(61),s=i(66),o=i(68),a=i(58).translate,l=i(56).debounce,c=100;e.exports=n},function(e,t){"use strict";function i(e,t){return e.hasOwnProperty(t)&&(!0===e[t]||e[t].length)}function n(e,t,i){e.parentNode?e.parentNode.parentNode||t.appendChild(e.parentNode):t.appendChild(e),o.removeClass(e,"excluded"),i||(e.innerHTML=e.textContent)}var r={defaultSelected:!0,width:"auto",disabled:!1,searchable:!0,clearable:!1,sortSelected:!1,allowDeselect:!1,closeOnScroll:!1,nativeDropdown:!1,placeholder:"Select an option...",taggable:!1,tagPlaceholder:"Enter a tag..."},s=function(){};s.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t-1},truncate:function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}},a=function(){if(this.items.length){var e=document.createDocumentFragment();if(this.config.pagination){var t=this.pages.slice(0,this.pageIndex);o.each(t,function(t,i){o.each(i,function(t,i){n(i,e,this.customOption)},this)},this)}else o.each(this.items,function(t,i){n(i,e,this.customOption)},this);e.childElementCount&&(o.removeClass(this.items[this.navIndex],"active"),this.navIndex=e.querySelector(".selectr-option").idx,o.addClass(this.items[this.navIndex],"active")),this.tree.appendChild(e)}},l=function(e){var t=e.target;this.container.contains(t)||!this.opened&&!o.hasClass(this.container,"notice")||this.close()},c=function(e,t){t=t||e;var i=this.customOption?this.config.renderOption(t):e.textContent,n=o.createElement("li",{class:"selectr-option",html:i,role:"treeitem","aria-selected":!1});return n.idx=e.idx,this.items.push(n),e.defaultSelected&&this.defaultSelected.push(e.idx),e.disabled&&(n.disabled=!0,o.addClass(n,"disabled")),n},h=function(){this.requiresPagination=this.config.pagination&&this.config.pagination>0,i(this.config,"width")&&(o.isInt(this.config.width)?this.width=this.config.width+"px":"auto"===this.config.width?this.width="100%":o.includes(this.config.width,"%")&&(this.width=this.config.width)),this.container=o.createElement("div",{class:"selectr-container"}),this.config.customClass&&o.addClass(this.container,this.config.customClass),this.mobileDevice?o.addClass(this.container,"selectr-mobile"):o.addClass(this.container,"selectr-desktop"),this.el.tabIndex=-1,this.config.nativeDropdown||this.mobileDevice?o.addClass(this.el,"selectr-visible"):o.addClass(this.el,"selectr-hidden"),this.selected=o.createElement("div",{class:"selectr-selected",disabled:this.disabled,tabIndex:1,"aria-expanded":!1}),this.label=o.createElement(this.el.multiple?"ul":"span",{class:"selectr-label"});var e=o.createElement("div",{class:"selectr-options-container"});if(this.tree=o.createElement("ul",{class:"selectr-options",role:"tree","aria-hidden":!0,"aria-expanded":!1}),this.notice=o.createElement("div",{class:"selectr-notice"}),this.el.setAttribute("aria-hidden",!0),this.disabled&&(this.el.disabled=!0),this.el.multiple&&(o.addClass(this.label,"selectr-tags"),o.addClass(this.container,"multiple"),this.tags=[],this.selectedValues=this.getSelectedProperties("value"),this.selectedIndexes=this.getSelectedProperties("idx")),this.selected.appendChild(this.label),this.config.clearable&&(this.selectClear=o.createElement("button",{class:"selectr-clear",type:"button"}),this.container.appendChild(this.selectClear),o.addClass(this.container,"clearable")),this.config.taggable){var t=o.createElement("li",{class:"input-tag"});this.input=o.createElement("input",{class:"selectr-tag-input",placeholder:this.config.tagPlaceholder,tagIndex:0,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),t.appendChild(this.input),this.label.appendChild(t),o.addClass(this.container,"taggable"),this.tagSeperators=[","],this.config.tagSeperators&&(this.tagSeperators=this.tagSeperators.concat(this.config.tagSeperators))}this.config.searchable&&(this.input=o.createElement("input",{class:"selectr-input",tagIndex:-1,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),this.inputClear=o.createElement("button",{class:"selectr-input-clear",type:"button"}),this.inputContainer=o.createElement("div",{class:"selectr-input-container"}),this.inputContainer.appendChild(this.input),this.inputContainer.appendChild(this.inputClear),e.appendChild(this.inputContainer)),e.appendChild(this.notice),e.appendChild(this.tree),this.items=[],this.options=[],this.el.options.length&&(this.options=[].slice.call(this.el.options));var n=!1,r=0;if(this.el.children.length&&o.each(this.el.children,function(e,t){"OPTGROUP"===t.nodeName?(n=o.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.label+"
  • "}),o.each(t.children,function(e,t){t.idx=r,n.appendChild(c.call(this,t,n)),r++},this)):(t.idx=r,c.call(this,t),r++)},this),this.config.data&&Array.isArray(this.config.data)){this.data=[];var s,a=!1;n=!1,r=0,o.each(this.config.data,function(e,t){i(t,"children")?(a=o.createElement("optgroup",{label:t.text}),n=o.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.text+"
  • "}),o.each(t.children,function(e,t){s=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),s.disabled=i(t,"disabled"),this.options.push(s),a.appendChild(s),s.idx=r,n.appendChild(c.call(this,s,t)),this.data[r]=t,r++},this)):(s=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),s.disabled=i(t,"disabled"),this.options.push(s),s.idx=r,c.call(this,s,t),this.data[r]=t,r++)},this)}this.setSelected(!0);var l;this.navIndex=0;for(var h=0;h0)&&this.change(this.navIndex);var t,i=this.items[this.navIndex];switch(e.which){case 38:t=0,this.navIndex>0&&this.navIndex--;break;case 40:t=1,this.navIndexthis.tree.lastElementChild.idx){this.navIndex=this.tree.lastElementChild.idx;break}if(this.navIndexthis.optsRect.top+this.optsRect.height&&(this.tree.scrollTop=this.tree.scrollTop+(n.top+n.height-(this.optsRect.top+this.optsRect.height))),this.navIndex===this.tree.childElementCount-1&&this.requiresPagination&&p.call(this)):0===this.navIndex?this.tree.scrollTop=0:n.top-this.optsRect.top<0&&(this.tree.scrollTop=this.tree.scrollTop+(n.top-this.optsRect.top)),i&&o.removeClass(i,"active"),o.addClass(this.items[this.navIndex],"active")},u=function(e){var t,i=this,n=document.createDocumentFragment(),r=this.options[e.idx],s=this.data?this.data[e.idx]:r,a=this.customSelected?this.config.renderSelection(s):r.textContent,l=o.createElement("li",{class:"selectr-tag",html:a}),c=o.createElement("button",{class:"selectr-tag-remove",type:"button"});if(l.appendChild(c),l.idx=e.idx,l.tag=r.value,this.tags.push(l),this.config.sortSelected){var h=this.tags.slice();t=function(e,t){e.replace(/(\d+)|(\D+)/g,function(e,i,n){t.push([i||1/0,n||""])})},h.sort(function(e,n){var r,s,o=[],a=[];for(!0===i.config.sortSelected?(r=e.tag,s=n.tag):"text"===i.config.sortSelected&&(r=e.textContent,s=n.textContent),t(r,o),t(s,a);o.length&&a.length;){var l=o.shift(),c=a.shift(),h=l[0]-c[0]||l[1].localeCompare(c[1]);if(h)return h}return o.length-a.length}),o.each(h,function(e,t){n.appendChild(t)}),this.label.innerHTML=""}else n.appendChild(l);this.config.taggable?this.label.insertBefore(n,this.input.parentNode):this.label.appendChild(n)},f=function(e){var t=!1;o.each(this.tags,function(i,n){n.idx===e.idx&&(t=n)},this),t&&(this.label.removeChild(t),this.tags.splice(this.tags.indexOf(t),1))},p=function(){var e=this.tree;if(e.scrollTop>=e.scrollHeight-e.offsetHeight&&this.pageIndex"+i[0]+"")},v=function(e,t){if(t=t||{},!e)throw new Error("You must supply either a HTMLSelectElement or a CSS3 selector string.");if(this.el=e,"string"==typeof e&&(this.el=document.querySelector(e)),null===this.el)throw new Error("The element you passed to Selectr can not be found.");if("select"!==this.el.nodeName.toLowerCase())throw new Error("The element you passed to Selectr is not a HTMLSelectElement.");this.render(t)};v.prototype.render=function(e){if(!this.rendered){this.config=o.extend(r,e),this.originalType=this.el.type,this.originalIndex=this.el.tabIndex,this.defaultSelected=[],this.originalOptionCount=this.el.options.length,(this.config.multiple||this.config.taggable)&&(this.el.multiple=!0),this.disabled=i(this.config,"disabled"),this.opened=!1,this.config.taggable&&(this.config.searchable=!1),this.navigating=!1,this.mobileDevice=!1,/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent)&&(this.mobileDevice=!0),this.customOption=this.config.hasOwnProperty("renderOption")&&"function"==typeof this.config.renderOption,this.customSelected=this.config.hasOwnProperty("renderSelection")&&"function"==typeof this.config.renderSelection,s.mixin(this),h.call(this),this.bindEvents(),this.update(),this.optsRect=o.rect(this.tree),this.rendered=!0,this.el.multiple||(this.el.selectedIndex=this.selectedIndex);var t=this;setTimeout(function(){t.emit("selectr.init")},20)}},v.prototype.getSelected=function(){return this.el.querySelectorAll("option:checked")},v.prototype.getSelectedProperties=function(e){var t=this.getSelected();return[].slice.call(t).map(function(t){return t[e]}).filter(function(e){return null!==e&&void 0!==e})},v.prototype.bindEvents=function(){var e=this;if(this.events={},this.events.dismiss=l.bind(this),this.events.navigate=d.bind(this),this.events.reset=this.reset.bind(this),this.config.nativeDropdown||this.mobileDevice){this.container.addEventListener("touchstart",function(t){t.changedTouches[0].target===e.el&&e.toggle()}),(this.config.nativeDropdown||this.mobileDevice)&&this.container.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation(),t.target===e.el&&e.toggle()});var t=function(e,t){for(var i,n=[],r=e.slice(0),s=0;s-1?r.splice(i,1):n.push(t[s]);return[n,r]};this.el.addEventListener("change",function(i){if(e.el.multiple){var n=e.getSelectedProperties("idx"),r=t(e.selectedIndexes,n);o.each(r[0],function(t,i){e.select(i)},e),o.each(r[1],function(t,i){e.deselect(i)},e)}else e.el.selectedIndex>-1&&e.select(e.el.selectedIndex)})}this.config.nativeDropdown&&this.container.addEventListener("keydown",function(t){"Enter"===t.key&&e.selected===document.activeElement&&(e.toggle(),setTimeout(function(){e.el.focus()},200))}),this.selected.addEventListener("click",function(t){e.disabled||e.toggle(),t.preventDefault(),t.stopPropagation()}),this.label.addEventListener("click",function(t){o.hasClass(t.target,"selectr-tag-remove")&&e.deselect(t.target.parentNode.idx)}),this.selectClear&&this.selectClear.addEventListener("click",this.clear.bind(this)),this.tree.addEventListener("mousedown",function(e){e.preventDefault()}),this.tree.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation();var i=o.closest(t.target,function(e){return e&&o.hasClass(e,"selectr-option")});i&&(o.hasClass(i,"disabled")||(o.hasClass(i,"selected")?(e.el.multiple||!e.el.multiple&&e.config.allowDeselect)&&e.deselect(i.idx):e.select(i.idx),e.opened&&!e.el.multiple&&e.close()))}),this.tree.addEventListener("mouseover",function(t){o.hasClass(t.target,"selectr-option")&&(o.hasClass(t.target,"disabled")||(o.removeClass(e.items[e.navIndex],"active"),o.addClass(t.target,"active"),e.navIndex=[].slice.call(e.items).indexOf(t.target)))}),this.config.searchable&&(this.input.addEventListener("focus",function(t){e.searching=!0}),this.input.addEventListener("blur",function(t){e.searching=!1}),this.input.addEventListener("keyup",function(t){e.search(),e.config.taggable||(this.value.length?o.addClass(this.parentNode,"active"):o.removeClass(this.parentNode,"active"))}),this.inputClear.addEventListener("click",function(t){e.input.value=null,m.call(e),e.tree.childElementCount||a.call(e)})),this.config.taggable&&this.input.addEventListener("keyup",function(t){if(e.search(),e.config.taggable&&this.value.length){var i=this.value.trim();if(13===t.which||o.includes(e.tagSeperators,t.key)){o.each(e.tagSeperators,function(e,t){i=i.replace(t,"")});e.add({value:i,text:i,selected:!0},!0)?(e.close(),m.call(e)):(this.value="",e.setMessage("That tag is already in use."))}}}),this.update=o.debounce(function(){e.opened&&e.config.closeOnScroll&&e.close(),e.width&&(e.container.style.width=e.width),e.invert()},50),this.requiresPagination&&(this.paginateItems=o.debounce(function(){p.call(this)},50),this.tree.addEventListener("scroll",this.paginateItems.bind(this))),document.addEventListener("click",this.events.dismiss),window.addEventListener("keydown",this.events.navigate),window.addEventListener("resize",this.update),window.addEventListener("scroll",this.update),this.el.form&&this.el.form.addEventListener("reset",this.events.reset)},v.prototype.setSelected=function(e){if(this.config.data||this.el.multiple||!this.el.options.length||(0===this.el.selectedIndex&&(this.el.options[0].defaultSelected||this.config.defaultSelected||(this.el.selectedIndex=-1)),this.selectedIndex=this.el.selectedIndex,this.selectedIndex>-1&&this.select(this.selectedIndex)),this.config.multiple&&"select-one"===this.originalType&&!this.config.data&&this.el.options[0].selected&&!this.el.options[0].defaultSelected&&(this.el.options[0].selected=!1),o.each(this.options,function(e,t){t.selected&&t.defaultSelected&&this.select(t.idx)},this),this.config.selectedValue&&this.setValue(this.config.selectedValue),this.config.data){!this.el.multiple&&this.config.defaultSelected&&this.el.selectedIndex<0&&this.select(0);var t=0;o.each(this.config.data,function(e,n){i(n,"children")?o.each(n.children,function(e,i){i.hasOwnProperty("selected")&&!0===i.selected&&this.select(t),t++},this):(n.hasOwnProperty("selected")&&!0===n.selected&&this.select(t),t++)},this)}},v.prototype.destroy=function(){this.rendered&&(this.emit("selectr.destroy"),"select-one"===this.originalType&&(this.el.multiple=!1),this.config.data&&(this.el.innerHTML=""),o.removeClass(this.el,"selectr-hidden"),this.el.form&&o.off(this.el.form,"reset",this.events.reset),o.off(document,"click",this.events.dismiss),o.off(document,"keydown",this.events.navigate),o.off(window,"resize",this.update),o.off(window,"scroll",this.update),this.container.parentNode.replaceChild(this.el,this.container),this.rendered=!1)},v.prototype.change=function(e){var t=this.items[e],i=this.options[e];i.disabled||(i.selected&&o.hasClass(t,"selected")?this.deselect(e):this.select(e),this.opened&&!this.el.multiple&&this.close())},v.prototype.select=function(e){var t=this.items[e],i=[].slice.call(this.el.options),n=this.options[e];if(this.el.multiple){if(o.includes(this.selectedIndexes,e))return!1;if(this.config.maxSelections&&this.tags.length===this.config.maxSelections)return this.setMessage("A maximum of "+this.config.maxSelections+" items can be selected.",!0),!1;this.selectedValues.push(n.value),this.selectedIndexes.push(e),u.call(this,t)}else{var r=this.data?this.data[e]:n;this.label.innerHTML=this.customSelected?this.config.renderSelection(r):n.textContent,this.selectedValue=n.value,this.selectedIndex=e,o.each(this.options,function(t,i){var n=this.items[t];t!==e&&(n&&o.removeClass(n,"selected"),i.selected=!1,i.removeAttribute("selected"))},this)}o.includes(i,n)||this.el.add(n),t.setAttribute("aria-selected",!0),o.addClass(t,"selected"),o.addClass(this.container,"has-selected"),n.selected=!0,n.setAttribute("selected",""),this.emit("selectr.change",n),this.emit("selectr.select",n)},v.prototype.deselect=function(e,t){var i=this.items[e],n=this.options[e];if(this.el.multiple){var r=this.selectedIndexes.indexOf(e);this.selectedIndexes.splice(r,1);var s=this.selectedValues.indexOf(n.value);this.selectedValues.splice(s,1),f.call(this,i),this.tags.length||o.removeClass(this.container,"has-selected")}else{if(!t&&!this.config.clearable&&!this.config.allowDeselect)return!1;this.label.innerHTML="",this.selectedValue=null,this.el.selectedIndex=this.selectedIndex=-1,o.removeClass(this.container,"has-selected")}this.items[e].setAttribute("aria-selected",!1),o.removeClass(this.items[e],"selected"),n.selected=!1,n.removeAttribute("selected"),this.emit("selectr.change",null),this.emit("selectr.deselect",n)},v.prototype.setValue=function(e){var t=Array.isArray(e);if(t||(e=e.toString().trim()),!this.el.multiple&&t)return!1;o.each(this.options,function(i,n){(t&&o.includes(e.toString(),n.value)||n.value===e)&&this.change(n.idx)},this)},v.prototype.getValue=function(e,t){var i;if(this.el.multiple)e?this.selectedIndexes.length&&(i={},i.values=[],o.each(this.selectedIndexes,function(e,t){var n=this.options[t];i.values[e]={value:n.value,text:n.textContent}},this)):i=this.selectedValues.slice();else if(e){var n=this.options[this.selectedIndex];i={value:n.value,text:n.textContent}}else i=this.selectedValue;return e&&t&&(i=JSON.stringify(i)),i},v.prototype.add=function(e,t){if(e){if(this.data=this.data||[],this.items=this.items||[],this.options=this.options||[],Array.isArray(e))o.each(e,function(e,i){this.add(i,t)},this);else if("[object Object]"===Object.prototype.toString.call(e)){if(t){var i=!1;if(o.each(this.options,function(t,n){n.value.toLowerCase()===e.value.toLowerCase()&&(i=!0)}),i)return!1}var n=o.createElement("option",e);return this.data.push(e),this.options.push(n),n.idx=this.options.length>0?this.options.length-1:0,c.call(this,n),e.selected&&this.select(n.idx),n}return this.setPlaceholder(),this.config.pagination&&this.paginate(),!0}},v.prototype.remove=function(e){var t=[];if(Array.isArray(e)?o.each(e,function(i,n){o.isInt(n)?t.push(this.getOptionByIndex(n)):"string"==typeof e&&t.push(this.getOptionByValue(n))},this):o.isInt(e)?t.push(this.getOptionByIndex(e)):"string"==typeof e&&t.push(this.getOptionByValue(e)),t.length){var i;o.each(t,function(e,t){i=t.idx,this.el.remove(t),this.options.splice(i,1);var n=this.items[i].parentNode;n&&n.removeChild(this.items[i]),this.items.splice(i,1),o.each(this.options,function(e,t){t.idx=e,this.items[e].idx=e},this)},this),this.setPlaceholder(),this.config.pagination&&this.paginate()}},v.prototype.removeAll=function(){this.clear(!0),o.each(this.el.options,function(e,t){this.el.remove(t)},this),o.truncate(this.tree),this.items=[],this.options=[],this.data=[],this.navIndex=0,this.requiresPagination&&(this.requiresPagination=!1,this.pageIndex=1,this.pages=[]),this.setPlaceholder()},v.prototype.search=function(e){if(!this.navigating){e=e||this.input.value;var t=document.createDocumentFragment();if(this.removeMessage(),o.truncate(this.tree),e.length>1)if(o.each(this.options,function(i,r){var s=this.items[r.idx];o.includes(r.textContent.toLowerCase(),e.toLowerCase())&&!r.disabled?(n(s,t,this.customOption),o.removeClass(s,"excluded"),this.customOption||(s.innerHTML=g(e,r))):o.addClass(s,"excluded")},this),t.childElementCount){var i=this.items[this.navIndex],r=t.firstElementChild;o.removeClass(i,"active"),this.navIndex=r.idx,o.addClass(r,"active")}else this.config.taggable||this.setMessage("no results.");else a.call(this);this.tree.appendChild(t)}},v.prototype.toggle=function(){this.disabled||(this.opened?this.close():this.open())},v.prototype.open=function(){var e=this;return!!this.options.length&&(this.opened||this.emit("selectr.open"),this.opened=!0,this.mobileDevice||this.config.nativeDropdown?(o.addClass(this.container,"native-open"),void(this.config.data&&o.each(this.options,function(e,t){this.el.add(t)},this))):(o.addClass(this.container,"open"),a.call(this),this.invert(),this.tree.scrollTop=0,o.removeClass(this.container,"notice"),this.selected.setAttribute("aria-expanded",!0),this.tree.setAttribute("aria-hidden",!1),this.tree.setAttribute("aria-expanded",!0),void(this.config.searchable&&!this.config.taggable&&setTimeout(function(){e.input.focus(),e.input.tabIndex=0},10))))},v.prototype.close=function(){if(this.opened&&this.emit("selectr.close"),this.opened=!1,this.mobileDevice||this.config.nativeDropdown)return void o.removeClass(this.container,"native-open");var e=o.hasClass(this.container,"notice");this.config.searchable&&!e&&(this.input.blur(),this.input.tabIndex=-1,this.searching=!1),e&&(o.removeClass(this.container,"notice"),this.notice.textContent=""),o.removeClass(this.container,"open"),o.removeClass(this.container,"native-open"),this.selected.setAttribute("aria-expanded",!1),this.tree.setAttribute("aria-hidden",!0),this.tree.setAttribute("aria-expanded",!1),o.truncate(this.tree),m.call(this)},v.prototype.enable=function(){this.disabled=!1,this.el.disabled=!1,this.selected.tabIndex=this.originalIndex,this.el.multiple&&o.each(this.tags,function(e,t){t.lastElementChild.tabIndex=0}),o.removeClass(this.container,"selectr-disabled")},v.prototype.disable=function(e){e||(this.el.disabled=!0),this.selected.tabIndex=-1,this.el.multiple&&o.each(this.tags,function(e,t){t.lastElementChild.tabIndex=-1}),this.disabled=!0,o.addClass(this.container,"selectr-disabled")},v.prototype.reset=function(){this.disabled||(this.clear(),this.setSelected(!0),o.each(this.defaultSelected,function(e,t){this.select(t)},this),this.emit("selectr.reset"))},v.prototype.clear=function(e){if(this.el.multiple){if(this.selectedIndexes.length){var t=this.selectedIndexes.slice();o.each(t,function(e,t){this.deselect(t)},this)}}else this.selectedIndex>-1&&this.deselect(this.selectedIndex,e);this.emit("selectr.clear")},v.prototype.serialise=function(e){var t=[];return o.each(this.options,function(e,i){var n={value:i.value,text:i.textContent};i.selected&&(n.selected=!0),i.disabled&&(n.disabled=!0),t[e]=n}),e?JSON.stringify(t):t},v.prototype.serialize=function(e){return this.serialise(e)},v.prototype.setPlaceholder=function(e){e=e||this.config.placeholder||this.el.getAttribute("placeholder"),this.options.length||(e="No options available"),this.placeEl.innerHTML=e},v.prototype.paginate=function(){if(this.items.length){var e=this;return this.pages=this.items.map(function(t,i){return i%e.config.pagination==0?e.items.slice(i,i+e.config.pagination):null}).filter(function(e){return e}),this.pages}},v.prototype.setMessage=function(e,t){t&&this.close(),o.addClass(this.container,"notice"),this.notice.textContent=e},v.prototype.removeMessage=function(){o.removeClass(this.container,"notice"),this.notice.innerHTML=""},v.prototype.invert=function(){var e=o.rect(this.selected),t=this.tree.parentNode.offsetHeight,i=window.innerHeight;e.top+e.height+t>i?(o.addClass(this.container,"inverted"),this.isInverted=!0):(o.removeClass(this.container,"inverted"),this.isInverted=!1),this.optsRect=o.rect(this.tree)},v.prototype.getOptionByIndex=function(e){return this.options[e]},v.prototype.getOptionByValue=function(e){for(var t=!1,i=0,n=this.options.length;i/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",s=document.createElement("div");s.style.position="relative",s.style.outline="0",s.style.border="0",s.style.margin="0",s.style.padding="0";var o=document.createElement("div");o.className="autocomplete dropdown",o.style.position="absolute",o.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:s,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;o.style.marginLeft="0",o.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",d),this.element.addEventListener("keydown",d,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),s.appendChild(this.elementHint),s.appendChild(o),e.parentElement.appendChild(s),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),s=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+s[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),u>3*f?(t.style.maxHeight=u+"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!=s&&n[s]&&(n[s].className="item"),n[e].className="item hover",s=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}(o,c),d=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 s=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+s+a.substring(s.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var s=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+s+a.substring(s.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var d="hidden"==o.style.visibility;if(h.hide(),d)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),u=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";function n(){try{this.format()}catch(e){}}var r=i(72),s=i(69),o=i(56),a={};a.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 n=t.ace?t.ace:r;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===n&&(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&&n)try{i(78)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);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 s(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var d={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(d);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=n.edit(this.editorDom);f.$blockScrolling=1/0,f.setTheme(this.theme),f.setOptions({readOnly:u}),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=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){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 y=document.createElement("span");y.className="jsoneditor-curserinfo-label",y.innerText="Ln:";var w=document.createElement("span");w.className="jsoneditor-curserinfo-val",w.innerText="1",v.appendChild(y),v.appendChild(w);var C=document.createElement("span");C.className="jsoneditor-curserinfo-label",C.innerText="Col:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(C),v.appendChild(b),this.curserInfoElements.colVal=b,this.curserInfoElements.lnVal=w;var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="characters selected",A.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=A,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(A)}this.setSchema(this.options.schema,this.options.schemaRefs)},a._onChange=function(){if(!this.onChangeDisabled){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}if(this.options.onChangeText)try{this.options.onChangeText(this.getText())}catch(e){console.error("Error in onChangeText callback: ",e)}}},a._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},a._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._updateCursorInfo(),this._emitSelectionChange()},a._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},a._onBlur=function(e){this._updateCursorInfo(),this._emitSelectionChange()},a._updateCursorInfo=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.textarea)setTimeout(function(){var s=o.getInputSelection(r.textarea);s.startIndex!==s.endIndex&&(n=s.endIndex-s.startIndex),n&&r.cursorInfo&&r.cursorInfo.line===s.end.row&&r.cursorInfo.column===s.end.column?(t=s.start.row,i=s.start.column):(t=s.end.row,i=s.end.column),r.cursorInfo={line:t,column:i,count:n},r.options.statusBar&&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,r.cursorInfo={line:t,column:i,count:n},this.options.statusBar&&e()}},a._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},a.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},a.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},a.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},a.repair=function(){var e=this.getText(),t=o.sanitize(e);this.setText(t)},a.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},a.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},a.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},a.update=function(e){this.updateText(JSON.stringify(e,null,this.indentation))},a.get=function(){var e,t=this.getText();try{e=o.parse(t)}catch(i){t=o.sanitize(t),e=o.parse(t)}return e},a.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},a.setText=function(e){var t;t=!0===this.options.escapeUnicode?o.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor&&(this.onChangeDisabled=!0,this.aceEditor.setValue(t,-1),this.onChangeDisabled=!1),this.validate()},a.updateText=function(e){this.getText()!==e&&(this.onChangeDisabled=!0,this.setText(e),this.onChangeDisabled=!1)},a.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)}},a.getTextSelection=function(){var e={};if(this.textarea){var t=o.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var i=this.aceEditor.getSelection(),n=this.aceEditor.getSelectedText(),r=i.getRange(),s=i.getSelectionLead();return s.row===r.end.row&&s.column===r.end.column?e=r:(e.start=r.end,e.end=r.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:n}}},a.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=o.debounce(e,this.DEBOUNCE_INTERVAL))},a.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var i=o.getIndexForPosition(this.textarea,e.row,e.column),n=o.getIndexForPosition(this.textarea,t.row,t.column);if(i>-1&&n>-1)if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(i,n);else if(this.textarea.createTextRange){var r=this.textarea.createTextRange();r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",i),r.select()}}else if(this.aceEditor){var r={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(r)}},e.exports=[{mode:"text",mixin:a,data:"text",load:n},{mode:"code",mixin:a,data:"text",load:n}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(73),i(75),i(77)}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=s(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var o=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,s.replace.call(n(this),"g","")),s.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=s.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 s(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 o,a,l,c,h,d=Function.prototype.call,u=Array.prototype,f=Object.prototype,p=u.slice,m=d.bind(f.toString),g=d.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(o=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];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(d=c;d--;)this[l+d]=this[a+d];if(s&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+s,d=0;d>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,s=[],o=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 s=0;s>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>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,s=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(s in i){r=i[s++];break}if(++s>=n)throw new TypeError("reduce of empty array with no initial value")}for(;s>>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,s=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(s in i){r=i[s--];break}if(--s<0)throw new TypeError("reduceRight of empty array with no initial value")}do{s in this&&(r=e.call(void 0,r,i[s],s,t))}while(s--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=w&&"[object String]"==m(this)?this.split(""):B(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=s(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,s(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 s=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=s,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var C;C=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=C();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var b=r({}),A="undefined"==typeof document||r(document.createElement("div")) +;if(!b||!A)var E=Object.defineProperty}if(!Object.defineProperty||E){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(E)try{return E.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")&&o(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(!o.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 s.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(o.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in s.FUNCTION_KEYS||i in s.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var s=e("./keys"),o=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||o.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 s=t[0];e.wheelX=n-s.clientX,e.wheelY=r-s.clientY,n=s.clientX,r=s.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 s(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,o.isIE){var s=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!s||(d=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),1==d&&(l=e.clientX,c=e.clientY)}if(e._clicks=d,n[r]("mousedown",e),d>4)d=0;else if(d>1)return n[r](u[d],e)}function a(e){d=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),n[r]("mousedown",e),n[r](u[d],e)}var l,c,h,d=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",s),o.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!o.isMac||!o.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 s.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var s=t.addListener;if(o.isOldGecko||o.isOpera&&!("KeyboardEvent"in window)){var l=null;s(e,"keydown",function(e){l=e.keyCode}),s(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;s(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),s(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),s(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),s(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!o.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))},$=function(e){if(!y){var t=f.value;D(t),d()}},k=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 k(e,t,!0)}}},B=function(e,s){var o=t.getCopyText();if(!o)return n.preventDefault(e);k(e,o)?(r.isIOS&&(g=s,f.value="\n aa"+o+"a a\n",f.setSelectionRange(4,4+o.length),m={value:o}),s?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=o,f.select(),setTimeout(function(){m=!1,d(),i(),s?t.onCut():t.onCopy()}))},L=function(e){B(e,!0)},R=function(e){B(e,!1)},T=function(e){var s=k(e);"string"==typeof s?(s&&t.onPaste(s,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",$),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){y||!t.onCompositionStart||t.$readOnly||(y={},y.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),y.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(y&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(y.lastValue!==e&&(t.onCompositionUpdate(e),y.lastValue&&t.undo(),y.canUndo&&(y.lastValue=e),y.lastValue)){var i=t.selection.getRange();t.insert(y.lastValue),t.session.markUndoGroup(),y.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=y;y=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");y||(e==i.lastValue?d():!i.lastValue&&e&&(d(),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)&&$()}},I=o.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){w||(w=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var o=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),l=o.top+(parseInt(a.borderTopWidth)||0),c=o.left+(parseInt(o.borderLeftWidth)||0),h=o.bottom-l-f.clientHeight-2,d=function(e){f.style.left=e.clientX-c-2+"px",f.style.top=Math.min(e.clientY-l-2,h)+"px"};d(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&n.capture(t.container,d,u))},this.onContextMenuClose=u;var N,j=function(e){t.textInput.onContextMenu(e),u()};if(n.addListener(f,"mouseup",j),n.addListener(f,"mousedown",function(e){e.preventDefault(),u()}),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=d}),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"),s=e("../lib/dom"),o=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:u.value.length-1;else var t=e?2:1,i=2;try{u.setSelectionRange(t,i)}catch(e){}g=!1}}function h(){g||(u.value=f,r.isWebKit&&b.schedule())}function d(){clearTimeout(O),O=setTimeout(function(){v&&(u.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 u=s.createElement("textarea");u.className="ace_text-input",u.setAttribute("wrap","off"),u.setAttribute("autocorrect","off"),u.setAttribute("autocapitalize","off"),u.setAttribute("spellcheck",!1),u.style.opacity="0",e.insertBefore(u,e.firstChild);var f="\u2028\u2028",p=!1,m=!1,g=!1,v="",y=!0;try{var w=document.activeElement===u}catch(e){}n.addListener(u,"blur",function(e){t.onBlur(e),w=!1}),n.addListener(u,"focus",function(e){w=!0,t.onFocus(e),i()}),this.focus=function(){if(v)return u.focus();var e=u.style.top;u.style.position="fixed",u.style.top="0px",u.focus(),setTimeout(function(){u.style.position="","0px"==u.style.top&&(u.style.top=e)},0)},this.blur=function(){u.blur()},this.isFocused=function(){return w};var C=o.delayedCall(function(){w&&i(y)}),b=o.delayedCall(function(){g||(u.value=f,w&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=y&&(y=!y,C.schedule())}),h(),w&&t.onFocus();var A=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},E=function(e){p?p=!1:A(u)?(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=u.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)}}},$=function(e,r){var s=t.getCopyText();if(!s)return n.preventDefault(e);D(e,s)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,u.value=s,u.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},k=function(e){$(e,!0)},B=function(e){$(e,!1)},L=function(e){var s=D(e);"string"==typeof s?(s&&t.onPaste(s,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(u.value="",m=!0)};n.addCommandKeyListener(u,t.onCommandKey.bind(t)),n.addListener(u,"select",E),n.addListener(u,"input",_),n.addListener(u,"cut",k),n.addListener(u,"copy",B),n.addListener(u,"paste",L),"oncut"in u&&"oncopy"in u&&"onpaste"in u||n.addListener(e,"keydown",function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:B(e);break;case 86:L(e);break;case 88:k(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=u.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=u.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=o.delayedCall(T,50);n.addListener(u,"compositionstart",R),r.isGecko?n.addListener(u,"text",function(){M.schedule()}):(n.addListener(u,"keyup",function(){M.schedule()}),n.addListener(u,"keydown",function(){M.schedule()})),n.addListener(u,"compositionend",P),this.getElement=function(){return u},this.setReadOnly=function(e){u.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=u.style.cssText),u.style.cssText=(i?"z-index:100000;":"")+"height:"+u.style.height+";"+(r.isIE?"opacity:0.1;":"");var o=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),l=o.top+(parseInt(a.borderTopWidth)||0),c=o.left+(parseInt(o.borderLeftWidth)||0),h=o.bottom-l-u.clientHeight-2,f=function(e){u.style.left=e.clientX-c-2+"px",u.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,d))},this.onContextMenuClose=d;var O,I=function(e){t.textInput.onContextMenu(e),d()};n.addListener(u,"mouseup",I),n.addListener(u,"mousedown",function(e){e.preventDefault(),d()}),n.addListener(t.renderer.scroller,"contextmenu",I),n.addListener(u,"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 s(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 o=(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 s=n.getSelectionRange(),a=s.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),o.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=s(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 o=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==o&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&o>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==o&&1==a)n=r.end,t=r.start;else{var l=s(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,s=e.wheelX/r,o=e.wheelY/r;r<250&&(s=(s+i.vx)/2,o=(o+i.vy)/2);var a=Math.abs(s/o),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(s)<=1.1*Math.abs(i.vx)&&Math.abs(o)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=s,i.vy=o,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=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,d.y).row,a=d.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return i()}if(u!=r)if(u=r.text.join("
    "),c.setHtml(u),c.show(),o._signal("showGutterTooltip",c),o.on("mousewheel",i),e.$tooltipFollowsMouse)n(d);else{var h=d.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)),u&&(c.hide(),u=null,o._signal("hideGutterTooltip",c),o.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var o=e.editor,l=o.renderer.$gutterLayer,c=new r(o.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(o.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=o.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var o=r.domEvent.target||r.domEvent.srcElement;if(s.hasCssClass(o,"ace_fold-widget"))return i();u&&e.$tooltipFollowsMouse&&n(r),d=r,h||(h=setTimeout(function(){h=null,d&&!e.isMousePressed?t():i()},50))}),a.addListener(o.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),o.on("changeSession",i)}function r(e){l.call(this,e)}var s=e("../lib/dom"),o=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;o.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(),s=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+s>n&&(t-=20+s),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"),s=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(s.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,s=!t||e.column!=t.column;if(!_||n||s)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,_=i,D={x:w,y:C};else{r(D.x,D.y,w,C)>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,s=g.renderer.scroller.getBoundingClientRect(),o={x:{left:w-s.left,right:s.right-w},y:{top:C-s.top,bottom:s.bottom-C}},a=Math.min(o.x.left,o.x.right),c=Math.min(o.y.top,o.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=o.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=E;E=g.renderer.screenToTextCoordinates(w,C),t(E,e),i(E,e)}function d(){A=g.selection.toOrientedRange(),y=g.session.addMarker(A,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(b),n(),b=setInterval(n,20),k=0,o.addListener(document,"mousemove",f)}function u(){clearInterval(b),g.session.removeMarker(y),y=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(A),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),A=null,E=null,k=0,S=null,_=null,o.removeListener(document,"mousemove",f)}function f(){null==B&&(B=setTimeout(function(){null!=B&&y&&u()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function 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 s="none";return n&&t.indexOf(r)>=0?s="copy":i.indexOf(r)>=0?s="move":t.indexOf(r)>=0&&(s="copy"),s}var g=e.editor,v=s.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 y,w,C,b,A,E,F,x,S,_,D,$=g.container,k=0;this.onDragStart=function(e){if(this.cancelDrag||!$.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}A=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($.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 w=e.clientX,C=e.clientY,y||d(),k++,e.dataTransfer.dropEffect=F=m(e),o.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return w=e.clientX,C=e.clientY,y||(d(),k++),null!==B&&(B=null),e.dataTransfer.dropEffect=F=m(e),o.preventDefault(e)},this.onDragLeave=function(e){if(--k<=0&&y)return u(),F=null,o.preventDefault(e)},this.onDrop=function(e){if(E){var t=e.dataTransfer;if(x)switch(F){case"move":A=A.contains(E.row,E.column)?{start:E,end:E}:g.moveText(A,E);break;case"copy":A=g.moveText(A,E,!0)}else{var i=t.getData("Text");A={start:E,end:g.session.insert(E,i)},g.focus(),F=null}return u(),o.preventDefault(e)}},o.addListener($,"dragstart",this.onDragStart.bind(e)),o.addListener($,"dragend",this.onDragEnd.bind(e)),o.addListener($,"dragenter",this.onDragEnter.bind(e)),o.addListener($,"dragover",this.onDragOver.bind(e)),o.addListener($,"dragleave",this.onDragLeave.bind(e)),o.addListener($,"drop",this.onDrop.bind(e));var B=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var s=e("../lib/dom"),o=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},s=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=s),i=i.slice();for(var o=0;o1&&(r=i[i.length-2]);var o=h[t+"Path"];return null==o?o=h.basePath:"/"==n&&(t=n=""),o&&"/"!=o.slice(-1)&&(o+="/"),o+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,s;Array.isArray(i)&&(s=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 o=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 o();a.loadScript(t.moduleUrl(i,s),o)}},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"),s=e("./default_handlers").DefaultHandlers,o=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 s(this),new o(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(),s=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?s.setCursorStyle("default"):s.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 s=this,o=function(e){if(e){if(r.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new a(e,s.editor),s.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},c=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});s.$onCaptureMouseMove=o,s.releaseMouse=n.capture(this.editor.container,o,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),s=r.range||r.firstRange;if(s){i=s.start.row;var o=n.getFoldAt(i,n.getLine(i).length,1);o?n.removeFold(o):(n.addFold("...",s),e.renderer.scrollCursorIntoView({row:s.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),s=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 s,o=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((s=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&s.command&&(o="null"==s.command||a.exec(s.command,this.$editor,s.args,n),o&&n&&-1!=e&&1!=s.passEvent&&1!=s.command.passEvent&&r.stopEvent(n),o)););return o||-1!=e||(s={command:"insertstring"},o=a.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},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(s.prototype),t.KeyBinding=s}),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,y=0,w=null,C=-1,E=null,x=null,S=[];if(!n)for(E=0,n=[];E0)if(16==w){for(E=C;E-1){for(E=C;E=0&&n[_]==F;_--)t[_]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,s=n-1;r=t.length||(r=i[n-1])!=y&&r!=w||(s=t[n+1])!=y&&s!=w?C:(c&&(s=w),s==r?s:C);case S:return r=n>0?i[n-1]:b,r==y&&n+10&&i[n-1]==y)return y;if(c)return C;for(l=n+1,o=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==E))return v}return n<1||(r=t[n-1])==b?C:i[n-1];case b:return c=!1,d=!0,a;case A:return u=!0,C;case $:case k:case L:case R:case B:c=!1;case T:return C}}function o(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)?w:1642==t?_:/[\u06f0-\u06f9]/.test(e)?y:E:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?E:C}var a=0,l=0,c=!1,h=!1,d=!1,u=!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,y=2,w=3,C=4,b=5,A=6,E=7,F=8,x=9,S=10,_=11,D=12,$=13,k=14,B=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,A,b,A,F,b,T,T,T,T,T,T,T,T,T,T,T,T,T,T,b,b,b,A,F,C,C,_,_,_,C,C,C,C,C,S,x,S,x,x,y,y,y,y,y,y,y,y,y,y,x,C,C,C,C,C,C,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,C,C,C,C,C,C,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,C,C,C,C,T,T,T,T,T,T,b,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,C,_,_,_,_,C,C,C,C,g,C,C,T,C,C,_,_,y,y,C,g,C,C,C,y,g,C,C,C,C,C],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,F,b,$,k,B,L,R,x,_,_,_,_,_,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,x,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,F];t.L=g,t.R=v,t.EN=y,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,s){if(e.length<2)return{};var o=e.split(""),l=new Array(o.length),c=new Array(o.length),h=[];a=s?m:0,n(o,h,o.length,i);for(var d=0;dE&&i[d]<$||i[d]===C||i[d]===T)?h[d]=t.ON_R:d>0&&"ل"===o[d-1]&&/\u0622|\u0623|\u0625|\u0627/.test(o[d])&&(h[d-1]=h[d]=t.R_H,d++);o[o.length-1]===t.DOT&&(h[o.length-1]=t.B);for(var d=0;d=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 s=0;s=c&&ri+o/2;){if(i+=o,r===s.length-1){o=0;break}o=this.charWidths[s[++r]]}return r>0&&s[r-1]%2!=0&&s[r]%2==0?(e0&&s[r-1]%2==0&&s[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===s.length-1&&0===o&&s[r-1]%2==0||!this.isRtlDir&&0===r&&s[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&s[r-1]%2!=0&&0!==o&&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()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.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 o(n,0,i,this.session.getLine(i).length):new o(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(s)&&(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 s=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var s=r.stringReverse(n),o=this.$shortWordEndIndex(s);return this.moveCursorTo(t,i-o)},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 o.fromPoints(t,i)}catch(e){return o.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=o.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,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",a=[],l=0;l1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),s[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(s[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",o)}};(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,s=i.length;rh){var v=e.substring(h,g-m.length);u.type==f?u.value+=v:(u.type&&c.push(u),u={type:f,value:v})}for(var y=0;yr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(s.prototype),t.Tokenizer=s}),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"),s=e("../behaviour").Behaviour,o=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},d={'"':'"',"'":"'"},u=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,s,o){var l=r.getCursorPosition(),c=s.doc.getLine(l.row);if("{"==o){u(r);var h=r.getSelectionRange(),d=s.doc.getTextRange(h);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return f(h,d,"{","}");if(p.isSaneInsertion(r,s))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,s,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,s,"{"),{text:"{",selection:[1,1]})}else if("}"==o){u(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=s.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,o))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==o||"\r\n"==o){u(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 y=s.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!y)return null;var w=this.$getIndent(s.getLine(y.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var w=this.$getIndent(c)}var C=w+s.getTabString();return{text:"\n"+C+"\n"+w+v,selection:[1,C.length,1,C.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,s){var o=r.doc.getTextRange(s);if(!s.isMultiLine()&&"{"==o){u(i);if("}"==r.doc.getLine(s.start.row).substring(s.end.column,s.end.column+1))return s.end.column++,s;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){u(i);var s=i.getSelectionRange(),o=n.doc.getTextRange(s);if(""!==o&&i.getWrapBehavioursEnabled())return f(s,o,"(",")");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){u(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 s=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==s){u(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){u(i);var s=i.getSelectionRange(),o=n.doc.getTextRange(s);if(""!==o&&i.getWrapBehavioursEnabled())return f(s,o,"[","]");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){u(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 s=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==s){u(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 s=n.$mode.$quotes||d;if(1==r.length&&s[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;u(i);var o=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&s[l])&&i.getWrapBehavioursEnabled())return f(a,l,o,o);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 y,w=g&&/string|escape/.test(g.type),C=!v||/string|escape/.test(v.type);if(m==o)(y=w!==C)&&/string\.end/.test(v.type)&&(y=!1);else{if(w&&!C)return null;if(w&&C)return null;var b=n.$mode.tokenRe;b.lastIndex=0;var A=b.test(p);b.lastIndex=0;var E=b.test(p);if(A||E)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;y=!0}return{text:y?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var s=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==s||"'"==s)){u(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==s)return r.end.column++,r}})};p.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new o(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new o(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(),s=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,s,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+s.substr(r.column),n.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),s=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,s)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=s.substr(0,r.column)+i,n.maybeInsertedLineEnd=s.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,s),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,s=e("./behaviour/cstyle").CstyleBehaviour,o=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp("^["+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.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(s.getLine(t),t)}var s=t.doc,o=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;y(e,n,r)||" "!=i[0][r-1]||r--,s.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){o&&!/\S/.test(e)||(y(e,c,c)?s.insertInLine({row:t,column:c},m):s.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},y=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,w=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),C=new RegExp("(?:"+a.escapeRegExp(w)+")\\s*$"),g=function(e,t){v(e,t)||o&&!/\S/.test(e)||(s.insertInLine({row:t,column:e.length},w),s.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(C))&&s.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&s.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(b=e.length)}),c==1/0&&(c=b,o=!1,l=!1),d&&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 s,o,a=new l(t,n.row,n.column),h=a.getCurrentToken(),d=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var u,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;u=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),u&&(t.remove(u),s=u.start.row,o=-r.start.length)}else o=r.start.length,s=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==s&&(d.start.column+=o),d.end.row==s&&(d.end.column+=o),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;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(s.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,s=e("./lib/event_emitter").EventEmitter,o=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,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(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 o||(e=o.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]:!o.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,s=e.start.column,o=0,a=0;;){o=a,a+=t-1;var l=i.slice(o,a);if(a>n){e.lines=l,e.start.row=r+o,e.start.column=s;break}l.push(""),this.applyDelta({start:this.pos(r+o,s),end:this.pos(r+a,s=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,s=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),s<=n&&i.fireUpdateEvent(s,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(s.prototype),t.BackgroundTokenizer=s}),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),s=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,s){if(this.regExp)for(var o=s.firstRow,a=s.lastRow,l=o;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,s)}}}).call(s.prototype),t.SearchHighlight=s}),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,s,o=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,o.start);return 0===a?t&&0!==l?-s-2:s:l>0||0===l&&!t?s:-s-1}}return-s-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],s=1;s=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+=o,h.start.row+=s)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&o>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=o),h.end.column+=o,h.end.row+=s}}}if(0!=s&&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}o>=e&&(n-=a>=e?o-a:o-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 o?i=e:(i=new o(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 s=n;s.length;)this.expandFolds(s),s=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 s=this.doc,o="";return e.walk(function(e,t,i,a){if(!(th)break}while(s&&l.test(s.type));s=n.stepBackward()}else s=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+s.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=s.end.row;try{var o=this.addFold("...",s);o&&(o.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 s=i[r];if(null==s&&(s=i[r]=this.getFoldWidget(r)),"start"==s){var o=this.getFoldWidgetRange(r);if(n||(n=o),o&&o.end.row>=e)break}r--}return{range:-1!==r&&o,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,s=this.getFoldAt(e,-1===r?0:n.length,r);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()&&(s=this.getFoldAt(o.start.row,o.start.column,1))&&o.isEqual(s.range))return this.removeFold(s),s;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=o?o.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o}},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,s=e("./fold_line").FoldLine,o=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),o=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(o||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},o=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!o)return null;if(o[1]){var a=this.$findClosingBracket(o[1],e);if(!a)return null;t=s.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(o[2],e);if(!a)return null;t=s.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],s=1,o=new r(this,t.row,t.column),a=o.getCurrentToken();if(a||(a=o.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-o.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(s-=1))return{row:o.getCurrentTokenRow(),column:l+o.getCurrentTokenColumn()}}else h==e&&(s+=1);l-=1}do{a=o.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],s=1,o=new r(this,t.row,t.column),a=o.getCurrentToken();if(a||(a=o.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-o.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,s=e[r];if(t>s)i=r+1;else{if(!(t=t);s++);return(i=n[s])?(i.index=s,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 s=t;if(s>0){do{s--}while(s>=0&&i.charAt(s).match(r));s++}for(var o=t;oe&&(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,s=this.$foldData[r],o=s?s.start.row:1/0,a=t.length,l=0;lo){if((l=s.end.row+1)>=a)break;s=this.$foldData[r++],o=s?s.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&&(s.start.column+=a),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=a)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}if(s.end=this.insert(s.start,n),r.length){var l=e.start,c=s.start,o=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+=o,e.end.row+=o,e}))}return s},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 s=this.getLine(r);i.start.row=r,i.end.row=r;for(var o=0;o0){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 s=new h(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).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),o.length&&this.addFolds(o),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,s=n.row,o=r.row,a=o-s,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(s,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(s);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}o=s}else{var f=Array(a);f.unshift(s,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(s),d=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(o,0,r.column-n.column)):-1==m&&(h.addRemoveChars(s,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=s&&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(s);h&&h.addRemoveChars(s,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(s,o):this.$updateRowLengthCache(s,o),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,s,o=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,o.length-1);h<=n;)s=this.getFoldLine(h,s),s?(r=[],s.walk(function(e,n,s,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var y=u+n-v;if(e[y-1]>=s&&e[y]>=s)a(y);else if(e[y]!=t&&e[y]!=i){for(var w=Math.max(y-(n-(n>>2)),u-1);y>w&&e[y]w&&e[y]w&&9==e[y];)y--}else for(;y>w&&e[y]w?a(++y):(y=u+n,2==e[y]&&y--,a(y-v))}else{for(y;y!=u-1&&e[y]!=t;y--);if(y>u){a(y);continue}for(y=u+n;y39&&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,s;for(s=0;s=4352&&e(r)?n+=2:n+=1,!(n>i));s++);return[n,s]},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],s=this.$docRowCache[h],u=e>c[d-1];else var u=!d;for(var f=this.getLength()-1,p=this.getNextFoldLine(s),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(s),!(a+l>e||s>=f));)a+=l,++s>m&&(s=p.end.row+1,p=this.getNextFoldLine(s,p),m=p?p.start.row:1/0),u&&(this.$docRowCache.push(s),this.$screenRowCache.push(a));if(p&&p.start.row<=s)n=this.getFoldDisplayLine(p),s=p.start.row;else{if(a+l<=e||s>f)return{row:f,column:this.getLine(f).length};n=this.getLine(s),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var y=this.$wrapData[s];y&&(r=y[v],v>0&&y.length&&(g=y.indent,o=y[v-1]||y[y.length-1],n=n.substring(o)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,s,v)&&(t=this.$bidiHandler.offsetToCol(i)),o+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&o>=r&&(o=r-1),p?p.idxToPosition(o):{row:s,column:o}},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,s=null;(s=this.getFoldAt(e,t,1))&&(e=s.start.row,t=s.start.column);var o,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getNextFoldLine(a),f=u?u.start.row:1/0;a=f){if((o=u.end.row+1)>e)break;u=this.getNextFoldLine(o,u),f=u?u.start.row:1/0}else o=a+1;n+=this.getRowLength(a),a=o,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var 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++],s=t?t.start.row:1/0;ns&&(n=t.end.row+1,t=this.$foldData[r++],s=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));s++);return[n,s]})},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),o.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"),s=e("./lib/oop"),o=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return s.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,s){return n=new o(e,i,r,s),!(i==s&&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(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var d=a.offset||0;d<=h;d++){for(var u=0;um||(s.push(l=new o(d,m,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var v=0;vb&&s[u].end.row==i.end.row;)u--;for(s=s.slice(v,u+1),v=0,u=s.length;v=a;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=o.row;i>=a;i--)if(d(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=o.row;if(!d(i,o.column,e)){for(i+=1;i<=l;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=a,l=o.row;i<=l;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var h=i.length,d=function(t,r,s){var o=n?t-h+1:t;if(!(o<0)){var a=e.getLine(o),l=a.search(i[0]);if(!(!n&&lr))return!!s(o,l,o+h-1,d)||void 0}}};else if(n)var d=function(t,n,r){var s,o=e.getLine(t),a=[],l=0;for(i.lastIndex=0;s=i.exec(o);){var c=s[0].length;if(l=s.index,!c){if(l>=o.length)break;i.lastIndex=l+=1}if(s.index+c>n)break;a.push(s.index,c)}for(var h=a.length-1;h>=0;h-=2){var d=a[h-1],c=a[h];if(r(t,d,t,d+c))return!0}};else var d=function(t,n,r){var s,o=e.getLine(t),a=n;for(i.lastIndex=n;s=i.exec(o);){var l=s[0].length;if(a=s.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=o.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||(o.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 s=e("../lib/keys"),o=e("../lib/useragent"),a=s.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 s=n[r];if(s==e)delete n[r];else if(Array.isArray(s)){var o=s.indexOf(e);-1!=o&&(s.splice(o,1),1==s.length&&(n[r]=s[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 s=this.parseKeys(e),o=a[s.hashId]+s.key;this._addCommandToBinding(n+o,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,s=this.commandKeyBinding;if(i)if(!s[t]||this.$singleCommand)s[t]=i;else{Array.isArray(s[t])?-1!=(r=s[t].indexOf(i))&&s[t].splice(r,1):s[t]=[s[t]],"number"!=typeof n&&(n=e(i));var o=s[t];for(r=0;rn)break}o.splice(r,0,i)}else delete s[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=s[i];if(s.FUNCTION_KEYS[n])i=s.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,o=t.length;o--;){var a=s.KEY_MODS[t[o]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[o]+" 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,s=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,s=this.commandKeyBinding[e.$keyChain]||s),!s||"chainKeys"!=s&&"chainKeys"!=s[s.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:s}):(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,s=e("../lib/event_emitter").EventEmitter,o=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(o,r),function(){n.implement(this,s),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(o.prototype),t.CommandManager=o}),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"),s=e("../config"),o=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){s.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){s.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){s.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){s.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){s.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(),s=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(s=e.session.doc.getLine(i.row).length>s?s+1:s,e.selection.moveCursorTo(i.row,s))},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 s=0;s0&&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 y(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 s=r.value,o=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===s&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?o++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===s&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?o++:"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),s=r.length,o=r.substring(Math.max(i,0),Math.min(n,s));if(!(i>=0&&/^[\w\d]/.test(o)||n<=s&&/[\w\d]$/.test(o))&&(o=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(o))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o})}}},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 s=n[r];s.isEmpty()||this.session.remove(s),this.session.insert(s.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 s=n.transformAction(i.getState(r.row),"insertion",this,i,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){var o=new f.fromPoints(r,r);o.end.column+=e.length,this.session.remove(o)}}else{var o=this.getSelectionRange();r=this.session.remove(o),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(s&&s.selection&&(2==s.selection.length?this.selection.setSelectionRange(new f(r.row,c+s.selection[0],r.row,c+s.selection[1])):this.selection.setSelectionRange(new f(r.row+s.selection[0],s.selection[1],r.row+s.selection[2],s.selection[3]))),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var s=i.getTextRange(t);if("\n"==s[s.length-1]){var o=i.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.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 s=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=s.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 s=this.getNumberAt(t,i);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,a=s.start+s.value.length-o,l=parseFloat(s.value);l*=Math.pow(10,a),o!==s.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);d<=h;)o[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var s=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(s)},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 y(this.session,i.row,i.column),r=n.getCurrentToken(),s=r||n.stepForward();if(s){var o,a,l=!1,c={},h=i.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h=0;--s)this.$tryReplace(i[s],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 s=this.$search.find(this.session);return t.preventScroll?s:s?(this.revealRange(s,i),s):(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 s=this.on("changeSelection",function(){n=!0}),o=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,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,a=s.top-o.offset;n=s.top>=0&&a+t.top<0||!(s.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=s.left+"px",r.style.height=o.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",o))}}},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(w.prototype),v.defineOptions(w.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=w}),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"),s=e("../lib/lang"),o=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,o),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;to&&(m=s.end.row+1,s=t.getNextFoldLine(m,s),o=s?s.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 y=a[m];null==y&&(y=a[m]=t.getFoldWidget(m))}if(y){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+y;"start"==y&&m==o&&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"),s=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 s=this.$getTop(r.start.row,e),o=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,o,s,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,s,o){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,d=0,u=0,f=a.getScreenLastRowColumn(h),p=null,m=new n(h,i.start.column,h,u);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,d=u,u=f,f=h+1f,h==c),this.session.$bidiHandler.isBidiRow(h)?this.drawBidiSingleLineMarker(t,m,p,s,h==c?0:1,o):this.drawSingleLineMarker(t,m,p,s,h==c?0:1,o)},this.drawMultiLineMarker=function(e,t,i,n,r){var s,o,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 s=n.lineHeight,o=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;s=n.lineHeight,o=this.$getTop(t.end.row,n),e.push("
    ")}if(!((s=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){o=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
    ")}},this.drawSingleLineMarker=function(e,t,i,n,r,s){var o=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,s){var o=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 s=this.$getTop(t.start.row,n),o=n.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,n)-s),e.push("
    ")},this.drawScreenLineMarker=function(e,t,i,n,r){var s=this.$getTop(t.start.row,n),o=n.lineHeight;e.push("
    ")}}).call(s.prototype),t.Marker=s}),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"),s=e("../lib/lang"),o=(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,o),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"+s.stringRepeat(this.TAB_CHAR,i)+""):t.push(s.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",o="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",o=" ace_invisible_tab";var a=s.stringRepeat(this.SPACE_CHAR,this.tabSize),l=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=s.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),s=this.element.childNodes,o=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=s[o++];if(h){var d=[];this.$renderLine(d,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=d.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),a=o?o.start.row:1/0;;){if(s>a&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),a=o?o.start.row:1/0),s>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,s,!1,s==a&&o),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);s++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,s=this.session.getNextFoldLine(r),o=s?s.start.row:1/0;;){if(r>o&&(r=s.end.row+1,s=this.session.getNextFoldLine(r,s),o=s?s.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
    "),this.$renderLine(t,r,!1,r==o&&s),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,o=function(e,i,n,o,a){if(i)return r.showInvisibles?""+s.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+o);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,o);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(s.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(s.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,o=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
    "),e.push(s.stringRepeat(" ",i.indent)),o++,l=0,a=i[o]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var s=1;s"),r.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,r,s,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,s=0;s+e[n].value.lengthi-t&&(o=o.substring(0,i-t)),r.push({type:e[n].type,value:o}),s=t+o.length,n+=1}for(;si?r.push({type:e[n].type,value:o.substring(0,i-s)}):r.push(e[n]),s+=o.length,n+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(s=n.getTokens(t)),s.length&&i(s,a,o))},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"),s=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||s.top<0)&&i>1)){var o=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[i],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=s,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(s.prototype),t.Cursor=s}),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"),s=e("./lib/event"),o=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,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){n.implement(this,o),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"),s=e("../lib/lang"),o=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=s.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",o.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=s.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"),s=e("./config"),o=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,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=!o.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 u(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),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),s.resetOptions(this),s._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 s=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|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,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};return n&&(e||s.height!=n)&&(s.height=n,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||s.width!=i)&&(r|=this.CHANGE_SIZE,s.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",s.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)),s.$dirty=!i||!n,r&&this._signal("resize",o),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 s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-s&&(i=this.$size.scrollerWidth-s),i+=this.gutterWidth,n.height=r+"px",n.width=s+"px",n.left=Math.min(i,this.$size.scrollerWidth-s)+"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,s=this.$getLongestLine(),o=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),a=this.$horizScroll!==o;a&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),w=y+v,C=this.lineHeight;y=e.screenToDocumentRow(y,0);var b=e.getFoldLine(y);b&&(y=b.start.row),m=e.documentToScreenRow(y,0),g=e.getRowLength(y)*C,w=Math.min(e.screenToDocumentRow(w,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(w)*C+g,c=this.scrollTop-m*C;var A=0;return this.layerConfig.width!=s&&(A=this.CHANGE_H_SCROLL),(a||p)&&(A=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine())),this.layerConfig={width:s,padding:this.$padding,firstRow:y,firstRowScreen:m,lastRow:w,lineHeight:C,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:C?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/C)):0,height:this.$size.scrollerHeight},A},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||ts?(t&&l+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),0===s&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):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,s=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),o=Math.round(r);return{row:s,column:o,side:r-o>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),s=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(s,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)),s=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+s-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 s="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),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 o=e||this.$options.theme.initialValue;s.loadModule(["theme",o],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),s.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;o.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,s=r.createObjectURL(i);return new Worker(s)}var s=e("../lib/oop"),o=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,s,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),l.get("packaged")||!e.toUrl)s=s||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;s=s||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(s,i),o&&this.send("importScripts",o),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){s.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 o.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(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,s=Object.create(a),o=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){o.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=o.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&s._signal(e.event,e.data)};s.postMessage=function(e){o.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},s.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},l.loadModule(["worker",t],function(e){for(n=new e[i](s);o.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,s=e("./lib/oop"),o=function(e,t,i,n,r,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){o.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(){s.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,s=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var o=this.others.length-1;o>=0;o--){var a=this.others[o],l={row:a.row,column:a.column+s};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var o=this.others.length-1;o>=0;o--){var a=this.others[o],l={row:a.row,column:a.column+s};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,s=i.end.row;if(r==s){if(n)var o=i.end,a=i.start;else var o=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(o,o))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var d=r+1;d1){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=[],s=e.column0;)v--;if(v>0)for(var y=0;n[y].isEmpty();)y++;for(var w=v;w>=y;w--)n[w].isEmpty()&&n.splice(w,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,s=1==i||i&&i.$byLines,o=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(o);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(s)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=o.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=o.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,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;ns&&(s=i.column),rc?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=s,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(d)}while(/[=:]/.test(p)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var g=this.session.removeFullLines(h,d);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 u.stringRepeat(" ",e)}function n(e){return e[2]?i(o)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(o+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function s(e){return e[2]?i(o)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var o,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==o?(o=t[1].length,a=t[2].length,l=t[3].length,t):(o+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),o!=t[1].length&&(c=!1),o>t[1].length&&(o=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:s)}}).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=s,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){s(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),s=r.search(/\S/);if(-1!=s){for(var o=i||r.length,a=e.getLength(),l=t,c=t;++tl){var d=e.getLine(c).length;return new n(l,o,c,d)}}},this.openingBracketBlock=function(e,t,i,r,s){var o={row:i,column:r+1},a=e.$findClosingBracket(t,o,s);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>o.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(o,a)}},this.closingBracketBlock=function(e,t,i,r,s){var o={row:i,column:r},a=e.$findOpeningBracket(t,o);if(a)return a.column++,o.column--,n.fromPoints(a,o)}}).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,s=n.end.row,o="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var o=r;o<=s;o++){var a=n[o];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:o,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 s=n+r>>1,o=i(t,e[s]);if(o>0)n=s+1;else{if(!(o<0))return s;r=s-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var s=n(r,{row:t,column:-1},a.comparePoints);s<0&&(s=-s-1),s>=r.length?s=i>0?0:r.length-1:0===s&&i<0&&(s=r.length-1);var o=r[s];if(o&&i){if(o.row===t){do{o=r[s+=i]}while(o&&o.row===t);if(!o)return r.slice()}var l=[];t=o.row;do{l[i<0?"unshift":"push"](o),o=r[s+=i]}while(o&&o.row==t);return l.length&&l}}}var s=e("../line_widgets").LineWidgets,o=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new s(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:o.createElement("div"),type:"errorMarker"},f=u.el.appendChild(o.createElement("div")),p=u.el.appendChild(o.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",u.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
    "),f.appendChild(o.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return u.destroy(),{command:"null"}};u.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(u),e.off("changeSelection",u.destroy),e.off("changeSession",u.destroy),e.off("mouseup",u.destroy),e.off("change",u.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",u.destroy),e.on("changeSession",u.destroy),e.on("mouseup",u.destroy),e.on("change",u.destroy),e.session.widgetManager.addLineWidget(u),u.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:u.el.offsetHeight})},o.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"),s=e("./lib/event"),o=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(74),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 o)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 o(new c(e));h.setSession(l);var d={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),s.addListener(window,"resize",d.onResize),h.on("destroy",function(){s.removeListener(window,"resize",d.onResize),d.editor.container.env=null}),h.container.env=h.env=d,h},t.createEditSession=function(e,t){var i=new 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,s=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(s,r),t.JsonHighlightRules=s}),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 s=r[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,s-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,s=e("./fold_mode").FoldMode,o=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(o,s),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 s=r.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],i,o);var a=e.getCommentFoldRange(i,o+s[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var s=r.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],i,o):e.getCommentFoldRange(i,o,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),s=t,o=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<=s)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(s,o,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),s=e.getLength(),o=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++io)return new r(o,n,h,t.length)}}.call(o.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"),s=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=o,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,s),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(76),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){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"),s=e("../lib/event"),o=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;s.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.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),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,i,n){var r=a.keyCodeToString(n),o=t.$searchBarKb.findKeyCommand(i,r);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=r.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new o([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new o,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}),s=!r&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",s),this.editor._emit("findSearchBox",{match:!s}),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(),s=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(s-=e.session.doc.positionToIndex(this.searchRange.start));for(var o,a=t.lastIndex=0;(o=t.exec(r))&&(i++,a=o.index,a<=s&&n++,!(i>999))&&(o[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 21e78cf..b043918 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.19.2", + "version": "5.20.0", "main": "./index", "description": "A web-based tool to view, edit, format, and validate JSON", "tags": [